如何使pycharm使用不同的cuda工具包

问题描述 投票:0回答:1

我想在GPU中运行MXNet module

我有一个系统,安装了Cuda 10.0的Ubuntu 18.04。显然MXNet二进制文件还没有涵盖这一点,所以我专注于我的电脑中的installing 2 cuda versions(另请参阅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:无法打开共享对象文件:没有这样的文件或目录

即使我按照错误跟踪,最后一个命令是这样的:

self._handle = _dlopen(self._name, mode)

self._namelibmxnet.so相同的位置。

我试图通过更改系统变量使其工作

os.environ["LD_LIBRARY_PATH"] = "/usr/local/cuda-9.2/lib64"

作为模块的第二行(第1行当然是import os!)但这似乎不起作用。显然它被考虑在内。

那么,我该如何绕过这个呢?在MXNet端或pyCharm端可以接受任何解决方案。

python pycharm mxnet
1个回答
0
投票

好吧,为了让任何面临同样问题的人可以使用它,我将发布我的解决方案。

我设法通过在运行配置菜单中定义pycharm中的环境变量(它可以从Run-> Run ...或Alt + Shift + F10中获得)并在那里将其定义为环境变量。

LD_LIBRARY_PATH:/usr/local/cuda-9.2/lib64

我不确定为什么在这种情况下pycharm工作正常,而在代码中定义相同的变量时它不会(任何解释欢迎)。

© www.soinside.com 2019 - 2024. All rights reserved.