TFJS中渴望风格的性能成本是多少?

问题描述 投票:2回答:1

论文TENSORFLOW.JS: MACHINE LEARNING FOR THE WEB AND BEYOND说:

由于我们设计目标的一个重要部分是优先考虑易用性而非性能,因此TensorFlow.js支持渴望的差异化风格。

一般来说,我们谈论的是什么样的性能影响?它取决于型号吗?是否存在完全没有性能差异的情况?

performance machine-learning tensorflow.js
1个回答
2
投票

声明(a.k.a.,延迟执行,图形模式)编程范例的主要性能优势类似于TensorFlow v1(Python)的默认图模型中的范例,它来自以下方面:

  • 将整个模型推送到C ++层,与解释或非编译语言(如Python和JavaScript)相比,执行开销要低得多
  • 并行执行模型计算图的独立路径。一个例子是由许多独立的输入塔组成的模型。这些塔可以在CPU的不同核心或同一主机的多个GPU上同时执行。
  • 由于整个模型在执行开始之前就已知,因此C ++执行引擎可以对模型的计算图执行一整套优化。举几个例子: 常量折叠:图形的子树只包含在常量节点上的无状态确定性操作,可以折叠成单个常量节点 操作融合:在某些情况下,计算图的一些相邻节点(ops)可以由数学上等效但计算上更有效的节点替换。 修剪:一些计算图包含对最终输出没有贡献的节点。图模型执行引擎可以预先看到并阻止这些节点执行。
  • 及时(JIT)编译:图形执行引擎可以获取整个图形并将其编译为较低级别的表示,该表示涉及较低的调度开销,并且更适合在可用硬件上执行高性能(例如,CUDA程序)对于NVIDIA或兼容的GPU,Google TPU的特殊说明,甚至WebGL的着色器程序等。)

图模式TensorFlow支持所有上述优化。有关更多详细信息,请访问Google“grappler”和“XLA”。

TensorFlow.js采用命令式(a.k.a.,eager)范式,主要基于可用性考虑。这类似于TensorFlow急切执行,PyTorch和NumPy。因此,它没有提供所有上述优化机会。

但是,要意识到有一些方法可以从命令式程序中获取计算图形(参见TensorFlow v2的tf.function decorator和JAX)。 TensorFlow.js没有理由不采用类似的范例来提升性能。只是产品团队尚未明确表达对该功能进行优先排序的需求。

© www.soinside.com 2019 - 2024. All rights reserved.