このコードスニペットでは、MatrixMultiplication()メソッド内の「printf」コマンドがそのテキストを表示することを期待しています。前の行で「size」が宣言されていて、「test」が1に設定されていても、そうではありません。コードは次のとおりです。
void MatrixMultiplication(float * M, float * N, float * P, int Width, int test)
{
int size = Width * Width * sizeof(float);
#if defined size
if (test)
{
printf("Should be equal to %d. Int size:%d", Width * Width * sizeof(float), size);
}
#endif
}
int main (int argc, char ** argv)
{
// Omitted for brevity...
int test = 1;
// Omitted for brevity...
MatrixMultiplication(hostM, hostN, reference, atoi(matrix_id), test);
// Omitted for brevity...
}
私はこのコマンドでコンパイルしています:
nvcc -I/home/sbu/NVIDIA_GPU_Computing_SDK/C/common/inc -L/home/sbu/NVIDIA_GPU_Computing_SDK/C/lib -o matrixmul matrixmul.cu -lcutil_x86_64
この種の「#ifdefined」コマンドが機能しないnvccについて何かありますか?私は以前、gccを使用するネイティブCおよびC ++コードでこの種の構文を使用しましたが、問題なく機能しました。
この問題に関する照明は素晴らしいでしょう!
Pastebinの完全なコードは次のとおりです:http://pastebin.com/SusnpgFc