在老旧的CentOS 6.6系统上安装CUDA(Compute Unified Device Architecture)是一项具有挑战性的任务,主要源于其较旧的内核、GCC版本和库环境,对于维护特定生产环境或进行兼容性测试的场景,这一操作仍有其必要性,本文将提供一个详尽、清晰的安装指南,帮助您在CentOS 6.6上成功搭建CUDA开发环境。
安装前的准备工作
在进行任何安装操作之前,充分的准备是确保过程顺利的关键,错误的准备往往会导致安装失败或系统不稳定。
需要明确的是,CentOS 6.6已经停止了官方支持,因此无法直接使用最新的CUDA版本,经过测试,与该系统兼容性较好的CUDA版本是CUDA 7.5或CUDA 8.0,本文将以CUDA 8.0为例进行讲解。
系统与硬件检查
确认您的系统是CentOS 6.6,可以通过以下命令查看:
cat /etc/redhat-release
确认您拥有一块支持CUDA的NVIDIA显卡,您可以在NVIDIA官方网站查询您的显卡型号是否在支持列表中。
安装必要的依赖包
CUDA的安装和运行依赖于一些系统开发工具和库,请使用yum
命令安装它们,由于CentOS 6的官方源可能已失效,您可能需要配置Vault源或使用第三方镜像源。
依赖包名称 | 作用 |
---|---|
kernel-devel | 编译NVIDIA驱动模块所必需的内核头文件 |
gcc | C语言编译器,用于编译CUDA示例和内核模块 |
dkms | Dynamic Kernel Module Support,简化内核模块管理 |
执行以下命令进行安装:
sudo yum groupinstall "Development Tools" sudo yum install kernel-devel-$(uname -r) dkms
注意: kernel-devel-$(uname -r)
确保安装的内核开发包与当前运行的内核版本完全一致,这是驱动安装成功的关键。
下载安装文件
从NVIDIA开发者官网的归档区域下载对应CUDA 8.0的安装包,选择.run格式的文件,因为它提供了最大的灵活性,您需要下载两个文件:
- CUDA Toolkit的
.run
安装文件(cuda_8.0.61_375.26_linux.run
)。 - 对应版本的NVIDIA显示驱动(虽然CUDA安装包内包含驱动,但单独下载并安装最新版通常是更好的实践)。
将下载的文件放置在一个易于访问的目录中,例如~/Downloads
。
详细安装步骤
准备工作就绪后,我们开始核心的安装过程,整个过程分为禁用默认驱动、安装NVIDIA驱动、安装CUDA工具包和配置环境变量四个主要阶段。
禁用 Nouveau 开源驱动
CentOS默认使用名为nouveau
的开源NVIDIA驱动,它会与官方NVIDIA驱动产生冲突,必须在安装前将其禁用。
创建一个配置文件:
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nouveau.conf" sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nouveau.conf"
备份当前的initramfs
并重新生成:
sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak sudo dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
完成后,重启系统:
sudo reboot
重启后,验证nouveau
是否已被禁用,如果执行lsmod | grep nouveau
没有任何输出,则说明禁用成功。
安装 NVIDIA 驱动
重启进入系统后,我们需要切换到文本模式来安装驱动,以避免图形界面的干扰。
sudo init 3
登录后,进入存放驱动文件的目录,并赋予执行权限:
cd ~/Downloads chmod +x NVIDIA-Linux-x86_64-*.run
执行安装程序:
sudo ./NVIDIA-Linux-x86_64-*.run
按照屏幕提示操作,通常接受许可协议,选择“是”安装32位兼容库,并让安装程序自动配置Xorg,安装完成后,重启系统:
sudo reboot
重启后,打开终端,运行nvidia-smi
命令,如果看到一个显示GPU信息、驱动版本和CUDA版本的表格,那么恭喜您,NVIDIA驱动已成功安装。
安装 CUDA Toolkit
现在可以安装CUDA工具包了,再次进入文本模式(虽然不是必须,但推荐):
sudo init 3
运行CUDA安装程序:
sudo ./cuda_8.0.61_375.26_linux.run
在安装过程中,请注意以下选项:
- 阅读并接受EULA(用户许可协议)。
- 当提示是否安装附带的NVIDIA驱动时,请选择“否”,因为我们已经安装了更新的独立驱动。
- 选择安装CUDA Toolkit。
- 选择安装CUDA Samples(可选,但推荐用于验证)。
- 确认安装路径,通常默认为
/usr/local/cuda-8.0
。
配置环境变量
为了让系统能够找到CUDA相关的库和可执行文件,需要配置环境变量,编辑用户的shell配置文件(如~/.bashrc
):
vi ~/.bashrc
在文件末尾添加以下两行:
export PATH=/usr/local/cuda-8.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
保存并退出后,执行以下命令使配置立即生效:
source ~/.bashrc
安装验证
最后一步是验证整个CUDA环境是否配置正确。
验证驱动和工具包
再次运行nvidia-smi
,确认驱动正常运行,可以检查nvcc
(NVIDIA CUDA编译器)的版本:
nvcc -V
该命令应返回CUDA 8.0的版本信息。
编译并运行示例程序
CUDA Samples是最好的验证方式,进入Samples目录并编译:
cd ~/NVIDIA_CUDA-8.0_Samples/ make
编译过程可能需要一些时间,完成后,进入一个具体的示例程序目录,例如deviceQuery
:
cd bin/x86_64/linux/release/ ./deviceQuery
如果程序最后输出“Result = PASS”,则表示您的CUDA环境已经完全搭建成功,GPU可以被正常调用。
相关问答 (FAQs)
问题1:CentOS 6.6 应该安装哪个版本的 CUDA?为什么不能安装最新版?
解答: 强烈建议安装CUDA 7.5或CUDA 8.0版本,主要原因在于系统环境的兼容性,CentOS 6.6默认搭载的GCC版本是4.4.7,而较新的CUDA版本(如9.0及以上)通常要求GCC 4.8或更高版本,强行安装新版本CUDA会导致编译器不兼容,无法编译CUDA代码,新版本CUDA对glibc等核心C库也有更高的要求,CentOS 6.6的库版本过低,无法满足,选择与系统原生工具链匹配的旧版CUDA是唯一可行的方案。
问题2:安装后执行 nvidia-smi
提示命令未找到或失败,怎么办?
解答: 这是一个常见问题,可以从以下几个方面排查:
- 驱动安装失败:最可能的原因是NVIDIA驱动没有正确安装,请重启到文本模式(
init 3
),重新运行驱动的.run
安装文件,并仔细查看安装过程中的日志输出,看是否有错误信息,确保nouveau
驱动已被彻底禁用。 - 内核版本不匹配:检查您安装的
kernel-devel
包版本是否与uname -r
显示的当前内核版本完全一致,如果不一致,驱动模块将无法编译,导致驱动加载失败。 - PATH环境变量问题:如果提示“命令未找到”,可能是
/usr/bin
不在您的PATH环境变量中,但这很少见,更常见的是驱动程序本身没有安装到系统路径中,重新安装驱动通常可以解决此问题。 - X服务冲突:在某些情况下,图形服务可能会干扰驱动,确保在安装驱动时已完全退出图形界面(通过
init 3
)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复