由于机器学习的开发需要,记录一下真机开发环境搭建。
首先准备一台带有GTX1050Ti显卡的真机,这个可以说是很low的了,才4G现存,主流机器学习生产环境都是特斯拉K40或者GTX2080Ti了,这个只是我用来搭建临时开发环境用的。其次需要一个启动U盘,用UltraISO制作一个CentOS7.8的启动盘。这样基础环境就准备完成了。
真机安装CentOS和虚拟机安装不太一样,修改BIOS设置U盘启动,在选择安装的页面按tab键,或者e键,将设置信息改成如下:vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quiet,然后Ctrl+V重启才可以正常安装,系统安装的其余内容和虚拟机安装一样,最好选择带GUI版的,装好之后设置一下网络,更新一下yum,安装gcc、kernel-devel,后面安装驱动会用到,此处就略过了。
这里跟安装驱动无关,仅是后续开发需要而已。
yum -y install yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum install docker-ce-
systemctl start docker
systemctl enable docker
docker run hello-world
这里才是正题,先去官网(https://www.geforce.cn/drivers)下载匹配的驱动,根据显卡型号筛选就行,我的是NVIDIA-Linux-x86_64-440.82.run。
查询你的显卡,
lsmod | grep nouveau,会列出你的系统自带显卡信息。
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
yum makecache
yum install nvidia-detect -y
nvidia-detect -v
因为安装NVIDIA官方驱动会和系统自带nouveau驱动冲突,需要禁用自带的nouveau驱动,将系统自带驱动加入黑名单,
vi /etc/modprobe.d/blacklist.conf
blacklist nouveau
options nouveau modeset=0
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
init 3
reboot
service gdm stop
rm -rf /tmp/.X*
uname -r #查询内核版本号,我的是3.10.0-1127.10.1.el7.x86_64
chmod u+x NVIDIA-Linux-x86_64-440.82.run
./NVIDIA-Linux-x86_64-440.82.run --kernel-source-path=/usr/src/kernels/3.10.0-1127.10.1.el7.x86_64
然后就进入安装图形界面了,对于每个选项我是如下选择的:
是否安装32位的,我选择No
是否安装libglvnd ,我选择安装并覆盖
Would you like to run the nvidia-xconfig utility to automatically update your X Configuration file so set the NVIDIA X driver will be used when you restart X?我选择No
等你见到下面内容,就说明安装完成了
nvidia-smi
见到以下内容,说明显卡驱动已完全安装成功
这样,机器学习的基础环境就基本完成了。