在python中将两个独立的GPU分配给不同的线程?

时间:2017-11-28 11:21:19

标签: python gpu multi-gpu

我想使用两个python源代码,第一个使用tensorflow开发,另一个使用pythorch开发。我想在一个带有单独GPU的线程中运行这些代码中的每一个。两个代码的输入是相同的,并且当两个代码的结果准备好时有一些后处理。

我无法使用tf.device,因为它在初始化时获得了所有可用的GPU,并且我必须使用CUDA_VISIBLE_DEVICES环境变量。可以通过在python中设置CUDA_VISIBLE_DEVICES来选择GPU访问。

os.environ["CUDA_VISIBLE_DEVICES"] = "Accessible_GPUs"

但不幸的是,似乎CUDA_VISIBLE_DEVICES无法使用线程:

os.environ["CUDA_VISIBLE_DEVICES"] = "2"
Thread(target = method_from_code1).start()
os.environ["CUDA_VISIBLE_DEVICES"] = "3"
Thread(target = method_from_code2).start()

现在的问题是为每个线程设置不同的值环境变量。这个问题有什么解决方案吗?

0 个答案:

没有答案