我想使用两个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()
现在的问题是为每个线程设置不同的值环境变量。这个问题有什么解决方案吗?