RISC-V GPU如何真正落地到产品上

电子说

1.2w人已加入

描述

电子发烧友网报道(文/周凯扬)今年开年以来,相信大家已经接受了一波各种国产GPU新品的消息轰炸了,尤其是GPGPU(通用图形处理单元),比如天数智芯的天垓、壁仞科技的BR100系列等等,这也意味着在通用计算上,国内GPU的硬件生态终于走上了快车道。

然而去年9月份,RISC-V向量扩展(RVV)1.0的正式推出让RISC-V开始在通用计算和AI领域有了更大发挥空间,比如GCC和LLVM这两大著名编译器都已经支持RVV汇编等。RISC-V的GPU也开始因此冒头,甚至不少都是开源的,比如去年的Vortex等。

清华“承影”GPU今年的RISC-V中国峰会上,清华大学集成电路学院何虎副教授团队发布了采用Chisel语言基于RISC-V 的开源GPGPU实现方案,名为“承影”(Ventus),同时还给出了映射方案、指令集和微架构的实现。

作为开始崭露头角的敏捷硬件设计语言,Chisel在RISC-V处理器的设计中变得愈发常见,另一开源RISC-V处理器,中科院的香山同样采用了这一语言。这是因为其开发效率高过传统的Verilog,承影开发团队表示,利用Chisel高效参数化的特点可以生成不同规模的硬件单元,且应用无需更改代码仍能运行。

承影选择了将RISC-V向量扩展与SIMT架构结合的方式,RISC-V向量扩展可以适应不同规模而硬件,而无需进行重新编译。而单指令多线程的SIMT作为当下几乎所有GPU都选择的架构,在编程灵活性上要更高一些。

 

承影开发团队的设想是,让RVV GPGPU与RISC-V CPU充分结合,完成统一ISA下的SoC系统,能让编译器在任务划分和协同上探索更多可能。与此同时,他们也想借助开源RISC-V、开源硬件来打造自主可控的SoC系统。

承影已经在Xilinx VCU128 FPGA上完成了验证,他们开发了AXI驱动程序,并用MicroBlaze作为Host进行任务发射,用PL搭建“承影”GPGPU进行计算,通过DDR共享内存。按照4 warp 8 thread的配置可部署160个核心,核心频率为100MHz,理论峰值算力为32Gflops,可同时驻留1280个线程。承影开发团队预计中芯国际40nm工艺下,频率至少也能做到350MHz。

承影GPU不仅本身开源,也同样受益于开源。在承影的Github界面可以看到,其CTA调度器是基于另一大开源GPU项目,MIAOW的超线程调度器,L2缓存设计和香山处理器一样,参考了SiFive的Block InclusiveCache,乘法器和FPU也参考启发自香山的设计。这也就是RISC-V的开源魅力,在设计过程中不仅可以汲取来自其他ISA过去的设计经验,也能让整个开源社区参与到后续的开发完善工作中来。

根据承影开发团队的介绍,他们的后续工作包括工具链的开发,比如调试和UVM验证工具、RVV自动向量化工具,至于CUDA支持,他们打算走CUDA-LLVM-RVV这条路线。后续他们也计划引入一些架构上的改进,比如借鉴向量处理器的思路,以及现有GPGPU的架构。内存方面会考虑RVWMO与GPGPU的结合。他们也考虑加入图形功能,Tensor core以及transformer等单元。当然了,以上所说到的工作量都不少,还是需要开源社区的积极参与才能完成。

对RISC-V GPGPU未来的展望尽管GPGPU作为通用计算的一种硬件形式,目前已经在AI、HPC中开始普及,但要说GPU的各种角色定位中,效率最高、计算量最大、内存占用最多的应用之一还是图形渲染。鉴于目前图形渲染技术壁垒其实更高,RISC-V在这块还有很长的一段路要走。

天数智芯产品副总裁邹翾也在会上指出,当下AI与图形在云端融合已经成为必然的趋势,非GPU的架构很难响应两者在云端融合的挑战,而通用GPU不是像英伟达一样已经具备图形功能,就是可以追加图形功能。

具体实现方式也各有不同,就拿佐治亚理工学院的开源RISC-V GPGPU Vortex为例,今年的Hot Chips 34上,他们就展示了如何将GPGPU上的一部分图形硬件区块在软件上实现,从而节省处理器面积。虽然他们在各种3D Demo上验证出的平均帧数只有10fps左右,但对于在Intel Arria 10 FPGA上实现的一个8核128线程的GPGPU来说,已经是不错的成绩了。

至于软件生态支持,建立一个像CUDA一样流行的生态目前看来明显不现实,所以相关的移植工作依然被列为重心,比如上面提到的Vortex,就在开展相关的移植工作,将CUDA转换成OpenCL。除了他们以外,还有不少公司也在开展相关的工作,比如被英特尔收购的Codeplal,就在为RISC-V处理器开发对OpenCL与SYCL的支持,而他们也在开展CUDA移植SYCL相关开发工作。

赛昉科技也基于LLVM开发了RISC-V GPGPU编译器,实现了CUDA程序到RISC-V GPGPU指令的生成,他们还开发了相应的runtime库,实现了设备管理、内核下发、数据传输等一系列功能。赛昉科技算法高级经理夏品正在本届RISC-V中国峰会上表示,基于这一套编译器和runtime,一部分CUDA工程已经可以运行在RISC-V GPGPU上,并能通过功能测试。

 

RISC-V GPU真正落地到产品上的还是太少了,就拿本届中国峰会上发布的赛昉科技VisionFive 2单板计算机来说,相较于上一代昉·星光来说虽然增加了GPU,但依然还是用的Imagination的方案,同样的还有RIOS Lab的PicoRio、YADRO的EL Construct T等。这样的异构设计并没有问题,可RISC-V还在GPU上的投入还是不够,要想绕过巨头们积累的GPU专利,离真正打造一个完全基于该架构下的SoC产品还有一定的距离。  

      审核编辑:彭静
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分