Libcu++NVIDIA C++ 标准库
libcu++ 是 NVIDIA 开源的 C++ 标准库,提供了 C++ 标准库的异构实现,可以在 CPU 和 GPU 代码之间使用。如果有使用 C++ 标准库的经验,相信很快就能上手 libcu++,首先需要在标准库 includes 的开头添加cuda/std/
,在使用 std::
之前添加cuda::
:
#include <cuda/std/atomic>
cuda::std::atomic<int> x;
NVIDIA C++ 标准库包含在 NVIDIA HPC SDK 和 CUDA 工具包中,无需额外的安装或编译器标志。
libcu++ fork 自 LLVM 的 libc++ 标准库。作为 CUDA C++ 标准库,libcu++ 在过去的一年里已经初具规模,并在此后不断改进,拥有了更多的功能。
示例代码
// Standard C++, __host__ only.
#include <atomic>
std::atomic<int> x;
// CUDA C++, __host__ __device__.
// Strictly conforming to the C++ Standard.
#include <cuda/std/atomic>
cuda::std::atomic<int> x;
// CUDA C++, __host__ __device__.
// Conforming extensions to the C++ Standard.
#include <cuda/atomic>
cuda::atomic<int, cuda::thread_scope_block> x;
评论