【发布时间】: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())
【问题讨论】:
-
感谢您的回复。 libcudart的原因是设置路径lib。我设置:sudo ln -s /usr/local/cuda/lib64/libcudart.so /usr/lib/libcudart.so sudo ldconfig。然后它不会显示错误。但是 CUDA 错误:初始化仍然显示
标签: python cuda parallel-processing