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