- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 TensorFlow 模型,它被编译为 XLA,用于一些 Graphcore IPU。出于调试目的,我试图将 XLA 图转储到 .dot 文件中,以便在我的浏览器中将其可视化。
为此,我使用以下标志:
--xla_dump_to=/mnt/data/perf_prof_5/xla_dump --xla_dump_hlo_as_dot --xla_dump_hlo_pass_re=forward-allocation --xla_hlo_graph_sharding_color
ipu.compile
指令)。
最佳答案
XLA 转储是 TensorFlow 原生功能。它为每个图转储一个文件。生成的图表数量取决于生成的 TensorFlow 到 XLA 到 HLO 模块的数量。这一般可以从sess.run
的数量来预测。调用您制作的不同图表。例如,如果您的程序包含变量初始化,那么该初始化将被编译为单独的 XLA 图,并在转储时显示为单独的图。如果您的程序创建了一个报告操作,那么它也将被编译为一个单独的 XLA 图。
通常,ipu_compiler.compile
强制编译成单个 XLA 图。如果你不使用 ipu_compiler.compile
, native XLA 调度程序将在其认为合适的时候组合或拆分 TensorFlow 图的各个部分,创建许多 XLA 图 - 这就是为什么在不使用 ipu_compiler.compile
时会看到更多图被转储的原因。 .
注意 :不能保证您编译的操作只会生成一个 XLA 图。有时,其他人会被制造出来,例如用于类型转换。
至于命名,可以分解如下:module_XXXX.YYYY.IPU.after_allocation-finder.before_forward-allocation.dot
我们总是有一个 module_ 前缀,这只是为了表明这是一个 HLO 模块的图。
第一个 XXXX 是 HLO 模块的唯一 ID。不能保证 ID 之间的间距,只是它们是唯一的并且是递增的。
要理解名称的其余部分 - YYYY.IPU.......dot - 我们需要了解 XLA 图由多个不同的 HLO channel 操作,每个 channel 通过优化、改组或以其他方式重写 XLA 图来修改它.在这些通过之后,该图然后降低到杨树。有一些 TensorFlow 原生的 HLO 通行证,还有一些 IPU 特定的通行证。转储 XLA 图时,我们可以通过提供参数 -- xla_dump_hlo_pass_re=XXX
在任何 HLO 传递之前和之后渲染 XLA 图(例如,查看传递对图的影响)。 ,其中 XXX 是正则表达式,描述了您想要的通行证。然后,TensorFlow 将在每次匹配该正则表达式(按其名称)之前和之后渲染 XLA 图。例如,如果您想查看涉及 while 循环的每个 XLA HLO IPU 传递的效果,您可以使用 xla_dump_hlo_pass_re=*While*
.最后,数字 YYYY 是与生成这些图的顺序相关的 ID,并且在呈现图时,图“介于”之间的 channel 被附加到文件名中。
如果转储 XLA,则始终呈现“before_optimizations”图。
不幸的是,没有正式的方法可以知道哪个 XLA 图是您的主程序,因为唯一 id 有点随意,每个 XLA 图内容的重要性是用户的默认知识。可能最接近的近似值可能是文件或视觉尺寸 - 主程序 XLA 图形应该比其他图形大得多。作为一种粗略的方式,您可以在主图中包含一个非常具体的操作并在 XLA 图中搜索它。
关于python-3.x - 从面向 Graphcore IPU 的 TensorFlow 程序转储 XLA 图时,哪些转储文件包含该图,名称是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61504515/
我试过运行 Graphcore 的 GitHub 代码示例之一,Tensorflow simple replication one跟随自述文件 --replication-factor 16 ,并抛出
为什么我指定 ipu4 和 ipu4_ex 都像下面的命令一样在 docker 中使用 ipu 设备? docker run --device=/dev/**ipu4**:/dev/ipu4 --de
为什么我指定 ipu4 和 ipu4_ex 都像下面的命令一样在 docker 中使用 ipu 设备? docker run --device=/dev/**ipu4**:/dev/ipu4 --de
我正在尝试使用 Graphcore 的 PopART framework 实现一个基本的流水线模型(Poplar API 的一部分)来加速我的模型,该模型被拆分到多个处理器上。 我正在关注他们的 ex
我有一个 TensorFlow 模型,它被编译为 XLA,用于一些 Graphcore IPU。出于调试目的,我试图将 XLA 图转储到 .dot 文件中,以便在我的浏览器中将其可视化。 为此,我使用
我是一名优秀的程序员,十分优秀!