核函数
- 返回类型是void
- 使用__global__进行声明定义
- 不支持可变数量的参数
- 不支持静态变量
- 显示异步行为
函数类型限定符
device 和 host 限定符可以一起使用,这样函数可以同时在主机和设备端进行编译。
核函数调用后检查核函数错误
CHECK(cudaDeviceSynchronize())会阻塞主机端线程的运行直到设备端所有的请求任务都结束,并确保最后的核函数启动部分不会出错。以上仅是以调试为目的的,因为在核函数启动后添加这个检查点会阻塞主机端线程,使该检查点成为全局屏障。
核函数配置对性能影响
- 改变执行配置对内核性能有影响
- 传统的核函数实现一般不能获得最佳的性能
- 对于一个给定的核函数尝试使用不同的网格尺寸和线程块尺寸可能获得更好的性能