Ubuntu 16.04 上的 Tensorflow 读取器速度变慢

Ubuntu 16.04 上的 Tensorflow 读取器速度变慢

我对 Linux 不是很熟悉,操作系统可能不是问题。

我正在尝试使用 tensorflow,但遇到了瓶颈。我有一个 bash 脚本,可以启动 python 程序,然后使用不同的超参数进行训练。我使用 cuda 7.5 和 cudnn 4 在显卡上进行计算,数据为 tensorflow 格式,我使用 TFReadRecords 作为读取器。

最初一切正常。问题是,在我启动 bash 脚本几个小时后,python 脚本会随机减慢 10-20 倍的速度,通常是在前 3 个 python 脚本中的一个脚本中。

通常情况下,读取数据并将其传输到 GPU 需要大约 50-60% 的 CPU 负载,但在系统监视器中,我注意到它被限制在一个 CPU 核心上(见截图快速地慢的)。

它可以加速(分布在所有 4 个内核上)并再次减速多次。有时它会自行这样做,有时当我打开和关闭程序时它会恢复正常,有时它根本不会再次加速。bash 脚本运行的时间越长,这种情况发生的频率就越高。

我尝试过但没有帮助的方法: - 将 python 脚本、bash 脚本或终端的 nice 值设置为 -20 - 使用 taskset 更改 CPU 亲和性 - 在停止 lightdm 的同时从控制台运行它

任何建议都很好!

答案1

你的 GPU 上有多少内存(最好是它的型号)以及你对问题内存大小有估计吗?

我想知道它是否正在做一些与 GPU 相当的抖动。但它可以从慢速恢复到快速,这表明算法中存在一些问题。这是一个公开可用的程序(比如一个示例程序)还是你自己的程序?这是你尝试或运行的第一个“大型”程序吗?或者你运行过其他程序吗?这些程序可能运行良好。

相关内容