我的ubuntu18,睡眠唤醒后,gpu通讯会出现问题。因此我写了一个脚本,唤醒后执行。就可以继续我的gpu实验了。如果nvidia_uvm被占用的话,还需要停止占用内核的jupyter notebook。
重新加载cuda驱动
(py37)
dn@SSD-Panson:~$ cat 10_resume_from_sleep.sh
#
应对ubuntu睡眠唤醒后无法与gpu通讯的问题
echo
'lsmod'
echo
'is nvidia_uvm in use?'
lsmod|grep
nvidia
echo
''
sudo
rmmod nvidia_uvm
echo
'rmmod success'
sudo
modprobe nvidia_uvm
echo
'modprobe success'
既然这样,可不可添加ubuntu18的唤醒自动化处理脚本中,这样我就不用每次调用这个脚本了呢?
作为兴趣,我觉得可以探究ubuntu的睡眠唤醒的自动化脚本。
查找了很多资料,以下的方法,在我的ubuntu18中并没有什么效果。但是我却得到了立刻睡眠的方法。
后续的操作,我并没有重启我的ubuntu18.04.我研究了pm-utils工具,但是好像他脱离了我的主要目标。因此我先将这个问题放在这里,希望得到有志之士的解答。我得回去继续处理我的twitter数据集了。
ubuntu睡眠的方法,桌面会话
根据ubuntu18怎样休眠这篇文章,先进入锁屏界面,也可以睡眠。或长按电源键,也可以休眠。这篇文章使用来关闭休眠功能的。对于自己家的电脑,我还想让它省点电。
pm-utils并没有解决问题
pm-utils 并没有起作用。下午我从睡眠唤醒了。没有执行脚本。
(py37) dn@SSD-Panson:/usr/lib/pm-utils/sleep.d$ cat nvidia-reload
#! /bin/sh
# Workaround for not working nvidia cuda after suspend
case $1 in
resume|thaw)
sudo rmmod nvidia_uvm
sudo modprobe nvidia_uvm
# echo 'resume' > /home/dn/resume_status
echo "$1 from $(date)" > /home/dn/resume_status
echo "have sudo modprobe nvidia_uvm" >> /home/dn/resume_status
;;
hibernate|suspend)
echo "$1 at $(date)" > /home/dn/hibernate_status
;;
esac
(py37) dn@SSD-Panson:/usr/lib/pm-utils/sleep.d$ ls -l nvidia-reload
-rwxrwxr-x 1 root root 199 11月 20 20:07 nvidia-reload
后续,也许需要研究pm-utils工具,但是这个工具太旧了。以此为入口吧。