我正在学习一些为CUDA(v6.5)成功编译的程序。但是当我切换到OpenMP时,我收到以下错误:
错误9错误C2668:' thrust :: raw_reference_cast' :模糊调用重载函数C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v6.5 \ include \ thrust \ detail \ function.h 55 1
错误10错误C2780:' enable_if_non_const_reference_or_tuple_of_iterator_references :: type> :: type thrust :: detail :: host_unary_transform_functor :: operator()(Tuple)' :期望1个参数 - 0提供C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v6.5 \ include \ thrust \ detail \ function.h 55 1
错误11错误MSB3721:命令"" C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v6.5 \ bin \ nvcc.exe" -gencode =拱= compute_20,代码= \" sm_20,compute_20 \" --use-local-env --cl-version 2013 -ccbin" C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin \ x86_amd64" -IC:\ Boost -I" C:\ Program Files(x86)\ Microsoft SDKs \ MPI \ Include" -I" C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v6.5 \ include" -I" C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v6.5 \ include" --keep-dir x64 \ Debug-OMP(home)-maxrregcount = 0 --machine 64 --compile -cudart static -DTHRUST_DEVICE_SYSTEM = THRUST_DEVICE_SYSTEM_OMP -DENABLE_LOGGING -DENABLE_DEBUG_LOGGING -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -DTHRUST_DEVICE_SYSTEM = THRUST_DEVICE_SYSTEM_OMP -D_MBCS - Xcompiler" / EHsc / W3 / nologo / Od / Zi / RTC1 / MDd / openmp" -o build \ gopt-mpi \ x64 \ Debug-OMP(home)\ kernels_factory.cu.obj" C:\ ALI \ APOP \ gopt-mpi \ APOP_projects \ src \ cuda \ kernels_factory.cu"& #34;退出代码2. C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V120 \ BuildCustomizations \ CUDA 6.5.targets 593 9
我在Windows,Visual Studio 13社区下工作,并根据https://github.com/thrust/thrust/wiki/Device-Backends切换到OpenMP。我对项目属性进行了两处更改,包括CUDA C / C ++,Host:
1."其他编译器选项"设为" / openmp"
2."预处理器定义"设置为THRUST_DEVICE_SYSTEM = THRUST_DEVICE_SYSTEM_OMP
我该怎么做才能纠正这种情况?