nVIDIA カードにアクセスできなかったので、GPUOcelot を使用してプログラムをコンパイルおよび実行していました。cuda カーネルと C++ プログラムを 2 つの別々のファイルに分けていたので (C++11 機能を使用していたため)、プログラムを実行するために次のことを行っていました。
- nvcc -c my_kernel.cu -arch=sm_20
- g++ -std=c++0x -c my_main.cpp
- g++ my_kernel.o my_main.o -o latest_output.o
'OcelotConfig -l
'
最近、nVIDIA カードを搭載した Windows ボックスにアクセスできるようになりました。Windows と mingw g++ 用の CUDA ツールキットをダウンロードしました。今、私は走ります
- nvcc -c my_kernel.cu -arch=sm_20
- g++ -std=c++0x -c my_main.cpp
my_kernel.o を生成する代わりに、nvcc 呼び出しが my_kernel.obj を生成するようになりました。そして、それらをリンクして、以前と同じように g++ を使用して実行しようとすると
- g++ my_kernel.obj my_main.o -om
次のエラーが表示されます。
my_kernel.obj: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 status
問題を解決していただけますか?ありがとう。