什么是 redzone_checker?在 GPU 上分析我的张量流应用程序

jak*_*aly 5 profiling gpu nvprof tensorflow

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

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

nvprof 中的 redzone_checker 内核

小智 0

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

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

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

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

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