【问题标题】:Tensorflow profiling for non-model computations用于非模型计算的 TensorFlow 分析
【发布时间】:2021-08-02 14:40:37
【问题描述】:

我有一个计算,其中包含 for 循环和对 Tensorflow 矩阵算法的调用,例如 tf.lstsq 和带有 tf.map_fn 的 Tensorflow 迭代。我想对此进行分析,看看我在tf.map_fn 和被调用的矩阵算法中获得了多少并行度。

这似乎根本不是围绕神经网络模型训练循环组织的 Tensorflow Profiler 的用例。

有没有办法使用 Tensorflow Profiler 进行任意 Tensorflow 计算,或者在这种情况下使用 NVidia 工具(如 nvprof)?

【问题讨论】:

  • nvprof 不能用于这种用例(它已被弃用,因此取决于您拥有的硬件类型,它无论如何都不会工作)
  • 你有什么推荐的?我在 Linux 上有 NVidia GPU。
  • 您在询问计算 GPU 加速 Python 框架正在实现的并行度。这意味着您需要同时在 Python 解释器、主机二进制文件和 GPU 级别进行检测和分析。这不是传统的 GPU 分析用例,我不知道有任何工具可以做到这一点。 CUDA 工具包当然没有提供任何东西
  • 分析器检测对 CUDA 内核的调用,并与调用 CUDA 库的任何程序一起使用。解释器层在做什么并不重要。 GPU有多忙很重要。在 GPU 上分析矩阵计算是一种传统用例。
  • GPU 有多“忙”与“我得到多少并行度”不同。您获得的并行度是串行计算工作与并行计算工作的比率。如果您想按照问题中的描述进行操作,则需要同时测量两者,即en.wikipedia.org/wiki/Amdahl%27s_law

标签: gpu profiling tensorflow2.0


【解决方案1】:

我发现我正在寻找的 nvprofnvvpnsight 工具可以作为 Conda install of cudatoolkit-dev 使用。用法在this gist 中进行了描述。

【讨论】:

    猜你喜欢
    • 2019-10-08
    • 2018-11-21
    • 2018-11-29
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2017-09-22
    • 2020-10-07
    • 2021-10-02
    相关资源
    最近更新 更多