“RISCV+AI”

概述

设计方案

主要有两种设计方案。

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

  1. 独立的编程模型更符合市场的需求
  2. 独立的矩阵扩展对开发者更友好,开发者无需考虑寄存器复用带来的影响
  3. 分离的架构在硬件电路上更容易实现
  4. 独立的编程模型能够辅助芯片的热设计
玄铁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链接

参考文献


  1. 第四届滴水湖中国RISC-V产业论坛谢涛“万物智联时代RISC-V+AI之路”报告 ↩︎

  2. XUANTIE:玄铁矩阵扩展 提升核心算力加速AI计算 ↩︎

  3. Qiu Jing@XuanTie: Matrix Multiply Extension Instructions ↩︎

  4. XUANTIE:玄铁SFU向量扩展指令 加速AI计算的新路径 ↩︎ ↩︎

  5. XUANTIE: 玄铁协处理器接口方案 实现高效协同计算的桥梁 ↩︎

  6. 奕斯伟:高性能AI芯片EIC7702X已成功流片,亮相第四届滴水湖中国RISC-V产业论坛 ↩︎

  7. B站:第四届滴水湖中国RISC-V产业论坛——奕斯伟计算路向峰演讲 ↩︎

  8. XUANTIE: TH1520技术手册 ↩︎

  9. 陈巍@CSDN:RISC-V AI芯片Celerity史上最详细解读(上)(附开源地址) ↩︎

  10. 陈宇飞@知乎:新AI芯片介绍(3):tenstorrent ↩︎

  11. 陈巍@知乎:特斯拉Dojo芯片架构全面分析(超越GPGPU?) ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/878822.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于python+django+vue的学生管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

【Python笔记】PyCharm大模型项目环境配置

一、PyCharm创建新项目 二、更新pip版本 ...>python.exe -m pip install --upgrade pip 三、生成所需requirements配置文件 ...>pip freeze > requirements.txt 四、安装所需组件requirements.txt ...>pip install -r requirements.txt

【Kubernetes】linux centos安装部署Kubernetes集群

【Kubernetes】centos安装Kubernetes集群 1、环境准备 系统centos7 配置yum源参考文章 Centos系统换yum源 yum -y update 步骤1-3是所有主机都要配置,主机名和hosts配置完后可以使用工具命令同步 1.1 主机 一主二从 主机名ipk8smaster192.168.59.148k8snode11…

Node.js 安装及项目实践

node.js安装 node安装,选择版本 一直next,或者自己修改路径,添加两个包 选择自己的安装的node的路径,cmd或者winr cmd 显示node与npm的版本号 node -vnpm -v可以跟着这个博客将node安装 2024最新版Node.js下载安装及环境配…

ZW3D二次开发_UI_非模板表单_设置表单显示位置

1.ZW3D弹出非模板表单时可以设置弹出位置(居中、左下角、右上角等) 2.假设已创建好非模板表单 3.在Form属性中添加form_pos属性 4.输入值 base,CTR,0.0 ,如下图 也可以设置为其他值显示在不同的位置,如下 5.重新编译,…

新升级|优化航拍/倾斜模型好消息,支持处理多套贴图模型!

【天元轻量化软件】一直在不断地追求进步和完善,以满足更多用户的各种需求。 电脑登录天元官网免费体验:天元轻量化软件官网 本次我们对“智能PBR”功能进行了更新。更新后的“智能PBR”支持带多套贴图的模型进行使用。 本轮更新后,主要受益…

防火墙--NAT技术,基于源NAT,NAT服务器,双向NAT

文章目录 防火墙--NAT技术一、基于源NAT**方式**:NAT No-PATNAPT出接口地址方式Smart NAT三元组 NAT 二、基于服务器的NAT多出口场景下的NAT Server 三、双向NAT 防火墙–NAT技术 基于源NAT:用于将内部网络的私有IP地址转换为公共IP地址,以便…

51单片机应用开发---数码管的控制应用

实现目标 1、掌握数码管结构、驱动原理及应用; 2、掌握数码管段码表推导; 3、会编程让开发板8个数码管动态显示。 一、什么是数码管? 1.数码管定义 数码管,也称为LED数码管,基本单元是发光二极管(LED)。分为七段数…

【机器学习】--- 自监督学习

1. 引言 机器学习近年来的发展迅猛,许多领域都在不断产生新的突破。在监督学习和无监督学习之外,自监督学习(Self-Supervised Learning, SSL)作为一种新兴的学习范式,逐渐成为机器学习研究的热门话题之一。自监督学习…

某思CMS V10存在SQL注入漏洞

Fofa: product"魅思-视频管理系统" 框架:ThinkPHP 5,6 1 漏洞分析&复现 位于 /controller/Api.php 控制器中的getOrderStatus 方法POST传入,然后直接拼接了 orderSn 变量到 where 查询中,导致漏洞产生. /** * 查询订单支付状态 */ pub…

服务器——装新的CUDA版本的方法

服务器——装新的CUDA版本 一、进入 CUDA 版本列表二、根据自己服务器,选择对应的版本和配置三、使用管理员用户,运行下载和安装命令四、查看显卡驱动是否安装4.1 若安装了显卡驱动4.2 若显卡驱动没安装 参考文章 一、进入 CUDA 版本列表 CUDA Toolkit …

sqlgun靶场攻略

步骤一:打开页面 步骤二:测试回显点 -1union select 1,2,3# 步骤三:查看数据库名 -1union select 1,2,database()# 步骤四:查看表名 -1union select 1,2,group_concat(table_name) from information_schema.tables where table…

Double Write

优质博文:IT-BLOG-CN 一、存在的问题 为什么需要Double Write: InnoDB的PageSize是16kb,其数据校验也是针对这16KB来计算的,将数据写入磁盘是以Page为单位的进行操作的。而计算机硬件和操作系统,写文件是以4KB作为基…

ASR(自动语音识别)识别文本效果的打分总结

ASR(自动语音识别)识别文本效果的打分总结 1. 词错误率(WER, Word Error Rate)2. 字正确率(W.Corr, Word Correct)3. 编辑距离(Edit Distance)4. 特定错误率5. 句子错误率(SER, Sentence Error Rate)6. 基于模型的评估方法对于ASR(自动语音识别)识别文本效果的打分…

SHT30温湿度传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 3.工作原理 三、程序设计 main.c文件 sht30.h文件 sht30.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 SHT30是一种常见的温湿度传感器,是一款完全校准的线性化的温湿度数字传感器&#xff0…

C++初阶:STL详解(三)——vector的介绍和使用

✨✨小新课堂开课了,欢迎欢迎~✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C:由浅入深篇 小新的主页:编程版小新-CSDN博客 前言: 前面我们刚刚了解了strin…

Jetpack Compose Side Effects in Details 副作用的详细信息

What is Side Effect’s? 副作用是什么? Side Effects is a change in the state of the application that occurs outside the scope of the composable function and is not related to the UI. In non-UI related state changes, our screen may recompose mor…

【C语言零基础入门篇 - 6】:数组、字符和字符串带你探索无限可能

文章目录 数组一维数组一维数组的定义一维数组的初始化 字符数组二维数组二维数组存汉字 字符串相关函数小结 数组 特点: 在同一个数组中,所有元素都是同一个类型。可以是int、char、float、double等类型。数组是一种构造类型,是一批数据的…

PCIe进阶之TL:Completion Rules TLP Prefix Rules

1 Completion Rules & TLP Prefix Rules 1.1 Completion Rules 所有的 Read、Non-Posted Write 和 AtomicOp Request 都需要返回一个 Completion。Completion 有两种类型:一种带数据负载的,一种不带数据负载的。以下各节定义了 Completion header 中每个字段的规则。 C…

腾讯百度阿里华为常见算法面试题TOP100(3):链表、栈、特殊技巧

之前总结过字节跳动TOP50算法面试题: 字节跳动常见算法面试题top50整理_沉迷单车的追风少年-CSDN博客_字节算法面试题 链表 160.相交链表