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

时间:2012-11-26 17:45:57

标签: visual-studio-2010 compilation linker cuda

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

kernel.cu.obj : error LNK2019: unresolved external symbol _cusparseSetMatIndexBase@8 referenced in function _main

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

2 个答案:

答案 0 :(得分:7)

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

  1. 确保您已打开要处理的项目。
  2. 选择查看...属性页面(从菜单中)将打开一个新对话框。
  3. 在此对话框的左侧,选择链接器以打开它的子​​菜单
  4. 在链接器下,选择输入
  5. 现在,在右侧的窗格中,观察第一个项目" Additional Dependencies"。我相信cudart.lib应该已经存在。
  6. 点击cudart.lib右侧您现在可以输入要添加的新库。键入一个空格(与cudart.lib分开)并键入cusparse.lib
  7. 现在点击"申请"在对话框的右下角。
  8. 如果您的项目/解决方案文件已使用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-的支持比特项目。

答案 1 :(得分:0)

我按照以下步骤修复了它:

  1. 添加cuda路径: 转到:“配置属性 - >链接器 - >常规 - >其他库管理目录”并将$(CudaToolkitLibDir)添加到列表中。

  2. 添加cuda实时库: 转到:“解决方案属性 - >链接器 - >输入 - >附加依赖关系”并将cudart.lib添加到列表中。

  3. 添加cublas库: 转到:“解决方案属性 - >链接器 - >输入 - >附加依赖关系”并将cublas.lib添加到列表中。

  4. 将平台更改为x64: 转到:“配置属性 - >平台”并将其设置为x64。

  5. 以管理员身份运行cmd.exe。 输入并运行以下两行命令:

  6. netsh winsock重置目录

    netsh int ip reset reset.log hit

    可能会说需要重新启动,但实际上这不是必需的。 尝试再次调试您的应用程序,问题应该解决。