用FPGA做GPU?

06-26 1648阅读

由于 GPU 市场竞争激烈,目前大公司除了专利垄断,一些技术细节也是封闭的。

除了英特尔,它发布了大量关于其 GPU 的技术文档:

https://kiwitree.net/~lina/intel-gfx-docs/prm/

当然,还可以在网上找到一些古老的GPU 如 i810/815 手册。

AMD 也发布了大量文档 :

https://www.amd.com/en/developer/browse-by-resource-type/documentation.html

包括其当前和过去产品的完整 ISA 文档,但是这些文档更倾向于“使用手册”,主要包括(数百或数千个)寄存器及其位域的简洁的描述。几乎没有任何关于微架构的解释。相比之下,英特尔文档更加完整。

上面是一些介绍类的文档,学习的关键是实操,今天介绍几个项目,主要是用FPGA做一个GPU。

TinyGPU

项目介绍

这个项目主要集中于探索:

  • 架构 - GPU的架构是什么样子的?最重要的元素是什么?

  • 并行化 - SIMD编程模型是如何在硬件中实现的?

  • 内存 - GPU如何解决有限内存带宽的限制?

    项目地址

    https://github.com/adam-maj/tiny-gpu

    项目架构

    用FPGA做GPU?

    用FPGA做GPU?

    仿真

    本项目也使用开源仿真器iverilog和cocotb进行仿真验证,想学习iverilog和cocotb的也可以跟着试一试。

    FuryGPU

    项目介绍

    国外游戏软件开发者Dylan Barrie耗时四年,成功打造开源完全定制GPU——Fury GPU。该项目基于Xilinx FPGA设计,外观复古但配备现代化接口。目前项目还处于计划开源阶段。

    用FPGA做GPU?

    用FPGA做GPU?

    项目地址

    https://www.furygpu.com/

    项目架构

    用FPGA做GPU?

    miaow

    项目介绍

    MIAOW是AMD Southern Islands GPU ISA的开源项目。

    项目地址

    https://github.com/VerticalResearchGroup/miaow

    项目架构

    用FPGA做GPU?

    VeriGPU

    项目介绍

    一个用于机器学习的开源 GPU。

    项目地址

    https://github.com/hughperkins/VeriGPU/tree/main

    项目架构

    用FPGA做GPU?

    用FPGA做GPU?

    总结

    MIAOW项目文档最详细,包括GPU架构细节设计。VeriGPU设计最严谨,因为该项目的目标是流片。TinyGPU最简洁,主要目标是学习,同时也最“年轻”,目前作者还在进行设计修改。FuryGPU有层神秘的面纱,目前看项目功能完整,适合使用FPGA进行移植,但是目前作者还没开源。所以想学习这方面知识的建议看下Intel的文档,学习一下MIAOW和VeriGPU,然后跟着TinyGPU一起成长。

    用FPGA做GPU?

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]