开源推荐
morning
GitHub 热门项目:gpu.cpp
摘要
GitHub项目:gpu。cpp 仓库地址:https://github。com/AnswerDotAI/gpu。cpp Stars:3966 | 作者:AnswerDotAI 项目描述:A lightweight library for portable low-level GPU computation using WebGPU。
the
and
gpu
library
cpp
2026-05-19
1 阅读
GitHub Trending
GitHub项目:gpu.cpp
仓库地址:https://github.com/AnswerDotAI/gpu.cpp
星级:3966 | 作者:AnswerDotAI
项目描述:一个使用 WebGPU 进行便携式低级 GPU 计算的轻量级库。
===================================================
自述文件内容:
#gpu.cpp
gpu.cpp 是一个轻量级库,使使用 C++ 进行便携式 GPU 计算变得简单。
它专注于通用本机 GPU 计算,利用 WebGPU
规范作为便携式低级 GPU 接口。这意味着我们可以顺便过来
C++ 项目中的 GPU 代码,并使其在 Nvidia、Intel、AMD 和其他 GPU 上运行。
相同的 C++ 代码可以在各种笔记本电脑、工作站、移动设备上运行
设备或几乎任何支持 Vulkan、Metal 或 DirectX 的硬件。
## 目标:轻量级、快速迭代和低样板代码
通过 gpu.cpp,我们希望为个人开发人员和研究人员提供一个高杠杆率的库,将 GPU 计算合并到仅依赖标准 C++ 编译器作为工具的程序中。我们的目标是:
- 高功重比API:提供最小的API表面积,可覆盖全方位的GPU计算需求。
- 快速编译/运行周期:确保项目几乎可以立即构建,在现代笔记本电脑上编译/运行周期应小于 5 秒。
- 最小的依赖性和工具开销:标准的 clang C++ 编译器应该足够了,除了 WebGPU 本机实现之外没有外部库依赖性。
该实施旨在以最少的样板实现较小的 API 表面积。有少量的库操作可以执行广泛的低级 GPU 操作。我们避免添加间接层的抽象,从而在需要时使 gpu.cpp 库到原始 WebGPU API 之间的映射变得清晰。
本着这种快速实验的精神,我们还希望即使在能力一般的个人计算设备上,C++ 构建也能近乎即时地花费不超过一两秒的时间。考虑到这一点,我们不仅保持 API 表面积较小,而且实现较小,我们还提供了 Dawn 原生 WebGPU 实现的预构建二进制文件。
仅头文件“gpu.hpp”源代码中的核心库实现大约有 1000 行代码。除了实现即时、半交互式编译周期之外,较小的实现表面积还可以降低维护负担并提高改进速度。
我们还将 Google 的 Dawn WebGPU 实现预构建为共享库二进制文件。这允许构建将共享库与每个构建链接起来,并结合 Google 强大的本机 WebGPU 实现,而无需在开发周期中支付重新编译 Dawn 的成本。
对于更高级的用户和版本部署,我们提供了“cmake”示例,用于使用 gpu.cpp 端到端构建 Dawn,但这对于大多数用户来说不是必需的,也不建议开始使用。
## 快速入门:构建和运行
要构建 gpu.cpp 项目,您需要在系统上安装:
- 安装了支持 C++17 的 `clang++` 编译器。
- `python3` 及以上版本,运行下载 Dawn 共享库的脚本。
- `make` 来构建项目。
- 仅在 Linux 系统上 - Vulkan 驱动程序。如果没有安装Vulkan,哟