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
- 專案