经过四年的开发,一款开源全定制 GPU--FuryGPU 悄然面世!
FuryGPU 是游戏软件开发人员迪伦-巴里(Dylan Barrie)一个人的杰作,而且是利用其业余时间完成了这个极其复杂的硬件和软件项目。
FuryGPU 基于 Xilinx FPGA 设计,并通过 PCIe 插槽连接主机。原型 PCIe 显卡目前能够在 Quake Timedemo 中实现约 44fps。
从图片来看,FuryGPU 看起来非常像大约 20 年前的典型 PC 显卡,通过配备 DisplayPort 和 HDMI 输出进行了现代化改造。不过,这个项目远不止硬件,Barrie 承认,这款显卡设计中最痛苦的方面是创建Windows驱动程序。
Barrie 介绍FuryGPU 的开发工作是从 Ben Eater 的 "从零开始构建可编程 8 位计算机 "项目中获得灵感后开展的。
Ben Eater的8 位计算机 "项目截图
这位硬件自制者说,他决定从头开始制造图形处理器,因为他不知道 GPU 如何工作的 "实际细节"。由于对软件方面的 3D 渲染过程 "极为熟悉",Barrie 意识到创建 GPU 可能是一个虽然艰巨但可行的个人项目。
Barrie 在购买了一块装有 FPGA 的 Arty Z7 开发板并进行了一些初步开发和测试后,开始实现他从零开始构建 GPU 的梦想。随后,Xilinx Kria 系统级模块(SoM)的问世推动了这一项目,该模块将 价格低廉的 Zynq UltraScale+ FPGA 与大量的 DSP 单元、(相对)海量的 LUT 和 FF 以及特别令人感兴趣的硬核化 PCIe 内核结合在一起。
Barrie 是一个软件工程师,对于硬件开发来说,刚开始只能算是硬件小白。为此他花了 "无数个小时" 学习 FPGA 芯片如何工作,以及如何通过硬件描述、验证和实现语言 SystemVerilog 来构建芯片设计。不过Barrie却表示,设计 PCIe 图形卡的硬件是一项“艰巨的工作”,但还不是最痛苦的工作。
Barrie将为FuryGPU创建Windows驱动程序描述为整个项目中“最痛苦”的方面 - 尽管他在过去的14年中一直在游戏开发行业的图形渲染软件方面工作。
最初,FuryGPU设计的目标是将一个简单的旋转立方体演示放在一起,以展示 GPU 的工作原理。然而,随着项目的发展,以可玩帧率玩标志性的 PC 游戏《雷神之锤》开始成为新的目标。
Barrie 解释说,在准备好 Windows 驱动程序后,他编写了一个自定义图形 API 来与 GPU 通信,为显示器和音频编写了 Windows 内核驱动程序,现在拥有一个功能齐全的图形硬件,可以以每秒 60 帧的速度渲染 Quake。
这里的视频演示了Barrie 的自制GPU 的 Quake Timedemo 视频捕获,证明 FuryGPU 在大约一个月前的 720p 基准测试中可以达到 44fps。
适当时候开源
Barrie 表示,打算在某个时候将FuryGPU项目开源,包括整个堆栈(PCB原理图,所有HDL,Windows WDDM驱动程序,API运行时驱动程序)。