开源GPU基于RISC-V

一群发烧友正在提议一套专门用于3D图形和媒体处理的图形指令。这些新指令基于RISC-V基本向量指令集。他们将根据核心RISC-V指令集体系结构(ISA)的精神,增加对特定于图形的新数据类型的支持,这些图形作为分层扩展。支持向量,先验数学,像素和纹理以及Z / Frame缓冲区操作。它可以是融合的CPU-GPU ISA。该组织将其称为RV64X,因为指令的长度为64位(32位不足以支持强大的ISA)。

为什么现在?

世界上有很多GPU可供选择,为什么呢?该小组表示,因为商用GPU在满足非常规需求(例如双相)方面的效率较低 3D截锥体,适用的HPC(任意位深度FFT),硬件SLAM。他们认为协作可提供灵活的标准,减少原本需要的10至20个人年的工作量,并将有助于交叉验证以避免错误。

该团队表示,他们的动力和目标是由创建具有自定义可编程性和可扩展性的,面积小巧的小型设计的愿望驱动的。它应该提供低成本的IP所有权和开发,并且不能与商业产品竞争。它可以在FPGA和ASIC目标中实现,并且将是免费和开源的。初始设计将针对低功耗微控制器。它将与Khronos Vulkan兼容,并且随着时间的推移将支持其他API(OpenGL,DirectX等)。

最终的硬件将是带有GPU功能单元的RISC-V内核。对程序员而言,它看起来像是一块带有标为标量指令的64位长指令的硬件。编程模型是表面上的SIMD,即编译器从带前缀的标量操作码生成SIMD。它将包括可变问题,谓词SIMD后端,向量前端,精确异常,分支阴影和 很多 更多的。该团队说,不需要使用RPC / IPC调用机制将3D API调用发送到未使用的CPU内存空间/从未使用的CPU内存空间发送到GPU内存空间,反之亦然。它将以16位固定点(FPGA的理想选择)和32位浮点(ASIC或FPGA)的形式提供。

该设计将采用Vblock格式(来自 Libre GPU effort):

  • 这有点像VLIW(不是真的)
  • 指令块之前带有寄存器标记,这些标记为该块内的标量指令提供了额外的上下文
  • 子块包括:向量长度, izz,向量/宽度覆盖和谓词。
  • 所有这些都添加到标量操作码中
  • 没有向量操作码(也不需要任何操作码)
  • 在向量上下文中,它是这样的:如果标量操作码使用寄存器,并且该寄存器在向量上下文中列出,则将激活向量模式
  • 激活会导致硬件级别的for循环发出多个连续的标量运算(而不只是一个)。
  • 实现者可以自由地以他们想要的任何方式来实现循环:SIMD,多问题,单执行。

该设计将使用标量(8位,16位,24位和32位固定和浮点数)以及先验变量(sincos,atan,pow,exp,log,rcp,rsq,sqrt等)。向量(RV32-V)将支持2-4个元素(8位,16位或32位/元素)向量操作,以及针对点,像素,纹素(通常是特殊向量)的通用3D图形渲染管线的专用指令)

  • XYZW点(64位和128位固定和浮动)
  • RGBA像素(8位,16位,24位和32位像素)
  • UVW纹理像素(每个组件8位,16位)
  • 灯光和材料(Ia,ka,Id,kd,Is,ks等)

矩阵将作为本机数据类型支持2×2、3×3和4×4矩阵以及支持属性矢量的存储结构,并且将基本上以4×4矩阵表示。

融合的CPU-GPU ISA的优点包括能够以微代码实现标准图形管线,为自定义着色器提供支持并实现光线跟踪扩展。它还支持带有用于AI和机器学习的8位整数数据类型的数值模拟矢量。

可以实现自定义光栅化器,例如样条线,SubDiv曲面和面片。

该设计将足够灵活,可以实现自定义管线阶段,自定义几何/像素/帧缓冲阶段,自定义 镶嵌器 和自定义实例化操作。


RV64X框图

RV64X参考实现将包括:

  • 指令/数据SRAM缓存(32KB)
  • 微码SRAM(8KB)
  • 双重功能指令解码器
    • 硬接线实现RV32V和X
    • 用于自定义ISA的微码指令解码器
  • 四向量ALU(32位/ ALU-固定/浮动)
  • 136位寄存器文件(1K个元素)
  • 特殊功能单元
  • 纹理单位
  • 可配置的本地帧缓冲区

该设计旨在实现可扩展性,如下所示。


RV64X的可扩展设计

RV64X设计具有几个新颖的想法,包括融合的统一CPU-GPU ISA,用于自定义数据类型的可配置寄存器,以及用于应用程序定义的自定义硬件扩展的基于用户定义的SRAM的微代码,用于:

  • 自定义光栅化器阶段
  • 光线追踪
  • 机器学习
  • 计算机视觉

相同的设计既可以用作独立的图形微控制器,也可以用作可扩展的着色器单元,并且数据格式支持FPGA本地或ASIC实现。

为什么需要开放图形?

开发人员认为,大多数图形处理器都可以覆盖高端产品,例如游戏,高频交易,计算机视觉和机器学习。他们认为,生态系统缺乏可扩展的图形核心,无法用于亭,广告牌,赌场游戏,玩具,机器人技术,电器,可穿戴设备,工业人机界面,信息娱乐和汽车仪表盘等主流应用。同时,必须使用特殊的编程语言来为OpenGL,Op​​enCL,CUDA,DirectCompute和DirectX编程GPU内核。

RISC-V的图形扩展将解决可伸缩性和多语言负担,从而实现更高级别的用例创新。

下一步

这是一个非常早期的规范,尚在开发中,并且会根据利益相关者和行业的投入而有所变化。该小组将建立一个讨论论坛。近期目标是使用指令集模拟器构建示例实现,使用开源IP和被设计为开源项目的自定义IP的FPGA实现。正在设计演示和基准。有兴趣参加的开发人员应与Atif Zafar签约。

对于Libre-RISC 3D GPU,该组织的目标是设计一个混合CPU,VPU和GPU。正如广泛报道的那样,它不是“专用的独家GPU”。存在用于创建独立GPU产品的选项。他们的主要目标是设计一个完整的多合一处理器SoC,该处理器恰好包含Libre许可的VPU和GPU。

我们怎么看?

GPU供应商的数量正在增加。我们现在有十几个。

苹果 Libre-RISC-V 3D GPU 高通
AMD公司 英伟达 RISC-V图形
手臂 英特尔 Think-Silicon
DMP 京嘉微 验证
想象技术  

未列为自由,灵活的小型GPU的潜在用户的应用程序包括加密货币和挖掘。

如果RISC-V社区的目标是仿效Arm和Imagination等IP供应商,那么我们可以期望看到DSP,ISP和DP设计。至少有一个 开放式DSP 提议;也许可以将其带入RISC-V社区。

至少需要两年时间才能出现任何硬件实施方案。 Xilinx是采用这种设计的最合乎逻辑的候选人之一,该公司现在在其Zynq设计中使用Arm的Mali。我们也希望看到中国有几种实现方案。

>>本文最初发布在我们的姊妹网站上, 电子工程 时报.


乔恩·佩迪图形行业的先驱,乔恩·佩迪(Jon Peddie Research)总裁。

要获得更多嵌入式产品, 订阅嵌入式’的每周电子邮件通讯.

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.