我正在运行大型模型(774M)的 GPT-2 代码。它用于通过 interactive_conditional_samples.py 生成文本样本,链接:这里
所以我给出了一个输入文件,其中包含自动选择生成输出的提示。此输出也会自动复制到文件中。简而言之,我不是在训练它,我是在使用模型来生成文本。另外,我使用的是单个 GPU。
我面临的问题是,代码没有充分利用 GPU。
通过使用 nvidia-smi 命令,我可以看到下图
我正在运行大型模型(774M)的 GPT-2 代码。它用于通过 interactive_conditional_samples.py 生成文本样本,链接:这里
所以我给出了一个输入文件,其中包含自动选择生成输出的提示。此输出也会自动复制到文件中。简而言之,我不是在训练它,我是在使用模型来生成文本。另外,我使用的是单个 GPU。
我面临的问题是,代码没有充分利用 GPU。
通过使用 nvidia-smi 命令,我可以看到下图
这取决于您的应用程序。在较小的情况下,GPU 利用率较低并不罕见batch_size
。尝试增加batch_size
GPU 利用率以提高 GPU 利用率。
在你的情况下,你已经batch_size=1
在你的程序中设置了。将batch_size
增加到更大的数字并验证 GPU 利用率。
让我解释一下使用 MNIST 大小的网络。它们很小,很难为它们实现高 GPU(或 CPU)效率。更大的批大小将获得更高的计算效率,这意味着您每秒可以处理更多示例,但您也会获得较低的统计效率,这意味着您需要处理更多示例才能达到目标准确度。所以这是一个权衡。对于微小的字符模型,在 batch_size=100 后统计效率会迅速下降,因此可能不值得尝试增加批量大小进行训练。对于推理,您应该使用尽可能大的批量。
希望这能回答你的问题。快乐学习。