如何为CUDA在Windows上链接库(如CUBLAS,CUSPARSE)(how to link

2019-06-21 07:29发布

我试图编译它使用cusparse库CUDA程序。 我收到链接错误:

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

和很多相关的同类的错误来cusparse库。 我已经包括“cusparse_v2.h”。 我如何cusparse库在Visual Studio 2010编译期间链接?

Answer 1:

用于链接库的一般说明是不特定于CUDA。 所以,你可能想了解更多有关使用MS VS 。 总之,步骤是这样的:

  1. 请确保你已经打开了,你想工作的项目。
  2. 选择视图...属性页(从菜单中)一个新的对话框将打开。
  3. 在此对话框的左侧,选择链接打开它的子​​菜单
  4. 在连接上,选择输入
  5. 现在,在右侧窗格中,观察到这是“附加依赖”的第一个项目。 我相信cudart.lib应该已经存在那里。
  6. 点击右边cudart.lib现在,您可以输入新的库添加。 键入一个空间(从cudart.lib分离),然后键入cusparse.lib
  7. 现在点击对话框右下角的“应用”。

应该是已需要的,如果您的项目/解决方案文件已经设置了使用CUDA模板的所有。 如果cudart.lib不存在,或您的项目/解决方案文件已经不理解CUDA,那是另外一个问题。 在这种情况下,我会建议重新开始,从样本克隆项目,并使用生成项目,作为一个起点。 然后,它会拿起所有正确的目录搜索以及CUDA的生成规则。 由于所有主要的CUDA库(cudart,CUBLAS,CUFFT,cusparse等)都在同一个位置,需要相同的搜索路径应该选择其中的任何向上。

如果你想要把另一个库,如cublas.lib ,例如,你可以遵循相似的序列,替换cusparse.lib以上cublas.lib

请注意,CUDA(例如CUDA 7.5)的较新版本将有必要只建立一个64位的项目(修改的x64项目属性时按照上面的步骤。)CUDA 7.5及以后在下降为32位的项目的支持。



Answer 2:

我固定它通过以下步骤:

  1. 加入CUDA路径:转到:“配置属性 - >连接器 - >常规 - >附加Libary目录”,并添加$(CudaToolkitLibDir)到列表中。

  2. 加入CUDA实时库:进入:“解决方案属性 - >连接器 - >输入 - >附加依赖”,并添加cudart.lib到列表中。

  3. 添加CUBLAS库:进入:“解决方案属性 - >连接器 - >输入 - >附加依赖”,并添加cublas.lib到列表中。

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

  5. 运行CMD.EXE作为管理员。 键入并运行命令的以下两行:

的netsh winsock的重置目录

netsh的INT IP复位reset.log命中

它可以说是一个需要重新启动,但实际上是没有必要的。 再次尝试调试应用程序,这个问题应该得到解决。



文章来源: how to link library (e.g. CUBLAS, CUSPARSE) for CUDA on windows