一間叫
第四堂課 CUDA 程式開發- 執行緒優化 (446.1 MB) 試聽心得 花費時間: 1:26:00
- Thread - 每個Thread都會去跑 Kernel Code , Kernel Code(共用的) 是甚麼? 應該是前幾節有提到.
這部份聽起來是每個Thread都要浪費的。 - Thread ID - 每個Thread有ID,會去存取自己的 memory. 跑Code.
- sm * sp = total thread ( SM > Block(每個block是有限制thread數) > SP ).
- block 及 2D 觀念. 聽起來是正方矩陣,影片中沒人問,到時再問老師看看為啥要正方為啥要矩陣多維(2D/3D)而不用序列。(後段有講到,因流體、影像所要使用的資料為矩陣資料)應該是要搭配資料結構所衍伸的。
- 同一個block 才能作 barrier sync , 每張顯卡能同時作block 的數量不同,為了跨不同效能的GPU 平台。
- thread的Code 放進sm , sm 再分進 sp 這個動作誰做的? compiler?
- n block assigment to sm ?誰做?
- scheduling
- 有score board 去選擇要做的 block. HW在做
- 優先度?
- G80 下 , dram access time 約要200ms.
- Warp 的定義其實跟 Pipeline datapath 是相對的。warp 不知怎麼規劃?
- G80下:shared memory 16kB, Thread互相是無法看到的 16k/block num = 每個
dynamic partition. 故要多用mem, 就只能少block. - warp(32倍數) 跟block size , sm / sp 的分配 四者若分配不良,直接影響到performance.
- warp 中 critical path 可能存在於memory access.
- runtime library:
- common component: sin, cos, pow, sqrt...
- host component: data transfer/Memory managemen/Error handling.
- device component: gpu math function.
- dim3: buildin variable ( C structture ). just predefine data types. (機車勒後面都英文對談, 那個學生問的問題,聽的有點吃力).
- 2 special function unit. (sfu). pipeline. hw sin/cos cal.
- syncthread 要注意,全部都要sync 的問題,不然會有deadlock.
- const var memory有 64k, cache 8k
國家高速網路與計算中心 講師:胡文美教授
下載教學網頁
- SPMD /SIMD
沒有留言:
張貼留言