【问题标题】:Run python scripts in virtual environment using optirun使用 optirun 在虚拟环境中运行 python 脚本
【发布时间】:2018-07-12 20:46:06
【问题描述】:
如果该工具需要仅通过bumblebee 或optirun 提供的专用GPU,那么如何运行使用虚拟环境和库(如click)的python 工具?
例子:
#normally (with nvidia driver being the default)
agent --run-with-tf-gpu train
agent 脚本触发基于 click 的应用程序,然后使用 venv/bin/python 二进制文件。
我有一个解决方案(请参阅下面的答案),但我很高兴用“正确答案”奖励一个更好的解决方案
【问题讨论】:
标签:
python
virtualenv
nvidia
【解决方案1】:
选项 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