由于我无法使用 nVIDIA 卡,因此我使用 GPUOcelot 来编译和运行我的程序。由于我已将 cuda 内核和 C++ 程序分离到两个单独的文件中(因为我使用的是 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
现在 nvcc 调用而不是生成 my_kernel.o 生成 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
你能解决这个问题吗?谢谢。