一個(gè)公司的網(wǎng)站怎么做互聯(lián)網(wǎng)營(yíng)銷師培訓(xùn)大綱
背景介紹
Cutlass
是 NVIDIA 提供的一套用于高效實(shí)現(xiàn)矩陣乘法和卷積操作的 C++ 庫(kù)。它以 CUDA 為基礎(chǔ),提供了高度優(yōu)化的數(shù)學(xué)運(yùn)算,尤其適用于GPU上的高性能并行計(jì)算。本文以GEMM矩陣運(yùn)算作為實(shí)例,展示Cutlass在GPU上執(zhí)行GEMM運(yùn)算的過(guò)程
實(shí)例演示?
GPU執(zhí)行GEMM矩陣算子過(guò)程演示
說(shuō)明
-
Cutalss把兩個(gè)Global?Memory中的大矩陣乘法分解為多個(gè)(ThreadBlock?Tile尺寸的)小矩陣乘法,每個(gè)小矩陣由各自的ThreadBlock并行執(zhí)行,依賴的輸入數(shù)據(jù)從Global?Memory?load?到Share?Memory中;GPU硬件中派發(fā)ThreadBlock給不同的SM計(jì)算單元并行計(jì)算;
-
ThreadBlock?(Tile尺寸的)矩陣乘法再分解為多個(gè)更小(的Warp?Tile尺寸的)矩陣乘法,每個(gè)更小的矩陣由各自的Warp并行計(jì)算,依賴的輸入數(shù)據(jù)從Share?Memory?load到Register?File中
-
Warp?(Tile尺寸的)矩陣乘法最終分解為由每個(gè)Thread計(jì)算一小塊矩陣乘法,實(shí)例的視頻中每個(gè)Thread負(fù)責(zé)計(jì)算出4個(gè)4x4大小區(qū)域的矩陣乘法結(jié)果,1個(gè)Warp中32個(gè)Thread并行計(jì)算;
-
整個(gè)視頻展示了GEMM算子從大矩陣乘法逐步分解為ThreadBlock?Tile -> Warp?Tile -> Thread?Tile?小矩陣乘法的過(guò)程,體現(xiàn)了Cutalss做GEMM運(yùn)算采用的分而治之并行策略
-
GPU硬件上以ThreadBlock粒度和Warp粒度的并行執(zhí)行過(guò)程,展示了GPU并行執(zhí)行的架構(gòu)特點(diǎn)/優(yōu)點(diǎn)