初学CUDA,为记录一些自觉重要知识,参考《GPU高性能编程CUDA实战》,有错误望指正请教~
1. kernel<<<1,1>>>(); 此函数调用实际上表示调用设备代码,尖括号表示要将一些参数传递给运行时系统。
这些参数并不是传递给设备代码的参数,而是告诉运行时如何启动设备代码。
传递给设备代码本身的参数是放在圆括号中传递的。
2. cudaMalloc() 在设备上分配显存。
不能使用标准C的free()函数来释放cudaMalloc()分配的内存,需调用cudaFree()。
3. 主机指针只能访问主机代码中的内存,而设备指针也只能访问设备代码中的内存。
4 cudaMemcpyDeviceToHost:源指针为设备指针,目标指针为主机指针;
cudaMemcpyHostToDevice:...........为主机指针,................为设备指针;
cudaMemcpyDeviceToDevice:。。为设备指针,。。。。为设备指针,都位于设备上;
若源指针和目标指针都位于主机上,可以直接调用标准C的memcpy()函数.
5. 对线程块的数量限制为不超过65535,每个线程块的线程数量不超过512。
6.
新闻热点
疑难解答