AI芯片这几年火得一塌糊涂,但真到了RTL里手撕代码的时候,很多人才发现——纸上谈兵和流片落地之间,隔着十万八千里。今天这篇不聊虚的,直接把景芯HD6850项目里RISC-V AI处理器的实战经验,结合一个国内开源GPGPU项目的硬核架构细节,掰开揉碎讲清楚。

景芯SoC RISC-V AI处理器实战:
做AI芯片,第一个灵魂拷问就是:选ASIC还是选通用架构?
Google TPU的脉动阵列确实漂亮,矩阵乘法一拍一个周期,但算法一变,硬件就得跟着改。FPGA灵活性够,可能效比又打不过定制电路。NPU在手机上风生水起,到了云端训练场景,带宽和算力又成了瓶颈。
GPU之所以能在AI训练里一统江湖,根本原因在于它的SIMT(单指令多线程)模型和神经网络的数据并行特性天然合拍。一个卷积层的前向传播,几千个线程同时去算不同的特征图位置,这种并行度,CPU根本望尘莫及。

不过传统GPU的痛点也很明显——闭源指令集、专利壁垒、CUDA生态护城河。这也是为什么国内这几年在RISC-V路线上押注GPGPU的原因:既然绕不开,那就从根上换一条赛道。
这个项目由清华大学集成电路学院团队主导,采用Chisel HDL开发,核心思路是把RISC-V向量扩展(RVV)和GPU经典的SIMT架构拧成一股绳。它不是简单地在RISC-V旁边挂一个GPU核,而是直接用RVV指令来描述GPU线程的行为,让硬件上一个Warp就是一个RVV程序。
整个GPU作为一个Compute Device,顶层是CTA Scheduler负责任务分发。SM(Streaming Multiprocessor)对应OpenCL里的Compute Unit(CU),SM内部的多个执行单元则对应PE(Processing Element)。
任务调度完全遵循OpenCL规范:NDRange拆成Workgroup,Workgroup再拆成Warp。同一个Workgroup的Warp必须在同一个SM上跑,但一个SM可以同时容纳来自不同Workgroup甚至不同Grid的Warp——资源利用率就是这么榨出来的。

每个SM的前端包含Warp Scheduler、指令缓存、译码单元、指令缓冲(Ibuffer)和发射单元。后端Datapath则挂了一堆执行单元:SIMT-stack、sALU、vALU、vFPU、SFU、CSR、LSU,以及专门加速矩阵运算的Tensor Core。
记分板(Scoreboard)机制每个Warp独立一份。指令发射后,目标寄存器被标记锁定,后续有数据依赖的指令必须等着。分支、线程分歧、跳转、Barrier这些指令也会被锁住,直到流水线清空或者同步完成才释放。
写回阶段各个执行单元输出级都有FIFO,由Arbiter仲裁后写回寄存器。标量寄存器和向量寄存器走完全独立的数据通路,避免互相堵死。
寄存器这块的设计很巧妙。架构层面,每个Warp有64个标量寄存器(sGPR)和256个向量寄存器(vGPR),都是32bit宽。但物理层面,sGPR有256个,vGPR有1024个——硬件负责做架构寄存器到物理寄存器的动态映射。
编译器只需要告诉硬件实际用了多少个GPR(按4对齐),硬件就能根据剩余物理寄存器资源,尽可能多地塞Workgroup进去调度。这种设计在面积和利用率之间取得了不错的平衡。
| 寄存器类型 | 架构数量 | 物理数量 | 宽度 | 归属 |
|---|---|---|---|---|
| sGPR(标量) | 64 | 256 | 32bit | Warp共享 |
| vGPR(向量) | 256 | 1024 | 32bit × num_thread | Thread私有 |
| x0 | 零寄存器 | |||
| x1 | ra 返回PC | |||
| x2 (sp) | 栈指针,指向localmem基址 | |||
| x4 (tp) | 私有内存基址 |
向量寄存器的宽度从RVV视角看,vlen固定为num_thread × 32bit。硬件上相当于vsetvli指令的SEW=32bit、ma、ta、LMUL=1。从SIMT编程视角看,每个Thread最多拥有256个32bit宽的vGPR,而整个Workgroup共享64个sGPR。
地址空间采用32位设计,所有SM共享4GB全局地址空间。0-128KB映射到各SM内部的Shared Memory(Local Memory),global_baseaddr到4GB映射到DDR。目前还没做MMU,物理地址直接裸奔。
一致性(Coherence)完全交给程序员通过同步指令显式维护,硬件只提供flush和invalidate功能。连贯性(Consistency)方面,RVWMO内存模型下,常规读写操作对不同地址的保序行为如下:
| 操作顺序 | 相同地址 | 不同地址 |
|---|---|---|
| 读-读 (R-R) | 保序 | 保序 |
| 写-写 (W-W) | 保序 | 不保序 |
| 写-读 (W-R) | 保序 | 不保序 |
| 读-写 (R-W) | 保序 | 保序 |
L1指令缓存和L1数据缓存都是2路组相联,缓存行大小等于blocksize(通常等于num_thread)。数据缓存采用VIVT(虚拟索引虚拟标记),写策略为写回+写不分配。替换策略支持LRU和FIFO。L1-L2之间每次数据读写最大宽度为一个缓存行,最多同时存在128个未完成L2访问请求,支持相同缓存行请求合并(最大合并数8)。
后端执行单元的分工非常清晰:
sALU标量ALU,处理Warp间共享数据和跳转控制。
vALU向量ALU,整型运算核心,每个周期完成一次请求。
vFPU向量浮点单元,单精度浮点运算主力。
MUL乘法器,32bit乘法2个周期。
SFU特殊功能单元,处理超越函数等复杂操作。
LSU加载存储单元,访存指令的执行入口。
Tensor Core张量计算单元,矩阵乘法加速。
SIMT-stack专门处理线程分歧(Divergence),这是SIMT架构的标志性模块。当Warp内线程走不同分支时,硬件把分支信息压栈,逐个执行后再汇合,保证执行正确性。

项目在Xilinx VCU128 FPGA上完成了验证,配置为4 Warp 8 Thread,部署了160个核心,核心频率100MHz,理论峰值算力32GFlops。团队预估在中芯国际40nm工艺下,频率至少能跑到350MHz。
软件栈方面,基于pocl(POrtable Computing Language)实现了OpenCL驱动,管理Command Queue、Buffer分配、任务同步。LLVM编译器后端已经支持32位指令集,PLCT实验室正在推进64位扩展。
回到景芯HD6850项目,RISC-V AI处理器作为整个SoC的一个子系统,挂在NOC(片上网络)上,通过AXI总线和其他模块通信。CPU侧负责调度,AI Core负责算力,DMA负责数据搬运,三者协同才能把效率跑满。
SoC整体架构上,左侧是橙色子系统(包含Cortex-M3、PMU、UART等外设),中间是黄色子系统(多媒体相关),右侧是蓝色CPU子系统(Cortex-A7×2 + Neon + FPU)和绿色RISC-V AI Core。所有子系统通过NOC互联,下方接LPDDR4、PSRAM、共享SRAM以及APB外设簇。
在实际的RTL实现中,Pipeline被划分为Decode、OPC(Operand Collect)、Issue、Execution、Writeback五个阶段。Warp Scheduler从指令缓存取指,经过译码后送入Ibuffer,Operand Collector收集好操作数再发射到各个执行单元。

验证阶段我们搭了Simulation环境,开发了专门的AI testcase,覆盖矩阵乘法、卷积、激活函数等典型算子。FPGA原型验证选的是Xilinx系列,把RTL Porting上去后做性能功耗Profiling,确保硬件行为和仿真一致。
01
RISC-V AI处理器设计实战
景芯团队专家老师1v1辅导学员,让您快速超越同龄人!景芯训练营主打文档+服务器实战,我们不卖视频,只提供免费导学视频!我们选取景芯HD6850项目中的RISC-V AI处理器进行实战。希望您成为公司的中流砥柱后,给景芯团队介绍design servie业务(有提成),共同进步!
02
RISC-V AI处理器介绍
第一部分:AI处理器架构
1.1 AI计算芯片发展历程
从通用CPU到专用AI芯片的演进
不同AI工作负载对芯片架构的需求
云端与边缘AI处理器的差异
1.2 主流AI处理器架构对比
1.2.1 专用AI加速器(ASIC)
Google TPU架构深度解析
脉动阵列计算模式优势与局限
固定功能单元与可编程性平衡
1.2.2 可重构AI处理器(FPGA)
硬件可编程性在AI中的应用
动态重配置适应算法演进
能效与灵活性的折中设计
1.2.3 神经处理单元(NPU)
移动端AI加速器设计理念
功耗约束下的架构优化
端侧模型压缩与硬件协同
1.2.4 图形处理器(GPU)
从向量处理器到现代GPGPU的架构发展
GPU和GPGPU架构对比
GPGPU在AI和高性能计算中的应用场景
GPU同其他AI架构的对比及优势
1.2.5 图形处理器(GPU)架构选择
为什么选择GPGPU作为AI处理器基础
通用并行计算与AI工作负载的契合度
软件生态与开发生态优势
第二部分:GPGPU架构作为AI处理器的优势
2.1 AI工作负载特性与GPGPU架构匹配度
矩阵运算的并行化本质
神经网络层间的数据流并行性
训练与推理的差异化架构需求
2.2 景芯定制化GPGPU核心架构解析
整体硬件架构框图与组件交互
流多处理器(SM)集群组织方式
多层次存储体系结构深度分析
2.3 景芯定制化GPGPU特性
灵活的架构switch机制,可配置为NPU
混合精度计算硬件支持
张量核心专用运算单元
稀疏计算加速机制
第三部分:AI处理器微架构深度设计
3.1 并行计算架构优化
3.1.1 多层次并行度利用
数据并行与模型并行协同
指令级并行(ILP)优化技术
线程级并行(TLP)调度策略
3.1.2 AI专用执行单元设计
矩阵乘法单元优化实现
卷积计算专用数据通路
激活函数硬件加速
3.2 存储子系统AI优化
3.2.1 数据流优化架构
权重数据重用模式优化
特征图数据局部性利用
梯度计算存储访问模式
3.2.2 片上存储层次定制
共享内存AI工作负载优化
缓存替换算法AI特性适配
模型参数片上缓存策略
第四部分:AI专用指令集与编程模型
4.1 AI专用指令集扩展
张量运算指令设计
稀疏计算指令支持
量化运算指令实现
第五部分:芯片实现与验证
5.1 AI处理器RTL实现深度解析
5.1.1 AI处理器RTL架构介绍
AI处理器RTL pipeline架构框图
5.1.2 关键AI计算模块1
Scheduler 模块
warp调度 寄存器堆 取指 译码 指令缓冲 发送、记分板 写回 L1 Cache L2 Cache
5.1.2 关键AI计算模块2
ALU
vALU
vFPU
MUL
LSU
CSR
SFU
warp控制
Tensors core
5.2 AI处理器专用验证方法
5.2.1 Simulation 仿真验证
仿真验证环境搭建
AI testcase开发
AI 性能精度体系验证
5.2.2 FPGA原型验证
FPGA选型
AI处理器RTL Porting
FPGA 仿真验证
性能功耗 profiling
Part.03
课程报名微信,扫描咨询我们吧

景芯SoC芯片全流程实战附属【知识星球】,一个包括设计、验证、DFT、后端全流程技术的交流平台,也是景芯学员的答疑平台!若您和我一样渴求技术,那欢迎扫下面二维码加入星球,共同进步!
用RISC-V RVV做GPGPU,这条路能不能走通?从目前的开源实现来看,答案是肯定的。它不是在挑战NVIDIA的旗舰卡,而是在证明一件事:通用并行计算的指令集底座,完全可以是开放的、可定制的、自主可控的。
对于做SoC的工程师来说,这种开源GPGPU最大的价值在于——你可以直接拿到RTL,根据自家场景裁剪SM数量、调整缓存大小、甚至魔改执行单元。不像买商用IP,黑盒一块,想优化都没门。
景芯训练营的实战项目,就是把这套东西从论文和GitHub上,搬到了可综合的代码里。想亲手摸一摸这些模块的,欢迎来聊。


夜雨聆风