Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >代码开源!用Versal FPGA加速矩阵乘法

代码开源!用Versal FPGA加速矩阵乘法

作者头像
猫叔Rex
发布于 2024-07-20 04:28:03
发布于 2024-07-20 04:28:03
5370
举报
文章被收录于专栏:科学计算科学计算

该论文主要围绕着深度学习应用对密集矩阵乘法(Matrix Multiply, MM)的大量需求展开。随着深度学习模型的复杂度不断增加,对计算资源的需求也日益增长,这促使了异构架构的兴起,这类架构结合了FPGA(现场可编程门阵列)和专用ASIC(专用集成电路)加速器,旨在应对高计算需求。

AMD/Xilinx的Versal ACAP(自适应计算加速平台)架构是此类异构架构的一个实例,它集成了通用CPU核心、可编程逻辑以及针对AI/ML优化的AI引擎处理器。一个由400个运行在1GHz的AI引擎处理器组成的阵列可以提供高达6.4 TFLOPs的32位浮点运算性能。然而,机器学习模型中的MM操作既有大规模也有小规模的,大规模MM操作能够有效地并行处理,但小规模MM操作则通常无法做到这一点。研究发现,执行BERT自然语言处理模型中的某些小规模MM层,在Versal ACAP上大型、单一的MM加速器上只能达到理论峰值性能的不到5%。

因此,如何设计加速器以充分高效地利用计算资源成为一个关键问题,尤其是在面对不同规模MM操作时,需要平衡资源分配,避免计算和带宽的浪费。这驱动了对CHARM架构及其实现框架的研究,旨在通过组合异构加速器来解决这一挑战,从而提高整体系统效率,特别是在处理同时含有大、小MM操作的深度学习应用时。

论文还提到了一些相关的先前工作,包括针对特定应用定制的处理器设计、流线型线性代数运算在FPGA上的实现、高带宽内存基加速器设计、以及针对FPGA的高性能阵列编译器等。这些背景知识共同构成了CHARM架构提出的理论和技术基础。

作者回顾了神经网络(NN)加速器领域的现有研究和设计方法,特别是那些致力于提高密集矩阵乘法(MM)运算的吞吐量和能源效率的工作。

  1. 神经网络加速器的一般特性:
    • 大多数NN加速器采用大量处理元素(PE)和相似的存储层次结构,包括本地内存和全局共享内存,以减少昂贵的离芯片数据移动。
    • 许多早期的工作侧重于数据重用机会、计算并行性和数据流选择,以优化密集矩阵运算。
  2. 一揽子设计的局限性:
    • 很多先前的研究采用“一刀切”(one-size-fits-all)的单一设计,这种设计在处理具有大幅差异的形状和大小的层时效率低下(如Eyeriss、ShiDianNao、NPU等)。
    • AutoSA是一个基于多面体的编译框架,用于生成针对密集矩阵的单一设计的流水线阵列。
    • Sextans和Serpens是针对稀疏矩阵的通用单一加速器。
    • 有些工作如AMD DPU和Mocha探索了通过在设备上分配多个重复加速器的任务级并行性,但没有对每个加速器进行专门设计。
  3. 多种加速器设计的尝试:
    • DNNBuilder为特定层设计了专用加速器。
    • DNNExplorer通过结合前几层的专用加速器和剩余层的单一设计,增强了DNNBuilder,但缺乏全面的工作负载分配探索。
    • TETRIS和TANGRAM在神经网络各层内和跨层提出了多种数据流优化,提高了性能和能效,但缺乏高总体吞吐量下的设计空间探索(DSE)和工作负载分配。
    • Herald提出了具有多个多样化加速器的架构,并探索了工作负载分配和资源划分,但选择了几个现有设计,如ShiDianNao和NVDLA,而没有为每个加速器做设计空间探索。
  4. CHARM与先前工作的比较:
    • CHARM能够从单一、多个重复或多个多样化的加速器中做出选择,并且每个加速器都是针对不同的工作负载分配、数据流和数据并行策略进行专门设计的。
    • 与先前的工作相比,CHARM涵盖了全面的设计空间探索,以实现高整体吞吐量。

Versal ACAP架构概述:

  • Versal ACAP(Adaptive Compute Acceleration Platform)是一个高度集成的异构系统,包含AI Engine(AIE)阵列、ARM处理器和可编程逻辑(PL),旨在提供高度可配置和可适应的计算能力。
  • VCK190评估板是Versal ACAP的一个实例,它集成了第一代AIE架构,具备8行50列的1GHz 7路VLIW处理器,支持高达1024位的向量运算。
  • ARM处理器用于运行Linux和其他一般应用程序。
  • 可编程逻辑(PL)允许设计特定应用的硬件,包括集成的数字信号处理器(DSP)。
  • AIE核和ARM CPU可以使用C/C++编程,而PL可以通过RTL和C/C++代码利用High-Level Synthesis(HLS)进行编程。
  • 这些组件通过I/O外设如PCIe、USB等与外部世界通信。
  • AIE阵列通过AXI-Stream(AXIS)交换网络连接,支持电路交换和分组交换,提供确定性和动态路由的数据传输能力。
  1. AIE内存模型:
    • 每个AIE处理器磁贴包含32KB的数据内存,能够与相邻的AIE进行数据共享。
    • AIE磁贴除了与邻近磁贴共享本地内存之外,还通过AXIS交换网络与非本地AIE处理器和PL进行通信。
    • VCK190板提供了从PL到AIEs和从AIEs到PL之间的高带宽连接,分别是1.2TB/s和0.9TB/s,比DDR4和PL之间的带宽高出46倍。
    • AXIS交换机支持电路交换和分组交换连接,其中电路交换提供专用、确定性的通信,而分组交换则允许数据动态路由至不同目的地。
  2. 整体架构:
    • Versal ACAP架构集成了DRAM控制器,形成一个包含网络在芯片(NoC)的异构SoC。
    • VCK190板配备了一个DDR4-DIMM离芯片内存,峰值带宽为25.6GB/s。

作者又详细描述了如何在Versal ACAP架构上设计单个矩阵乘法加速器,并针对数据流和映射策略进行了阐述。以下是该部分内容的总结:

  1. 数据流和映射策略:
    • 作者提出了一个矩阵乘法加速器的设计方法,该方法利用了数百个AI Engine (AIE)单元,通过精心规划数据流动和计算资源的分配,实现高效的密集矩阵乘法。
    • 数据重用优化是设计的关键,以平衡计算和通信的需求,确保在有限的离芯片带宽下,加速器可以维持高计算效率。
  2. 数据重用优化:
    • 通过增加片上存储来提高数据重用率,减少离芯片通信的总数据量,从而减轻离芯片带宽的压力。根据文献分析,矩阵乘法中的离芯片通信量与片上数据块大小的平方根成反比。
    • 在Versal ACAP架构上,研究者使用了384个AIE和超过80%的片上统一RAM (URAM) 和块RAM (BRAM) 资源,构建了一个矩阵乘法加速器。
    • 这个设计在1536×128×1024的原生数据块大小上运行,处理大型方阵矩阵乘法时可以达到2.8 TFLOPs的吞吐量。
    • 然而,当映射不同大小的矩阵乘法到同一设计时,若矩阵尺寸小于512,性能会显著下降,因为每个数据块被填充到加速器的原生大小,导致计算和带宽的浪费。
  3. 多加速器方法:
    • 作为一种替代方案,研究者探讨了实现多个具有较小原生数据块大小的加速器,每个加速器可以并行执行不同的任务。使用8个独立加速器,每个具有256×128×256的原生数据块大小,对于64大小的小型方阵矩阵乘法,这种方法可以在点C处达到7.2 GFLOPS的速度,相比于点B有大约17倍的加速。
    • 然而,这种方法在处理大型矩阵乘法时,数据重用率降低,总体吞吐量几乎饱和。
  4. 设计挑战与解决方案:
    • 实验揭示了两种相互冲突的设计目标:一方面要高效实现大型矩阵乘法,另一方面要最小化小型矩阵乘法的计算和通信开销。
    • 为了在实际应用中同时实现这两点,研究者提出了一种设计思路,即为大型矩阵乘法分配更多资源,同时为小型矩阵乘法分配较少资源,从而在时间线上同时计算。

通过上述设计和优化,CHARM旨在解决Versal ACAP架构上密集矩阵乘法加速器的效率和资源分配问题,尤其关注于处理大小不一的矩阵乘法操作,以提高整体系统性能。

CHARM Architecture

  1. 目标:
    • 设计一个系统,它能够在处理各种规模的MM操作时,同时优化计算和通信效率,特别是在处理大型和小型MM操作共存的深度学习应用中。
  2. 设计思想:
    • 提出一种方法,即为大型MM操作分配更多资源,同时为小型MM操作分配较少资源,通过这种方式同时计算,以减少计算和带宽的浪费。
  3. 实现:
    • 构建了一个包含多个加速器的系统,其中每个加速器都有不同的原生数据块大小,以适应不同规模的MM操作。例如,大型MM操作使用较大的加速器,而小型MM操作则使用较小的加速器。

CHARM Framework

  1. 组成部分:
    • CHARM框架包含多个模块,如CHARM Diverse Accelerator Composer (CDAC)、CHARM Automatic Code Generation (CACG)和CHARM Runtime System (CRTS)。
  2. 功能:
    • CDAC:使用基于排序的两步搜索算法来寻找最优的CHARM设计,使得在多项式时间复杂度内完成设计空间探索,而不是指数时间复杂度。
    • CACG:自动生成AIE、PL和主机CPU的源代码文件,以简化系统实现过程。
    • CRTS:在主机CPU中运行,负责调度不同任务的内核到各个加速器上,以优化任务延迟和整体系统吞吐量。
  3. 创新点:
    • 提供了详细的系统化数据移动和计算分析,特别是在Versal ACAP架构上。
    • 自动化代码生成和运行时系统,简化了开发流程,提高了效率。
  4. 结果:
    • 通过在VCK190板上部署CHARM框架,加速了包括BERT、ViT、NCF和MLP在内的四个应用,实现了显著的吞吐量提升,相较于单一加速器设计,获得了倍数级别的性能增益。

论文结果总结

  1. CHARM架构的有效性:
    • CHARM架构成功地解决了大型和小型矩阵乘法操作在Versal ACAP架构上的效率问题,通过设计多样化的加速器,每个加速器针对特定规模的矩阵乘法进行了优化。
  2. 性能提升:
    • 实验结果表明,与单一的大型加速器设计相比,CHARM在处理BERT、ViT、NCF和MLP等多个深度学习应用时,能够显著提高总体吞吐量,分别实现了1.46 TFLOPs、1.61 TFLOPs、1.74 TFLOPs和2.94 TFLOPs的推断吞吐量,性能提升分别达到了5.29倍、32.51倍、1.00倍和1.00倍。
  3. 资源和带宽优化:
    • 通过资源分配和数据流优化,CHARM能够最大化每个加速器的计算效率,减少计算和带宽的浪费,尤其是对于小型矩阵乘法。
  4. 自动化工具和框架:
    • 提供了包括CHARM DSE(Design Space Exploration)、CHARM多样化的加速器组合器(CDAC)、CHARM自动代码生成(CACG)和CHARM运行时系统(CRTS)在内的自动化工具和框架,大大简化了系统设计和实现过程。
  5. 开源工具和透明度:
    • CHARM团队开源了所有工具和代码,提供了详细的步骤指南,使其他研究人员和开发者能够轻松地重现研究结果和学习CHARM的设计理念,促进学术界和工业界的交流与合作。

这篇论文中的代码也在GitHub上开源了,网址为:

https://github.com/arc-research-lab/CHARM/tree/main

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 傅里叶的猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
矩阵乘法加速器的设计框架
矩阵乘法加速器,一般至少包括计算单元,缓存(SRAM等构成)和内存(譬如DDR等)。其中缓存的读写速率较高,可以和计算单元的运算速度相匹配,但容量较小;内存的容量相对缓存较大,但读写速率较低。
sea-wind
2020/03/19
3.1K0
ACAP:不是FPGA,胜似FPGA
你知道吗,世界第一大FPGA公司赛灵思,它的龙头芯片,却不是FPGA——2018年,赛灵思发布了一种名叫ACAP的芯片,随即受到了全球科技界的密切关注。
FPGA技术江湖
2022/05/23
2.1K0
ACAP:不是FPGA,胜似FPGA
英伟达系列显卡大解析B100、H200、L40S、A100、A800、H100、H800、V100如何选择,含架构技术和性能对比带你解决疑惑
近期,AIGC领域呈现出一片繁荣景象,其背后离不开强大算力的支持。以ChatGPT为例,其高效的运行依赖于一台由微软投资建造的超级计算机。这台超级计算机配备了数万个NVIDIA A100 GPU,并利用60多个数据中心的数十万个GPU辅助,为ChatGPT提供了强大的算力支持。这种规模的算力部署不仅体现了AIGC技术的先进性,也预示着人工智能技术未来的发展趋势。这种集成了高性能计算、大数据处理和人工智能算法的超级计算机,将成为推动科技进步的重要引擎。
汀丶人工智能
2024/01/29
8.1K0
英伟达系列显卡大解析B100、H200、L40S、A100、A800、H100、H800、V100如何选择,含架构技术和性能对比带你解决疑惑
FPGA 2025最佳论文--加速视频推理大模型
这篇文章再来看一篇新鲜出炉的论文,是上海交大和清华大学共同发表的一篇论文。这篇论文获得了FPGA 2025最佳论文奖,是用FPGA对视频生成大模型进行加速优化,最终得到的效果非常不错。这也符合我们的预期,FPGA目前还是可以做各种工程的加速研究。在AI领域,我们之前也写过很多篇FPGA论文的解读,也基本都是加速AI算法,这篇论文是我们写的第一篇直接对视频生成大模型的推理进行了加速。
FPGA技术江湖
2025/04/02
2100
FPGA 2025最佳论文--加速视频推理大模型
详解AI加速器(四):GPU、DPU、IPU、TPU…AI加速方案有无限种可能
选自Medium作者:Adi Fuchs 机器之心编译 在上一篇文章中,前苹果工程师、普林斯顿大学博士 Adi Fuchs 聚焦 AI 加速器的秘密基石:指令集架构 ISA、可重构处理器等。在这篇文章中,我们将跟着作者的思路回顾一下相关 AI 硬件公司,看看都有哪些公司在这一领域发力。 这是本系列博客的第四篇,主要介绍了 AI 加速器相关公司。全球科技行业最热门的领域之一是 AI 硬件, 本文回顾了 AI 硬件行业现状,并概述相关公司在寻找解决 AI 硬件加速问题的最佳方法时所做的不同赌注。 对于许多 AI
机器之心
2022/03/04
1.9K0
高端FPGA揭秘之存储及高速接口
来源:内容由「网络交换FPGA」编译自「eejournal」,作者:Kevin Morris,谢谢。
网络交换FPGA
2020/04/21
2.9K0
高端FPGA揭秘之存储及高速接口
数据中心中的FPGA硬件加速器
再来看一篇FPGA的综述,我们都知道微软包括国内的云厂商其实都在数据中心的服务器中部署了FPGA,所以这篇论文就以数据中心的视角,来看下FPGA这个硬件加速器。
FPGA技术江湖
2025/01/11
3010
数据中心中的FPGA硬件加速器
详解AI加速器(三):架构基础离不开ISA、可重构处理器……
在这一章节中,Adi Fuchs 为我们介绍了 AI 加速器的架构基础,包括指令集架构 ISA、特定领域的 ISA、超长指令字 (VLIW) 架构、脉动阵列、可重构处理器、数据流操作、内存处理。
机器之心
2022/02/24
7160
详解AI加速器(三):架构基础离不开ISA、可重构处理器……
DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法
今天是DeepSeek开源周的第三天,继FlashMLA和DeepEP之后,DeepSeek开源了DeepGEMM库。作为一个专注于FP8精度通用矩阵乘法的高性能库,DeepGEMM在提供极致性能的同时保持了令人惊讶的代码简洁性。
致Great
2025/02/27
2370
DeepSeek开源周 Day03:从DeepGEMM看大模型算力提速的矩阵乘法
【AI系统】Tensor Core 基本原理
在英伟达的通用 GPU 架构中,主要存在三种核心类型:CUDA Core、Tensor Core 以及 RT Core。其中,Tensor Core 扮演着极其关键的角色。
用户11307734
2024/11/27
1K0
RTX 40时代,给深度学习买的显卡居然能保值9年?仔细一算绷不住了
选自timdettmers.com 作者:Tim Dettmers 机器之心编译 编辑:泽南 FP8 训练带来的速度提升可能要一统 AI 领域,但这是我要考虑的问题吗? 深度学习对于算力的要求很高,对于个人来说,GPU 的选择很大程度上决定了你的工作、学习体验。显卡既贵又复杂,如果想购买新的 GPU,哪些功能最重要?内存、核心、Tensor Core 还是缓存?如何做出性价比高的选择?每出一代新 GPU 这些问题就要重新审视一番。 近日,华盛顿大学在读博士 Tim Dettmers 通过一篇长文在 RTX
机器之心
2023/03/29
1.4K0
RTX 40时代,给深度学习买的显卡居然能保值9年?仔细一算绷不住了
深度 | 英伟达深度学习Tensor Core全面解析
AI 科技评论消息,不久前,NVIDIA在SIGGRAPH 2018上正式发布了新一代GPU架构——Turing(图灵),黄仁勋称Turing架构是自2006年CUDA GPU发明以来最大的飞跃。Turing架构的两大重要特性便是集成了用于光线追踪的RT Core以及用于AI计算的Tensor Core,使其成为了全球首款支持实时光线追踪的GPU。
AI科技评论
2018/09/21
4.1K0
深度 | 英伟达深度学习Tensor Core全面解析
学界 | 商汤联合提出基于FPGA的快速Winograd算法:实现FPGA之上最优的CNN表现与能耗
选自IEEEXplore 作者:Liqiang Lu、Yun Liang、Qingcheng Xiao 机器之心编译 参与:路雪、黄小天 此前,商汤科技联合北京大学等提出一种基于 FPGA 的快速 Winograd 算法,可以大幅降低算法复杂度,改善 FPGA 上的 CNN 性能。论文中的实验使用当前最优的多种 CNN 架构,从而实现了 FPGA 加速之下的最优性能和能耗。 1. 引言 深度卷积神经网络(CNN)在多个计算机视觉任务上取得了优秀的性能,包括图像分类、目标检测和语义分割 [1, 2]。CNN
机器之心
2018/05/10
1.4K0
【AI系统】谷歌 TPU 历史发展
在本文中,我们将深入探讨谷歌的 Tensor Processing Unit(TPU)的发展历程及其在深度学习和 AI 领域的应用。TPU 是谷歌为加速机器学习任务而设计的专用集成电路(ASIC),自首次推出以来,TPU 经历了多次迭代升级,包括 TPU v1、v2、v3 和 v4,以及 Edge TPU 和谷歌 Tensor 等产品。
用户11307734
2024/11/27
3830
RecoNIC 入门:SmartNIC 上支持 RDMA 的计算卸载-FPGA-智能网卡-AMD-Xilinx
当今的数据中心由数千台网络连接的主机组成,每台主机都配有 CPU 和 GPU 和 FPGA 等加速器。 这些主机还包含以 100Gb/s 或更高速度运行的网络接口卡 (NIC),用于相互通信。 我们提出了 RecoNIC,这是一种基于 FPGA、支持 RDMA 的 SmartNIC 平台,旨在通过使网络数据尽可能接近计算来加速计算,同时最大限度地减少与数据副本(在以 CPU 为中心的加速器系统中)相关的开销。 由于 RDMA 是用于改善数据中心工作负载通信的事实上的传输层协议,因此 RecoNIC 包含一个用于高吞吐量和低延迟数据传输的 RDMA 卸载引擎。 开发人员可以在 RecoNIC 的可编程计算模块中灵活地使用 RTL、HLS 或 Vitis Networking P4 来设计加速器。 这些计算块可以通过 RDMA 卸载引擎访问主机内存以及远程对等点中的内存。 此外,RDMA 卸载引擎由主机和计算块共享,这使得 RecoNIC 成为一个非常灵活的平台。 最后,我们为研究社区开源了 RecoNIC,以便能够对基于 RDMA 的应用程序和用例进行实验
晓兵
2024/05/04
2K0
RecoNIC 入门:SmartNIC 上支持 RDMA 的计算卸载-FPGA-智能网卡-AMD-Xilinx
【论文解读】基于MLIR生成矩阵乘法的高性能GPU代码,性能持平cuBLAS
本文是对 https://arxiv.org/abs/2108.13191 这篇论文进行解读,学习一下如何基于MLIR编译器基础设施生成高效的GPU代码。本文的阅读的先后顺序分别为:
BBuf
2022/04/06
2.7K0
【论文解读】基于MLIR生成矩阵乘法的高性能GPU代码,性能持平cuBLAS
AI芯片:高性能卷积计算中的数据复用
深度学习的发展过程中,较高的计算量是制约其应用的因素之一。卷积神经网络中,主要计算为三维的卷积计算(后简称为卷积),现有的主流处理器难以高性能,高效能的完成卷积计算。相比一般的通用计算,卷积计算中存在的大量数据复用以及计算的规则性,在硬件的微架构(后简称为架构)设计和计算优化上有很大的优化空间,由此诞生了众多针对深度学习加速的AI芯片。卷积计算过程可以表示如下
sea-wind
2019/09/11
2.4K0
AI芯片:高性能卷积计算中的数据复用
【资料学习】我到底拿什么说服老板采购Tesla V100!
本文仅献给需要做GPU超算方案和预算的科研前线的人 同类介绍Tesla V100的技术文章很多,我们只highlight关键几个知识点。 2017年5月GTC 2017大会上,英伟达发布了面向高性能计算的新一代Volta架构加速器,Tesla V100。Tesla V100加速器采用12nm FFN工艺,搭载新款图形处理器GV100,拥有5120 CUDA、640个Tensor内核,分PCle和SXM2两版,双精度浮点运算能力分别可达7 TFLOPS和7.8 TFLOPS,单精度则为14 TFLOPS和15
GPUS Lady
2018/04/02
1.2K0
【资料学习】我到底拿什么说服老板采购Tesla V100!
英伟达Volta架构深度解读:专为深度学习而生的Tensor Core到底是什么?
机器之心报道 编辑:CZ、Jenny Huang、李泽南、吴攀、蒋思源 当地时间 5 月 8-11 日,英伟达在加州圣何塞举行了 2017 年的 GPU 技术大会(GTC 2017)。机器之心作为本次大会的特邀媒体,也来到了现场,参阅《现场报道 | 英伟达 GTC 大会开幕,盘点首日三大亮点》。昨天,英伟达 CEO 黄仁勋在大会上正式发布了目前最先进的加速器 NVIDIA Tesla V100。之后,英伟达开发博客又更新了一篇深度解读文章,剖析了 Tesla V100 背后的新一代架构 Volta,其在提供
机器之心
2018/05/08
4.2K0
英伟达Volta架构深度解读:专为深度学习而生的Tensor Core到底是什么?
十大机器智能新型芯片:华为抢占一席,Google占比最多
当年,阿基米德爷爷说出“给我一个支点,我就能撬动地球”这句话时,估计没少遭受嘲讽。
AI科技大本营
2019/10/10
7420
十大机器智能新型芯片:华为抢占一席,Google占比最多
推荐阅读
相关推荐
矩阵乘法加速器的设计框架
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档