使用optirun在虚拟环境中运行python脚本

时间:2018-07-12 20:46:06

标签: python virtualenv nvidia

如果该工具需要只能通过clickoptirun才能使用的专用GPU,该人如何运行使用虚拟环境和bumblebee之类的库的python工具? >

示例:

#normally (with nvidia driver being the default)
agent --run-with-tf-gpu train

agent脚本触发基于 click 的应用程序,然后使用venv/bin/python二进制文件。

我有一个解决方案(请参阅下面的答案),但我很高兴以“正确答案”来奖励更好的解决方案。

1 个答案:

答案 0 :(得分:0)

选项1:使用包装程序替换二进制文件

p=`pwd`
cd venv/bin
rm python #soft link to python3.6
echo 'optirun $p/venv/bin/python3.6 "$*"' > python
chmod +x python

选项2:创建别名

仅在未使用绝对路径调用python时有效。

venv/bin/activate文件末尾插入以下三行:

#setting optirun to be used when running python in venv
alias python="optirun python"
alias python3="optirun python3"

选项3:在插卡前后打开和关闭

根据arch wiki,以下操作还将全局启用卡,因此人们可以轻松地使用IDE,否则它们将使用绝对路径等执行一些复杂的调用:

tee /proc/acpi/bbswitch <<< ON

现在,当您启动CUDA应用程序时,它将自动加载所有必要的模块。

要在使用CUDA后关闭nvidia卡,请执行以下操作:

rmmod nvidia_uvm
rmmod nvidia
tee /proc/acpi/bbswitch <<< OFF
相关问题