开源 GPGPU 项目一览
开源 GPGPU 主要分为 硬件实现 和 软件模拟器两大类。以下是目前活跃的主要项目:
一、RISC-V 架构 GPGPU(主流开源方向)
1. Ventus (乘影) - 清华大学
- 核心特点:基于 RISC-V 向量扩展 (RVV) 的高性能 GPGPU,支持单指令多线程 (SIMT) 执行、预测分支和张量运算
- 实现方式:Chisel HDL 硬件描述语言开发,提供完整软件工具链
- 支持 API:OpenCL,部分 CUDA 兼容
- GitHub :THU-DSP-LAB/ventus-gpgpu
2. Vortex - 佐治亚理工学院
- 核心特点:高度可定制的 RISC-V GPGPU,支持 OpenCL 标准,可在 FPGA 上运行
- 灵活性:可配置核心数量、warp 和线程数量,支持多种缓存层次
- 特色:支持 SoftCUDA,可运行 CUDA 程序
- GitHub :vortexgpgpu
3. 其他 RISC-V GPGPU 项目
| 项目名称 | 特点 | 状态 |
|---|---|---|
| RVGPU | 支持 Vulkan 接口,已发布 v0.2 版本,可运行简单 CUDA 程序 | 活跃开发 |
| e-GPU (Embedded GPU) | 专为 TinyAI 设备设计的可配置 RISC-V GPU 平台 | 研究阶段 |
| RV64X | 为 RISC-V 添加 3D 图形和多媒体指令扩展 | 概念验证 |
| Vorion | 支持 3D 高斯渲染和训练的 RISC-V GPU | 学术研究 |
| OPENGPU | 简化的 RISC-V GPU 实现,支持 TileLink 内存接口 | 教学项目 |
二、其他架构开源 GPGPU
1. MIAOW - 威斯康星大学麦迪逊分校
- 核心特点:AMD Southern Islands GPU ISA 的开源 RTL 实现,支持 GPGPU 架构研究
- 优势:首个公开发布的完整开源 GPGPU 硬件实现,适合学术研究
- GitHub :VerticalResearchGroup/miaow
2. TinyGPU
- 核心特点:"全球最小 GPU",约 20 万晶体管,可在 FPGA 上实现并已流片
- 用途:硬件教育平台,展示 GPU 基本原理
- 特点:极简设计,适合学习 GPU 架构
3. FuryGPU - 个人项目
- 特点:完全自定义 GPU,理论上可运行 Windows 旧版游戏
- 状态:已完成硬件设计,开发者计划未来开源
三、GPGPU 软件模拟器(用于研究和性能分析)
1. GPGPU-Sim
- 功能:NVIDIA GPU (如 Fermi 架构) 的详细模拟器,支持 CUDA/OpenCL 工作负载
- 特点:包含 GPUWattch 能耗模型,适合性能和功耗研究
- GitHub :gpgpu-sim
2. Blue-Porcelain (青花瓷) - 上海交大
- 功能:提供 GPGPU 功能模拟器,支持 CUDA 运行时和 Warp 级仿真
- 用途:GPGPU 架构研究和教学
- GitHub :SJTU-ACA-Lab/blue-porcelain
四、开源 GPGPU 对比分析
| 项目 | 架构 | 主要用途 | 开发状态 | 支持 API |
|---|---|---|---|---|
| Ventus | RISC-V+RVV | 学术研究 / 工业原型 | 活跃 | OpenCL/CUDA (部分) |
| Vortex | RISC-V | 研究 / 教育 | 活跃 | OpenCL/CUDA (通过 SoftCUDA) |
| MIAOW | AMD Southern Islands | 学术研究 | 成熟 | OpenCL |
| TinyGPU | 自定义 | 教育 / 实验 | 已流片 | 有限图形 API |
| GPGPU-Sim | 模拟 NVIDIA | 性能分析 | 维护 | CUDA/OpenCL |
| RVGPU | RISC-V | 通用计算 | 开发中 | Vulkan/CUDA (部分) |
五、总结
RISC-V 架构 已成为开源 GPGPU 的主流方向,主要因为其开源特性和可定制性,允许研究人员自由修改硬件和软件栈。目前 Ventus 和 Vortex是该领域最成熟的项目,都提供了完整的软硬件解决方案。
MIAOW 作为 AMD 架构的开源实现,为研究传统 GPU 架构提供了宝贵资源。而 GPGPU-Sim等模拟器则为无需硬件的 GPGPU 算法开发和性能分析提供了便利。
以上项目大多处于 研究或原型阶段,性能与商用 GPU 仍有较大差距,但为 GPU 架构创新和人才培养提供了重要平台。如需了解更多技术细节,建议直接访问各项目的官方 GitHub 仓库或网站。