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 提供图形支持。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目