使用optirun的IPython笔记本

7 投票
1 回答
962 浏览
提问于 2025-04-18 10:06

我想在一台装有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

希望这对你有帮助 :-).

撰写回答