初學(xué)CUDA,為記錄一些自覺(jué)重要知識(shí),參考《GPU高性能編程CUDA實(shí)戰(zhàn)》,有錯(cuò)誤望指正請(qǐng)教~
1. kernel<<<1,1>>>(); 此函數(shù)調(diào)用實(shí)際上表示調(diào)用設(shè)備代碼,尖括號(hào)表示要將一些參數(shù)傳遞給運(yùn)行時(shí)系統(tǒng)。
這些參數(shù)并不是傳遞給設(shè)備代碼的參數(shù),而是告訴運(yùn)行時(shí)如何啟動(dòng)設(shè)備代碼。
傳遞給設(shè)備代碼本身的參數(shù)是放在圓括號(hào)中傳遞的。
2. cudaMalloc() 在設(shè)備上分配顯存。
不能使用標(biāo)準(zhǔn)C的free()函數(shù)來(lái)釋放cudaMalloc()分配的內(nèi)存,需調(diào)用cudaFree()。
3. 主機(jī)指針只能訪問(wèn)主機(jī)代碼中的內(nèi)存,而設(shè)備指針也只能訪問(wèn)設(shè)備代碼中的內(nèi)存。
4 cudaMemcpyDeviceToHost:源指針為設(shè)備指針,目標(biāo)指針為主機(jī)指針;
cudaMemcpyHostToDevice:...........為主機(jī)指針,................為設(shè)備指針;
cudaMemcpyDeviceToDevice:。。為設(shè)備指針,。。。。為設(shè)備指針,都位于設(shè)備上;
若源指針和目標(biāo)指針都位于主機(jī)上,可以直接調(diào)用標(biāo)準(zhǔn)C的memcpy()函數(shù).
5. 對(duì)線程塊的數(shù)量限制為不超過(guò)65535,每個(gè)線程塊的線程數(shù)量不超過(guò)512。
6.
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注