如何在Windows上为CUDA链接库(例如CUBLAS,CUSPARSE)

Ter*_*nal 4 linker cuda compilation visual-studio-2010

我正在尝试编译一个使用cusparse库的cuda程序.我收到链接错误:

kernel.cu.obj : error LNK2019: unresolved external symbol _cusparseSetMatIndexBase@8 referenced in function _main
Run Code Online (Sandbox Code Playgroud)

和cusparse库有很多相同的错误.我已经包含了"cusparse_v2.h".如何在编辑期间链接visual studio 2010中的cusparse库?

Rob*_*lla 7

链接库的一般说明并非特定于CUDA.因此,您可能想要了解有关使用MS VS的更多信息.无论如何,步骤是这样的:

  1. 确保已打开要处理的项目.
  2. 选择查看...属性页面(从菜单中)将打开一个新对话框.
  3. 在此对话框的左侧,选择链接器以打开它的子​​菜单
  4. 在链接器下,选择输入
  5. 现在,在右侧窗格中,观察第一个项目"Additional Dependencies".我相信cudart.lib应该已经存在.
  6. 单击右侧cudart.lib 您现在可以键入要添加的新库.键入一个空格(与cudart.lib分开)并键入cusparse.lib
  7. 现在单击对话框右下角的"应用".

如果您的项目/解决方案文件已经使用cuda模板设置,那应该就是所需要的.如果cudart.lib不存在,或者您的项目/解决方案文件尚未理解cuda,那么这是一个单独的问题.在这种情况下,我建议重新开始,通过克隆来自Samples的项目,并使用它作为起点构建项目.然后它将获取所有正确的搜索目录以及cuda构建规则.由于所有主要的cuda库(cudart,cublas,cufft,cusparse等)都在同一个位置,因此相同的搜索路径应根据需要选择其中任何一个.

如果你想链接另一个库,cublas.lib例如,你可以按照类似的顺序,替换cusparse.lib上面的cublas.lib

请注意,对于较新版本的CUDA(例如CUDA 7.5),仅需要构建一个64位项目(在修改x64项目属性时,请按照上述步骤进行操作.)CUDA 7.5及更高版本正在放弃对32位项目的支持.