使用optirun的IPython笔记本
我想在一台装有NVIDIA Optimus(bumblebee)的Linux笔记本上,从IPython笔记本运行pycuda。通常,我可以通过输入 optirun python my_pycuda_script.py
来运行一个Python脚本。
但是,如果我先输入 optirun ipython notebook
启动IPython笔记本,然后再打开一个笔记本,新的内核就会启动,这样我就无法再运行pycuda了。我发现,如果我把Python可执行文件替换成一个调用 optirun new_location_of_python
的脚本,这样是可以工作的——但这听起来有点麻烦。有没有更好的办法呢?也许可以用一个魔法函数,让只有相关的笔记本用optirun启动?
谢谢大家的帮助!
1 个回答
4
我刚刚在github:data_science_workspace上找到了解决方案。
关于Jupyter的GPU支持:
如果你的电脑是Linux系统,并且使用了Optimus技术,你需要创建一个内核,这样才能通过“optirun”来使用GPU加速。首先,进入以下文件夹:
cd ~/.local/share/jupyter/kernels/
然后编辑文件
python3/kernel.json
,在argv
数组的第一项添加"optirun"
:
{
"language": "python",
"display_name": "Python 3",
"argv": [
"optirun",
"/home/fabien/.conda/envs/data_science/bin/python",
"-m",
"ipykernel",
"-f",
"{connection_file}"
]
}
不过在我的电脑上,kernel.json
文件在:~/miniconda3/envs/nn/share/jupyter/kernels/python3
这个路径下。
我的conda信息:
$ conda info
user-agent : conda/4.3.30 requests/2.14.2 CPython/3.6.1 Linux/4.9.79-1-MANJARO arch/Manjaro glibc/2.26
希望这对你有帮助 :-).