概述
设计方案
主要有两种设计方案。
RISCV核+ASIC
RISCV核是标准的基于RISCV指令集的CPU设计,ASIC部分通常是基于RISCV自带的向量扩展指令集构建的向量处理器,或是自定义的矩阵计算单元。
根据CPU+AI ASIC部件的接口可以分为紧耦合和松耦合的设计1。
CPU+AI AISC紧耦合设计
紧耦合设计最大的特征是软件对硬件透明,具体设计时以CPU主干为骨架,将AI计算单元集成在CPU内部,共享PC(程序计数器)、寄存器堆等流水线单元,仅在执行单元部分增加了矩阵或向量单元,适用于低功耗场景
将ASIC作为执行部件接入到Core流水线
将加速部件作为Core流水线的执行部件,通过自定义的指令来控制部件,这种方式有如下优势:
1)普通指令核自定义指令共享软件栈,软件设计更加简单
2)比较容易升级
3)逻辑设计比AISC IP设计与集成工作量更小
4)通过自定义的设计工具,该设计方案可以减少投入市场时间
玄铁C907 矩阵计算扩展
采用传统向量计算的AI增强技术带来的性能提升难以匹配高速发展的应用需求,这也使得各CPU厂商的研究目光从向量计算逐渐转向矩阵计算。相比于向量计算,矩阵计算能够达到更高的数据复用度,从而有效降低带宽需求,并且由于数据搬运等的减少在能效上也具备优势2。
2021年发布的玄铁C907是一款RISC-V架构低成本计算增强的多核处理器,采用9级部分双发顺序流水线架构,主要应用于视觉终端、人机交互、网通无线等领域。玄铁C907首次搭载了玄铁Matrix扩展,提供面向AI的浮点/整型矩阵计算能力。
C907 核内子系统主要包含:指令提取单元(IFU)、指令执行单元(IEU)、矢量浮点执行单元(VFPU)、矩阵执行单元(MPU)、存储载入单元(LSU)、虚拟内存管理单元(MMU)和物理内存保护单元(PMP)。
自定义的矩阵扩展指令集(MME,Matrix-Multiply Extension)
将矩阵加速部件集成到CPU流水线中,通过矩阵计算扩展指令执行。
玄铁MME设计过程中借鉴RISC-V矢量扩展指令集的设计思路及实现方式,在编程模型上支持算力的弹性可扩展,通过不同的硬件实现参数选择能够实现单指令矩阵乘法峰值算力从0.5Tops到32Tops的覆盖。
玄铁MME扩展了8个二维矩阵寄存器,推荐采用4个寄存器作为累加寄存器使用存储中间C结果,A/B操作数各占用2个矩阵寄存器,使得A/B操作数的数据复用度均为2以降低访存带宽需求。
矩阵加速部件的设计玄铁团队给出了两种实现方案(复用向量寄存器以及采用单独的矩阵寄存器)的对比:
Jiang Zhao@XUANTIE: Architectures for Matrix Extension in CPU
最终仍然采用了单独的矩阵寄存器方案,原因如下3:
- 独立的编程模型更符合市场的需求
- 独立的矩阵扩展对开发者更友好,开发者无需考虑寄存器复用带来的影响
- 分离的架构在硬件电路上更容易实现
- 独立的编程模型能够辅助芯片的热设计
玄铁SFU(Special Function Unit)向量扩展指令
该指令集针对神经网络中的激活函数等特殊函数(比如SIGMOID、TANH、SOFTMAX和GELU等)的计算作加速。
这些激活函数通常借助指数函数及相应多项式组合进行计算。早在1999年,Schraudolph[1]就提出了一种指数函数的快速近似计算方法,只需要通过一次乘法和一次加法运算便可以得到指数运算的结果,但是对于FP32数据来说,其精度只能精确到小数点后6位。目前常用的指数函数的近似计算方法,是利用泰勒展开进行计算,例如玄铁团队的csi-nn2计算库[2]和sleef计算库[3]均采用七阶泰勒展开的近似计算方式,其优势是可以得到较为精确的结果,但也存在计算较为复杂且延迟高的不足。Andes团队支持指数函数运算的硬件加速,采用七阶泰勒展开的计算方式,使用多个乘累加单元进行并行计算。尽管该硬件加速方案实现了较低的计算延迟,但是多个乘累加单元也显著增加了硬件资源的消耗4。
SFU的硬件架构
神经网络模型部署工具集(HHB,Heterogeneous Honey Badger tools collection)
包括编译优化、性能分析、过程调试、结果模拟等一系列部署时所需的工具,支持包括玄铁C907矩阵扩展引擎在内的玄铁CPU系列处理器。
PPA
矩阵计算扩展指令的加速
SFU扩展指令集的加速效果4
- 对于EXP函数运算,计算时间减少80%以上;
- 对于REC函数运算,计算时间减少60%以上;
- 对于TANH函数运算,计算时间减少90%以上;
- 对于SIGMOID函数运算,计算时间减少90%以上;
- 对于SOFTMAX函数运算,计算时间减少90%以上;
- 对于GELU函数运算,计算时间减少80%以上。
玄铁C906/908/910/920 向量计算扩展
C908架构图
2022年发布的玄铁C908是一款兼容RISC-V架构的64位高能效处理器,支持同构多核架构,支持多cluster,每个cluster支持1~4个C908核心,User模式支持RV64及RV32模式。采用9级双发按序流水线,典型工作频率>2GHz,通过指令融合技术进一步提升流水线效率,实现了卓越的能效比。兼容RVA22标准,同时兼容RISC-V最新Vector1.0标准以进一步提升AI算力。
如图为C908的架构图:
C920架构图
2021年发布的C920MP 是基于 RISC-V 指令架构的 64 位高性能多核心处理器,主要面向对性能要求严格的边缘计算领域,如边缘服务器、边缘计算卡、高端机器视觉、高端视频监控、自动驾驶、移动智能终端、5G 基站等。C920MP 采用同构多核架构,支持 1~4 个 C920 核心可配置。每个 C920 核心采用自主设计的微体系结构,并重点针对性能进行优化,引入 3 译码 8 执行的超标量架构和多通道的数据预取等高性能技术。
如图为C920微体系结构图:
C908核微架构参考:
XuanTie C908: High-performance RISC-V Processor Catered to AIoT Industry
官方网站C908
PPA
与C906性能对比:
XuanTie C908 Accelerates AI with Software and Hardware Fusion
CPU+AI AISC松耦合设计
松耦合最大的特征是AI计算单元外挂在CPU上,有自己独立的流水线、寄存器堆、缓存等。它是“协处理器”,可以接收来自一个或多个CPU的指令,异步地执行不同CPU提交过来的任务。协处理器扩展一般连接到主处理器的外设总线上,通过总线读写来控制加速运算,因此需要大量的软件工作,然而由于总线接入了各种设备,其工作频率较低,因此协处理器与内核的数据传输性能也会降低5。
和CPU直连的协处理器设计
在高性能场景,为了解决总线频率过低的问题,提高协处理器的工作效率,需要一个与内核直接交互的桥梁将扩展的协处理器与内核完美耦合,例如ROCC接口、EAI 接口等,这种直连的方式可以有效地提升性能。
玄铁C910 DSA
复旦大学韩军教授在2022 CNCC会议上发布了基于玄铁C910的DSA设计,玄铁团队以此构建了基于Xuantie C910的 DSA 接口。
韩军@XUANTIE: The First DSA Agile Development on Open Xuantie RISC-V processor
XuanTie DSA tool kit
辅助用户设计自定义指令集,以及是否满足设计的性能目标,工具将会负责指令编码,工具链和SDK,同时构建验证环境
XuanTie DSA design in RISC-V
通过轻量化协议接口连接
接口协议本身无需软件驱动,通过AXI、互连网络等连接,对AI加速部件的控制需要驱动适配。
奕斯伟 EIC7702X
2024年上半年流片成功,两个EIC7702 Die通过先进封装技术连在一起,每个DIE采用RISC-V核+NPU+GPU的计算架构。
- CPU采用SiFive P550
- NPU算力 40 TOPS@INT8,20TOPS@INT16, 20FLOPS@FP6
图片来源于2024年8月第四届滴水湖中国RISC-V产业论坛奕斯伟报告67:
官网产品手册
AI加速卡应用
PPA
玄铁 TH1520
曳影 1520 是一款低功耗、高性能、高安全、多模态感知和多媒体 AP 能力的边缘端 AI 处理器芯片8。搭载wujian 600 SoC平台,基于多核异构架构,集成 RISC-V 指令架构的四核 C910 和单核C906 处理器。通过C910的向量扩展和独立NPU实现神经网络的协同计算加速。
NN部署:How to Deploy a Neural Network on TH1520
NPU架构
- 4TOPS@INT8
- 支持 CNN,RNN,DNN 等,支持卷积、激活、单元操作(加法、乘法、最大值、最小值)、池化(最小值、最大值、平均值)、归一化、反卷积
- 无损权重数据压缩,最小化 DDR 带宽需求,降低功耗
- 支持混合量化,支持低精度位深度的权重和激活数据,可以独立分层控制,4~16 位
- 互操作性支持片上缓存,存储网络中间层数据,可与 GPU 芯片内交互数据,减小网络运行对 DDR 带宽需求,NPU 不用时,缓存可共享给其它核使用
基于RISCV轻量化Core集成的众核处理器
采用大量的轻量化RISCV核构建SIMD、MIMD,或者SIMT的设计。
Celerity
- 5个RISCV Rocket大core+16x31个RISCV Vanila-5小core+AI计算专用模块
- 小core集群采用mesh网络连接,Vanilla结构简洁易用,采用了RV32IM指令集,5级流水线,有序发射
专用计算模块则由专门用于AI计算的**二值神经网络(Binarized Neural Network,BNN)**核心组成。该BNN核心可直接支持13.4M大小的9层模型(包括一层定点卷积层,6层二值卷积层与2层全连接层)。专用级功能单一,却具有最高的能效9。
官方链接
Tenstorrent Grayskull
发布于2021年高性能的AI 加速器设计,基于RISCV架构的Tensix Core构建
- 120个Tensix Core
- 12nm
- 276 TOPS @FP8
- 368 TOPS@INT8
- 100 GB/s LPDDR4
- Gen4x16
芯片架构
120个Tensix Core通过2D torus互连,四个Synopsys ARC CPU来管理这120个小核的工作10。
PPA
Tenstorrent Wormhole
发布于2022年可扩展的基于网络互连的AI处理器
- 80 Tensix+ Cores
- 12nm
- 328 TFLOPS@FP8
- 336 GB/s GDDR6
- Gen4x16
- 16x100 Gbps Ethernet
Tenstorrent Blackhole
发布于2023年的异构的专用的AI计算机
- 140 Tensix++ Cores
- 6nm
- 745 TFLOPS@FP8
- 512 GB/s GDDR6
- Gen5x16
- 10x400 Gbps Ethernet
- 16 RISC-V CPU cores
芯片架构
总共752个Baby RISCV小核,16个RISCV大核
Tensix核架构
包含5个Baby RISCV核,每个都兼容32bit RISCV指令集。
5个核负责的功能如下:
compute部件包括Tile Math计算引擎和Vector Math计算引擎
Baby RISCV核架构
RISCV大核架构
每个核64 位、双发射、顺序执行,这些核排列在四个集群中。
这些Big RISC-V CPU内核足够强大,可以用作运行 Linux 的设备端主机,负责小核内存管理、片外通信和数据处理
Tesla D1
D1 芯片是数据中心级别用于AI训练的产品。
每个Dojo核心是带有向量计算/矩阵计算能力的处理器,具有完整的取指、译码、执行部件。Dojo核心具有类似CPU的 风格,似乎比GPU更能适应不同的算法和分支代码。D1的指令集类似于 RISC-V,处理器运行在2GHz,具有4组8x8矩阵乘法计算单元。同时具有一组自定义向量指令,专注于加速AI计算11。
D1架构
- 由台积电制造,采用7纳米制造工艺,拥有500亿个晶体管,芯片面积为645mm²
- 每个D1处理器由 18 x 20 的Dojo核心拼接构成
- 362 TFLOPS
Dojo架构
SIMD主要负责激活等特殊功能计算和数据的累加。
矩阵计算单元是Dojo的主要算力原件,负责二维矩阵计算,进而实现卷积、Transformer等计算。
矩阵计算单元
PPA
Dojo的PPA如下图所示:
清华“乘影”GPGPU
- 硬件、模拟器均已开源
- 每个SM可视为一个支持多warp调度的RISC-V向量处理器
- 每个warp可视为一段RVV程序,经由取指、译码、发射,执行后写回寄存器
- 支持多线程束调度的向量处理器, 计算任务的启动、分配、执行
官网
Github链接
参考文献
第四届滴水湖中国RISC-V产业论坛谢涛“万物智联时代RISC-V+AI之路”报告 ↩︎
XUANTIE:玄铁矩阵扩展 提升核心算力加速AI计算 ↩︎
Qiu Jing@XuanTie: Matrix Multiply Extension Instructions ↩︎
XUANTIE:玄铁SFU向量扩展指令 加速AI计算的新路径 ↩︎ ↩︎
XUANTIE: 玄铁协处理器接口方案 实现高效协同计算的桥梁 ↩︎
奕斯伟:高性能AI芯片EIC7702X已成功流片,亮相第四届滴水湖中国RISC-V产业论坛 ↩︎
B站:第四届滴水湖中国RISC-V产业论坛——奕斯伟计算路向峰演讲 ↩︎
XUANTIE: TH1520技术手册 ↩︎
陈巍@CSDN:RISC-V AI芯片Celerity史上最详细解读(上)(附开源地址) ↩︎
陈宇飞@知乎:新AI芯片介绍(3):tenstorrent ↩︎
陈巍@知乎:特斯拉Dojo芯片架构全面分析(超越GPGPU?) ↩︎