Sagemaker 实例在训练期间不使用 GPU
Sagemaker Instance not utilising GPU during training
我正在 ml.p3.2xlarge 实例上的 Tensorflow 上训练 Seq2Seq 模型。当我尝试 运行 google colab 上的代码时,每个 epoch 的时间约为 40 分钟。但是在实例上大约需要 5 个小时!
这是我的训练代码
def train_model(train_translator, dataset, path, num=8):
with tf.device("/GPU:0"):
cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=path,
save_weights_only=True,
verbose=1)
batch_loss = BatchLogs('batch_loss')
train_translator.fit(dataset, epochs=num,callbacks=[batch_loss,cp_callback])
return train_translator
我也尝试过不使用 tf.device
命令,我仍然得到相同的时间。我做错了什么吗?
如果您使用的是 SageMaker Notebook 实例。打开终端和 运行 nvidia-smi 查看 GPU 利用率。如果你是 0%,那么你没有使用正确的设备。如果它大于 0% 但离 100% 很远,那么你有一个非 GPU 瓶颈需要处理。
如果您正在使用 SageMaker 训练,请通过 Cloudwatch 指标检查作业的 GPU 使用情况。
我不得不在
的帮助下强制使用 GPU
with tf.device('/device:GPU:0')
如果您在 Tensorflow 估算器中使用 instance_type='local'
的 GPU 实例上使用 Sagemaker 笔记本,它显然默认为 CPU...
我通过设置解决了这个问题:instance_type='local_gpu'
。
我正在 ml.p3.2xlarge 实例上的 Tensorflow 上训练 Seq2Seq 模型。当我尝试 运行 google colab 上的代码时,每个 epoch 的时间约为 40 分钟。但是在实例上大约需要 5 个小时!
这是我的训练代码
def train_model(train_translator, dataset, path, num=8):
with tf.device("/GPU:0"):
cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=path,
save_weights_only=True,
verbose=1)
batch_loss = BatchLogs('batch_loss')
train_translator.fit(dataset, epochs=num,callbacks=[batch_loss,cp_callback])
return train_translator
我也尝试过不使用 tf.device
命令,我仍然得到相同的时间。我做错了什么吗?
如果您使用的是 SageMaker Notebook 实例。打开终端和 运行 nvidia-smi 查看 GPU 利用率。如果你是 0%,那么你没有使用正确的设备。如果它大于 0% 但离 100% 很远,那么你有一个非 GPU 瓶颈需要处理。
如果您正在使用 SageMaker 训练,请通过 Cloudwatch 指标检查作业的 GPU 使用情况。
我不得不在
的帮助下强制使用 GPUwith tf.device('/device:GPU:0')
如果您在 Tensorflow 估算器中使用 instance_type='local'
的 GPU 实例上使用 Sagemaker 笔记本,它显然默认为 CPU...
我通过设置解决了这个问题:instance_type='local_gpu'
。