由于GPU市场竞争激烈,目前大公司垄断了专利,一些技术细节并未公开。
除了英特尔之外,他们还发布了大量有关GPU 的技术文档。
https://kiwitree.net/~lina/intel-gfx-docs/prm/
当然,i810/815等较旧的GPU手册也可以在网上找到。
AMD 还发布了大量文档。
https://www.amd.com/en/developer/按资源类型浏览/documentation.html
包含当前和过去产品的完整ISA 文档,但这些更多的是“手动”类型,主要是对(数百或数千)寄存器及其位域的简洁描述。对微架构的解释很少。相比之下,Intel的文档更加完整。
以上是入门文档,学习的关键是动手。今天我想介绍一些主要使用FPGA来构建GPU的项目。
TinyGPU 项目概述该项目主要侧重于研究以下内容:
架构- GPU 的架构是什么?最重要的元素是什么?
并行化- SIMD 编程模型如何在硬件中实现?
内存——GPU如何解决内存带宽有限的约束?
项目地址https://github.com/adam-maj/tiny-gpu
项目结构
模拟该项目还使用开源模拟器iverilog 和cocotb 进行模拟验证。如果你想学习iverilog和cocotb,请尝试一下。
FuryGPU项目介绍:国外游戏软件开发商Dylan Barrie花费四年时间成功打造了一款开源、完全定制的GPU——Fury GPU。该项目基于Xilinx FPGA 设计,具有复古的外观,但配备了现代化的接口。该项目目前仍在规划中,处于开源阶段。
项目地址https://www.furygpu.com/
项目结构
miaow 项目简介MIAOW 是AMD Southern Island GPU ISA 的开源项目。
项目地址https://github.com/VerticalResearchGroup/miaow
项目结构
隆重推出VeriGPU 项目,这是一个用于机器学习的开源GPU。
项目地址https://github.com/hughperkins/VeriGPU/tree/main
项目结构
总结MIAOW 项目文档是包含GPU 架构详细设计的最详细的文档。 VeriGPU的设计是最严格的,因为该项目的目标是流片。 TinyGPU是最简单的,其主要目的是学习,但作者仍在进行设计更改。 FuryGPU 笼罩在神秘之中,但目前该项目功能齐全,适合使用FPGA 进行移植,尽管作者尚未将其开源。所以,如果你想学习这些知识,我建议阅读Intel的文档,学习MIAOW和VeriGPU,并与TinyGPU一起成长。