问题标签 [tensorflow-xla]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
281 浏览

tensorflow - 在运行时更改 TensorFlow 操作设备的位置?

据我所知,TensorFlow 的设计目的是在单个tf.Session.run(). 是否有一个已知的理想位置来插入代码以即时更改操作设备的位置?

我知道 python 级别的静态方法,但我正在寻找 C++ 级别的东西,以便我可以做类似于负载平衡的事情。

例如,假设我希望 TensorFlow 以交替的方式调度 CPU 和 GPU 的操作(我知道这不太理想)。我如何在运行时执行此操作,以便解决操作依赖性并安排更多操作,将操作的环境更新为不同的设备?这是否最好在操作启动之前使用DeviceMgr为给定操作的环境更改执行设备来完成ExecutorState::Process(TaggedNode tagged_node, int64 scheduled_usec)(第 1651 行executor.cc)?还是我误解了何时计划通过 XLA 执行操作以及我可以更改设备放置的最晚时间是什么时候?

0 投票
3 回答
2757 浏览

tensorflow - TensorFlow Conv2D 实现?

我试图找到实际 Conv2D 操作的实现在哪里,以便我可以评估内存访问模式。环顾四周,看起来 Conv2D 操作的执行通过contract()函数调用进入 Eigen。问题是,我似乎无法在 TensorFlow 或 Eigen 源中找到函数的定义或声明。

哪些函数主要负责在 TensorFlow 中执行 Conv2D 操作?我想看看它是如何瘫痪的,一般的内存访问模式是什么,以及原始计算是如何完成的。

此查询专门针对 CPU,因为我已经在一定程度上研究了 GPU 执行。

0 投票
2 回答
979 浏览

tensorflow - tensorflow XLA 不生成点文件

我正在尝试遵循有关 XLA 和 JIT 的教程(https://www.tensorflow.org/performance/xla/jit)。根据https://www.tensorflow.org/performance/xla/jit#step_3_run_with_xla,当我运行命令时

它应该产生一个输出,其中包含 XLA 图表的位置。但是,我的输出不包含此信息。

仅生成时间线文件。

构建:Tensor flow r1.3 with XLA JIT for CPU

0 投票
2 回答
79 浏览

tensorflow - 张量流中两个相同等级张量之间的广播

我有两个张量xs形状:

我想在维度之间xs通过维度广播点积1,如下所示:

在哪里

我有这个实现:

我知道这在内存中效率不高,因为tile. 此外,reshape's、transpose'selement-wisereduce_sums 操作会损害较大张量的性能。有没有其他方法可以让它更干净?

0 投票
1 回答
520 浏览

python - Tensorboard 未在 Windows 上填充图形

我编写了简单的 python 程序来将两个值相乘,并期望填充张量板图。

我正在使用 Windows - CPU 机器。

然后在执行我的程序后,它在日志目录路径中生成了所需的图形事件文件,名称为events.out.tfevents.1504266616.L7

我使用以下命令启动 tensorboard:

但是, 下没有图表http://127.0.0.1:5626/#graphs

我做错了什么?

0 投票
1 回答
1195 浏览

tensorflow - 张量流中的索引比收集慢

我正在尝试索引张量以从一维张量中获取切片或单个元素。我发现使用numpy索引[:]slice vs tf.gather (几乎 30-40% )的方式时存在显着的性能差异。

我还观察到,tf.gather与 tensor 相比,在标量(循环未堆叠的张量)上使用时会产生很大的开销。这是一个已知的问题 ?

示例代码(低效):

与示例代码(高效)相反:

我知道第一个低效的实现是做更多的拆栈、堆叠然后循环和更多的收集操作,但是当我正在操作的节点顺序是几百个节点时,我没想到会减速 100 倍(拆栈和收集的开销在这么慢的单个标量上,在第一种情况下,我有更多的收集操作,每个操作都在单个元素上操作,而不是偏移张量)。是否有更快的索引方式,我尝试了 numpy 和 slice,结果比收集慢。

0 投票
1 回答
776 浏览

tensorflow - 如何转储 tensorflow XLA LLVM IR?

我曾经在 Tensorflow 1.2 中使用以下命令:

export TF_XLA_FLAGS='--dump_ir_before_passes=true --dump_temp_products_to=./tmp'

用于在 Tensorflow 中转储 LLVM IR。但是,这个标志link_to_the_flag_definition的定义文件在 Tensorflow 1.3 中被删除了,我现在想知道如何获得 LLVM IR 转储?

为了您的方便,这里有一个测试文件:

0 投票
1 回答
1330 浏览

tensorflow - 如何在 fp16 中使用在 fp32 中训练的模型进行 tensorflow 推理

在 NV V100/P100 中是否有任何无缝方式可以实现最佳 fp16 性能?例如,我有一个在 fp32 中训练的模型和实现。该应用程序完美运行。现在,我想探索一下fp16的体验。有什么简单的方法可以实现这一点。

0 投票
2 回答
365 浏览

c++ - 无法使用 tensorflow AOT 编译为 CPU 后端创建最终二进制文件

我在这里按照教程进行操作:TensorFlow AOT 编译

根据步骤1和2,我编译了subgraph,生成了header( test_graph_tfmatmul.h)和object( test_graph_tfmatmul.o)文件;

根据步骤 3,我使用示例代码(命名为my_code.cc)来调用子图;

根据第 4 步,我将代码片段添加cc_binary到现有BUILD文件 ( //tensorflow/compiler/aot/tests/BUILD),并尝试使用以下命令创建最终二进制文件:

但我收到以下错误:

欢迎任何建议。谢谢。

0 投票
0 回答
911 浏览

tensorflow - 有什么方法可以在 dnn 的 gpu 上融合全连接层(gemm)和激活层(relu/sigmoid)?

通常 dnn 中的一层由 MatMul、BiasAdd、Relu组成,cuBlas 为 MatMul 提供了 Gemm,我们可以在另一个内核中为 GPU 做 BiasAdd 和 Relu。它们是两个 GPU lanuch 调用,有没有办法将它们融合在一起并使其成为一个?我查看了cuBlas, cudnn,但没有找到任何东西。我认为这并不难,因为 BiasAdd 和 Relu 只是元素方面的操作,而融合使其更高效。

这是背景:

我正在开发一个在线预测服务,它是多 dnn 模型集合。通过分析我的程序,我发现我的 CPU 和 GPU 都没有得到充分利用,而是在 GPU 相关的函数调用(如 lanuchKernel)上请求块。似乎libcuda 中有一个大锁。我正在使用 tensorflow,启用了 XLA,所以我使用 nvprof 和 tensorflow HLO 来可视化 GPU 调用,并且只有融合(即biasadd 和 relu)操作。虽然做了内核融合,但还是有太多的 lanuchKernel 调用,GPU 利用率只有 60%。我在一个过程中尝试了多 cuda 上下文,改进是微不足道的。

顺便说一句,我正在使用一个 GPU,Tesla P100。