如何让 pycharm 使用不同的 cuda 工具包
How to make pycharm use a different cuda toolkit
我想在 GPU 中 运行 一个 MXNet module。
我的系统安装了 Ubuntu 18.04 以及 Cuda 10.0。显然这还没有被 MXNet 二进制文件覆盖,所以我专注于 installing 2 cuda versions in my pc (see also here).
无论如何,我现在在我的电脑中的不同文件夹中有 2 个 cuda 工具包。当 运行 来自 PyCharm 时,我需要一种方法来指导我的系统使用 Cuda 9.2。有趣的是,从一个典型的控制台我可以 运行 它很好(当然至少是 MXNet 加载部分)。
在我想要的模块中运行程序卡在:
import mxnet as mx
这导致 MXNet 中的 base.py
:
def _load_lib():
"""Load library by searching possible path."""
lib_path = libinfo.find_lib_path()
lib = ctypes.CDLL(lib_path[0], ctypes.RTLD_LOCAL) # <- This is where is throws the error.
# DMatrix functions
lib.MXGetLastError.restype = ctypes.c_char_p
return lib
奇怪的是,lib_path[0]
刚指向libmxnet.so
的位置(顺便说一下,这是正确的),突然就报错了:
OSError: libcudart.so.9.2: cannot open shared object file: No such
file or directory
即使我按照错误跟踪最后的命令是这样的:
self._handle = _dlopen(self._name, mode)
self._name
与 libmxnet.so
在同一位置。
我试图通过使用
更改系统变量来使其工作
os.environ["LD_LIBRARY_PATH"] = "/usr/local/cuda-9.2/lib64"
作为模块的第二行(第一行当然是 import os
!)但这似乎不起作用。显然已经考虑到了。
那么,我该如何绕过这个呢?
MXNet 端或 pyCharm 端的任何解决方案都是可以接受的。
好吧,为了让面临同样问题的任何人都能使用,我将 post 我的解决方案。
我设法通过在 运行 配置菜单中定义 pycharm 内的环境变量(可从 运行-> 运行... 或 Alt+Shift+F10) 并将其定义为环境变量。
LD_LIBRARY_PATH: /usr/local/cuda-9.2/lib64
我不确定为什么在这种情况下 pycharm 工作正常,而当在代码中定义相同的变量时却没有(欢迎任何解释)。
我想在 GPU 中 运行 一个 MXNet module。
我的系统安装了 Ubuntu 18.04 以及 Cuda 10.0。显然这还没有被 MXNet 二进制文件覆盖,所以我专注于 installing 2 cuda versions in my pc (see also here).
无论如何,我现在在我的电脑中的不同文件夹中有 2 个 cuda 工具包。当 运行 来自 PyCharm 时,我需要一种方法来指导我的系统使用 Cuda 9.2。有趣的是,从一个典型的控制台我可以 运行 它很好(当然至少是 MXNet 加载部分)。
在我想要的模块中运行程序卡在:
import mxnet as mx
这导致 MXNet 中的 base.py
:
def _load_lib():
"""Load library by searching possible path."""
lib_path = libinfo.find_lib_path()
lib = ctypes.CDLL(lib_path[0], ctypes.RTLD_LOCAL) # <- This is where is throws the error.
# DMatrix functions
lib.MXGetLastError.restype = ctypes.c_char_p
return lib
奇怪的是,lib_path[0]
刚指向libmxnet.so
的位置(顺便说一下,这是正确的),突然就报错了:
OSError: libcudart.so.9.2: cannot open shared object file: No such file or directory
即使我按照错误跟踪最后的命令是这样的:
self._handle = _dlopen(self._name, mode)
self._name
与 libmxnet.so
在同一位置。
我试图通过使用
更改系统变量来使其工作os.environ["LD_LIBRARY_PATH"] = "/usr/local/cuda-9.2/lib64"
作为模块的第二行(第一行当然是 import os
!)但这似乎不起作用。显然已经考虑到了。
那么,我该如何绕过这个呢? MXNet 端或 pyCharm 端的任何解决方案都是可以接受的。
好吧,为了让面临同样问题的任何人都能使用,我将 post 我的解决方案。
我设法通过在 运行 配置菜单中定义 pycharm 内的环境变量(可从 运行-> 运行... 或 Alt+Shift+F10) 并将其定义为环境变量。
LD_LIBRARY_PATH: /usr/local/cuda-9.2/lib64
我不确定为什么在这种情况下 pycharm 工作正常,而当在代码中定义相同的变量时却没有(欢迎任何解释)。