[CUDA] GPUデバイスからprintfする
CUDA Toolkit 3.1からデバイスからprintfを発行できるようになりました.ただし,Device Capability 2.0以降のデバイスでなければサポートされていないので,GTX480といったいわゆるFermiアーキテクチャのカードが必要です.
#include <stdio.h> __global__ void test() { printf("Hello world from %d of %d\n", threadIdx.x, blockDim.x); } int main() { test<<<1, 32>>>(); cudaThreadSynchronize(); return 0; }
printfが使えるようになったとはいえ,CPUのように使うわけにはいきません.制限事項については,CUDA Programming ManualのB.14のFormatted Outputを参照してください.
制限があるとはいえ,簡単にログが取れるようになったのは大きいと思います.