0

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

問題を解決していただけますか?ありがとう。

4

1 に答える 1