CUDA ブック (CUDA by Example: An Introduction to General-Purpose GPU Programming) の 1 つの例では、ポインターを初期化するときにポインターを無効にすることはないようです。
2 つの質問:
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 アドレスで何をしますか?
ありがとうございました!