Debian Jessie + GCC 4.8 + NVIDIA CUDA 6.5

虽然Debian Jessie的官方库已经提供nvidia-cuda-toolkit这个包。但是,作为为东家赚钱的工具,开源社区很难得到东家的真正支持。目前这个包的版本是6.0,而Nvidia官方提供的CUDA版本已经到了7.0。另外一方面,Nvidia的Tegra K1芯片的开发板Jetson TK-1上仍然在运行6.5版的CUDA。如果你也和我一样希望在移动平台上做并行计算,那么CUDA 6.5是在百般纠结之后的唯一正确选择。

Debian Jessie已经将默认的GCC版本升级到gcc-4.9;而CUDA 6.5的编译器nvcc却只能与gcc-4.8协同工作。所以,又遇到比上一个状况更纠结的问题。

这篇文章就是记录下如何解决这些问题的方法。

第一,从NVIDIA官方下载.run的自解压文件安装CUDA 6.5。下载页面在这里:

https://developer.nvidia.com/cuda-downloads-geforce-gtx9xx

,或者直接使用下面的命令下载

# wget http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.19_linux_64.run -O /tmp/cuda_6.5.19_linux_64.run

下载完成后,运行安装程序:

# chmod +x /tmp/cuda_6.5.19_linux_64.run
# /tmp/cuda_6.5.19_linux_64.run

这个过程中安装程序会提醒系统的gcc版本不能与当前CUDA工具链一起工作,并且中止安装过程。

You are attempting to install on an unsupported configuration. Do you wish to continue? ((y)es/(n)o) [ default is no ]: 

此时只能回答“no”并且退出安装。只有检查安装LOG才能发现NVIDIA的小秘密!那就是,

使用这个参数重新运行安装程序

# /tmp/cuda_6.5.19_linux_64.run --override

安装程序还会询问安装位置,为了避免和debian的包管理冲突,我选择了/opt/nvidia/cuda-6.5。同时,安装程序还会将CUDA的样例代码安装到${HOME}

第二,在Debian Jessie上安装gcc-4.8g++-4.8并在每次编译CUDA代码是将其路径指定给编译程序。步骤如下:

# sudo apt-get install gcc-4.8 g++-4.8
# cd ${HOME}/NVIDIA_CUDA-6.5_Samples/
# GCC=g++-4.8 make

用下面的命令运行最简单的样例代码确认结果。

# ${HOME}/NVIDIA_CUDA-6.5_Samples/bin/x86_64/linux/release/simpleTexture

发表评论