似乎CUDA一书中的示例(《CUDA by Example: An Introduction to General-Purpose GPU Programming》)在初始化指针时从未将其置空。
两个问题:
1. GPU是否使用0x0(或整数0)作为空指针?我们应该遵循C/C++指针惯例来处理设备指针(例如,在初始化时将其置空)吗?
2. 在cudaFree之前,我们需要检查指针是否为NULL吗? if (devPtr) HANDLE_ERROR(cudaFree(devPtr));
有人说对于Fermi架构,0x0用于片上共享内存,看起来我们仍然可以假设0x0不应被使用的指针所指向。 http://forums.thedailywtf.com/forums/p/25369/273567.aspx 那么Kepler架构呢?GPU如何处理0x0地址?
谢谢!
两个问题:
1. GPU是否使用0x0(或整数0)作为空指针?我们应该遵循C/C++指针惯例来处理设备指针(例如,在初始化时将其置空)吗?
2. 在cudaFree之前,我们需要检查指针是否为NULL吗? if (devPtr) HANDLE_ERROR(cudaFree(devPtr));
有人说对于Fermi架构,0x0用于片上共享内存,看起来我们仍然可以假设0x0不应被使用的指针所指向。 http://forums.thedailywtf.com/forums/p/25369/273567.aspx 那么Kepler架构呢?GPU如何处理0x0地址?
谢谢!