gpt4 book ai didi

python - CUDA错误: initialization error when using parallel in python

转载 作者:行者123 更新时间:2023-11-30 23:04:21 25 4
gpt4 key购买 nike

我的代码使用 CUDA,但运行速度仍然很慢。因此,我将其更改为使用 python 中的多处理(pool.map)并行运行。但我有CUDA错误:初始化错误

这是函数:

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 相同: enter image description here

这是错误 enter image description here你能帮我解决吗。谢谢。

最佳答案

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

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

因此,在 GPU 中加载网络的 pid 基本上应该使用它。

关于python - CUDA错误: initialization error when using parallel in python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33748750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com