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