CUDA簡介 CUDA和C對內存操作函數的對比表 
GPU架構 軟硬件構架圖 
GPU架構(Fermi、Kepler) 1.CUDA核的數量(包括ALU和FPU)=SM的數量×每個SM里面CUDA核的數量,例如:512個accelerator cores即所謂CUDA cores(包含ALU和FPU)16個SM,每個SM包含32個CUDA core。 2.每個SM由一下幾部分組成: 執行單元(CUDA cores) 調度分配warp的單元 shared memory,register file,L1 cache 3.在不同架構的GPU中,每個SM同時處理的warp數是不一樣的,如:Fermi(compute capability 2.x)每個SM同時可處理48個warp共計1536個thread;Kepler K20X(compute capability 3.5)每個SM可以同時調度64個warp共計2048個thread。
Warp解析 1.從邏輯上講,所有thread是并行的,但是,從硬件上講,實際上并不是所有的thread能夠同一時刻執行。 2.warp是SMs中線程調度單位。將blocks分成warps在SMs執行如下圖所示。下圖3個block,每個block按照連續的32個線程分成一個個warp
3.一個warp中的線程必然在同一個block中。 4.一個warp包含32個并行thread,由此可見,warp是32個擁有關系的thread的集合。
Kernel性能調節 1.代碼的功能:矩陣相加,邏輯上要處理的數據有16384個元素 2.結論:處理相同的問題,配置的block更多,device就會達到更多active warp,性能也就越好(耗時越少);較高的achieved Occupancy并不一定就意味著更好的性能,也就是說還有更多的因素影響著GPU的性能;較高的load throughput也不一定就有較高的性能。
Memory Model 1.GPU和CPU的存儲結構基本一樣,下圖體現了速度和大小的變化趨勢
2.存儲器結構圖: 
Shared Memory 1.GPU上的memory有兩種: On-board memory On-chip memory 2.
新聞熱點
疑難解答