基于GPU深度学习引发的血案
黄健  |  2023-01-20  |  科学网  |  319次阅读

最近在MagicBook2019笔记本电脑上,陆续把下学期上课需要秀一秀的PDL、Eclipse、EPIC、EGit、BioPerl等都安装配置好了。其实,这些东东以前也是好不容易才全折腾好的,几个月前系统崩溃,新安装了Ubuntu22.10,所以得全部重来。几个月前系统崩溃,一直不明就里,但大抵是这样。我此前体验的深度学习都是基于CPU的,正好这日常办公用的笔记本电脑有个英伟达GeForce MX250的GPU,感觉闲置可惜,于是想体验一下基于GPU的深度学习,所以尝试安装CUDA。安装中自动下载了很多包,但在最后因为系统警告, 就在选项中选择了放弃。可能隐患就此埋下。某天,系统自动更新重启后崩溃,无法启动,各种报错,一度怀疑主板、内存、硬盘等。最后发现主板BIOS虽然有些问题,但关键还是无法引导启动。当时做了最新的了Ubuntu22.10启动盘,挽救了重要文件后,重装系统。所以有了后续的各种安装与配置。

这才好了没多久,前几天又觉得GeForce MX250闲置可惜。一查看,安装Ubuntu22.10系统时已安装了相应驱动,nvidia-smi命令显示NVIDIA-SMI 515.65.01;Driver Version: 515.65.01;CUDA Version: 11.7等等。但nvcc命令提示找不到命令 “nvcc”,但可以通过以下软件包安装它:sudo apt install nvidia-cuda-toolkit。于是执行该命令,各种依赖性分析下载安装。完毕后输入nvcc命令后显示:

nvcc: NVIDIA (R) Cuda compiler driver
   Copyright (c) 2005-2021 NVIDIA Corporation
   Built on Thu_Nov_18_09:45:30_PST_2021
   Cuda compilation tools, release 11.5, V11.5.119
   Build cuda_11.5.r11.5/compiler.30672275_0 

说明,CUDA Toolkit也安装成功了。但奇怪的是,nvidia-smi被卸载了,MX250的驱动没了,nvidia-smi与nvcc似乎汉曹不两立啊。这还没什么,最让我隐隐有一些不祥的预感的是sudo apt install nvidia-cuda-toolkit命令执行到最后的信息是:

Generating grub configuration file ...
   Found linux image: /boot/vmlinuz-5.19.0-29-generic
   Found initrd image: /boot/initrd.img-5.19.0-29-generic
   Found linux image: /boot/vmlinuz-5.19.0-26-generic
   Found initrd image: /boot/initrd.img-5.19.0-26-generic
   Found linux image: /boot/vmlinuz-5.19.0-23-generic
   Found initrd image: /boot/initrd.img-5.19.0-23-generic
   Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting
   Warning: os-prober will not be executed to detect other bootable partitions.
   Systems on them will not be added to the GRUB boot configuration.
   Check GRUB_DISABLE_OS_PROBER documentation entry.
   Adding boot menu entry for UEFI Firmware Settings ...
   done

这不是在修改我的grub配置文件了吗?!由于命令一切顺利,也没有给任何警告信息,所以心存侥幸,没有及时备份就重启了。结果又悲剧了,和上次一样,无法启动了。整个人都不好了。由于在山脚下,很多设施没有在身边,只好搬出键盘几乎失效的十年前的笔记本电脑,下载UNetbootin和Ubuntu22.10光盘镜像文件,重新制作Ubuntu22.10启动U盘。没想到老婆学院院庆她所在学院某院友公司发的U盘是其实难副的压缩盘,失败。赶快网上订购了支持USB3.0容量为512G的U盘。快春节了,物流比平日慢了好多,昨天中午一到,成功制作Ubuntu22.10启动U盘。设置BIOS,优先从U盘启动,选择try Ubuntu,然后把笔记本电脑的重要文件备份到U盘。好在这一次比较冷静,仔细思考了一下,觉得只要修复grub即可,不用再重装系统。于是搜索网络,看到2016年一篇名为How to repair Ubuntu if it won't boot的文章。按照其中做法,直接在U盘启动的try Ubuntu系统里启动命令行终端,依次输入命令sudo add-apt-repository ppa:yannubuntu/boot-repair、sudo apt-get update、sudo apt-get install boot-repair,在启动U盘里安装了boot-repair。然后输入boot-repair命令,启动该程序,选择Recommended repair......再次启动电脑,多了几个选项。经过多次尝试,发现默认的也是最新的5.19.0-29-generic问题依旧,但可选择前一个版本5.19.0-26-generic顺利启动进入系统。然后sudo apt install nvidia-driver-515、sudo apt install nvidia-driver-515。终于nvidia-smi回来了,但nvcc被卸载了。重新启动,默认选项即可顺利进入系统。真是山重水复疑无路、柳暗花明又一村。

感悟有三:1、教学办公用电脑最好与科研实验用电脑分开;2、有备无患不要拖拉,得赶快制作工作电脑的镜像备份了;3、完美主义造成各种问题从而推动进步。




文章原载于作者的科学网文章,所述内容属作者个人观点,不代表本平台立场。
本文经过系统重新排版,阅读原内容可点击 阅读原文