gpt4 book ai didi

performance - TFJS 中 eager 风格的性能成本是多少?

转载 作者:行者123 更新时间:2023-11-30 08:34:37 24 4
gpt4 key购买 nike

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

Since an important part of our design goals is to prioritize ease-of-use over performance, TensorFlow.js supports the eager style of differentiation.

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

最佳答案

声明式(又称延迟执行、图形模式)编程范例(例如 TensorFlow v1 (Python) 的默认图形模型中的编程范例)的主要性能优势来自以下几个方面:

  • 将整个模型下推到 C++ 层,该层的执行开销很大与解释型或非编译型语言(例如 Python 和)相比更低JavaScript
  • 模型计算图的独立路径的
  • 并行执行。一个示例是由多个独立输入塔组成的模型。这些塔可以在 CPU 的不同内核或多个内核上同时执行同一主机的 GPU。
  • 由于在执行开始之前整个模型是已知的,C++ 执行引擎可以对模型的计算图。仅举几个例子:
    • 常量折叠:图的子树仅由无状态组成,常量节点上的确定性操作可以折叠到单个常量节点
    • Op fusion:在某些情况下,计算的几个相邻节点(op)图可以用数学上等价但计算量更大的图来代替高效节点。
    • 剪枝:某些计算图包含对计算无贡献的节点最终输出。图模型执行引擎可以预先看到这一点并阻止这些节点执行。
  • 即时 (JIT) 编译:图形执行引擎可以采用整个图并将其编译为涉及较低级别的表示调度开销并且更容易接受在可用硬件(例如 CUDA 程序)上实现高性能执行对于 NVIDIA 或兼容 GPU,针对 Google TPU 的特殊指令,或者甚至 WebGL 的着色器程序等)

所有上述优化均由图模式 TensorFlow 支持。为了更多详细信息,请谷歌搜索术语“grappler”和“XLA”。

TensorFlow.js 采用命令式(又名渴望)范式,主要基于可用性考虑。这类似于 TensorFlow eager execution,PyTorch 和 NumPy。因此,它并不具备上述所有内容优化的机会。

但是,要意识到有一些方法可以从命令式程序(请参阅 TensorFlow v2 的 tf.function 装饰器和 JAX )。 TensorFlow.js 没有理由无法采用类似的范例来提高性能。只是还没有这个需要产品团队已经足够清楚地确定该功能的优先级。

关于performance - TFJS 中 eager 风格的性能成本是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54798625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com