昨天将cuda-6.5安装到我的ubunutu14.04。我按照cuda's getting started guide中所述的步骤进行操作。检查系统要求和我的确定。是否已预安装,已卸载以前安装的cuda,以及已安装的软件包管理器安装。所有这些步骤都成功完成。我跳过了步骤runfile安装和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'
`
。在this link我看到它可以被忽略。但我不想忽视这个消息。我使用cuda-5.5编译工具编译了这个simpleCuda.cu,并在不同的计算机上设置了相同的编译参数。它没有给我任何关于架构链接的警告信息(-arch = sm_35)。我想摆脱这个警告信息。我发布的这个特定代码不需要这些编译参数,但我还需要它们。我感谢你的帮助。
答案 0 :(得分:0)
这显然是一个工具链限制,已在CUDA 7生产版本中得到纠正。
[这个答案是根据评论汇总的,以便从CUDA标签的未答复队列中解决问题]