似乎其中一本 CUDA 书籍(CUDA by Example: An Introduction to General-Purpose GPU Programming)中的示例在初始化指针时从未使指针无效。
两个问题:
GPU 是否使用 0x0(或整数 0)作为 NULL 指针?我们是否应该使用设备指针遵循 C/C++ 指针实践(例如,在初始化时将其设为无效)
在 cudaFree 之前我们需要检查指针是否为 NULL 吗?if (devPtr) HANDLE_ERROR(cudaFree(devPtr));
有人说,对于 Fermi 架构,0x0 用于片上共享内存,看来使用 0x0 不应该被使用过的指针指向还是可以的。
http://forums.thedailywtf.com/forums/p/25369/273567.aspx
开普勒架构怎么样?GPU对0x0地址做了什么?
谢谢!