CUDA nvlink 警告:未找到 SM 拱门("sm_35")
CUDA nvlink warning : SM Arch ('sm_35') not found
昨天将 cuda-6.5 安装到我的 ubunutu14.04 上。我按照 cuda 入门指南中所述的步骤进行操作。检查系统要求,我的还可以。进行了预安装,卸载了以前安装的cuda,并安装了软件包管理器安装。所有这些步骤都已成功执行。我跳过了步骤运行文件安装和手臂上的 croos-build 环境。在[安装后操作][2]步骤中,添加了
export PATH=/usr/local/cuda-6.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH
这些行到 .profile 文件。我通过运行命令sudo apt-get install cuda-drivers
将驱动程序升级到最新的可用驱动程序。还验证了我是否安装了正确的驱动程序。重新启动我的计算机,vaulla cuda-6.5 已成功构建。但是当我编译我的 simpleCuda.cu 文件
#include <stdio.h>
#include <cuda.h>
#include<iostream>
#include <thrust/device_vector.h>
#include <thrust/logical.h>
#include <thrust/functional.h>
#include <cassert>
#include <cublas_v2.h>
using namespace std;
int main(){
float* dev,host;
cudaError_t stat = cudaMalloc((void**)&dev,10*sizeof(float));
cout << "stat " << stat << endl;
return 0;
}
设置nvcc -arch=sm_35 -rdc=true -lcublas -lcublas_device -lcudadevrt -o my simpleCuda.cu
编译参数后,我收到警告消息
nvlink warning : SM Arch ('sm_35') not found in '/usr/local/cuda-6.5/bin/../targets/x86_64-linux/lib/libcublas_device.a:maxwell_sgemm.asm.o'
nvlink warning : SM Arch ('sm_35') not found in '/usr/local/cuda-6.5/bin/../targets/x86_64-linux/lib/libcublas_device.a:maxwell_sm50_sgemm.o'
'
.在此链接中,我看到可以忽略它。但我不想忽略这个消息。我使用 cuda-5.5 编译工具在不同计算机上设置的相同编译参数编译了此 simpleCuda.cu。它没有给我任何关于架构链接的警告消息(-arch=sm_35)。我想摆脱此警告消息。这些编译参数对于我发布的这个特定代码不是必需的,但进一步我需要它们。我感谢您的所有帮助。
这显然是一个工具链限制,在 CUDA 7 生产版本中得到了纠正。
[此答案是根据评论收集的,目的是将问题从 CUDA 标签的未回答队列中移除]