【问题标题】:CUDA ERROR: initialization error when using parallel in pythonCUDA ERROR:在 python 中使用并行时的初始化错误
【发布时间】:2016-02-18 08:10:33
【问题描述】:

我将 CUDA 用于我的代码,但它仍然运行缓慢。因此,我将其更改为在 python 中使用多处理(pool.map)并行运行。但我有CUDA ERROR: initialization error

这是函数:

def step_M(self, iter_training):
    gpe, e_tuple_list = iter_training
    g = gpe[0]
    p = gpe[1]
    em_iters = gpe[2]

    e_tuple_list = sorted(e_tuple_list, key=lambda tup: tup[0])
    data = self.X[e_tuple_list[0][0]:e_tuple_list[0][1]]
    cluster_indices = np.array(range(e_tuple_list[0][0], e_tuple_list[0][1], 1), dtype=np.int32)
    for i in range(1, len(e_tuple_list)):
        d = e_tuple_list[i]
        cluster_indices = np.concatenate((cluster_indices, np.array(range(d[0], d[1], 1), dtype=np.int32)))
        data = np.concatenate((data, self.X[d[0]:d[1]]))

    g.train_on_subset(self.X, cluster_indices, max_em_iters=em_iters)
    return g, cluster_indices, data

这里代码调用:

pool = Pool()
iter_bic_list = pool.map(self.step_M, iter_training.items())

iter_training 相同:

这是错误 你能帮我修一下吗。谢谢。

【问题讨论】:

  • 感谢您的回复。 libcudart的原因是设置路径lib。我设置:sudo ln -s /usr/local/cuda/lib64/libcudart.so /usr/lib/libcudart.so sudo ldconfig。然后它不会显示错误。但是 CUDA 错误:初始化仍然显示

标签: python cuda parallel-processing


【解决方案1】:

我意识到这有点老了,但我遇到了同样的问题,在我的情况下在芹菜下运行时:

syncedmem.cpp:63] Check failed: error == cudaSuccess (3 vs. 0)  initialization error

从 prefork 切换到基于 eventlet 的池已解决该问题。您的代码可以更新为:

from eventlet import GreenPool
pool = GreenPool()
iter_bic_list = list(pool.imap(self.step_M, iter_training.items()))

【讨论】:

  • 我遇到了同样的错误。我没有使用 Pool 而是 multiprocessing.Process 我该怎么办?
【解决方案2】:

我发现这是 cuda 为进程 ID 放置互斥锁的问题。 因此,当您使用 multiprocessing 模块时,会产生另一个具有单独 pid 的子进程。由于 GPU 的互斥锁,它无法访问。

我发现正在使用的一个快速解决方案是使用线程模块而不是多处理模块。

所以基本上在 gpu 中加载网络的 pid 应该使用它。

【讨论】:

  • 这对五年后的 tensorflow 2.6.0 有帮助。谢谢!
【解决方案3】:

试试

sudo ldconfig /usr/local/cuda/lib64

【讨论】:

  • 命令 ldconfig 是修复 libcudart。因为它看不到路径。你能帮我解决 CUDA ERROR: 初始化错误吗?
  • 您可以尝试进入 NVIDIA_samples/1_utilities/deviceQuery 并运行。 /设备查询?你看到了什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-09
  • 2012-12-31
  • 1970-01-01
  • 2021-05-27
  • 2014-03-01
  • 1970-01-01
相关资源
最近更新 更多