gpt4 book ai didi

cuda - `cublasCreate_v2’ 中对 ‘/tmp/tmpxft_0000120b_0000000-10_my_program” 的 undefined reference

转载 作者:行者123 更新时间:2023-12-04 08:50:41 24 4
gpt4 key购买 nike

我尝试在 NVIDIA Tesla P100 显卡(Ubuntu 版本 16.04)上使用 CUDA 9.0 工具包编译代码,代码中使用了 CUBLAS 库。对于编译,我使用以下命令编译“my_program.cu”

nvcc -std=c++11 -L/usr/local/cuda-9.0/lib64 my_program.cu -o mu_program.o -lcublas
但是,我收到以下错误: nvlink error: Undefined reference to 'cublasCreate_v2’in '/tmp/tmpxft_0000120b_0000000-10_my_program’由于我已经在编译命令中链接了库路径,为什么我仍然收到错误消息。请帮我解决这个错误。

最佳答案

很明显您正在尝试使用 CUBLAS 库 在设备代码中 .这与普通主机使用不同,需要特殊的编译/链接步骤。你需要:

  • 编译正确的设备架构(必须是 cc3.5 或更高版本)
  • 使用可重定位设备代码链接
  • cublas 中的链接 设备 库(除了 cublas 主机库)
  • CUDA 设备运行时库中的链接
  • 使用 CUDA 10.0 之前的 CUDA 工具包

  • 编译命令行的以下添加应该可以帮助您:
    nvcc -std=c++11 my_program.cu -o my_program.o -lcublas -arch=sm_60 -rdc=true -lcublas_device -lcudadevrt
    以上假设您实际上使用的是正确安装的 CUDA 9.0。 CUBLAS 设备库已被弃用,现在已从较新的 CUDA 工具包中删除(参见 here)。

    关于cuda - `cublasCreate_v2’ 中对 ‘/tmp/tmpxft_0000120b_0000000-10_my_program” 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64113574/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com