1

我正在使用 ODEint 来求解一组耦合 ode 方程。我有一个用于 CPU 的工作代码,并正在尝试使用 CUDA 在 GPU 上实现相同的代码。我已经编译了推力库中给出的 CUDA 代码,这些代码似乎和 CUDA 计算工具包中提供的代码一样工作正常。但是,在在推力部分编译 ODEint 附带的示例 CUDA 代码时,我在编译时收到以下错误:

------ Build started: Project: try, Configuration: Debug Win32 ------
1>Compiling with CUDA Build Rule...
1>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\\bin\nvcc.exe"    -gencode=arch=compute_10,code=\"sm_10,compute_10\" -gencode=arch=compute_20,code=\"sm_20,compute_20\"  --machine 32 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin"    -Xcompiler "/EHsc /W3 /nologo /O2 /Zi   /MT  "  -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\\include" -maxrregcount=0  --compile -o "Debug/lorenz_parameters.cu.obj" lorenz_parameters.cu 
1>lorenz_parameters.cu
1>C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\boost/config/compiler/visualc.hpp(292) : warning C4005: 'BOOST_COMPILER' : macro redefinition
1>        C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\boost/config/compiler/nvcc.hpp(11) : see previous definition of 'BOOST_COMPILER'
1>C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\boost/numeric/odeint/util/unit_helper.hpp(134): error: name followed by "::" must be a class or namespace name
1>C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\boost/numeric/odeint/util/unit_helper.hpp(134): error: too many arguments for class template "boost::numeric::odeint::inverse_time"
1>2 errors detected in the compilation of "C:/Users/a0092778/AppData/Local/Temp/tmpxft_00002634_00000000-8_lorenz_parameters.compute_20.cpp1.ii".
1>Project : error PRJ0019: A tool returned an error code from "Compiling with CUDA Build Rule..."
1>Build log was saved at "file://c:\Users\a0092778\Desktop\galib247\Projects\try\try\Debug\BuildLog.htm"
1>try - 3 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我之前也为我的 CPU 代码使用了 boost 库,这些库似乎工作正常。但是当我尝试合并 boost 库并转换我的代码以使其在 GPU 上运行时,它再次显示相同的错误。我正在使用 Visual Studio 2008 IDE 进行编译。我对 CUDA 很陌生,如果有人能帮助我找出问题的解决方案,我将不胜感激。

4

0 回答 0