a2flo/floor
A C++ Compute/Graphics Library and Toolchain enabling same-source CUDA/Host/Metal/OpenCL/Vulkan C++ programming and execution.
解决的问题
通过提供统一的 API 和设备语言,消除了为不同硬件加速器编写独立代码的需求。这使得开发者可以编写单一的 C++ 源代码,该代码可在 CUDA、Metal、OpenCL、Vulkan 以及主机 CPU 等多种后端上执行。
工作原理
该项目由统一的计算和图形主机 API 以及专用的 C++ 设备语言组成。为实现跨平台兼容性,它使用了修改过的 clang/LLVM/libc++ 14.0 工具链。该库提供了在主机和设备上均能使用的共享数学和 constexpr 工具函数,并为支持的硬件提供了特定的后端实现。
适用人群
需要在多个 GPU 和 CPU 架构上部署高性能内核,但又不想维护多个代码库版本的系统程序员和图形/计算工程师。
主要亮点
- 跨后端支持:支持 CUDA、主机、Metal、OpenCL 和 Vulkan 的单源编程。
- 统一语言:使用修改后的 LLVM 工具链提供一致的设备语言。
- 广泛计算覆盖:所有支持的后端目前均提供计算能力。
- 图形集成:专为 Metal 和 Vulkan 提供图形支持。
相关
- 项目
- 项目
- 项目
- 项目
- 项目