文章目錄
- cuda函數的前綴作用
- 1、前綴作用
- 2、global
- 3、device
- 4、host
cuda函數的前綴作用
1、前綴作用
函數執行環境標識符,即表明函數在哪里被調用
2、global
__global__修飾的函數是核函數,這些函數在GPU上執行,但是需要在CPU上調用。
global修飾的函數必須采用void返回類型,并且需要在調用時制定運行的參數<<>>
global函數是異步的,函數沒執行完就返回了控制權,所以測量核函數的時間需要同步操作才能獲得準確的時間。
3、device
__device__在GPU上調用,在GPU上執行,不能和__global__同時出現。
device函數在編譯器中會被編譯成內聯函數。
4、host
__host__定義了主機端的函數,在CPU調用,在CPU執行,正常的c/c++函數,如果不加任何修飾符,默認是__host__函數。host函數只為主機端編譯。
host不能核global同時使用,但是可以核device同時使用,此時函數會同時為主機端和設備端編譯。