在CUDA C语言程序中,有三种类型的函数,每一种函数都有固定的函数类型限定符。函数类型限定符指定一个函数在主机上执行还是在设备上执行,以及可以被主机调用还是被设备调用。
CUDA C中的三种函数类型限定符:global、device和host,其具体的含义如下表
限定符 | 执行 | 调用 | 备注 |
---|---|---|---|
__global__ | 在设备端执行 | 可以从主机端(或者计算能力>3.0的设备端)调用 | 必须有一个void返回类型 |
__device__ | 在设备端执行 | 仅能从设备端调用 | |
__host__ | 在主机端执行 | 仅能从主机端调用 | 可以省略 |