计算加速器、GPU 及开源 GPU 项目发展解读
英伟达的发展与现状
在 2022 年年中,日本一家专门从事高性能计算(HPC)和工作站系统的零售商 GDep Advance 以 36400 美元的价格出售英伟达的 H100 80GB AIBs。英伟达巧妙地利用其 GPU 优势,成功进军人工智能和超级计算机行业。尽管 Hopper 架构是为数据中心设计的,但它配备了纹理处理器,这些处理器不仅用于图形处理,还能在 Cuda 程序中发挥作用,可执行辅助数据提取操作,提高缓存可用性。
2021 年到 2022 年初,英伟达经历了诸多事件。它曾试图收购 Arm,但可能低估了其他公司及其游说代表的反对力量。此外,几周前它还遭受了重大黑客攻击,和其他企业一样,其销售也受到了供应问题的限制。英伟达创始人黄仁勋认为,数据中心正在发生根本性变革,正逐渐成为人工智能工厂,将原始数据转化为智能成果。同时,英伟达还积极拥抱数字孪生概念,将 Earth 2 描述为地球的数字孪生体。
GPU 的应用发展历程
早在 2000 年,加利福尼亚州斯坦福大学的研究人员就率先利用 GPU 并行处理器的计算能力。当时 ATI 在这方面处于领先地位,但英伟达凭借其类似 C 语言的 CUDA 编程环境后来居上,该环境简化了架构的复杂性。
最初,GPU 作为计算加速器被应用于科学领域,用于处理大量可并行处理的数据问题。到了 2010 年代中期,GPU 在人工智能训练领域的应用开始兴起,一时间人人都成了人工智能专家,英伟达也成为了行业霸主。GPU 的应用概念还延伸到了车辆自动驾驶系统、基于网络的自然语言识别以及涉及光线追踪的高级渲染技术等领域。只要有足够的数据供其学习,人工智能似乎能解决所有问题。
开源 GPU 项目的背景与挑战
开源 GPU 是一个被许多人倡导但尚未完全实现的概念。这类项目通常由大学发起,但往往难以在初始热情消退后获得足够的资金支持。项目创始人往往缺乏筹集资金的技能,导致项目难以发展成为成熟的产品或可持续的组织。例如,Pixel Planes 项目成功的原因之一就是获得了长期且大量的资金投入。
开发与 PCIe、DisplayPort、DirectX 11+、OpenGL 4.x 和 Vulkan APIs 等现代技术兼容的专用集成电路(ASIC)GPU 并非易事。像 AMD、英特尔、英伟达或高通等设计和制造 GPU 的公司,需要投入数百万美元进行投资,并聘请专业人才来开发 GPU 架构。此外,这些公司以及 IP 供应商、专利组合公司和律师持有大量专利,这也给开源 GPU 项目带来了诸多障碍。
开源硬件在半导体设计中的潜力
尽管开源软件在软件行业取得了显著成效,但在硬件市场,尤其是半导体设计领域,开源的应用相对较少。特别是在片上系统(SoC)和专用集成电路(ASIC)设计方面,开源硬件的应用严重不足,而这些领域恰恰是最需要开源推动的。
开源硬件有望推动 SoC、ASIC 和 FPGA 的创新和行业发展。它可以实现低成本开发,使企业能够快速采用设备级的技术突破。硬件开发通常从采用寄存器传输逻辑(RTL)实现的前端架构设计开始,这些设计可能会整合现有的模块,如总线和内存控制器、SRAM 以及 I/O 接口。前端寄存器传输逻辑设计完成后,需要使用模拟器进行测试和验证,而验证过程往往会占据初始硬件设计阶段的大部分成本和精力。
在硬件开发中,开源具有明显的优势。例如,复杂的组件和知识产权(IP),如处理器核心,可以由专家设计并重复使用。半导体开发有丰富的前端工具集,还有一些强大的前端设计 IP,如 RISC - V、Rocket(riscv.org)、OpenRISC 和 LEO。
早期开源 GPU 项目介绍
- Open Graphics Project(2000) :2000 年,蒂莫西·米勒(Timothy Miller)为雇主设计图形芯片。作为南佛罗里达大学计算机科学专业的应届毕业生,他利用手头能找到的工具完成了完整的半导体设计。2004 年,他决定分享自己的开发成果、模拟器、软件工具以及最重要的 GPU 指令集架构(ISA),并采用 MIT 许可政策建立了一个开源平台,命名为 Open Graphics Project(OGP)。随着人们加入 OGP,他们希望找到制造商来生产芯片,以便有硬件进行开发。米勒了解到小批量生产 Open Graphics 芯片大约需要 200 万美元,于是他创立了一家名为 Traversal Technology Inc 的子公司。为避免社区与公司之间的冲突,电气工程师帕特里克·麦克纳马拉(Patrick McNamara)和 Traversal Technology Inc 在 2007 年共同创立了 Open Hardware Foundation(OHF),旨在促进免费和开源硬件的设计、开发和生产。2009 年,麦克纳马拉宣布将基金会的资金(来自捐赠)投入 Linux 基金,以更好地支持 Open Graphics 项目。在 Linux 基金的资助下,Traversal 制造了 25 块开发板,并分发给全球的研究人员。
- Nyuzi/Nyami(2012) :2012 年末,杰夫·布什(Jeff Bush)听说了蒂莫西·米勒的工作后,与他取得联系。布什一直在致力于建立一个开源 GPU 项目,并已将自己大约一年的工作成果开源。他正在通过构建 FPGA 来验证设计,而米勒也在研究类似的概念。两人经过交流后决定合作,并共同撰写了一些学术论文。Nyuzi 从 2010 年开始开发,它是一个受 Larrabee 启发的全功能开源 GPU。尽管其架构与 AMD 和英伟达的单指令多数据(SIMD)架构不同,但宾厄姆顿大学等机构的研究人员用它来研究 GPU。2015 年,杰夫·布什通过宾厄姆顿大学与蒂莫西·米勒和亚伦·卡彭特(Aaron Carpenter)合作,进一步研究和推广开源 GPU 项目。布什在 IEEE 国际系统与软件性能分析研讨会(ISPASS)上介绍了 Nyami——“一种可综合的 GPU”。Nyuzi(原名 Nyami)是一个专注于计算密集型任务的实验性 GPU 处理器硬件设计,针对深度学习和图像处理等用例进行了优化。该项目包括用 System Verilog 编写的可综合硬件设计、指令集模拟器、基于 LLVM 的 C/C++ 编译器、软件库和测试程序,可用于微架构和指令集设计的权衡实验。2011 年,布什在 GitHub 上发布了 Nyami 的初始 RTL 代码(Verilog),一个月后,他就有了一个运行的 FPGA 模型。
以下是这些早期开源 GPU 项目的对比表格:
| 项目名称 | 启动时间 | 主要特点 | 应用场景 |
| ---- | ---- | ---- | ---- |
| Open Graphics Project | 2000(正式发布 2004) | 分享开发成果、模拟器、软件工具和 ISA,采用 MIT 许可政策 | 通用图形处理研究 |
| Nyuzi/Nyami | 2010(开始开发) | 受 Larrabee 启发,专注计算密集型任务,有可综合硬件设计等 | 深度学习、图像处理 |
mermaid 流程图展示早期开源 GPU 项目发展关系:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([早期 GPU 应用探索]):::startend --> B(Open Graphics Project):::process
A --> C(Nyuzi/Nyami):::process
B --> D(Open Hardware Foundation):::process
C --> E(学术研究与推广):::process
计算加速器、GPU 及开源 GPU 项目发展解读
其他开源 GPU 项目介绍
-
MIAOW (2015)
:威斯康星大学麦迪逊分校的计算机科学副教授 Karu Sankaralingam 成立了垂直研究小组,其中一个始于 2014 年的项目是 MIAOW(发音为“me - ow”),即 Many - core Integrated Accelerator of Waterdeep/Wisconsin,这是一个开源 GPU。MIAOW 基于 AMD 在 2012 年公开发布的 Southern Islands ISA(不过 AMD 随后移除了该 ISA 并在其 GPUOpen 计划下添加了新的 ISA)。
- MIAOW 设计实现了一个适用于架构分析和 GPU 计算工作负载实验的计算单元。除了构成计算单元的 Verilog HDL 外,MIAOW 还包括一套单元测试和基准测试用于回归测试。
- MIAOW 有 32 个计算单元。创建 MIAOW 的主要动机是,CPU 和 GPU 等硬件的软件模拟器往往会忽略许多细微方面,可能会扭曲它们产生的性能、功耗等结果。研究人员认为,实现像 MIAOW 这样的 GPU 逻辑,将是在对 GPU 计算工作负载进行基准测试时产生更准确定量结果的有用工具,并为实现旨在提高性能或其他期望特性的新算法和设计的架构复杂性提供背景信息。
- MIAOW 代表了 GPU 的计算单元,它不包括产生实际图形输出所需的辅助逻辑,也没有连接到特定内存接口或系统总线的逻辑。外部贡献者可以开发这些扩展,麦迪逊分校的学生正在为该设计添加图形管道,预计大约需要六个月时间。MIAOW 采用三条款 BSD 许可证授权,该团队还向美国计算机协会(ACM)图书馆贡献了一本名为 TACO(Transactions on Architecture and Code Optimization)的开源期刊,展示了 MIAOW GPU 实现如何用于进一步研究硬件可靠性和时序推测。2015 年 8 月,Sankaralingam 在 Hot Chips 会议上介绍了 MIAOW。不过后来 Sankaralingam 的研究兴趣转向了其他方向。
-
GPUOpen (2015)
:AMD 于 2015 年 12 月 15 日宣布了 GPUOpen,并于 2016 年 1 月 26 日发布。它最初是 AMD 为其 Radeon 处理器开发的用于计算机游戏的视觉效果中间件软件套件,2016 年首次发布时是为了与英伟达的 GameWorks 竞争。随着时间的推移,AMD 扩大了其范围,将其过去几代 GPU 的 ISA 也纳入其中。与 GameWorks 因专有和封闭性质而受到批评不同,GPUOpen 的大部分内容是开源软件。
-
AMD 自 Radeon R600(2006 年帮助开启 DirectX 10 时代的 GPU)以来就发布了其 GPU 的 ISA 手册。AMD 发布 ISA 的主要原因如下:
- 规定语言结构和行为,包括每种类型指令在文本语法和二进制格式中的组织方式。
- 为编译器编写者提供指令操作参考,以最大限度地提高处理器性能。
- ISA 信息旨在供编写应用程序和系统软件(包括操作系统、编译器、加载器、链接器、设备驱动程序和系统实用程序)的程序员使用。它假设程序员正在编写计算密集型并行应用程序(流式应用程序),并且了解必要的编程实践。2020 年 9 月,AMD 发布了其 RDNA ISA。首款采用 RDNA 的产品是 2019 年 7 月推出的 Radeon RX 5000 AIBs。该处理器实现了适用于计算机图形应用和通用数据并行应用的并行微架构。需要高带宽或计算密集型的数据密集型应用可以在 AMD RDNA 处理器上运行。
-
AMD 自 Radeon R600(2006 年帮助开启 DirectX 10 时代的 GPU)以来就发布了其 GPU 的 ISA 手册。AMD 发布 ISA 的主要原因如下:
以下是 MIAOW 和 GPUOpen 项目的对比表格:
| 项目名称 | 启动时间 | 主要特点 | 应用场景 |
| ---- | ---- | ---- | ---- |
| MIAOW | 2014(开始项目) | 基于 AMD Southern Islands ISA,有计算单元设计和测试套件 | 架构分析、GPU 计算实验 |
| GPUOpen | 2015(宣布) | 从游戏视觉效果中间件扩展到包含多代 GPU ISA,大部分内容开源 | 计算机游戏、通用数据并行应用 |
mermaid 流程图展示后续开源 GPU 项目关联:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
F([开源 GPU 发展趋势]):::startend --> G(MIAOW):::process
F --> H(GPUOpen):::process
G --> I(学术研究拓展):::process
H --> J(市场竞争与应用拓展):::process
开源 GPU 项目总结与展望
开源 GPU 项目虽然面临诸多挑战,如资金筹集困难、专利障碍等,但依然在不断发展。从早期的 Open Graphics Project 到后续的 Nyuzi/Nyami、MIAOW 和 GPUOpen 等项目,每个项目都有其独特的特点和贡献。
Open Graphics Project 开启了开源 GPU 分享的先河,为后续项目提供了思路;Nyuzi/Nyami 专注于计算密集型任务,为深度学习和图像处理等领域提供了实验平台;MIAOW 则从架构分析和实验的角度出发,试图解决软件模拟器的不足;GPUOpen 借助 AMD 的力量,在市场竞争中推广开源理念,并扩大了开源内容的范围。
未来,随着技术的不断进步和开源社区的发展,开源 GPU 项目有望在更多领域发挥作用。例如,在人工智能、自动驾驶、虚拟现实等新兴领域,开源 GPU 可能会提供更灵活、低成本的解决方案。同时,开源硬件的发展也可能会促进半导体行业的创新,降低开发成本,加速新技术的应用和推广。但要实现这些目标,还需要解决资金、专利、技术标准等方面的问题,需要开源社区、企业和研究机构的共同努力。
超级会员免费看
1918

被折叠的 条评论
为什么被折叠?



