NVIDIA/cccl
CUDA Core Compute Libraries
解决的问题
CUDA C++ 开发者通常需要高性能的并行算法和标准库抽象,但这些功能此前分散在多个独立的库中。CCCL 将这些关键构建模块统一到一个仓库中,简化开发流程,使编写安全、高效且可移植的 CUDA 代码变得更加容易。
工作原理
CCCL 是一个仅包含头文件的集合,集成了三个核心库:
- Thrust:一个高级别的 C++ 并行算法库,提供提升生产力的接口,并在 GPU 和多核 CPU 之间实现性能可移植性。
- CUB:一个低级别的、专为 CUDA 设计的库,专注于“光速”并行算法,为自定义内核提供设备级和协作式(块级/瓦片级)的构建模块。
- libcudacxx:CUDA C++ 标准库,实现 C++ 标准库功能,适用于主机和设备代码,并为 CUDA 特有的硬件功能(如原子操作和同步原语)提供抽象。
适用人群
需要在 NVIDIA GPU 上进行并行计算时使用标准化、高性能工具集的 CUDA C++ 开发者。
主要亮点
- 统一仓库:将 Thrust、CUB 和 libcudacxx 集成在一起,提供更一致的开发体验。
- 仅头文件:无需预编译二进制文件,可轻松集成到构建系统中。
- 性能可移植性:代码可在不同 GPU 架构上高效运行,部分情况下也可在多核 CPU 上运行。
- 广泛兼容性:支持多个 CUDA Toolkit 版本、主机编译器(GCC、MSVC)和 C++ 语言标准(C++17、C++20)。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目