1. 程式人生 > >CUDA學習筆記(一):GPU背景知識

CUDA學習筆記(一):GPU背景知識

host:CPU,記憶體 device:GPU,視訊記憶體 我是純粹小白,裡面的一些圖是根據我自己的理解畫的,可能並不一定對

GPU的背景知識

GPU的每一個core(計算核心)都有兩個計算單元 在這裡插入圖片描述 在這裡插入圖片描述 輸出指令之後GPU執行程式的流程 在這裡插入圖片描述 SM中每一個core執行的具體的運算是不一樣的,有CUDA統一排程

GPU和CPU執行程式的區別

通常來說,訪問資料的時間隨著計算核和儲存資料的記憶體位置的距離而增加 Latency延遲是核等待資料的時間。

CPU是通過大量的告訴快取cache來縮短這個時間的,也就是儘可能減少時間t來減小延遲,CPU關注單個核心的執行速度 在這裡插入圖片描述 如果warp1所需要的而資料不可以獲得的話,那麼SM就會轉向一個可以獲得資料的執行緒束。GPU所關注的是整體的運算吞吐量,而不是單個核心的執行速度

在這裡插入圖片描述

如何產生大量的執行緒? CUDA通過一種叫做核函式(kernel)的特殊函式去實現的,這個函式會產生大量的可以分配SM的計算執行緒

參考

  1. 《CUDA高效能平行計算》機械工業出版社