我正在尝试在计算机上运行CUDA代码。我没有Nvidia显卡。我只想尝试模拟它以检查我的代码是否正确,然后检查并行化结果。
我在计算机上安装了CUDA工具包和CUDA SDK。 我试图用Visual Studio 2010进行设置。 但是当我在SDK中运行示例程序时,出现以下错误:
C:\ ProgramData \ NVIDIA Corporation \ NVIDIA GPU Computing SDK 4.0 \ C \ src \ eigenvalues \ eigenvalues_vs2010.vcxproj:错误:导入的项目“C:\ Program Files (x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ BuildCustomizations \ CUDA 4.0.props“ 没找到。确认声明中的路径是 正确,并且该文件存在于磁盘上。 C:\ ProgramData \ NVIDIA 公司\ NVIDIA GPU计算SDK 4.0 \ C \ SRC \特征值\ eigenvalues_vs2010.vcxproj
C:\ ProgramData \ NVIDIA Corporation \ NVIDIA GPU Computing SDK 4.0 \ C \ common \ cutil_vs2010.vcxproj:错误:导入的项目“C:\ Program Files (x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ BuildCustomizations \ CUDA 4.0.props“ 没找到。确认声明中的路径是 正确,并且该文件存在于磁盘上。 C:\ ProgramData \ NVIDIA 公司\ NVIDIA GPU计算SDK 4.0 \ C \ common \ cutil_vs2010.vcxproj
无法启动程序C:\ ProgramData \ NVIDIA Corporation \ NVIDIA GPU 计算SDK 4.0 \ shared \ lib \ Win32 \ shrUtils32D.lib指定的文件 是一种无法识别或不支持的二进制格式。
有人可以帮我解决这个错误。
答案 0 :(得分:4)
检查这些页面:
How to emulate CUDA on windows
GPU Emulator for CUDA programming without the hardware
我自己更喜欢使用openCL。
答案 1 :(得分:1)
这里有两个问题。
您看到的前两个错误实际上是Visual Studio找不到项目使用的构建自定义文件的结果。这些构建自定义是Visual Studio的便捷添加,允许您轻松地将CUDA源添加到项目中,而无需手动设置构建规则来调用NVCC。
我不记得是否是CUDA 4.0的情况,但是使用CUDA Toolkit会自动安装4.1。 (我记得在一些早期版本中我手动设置了这个,所以检查你的文档,看看是否有必要)你确定你安装了这个工具包吗? (对于您的情况下为CUDA 4.0)
最后一个错误实际上是您没有尝试从Visual Studio中运行可执行文件而是静态库的结果。当然这不起作用,所以它会抱怨一种无法识别的二进制格式。如果要从Visual Studio中运行特定可执行文件,请确保将其项目设置为启动项目。您可以通过右键单击特定项目并选择“设置为启动项目”来执行此操作。
但是,即使您解决了这些错误,如果没有Nvidia显卡,您仍然无法运行这些CUDA示例。作为3.x之前的CUDA版本的一部分的模拟器不再是CUDA的一部分。一个可能的解决方案是使用Ocelot,但如果你只是刚开始,那可能会有点多。