我在tensorflow中在GPU上运行典型的5层卷积网络。当我在快速的1080 TI GPU上运行时,我获得了大约35%的GPU利用率。在速度较慢的M40上,我获得了80%的利用率,在970m移动GPU上获得了97%的利用率。
我已经实施了tf.StagingArea GPU队列,并且在每个训练步骤之前已经通过警告消息确认StagingArea不为空,它是异步进给的。
我已经运行了如下所示的张量流分析器。值得注意的是,GPU上的主要操作似乎在15ms内完成,但是在15ms到40ms之间存在差距,而探测器没有注册任何内容。在40ms时,会出现三个与优化器相关的小CPU操作(全局步骤更新)。
此行为在每一步都是一致的。
知道为什么会出现这样的延迟吗?
答案 0 :(得分:2)
在英特尔VTune放大器的帮助下,有一种方法可以确定该区间内CPU的情况(该工具不是免费的,但有免费的全功能学术版和试用版)。您可以使用this article中的配方将时间线数据导入Intel VTune Amplifier并在那里进行分析。您将需要帧域/源功能分组。展开[无框架域 - 任何框架外]行,您将获得您感兴趣的区间内发生的热点列表。