VeriGPU 项目使用 Verilog 语言开发开放式 GPU

VeriGPU 项目旨在创建一个使用 Verilog 电子系统描述和建模语言开发的开放式 GPU。 最初,该项目是使用 Verilog 模拟器开发的,但在准备就绪后,它可以用于生产真正的芯片。 项目开发在 MIT 许可证下分发。

VeriGPU 定位为专用处理单元 (ASIC),经过优化可加速与机器学习系统相关的计算。 该计划提到提供与 PyTorch 深度机器学习框架的兼容性,以及使用 HIP(异构计算接口)API 为 VeriGPU 开发应用程序的可能性。 未来不排除增加对SYCL、NVIDIA CUDA等其他API的支持。

GPU 基于 RISC-V 指令集发展,但由此产生的 GPU 指令集内部架构与 RISC-V ISA 的兼容性较差,因为在 GPU 的设计不适合 RISC-V 表示的情况下, 保持与 RISC-V 兼容的任务没有设置。 开发的重点是机器学习系统所需的能力,因此,为了减少芯片矩阵的大小和复杂度,只使用 BF16 浮点格式,并且只使用机器学习需要的浮点运算,例如exp、log、tanh 和 sqrt 可用。

在已经可用的组件中,GPU 控制器、用于整数运算的 APU(加速处理单元)(“+”、“-”、“/”、“*”)、用于浮点运算的块(“+”、“*”) ) 和一个分支单元。 为了创建应用程序,提供了一个汇编器和对基于 LLVM 编译 C++ 代码的支持。 在计划的功能中,指令的并行执行、数据和指令存储器的缓存、SIMT 操作(单指令多线程)脱颖而出。

VeriGPU 项目使用 Verilog 语言开发开放式 GPU


来源: opennet.ru

添加评论