当我通过os.environ["CUDA_VISIBLE_DEVICES"]="1"
限制GPU并加载如下所示的训练模型时,tacotron1.15.5[horovod]加载模型到所有具有相同进程ID的GPU(8)。GPU内存使用率
有人遇到过像我这样的问题吗?我认为这与版本问题有关。
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
config.allow_soft_placement = True
self.session = tf.Session(config=config)
Tensorflow 1.15.5
Cuda : 11.0
driver version 450.172.01
你可以在Tensorflow v2.x中做到这一点。因为TF v1。x不积极支持,你可以使用TF v2.8.0。
如果您希望在您选择的设备上运行特定的操作,而不是自动为您选择的操作,您可以使用tf.device
创建一个设备上下文,该上下文中的所有操作将在同一指定设备上运行。
import tensorflow as tf
tf.debugging.set_log_device_placement(True)
# Place tensors on the GPU
with tf.device('/GPU:0'):
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
# Run on the GPU
c = tf.matmul(a, b)
print(c)
Executing op _EagerConst in device /job:localhost/replica:0/task:0/device:GPU:0
Executing op _EagerConst in device /job:localhost/replica:0/task:0/device:GPU:0
Executing op MatMul in device /job:localhost/replica:0/task:0/device:GPU:0
tf.Tensor(
[[22. 28.]
[49. 64.]], shape=(2, 2), dtype=float32)