【问题标题】:What is redzone_checker? Profiling my tensorflow application on a GPU什么是 redzone_checker?在 GPU 上分析我的 tensorflow 应用程序
【发布时间】:2020-07-04 14:49:32
【问题描述】:

我正在使用 NVIDIA 的命令行 Visual Profiler nvprof 分析一个 tensorflow GPU 应用程序,其中一个已启动并在分析中非常活跃的内核是名为 redzone_checker?我终其一生都无法在互联网上的任何地方找到任何有用的信息来说明这意味着什么......

任何帮助或提示将不胜感激。

redzone_checker kernel in nvprof

【问题讨论】:

  • 我想它会检查你设备的性能容量,即它检查每个周期 IPC 执行的指令等等,如果你的内存不足,它会给你一个 OOM 错误。
  • 例如,如果我想要我的应用程序本身的配置文件,我不会包含与 redzone_checker 相关的那些指标? IE。当我的应用程序在没有可视分析器的情况下运行时,redzone_checker 不存在吗?有什么地方可以阅读更多信息吗?

标签: tensorflow gpu profiling nvprof


【解决方案1】:

redzone_checker 内核在 TensorFlow (v2.3.0) https://github.com/tensorflow/tensorflow/blob/master/tensorflow/stream_executor/gpu/redzone_allocator.cc line 138 中实现

根据代码中的注释,redzone_checker 内核检查 input_buffer 中的每个字节是否等于 redzone_pattern。

对不起,不确定的信息,我猜这个词(redzone)是从内存保护的redzone中带来的。堆栈或全局对象周围的红色区域,用于检测上溢和下溢。

我使用带有 XLA JIT 编译的 nvprof(带有 --print-gpu-trace 选项)mnist 示例(https://www.tensorflow.org/xla)进行了分析,而没有它。 redzone_checker 调用仅显示为具有 XLA JIT 编译的 mnist,但在其他分析结果中没有 redzone_checker 调用。

我的结论是,TensorFlow 提供的内核修改(甚至通过 XLA 编译器优化)会导致调用 redzone_checker 以保护内存。

【讨论】:

    【解决方案2】:

    你可以试试redzone/cuda?eed=0.575x

    frame= 248 fps= 55 q=31.0 size= 256kB time=00:00:02.69 bitrate= 778.7kbits/s speed=0.592x
    frame= 268 fps= 53 q=31.0 size= 256kB time=00:00:03.04 1
    

    【讨论】:

      猜你喜欢
      • 2021-06-07
      • 2019-10-23
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      • 2017-08-13
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      相关资源
      最近更新 更多