文章目录
- 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同时使用,此时函数会同时为主机端和设备端编译。