CUTLASS 是 CUDA C ++模板抽象的集合,用于在 CUDA 的所有級別和規模上實現高性能矩陣乘法( GEMM )。它結合了分層分解和數據移動的策略,類似于用于實現cuBLAS的策略。
CUTLASS 將這些“運動部件”分解為 C ++模板類抽象的可重用和模塊化的軟件組件。這些線程范圍、扭曲范圍、塊范圍和設備范圍的原語可以通過自定義平鋪大小、數據類型和其他算法策略進行專門化和調優。由此產生的靈活性簡化了它們在定制內核和應用程序中作為構建塊的使用。
為了支持多種應用程序, CUTLASS 為混合精度計算提供了廣泛的支持,提供了專門的數據移動,并為以下各項提供了多重累積抽象:
半精度浮點(FP16)、 BFloat16 (BF16)和張量浮點 32 (TF32)數據類型。
單精度浮點(FP32)數據類型。
雙精度浮點(FP64)數據類型。
整數數據類型(4b和8b)。
二進制數據類型(1b)。
此外, CUTLASS 演示了針對 NVIDIA Volta 、 Turing 和 Ampere 體系結構上實現的可編程、高通量 Tensor 核的扭曲同步矩陣乘法操作。
CUTLASS 實現了高性能卷積(隱式 GEMM )。隱式 GEMM 是作為 GEMM 的卷積運算的公式。這允許 Cutslass 通過重用高度優化的 warp-wide GEMM 組件和以下組件來構建卷積。
關于作者
Matthew Nicely 于 2019 年 3 月加入 NVIDIA ,之前曾在美國 AL-Huntsville 的美國陸軍航空和導彈研究開發與工程中心工作。在那里,他專注于 CUDA 算法開發和 Jetson 系列的優化。在 NVIDIA ,他曾在聯邦部門工作,協助 CUDA 的開發和優化,以及在各種 NVIDIA 工具集上為客戶提供教育和概念驗證,最近轉為 math libraries 產品經理。 2019 年,他獲得了博士學位。計算機工程學位,專注于 GPU 的算法優化。
審核編輯:郭婷
-
NVIDIA
+關注
關注
14文章
4940瀏覽量
102817 -
CUDA
+關注
關注
0文章
121瀏覽量
13600
發布評論請先 登錄
相關推薦
評論