Linux でコードを開発していますが、Windows 実行可能ファイルをコンパイルしたいと考えています。古い非 GPU バージョンは、Windows の mingw で問題なくコンパイルされるため、CUDA バージョンでも同じことができると期待していました。
戦略は、カーネル コードを Visual Studio で nvcc でコンパイルし、残りを mingw で gcc でコンパイルすることです。
これまでのところ、Visual Studio で (カーネルとカーネルの起動を含む) .cu ファイルを簡単にコンパイルできました。ただし、まだ mingw で c コードをコンパイルすることはできません。c コードには などの cuda api 呼び出しと などのcudaMalloc
cuda タイプが含まれてcudaEvent_t
いるため、cuda.h と cuda_runtime.h を含める必要があります。ただし、gcc はこれらのヘッダーに対して警告とエラーを表示します。次に例を示します。
../include/host_defines.h:57:0: warning: "__cdecl" redefined
と
../include/vector_functions.h:127:14: error: 'short_4' has no member named 'x'
これらのヘッダーを含めて、コードの c 部分をコンパイルする方法について何かアイデアはありますか?