Ruy、XNNPACK 和 Eigen 在 Tensorflow Lite 中如何工作?
How does Ruy, XNNPACK, and Eigen work in Tensorflow Lite?
我从各种渠道(主要来自官方文档)听说 Tensorflow Lite(用于
ARM) 使用这三个库 - Ruy、Eigen、XNNPACK - 进行操作。
我知道它们以某种方式加速了 TF Lite 中的计算(主要是卷积),但我不确定每个库的用途是什么。我知道 Eigen 是一个 BLAS 库,但我不确定其他库是什么以及它们在 TF Lite 中是如何相互关联的。
有人愿意解释一下它们的不同用途以及它们如何在 TF Lite 中结合使用吗? (可能是调用堆栈?)
我一直在查看每个库的官方文档,但找不到关于 Ruy 和 XNNPACK 的详细信息。 Ruy 说它提供了高效的矩阵乘法,但这不是 BLAS 库所做的吗?
旧版本的 TensorFlow Lite 使用 Eigen 和 Gemmlowp 库来加速计算。然而,在 Arm 平台上,与例如相比,性能最差。 Arm 计算库。
TensorFlow Lite 在 2.3 版左右替换了 Eigen 和 Gemmlowp,并使用 Ruy 矩阵乘法库。它们的用途相似,但 Ruy 表现更好。 Arm 平台默认使用 Ruy,但不使用 Ruy 也可以编译 TensorFlow Lite。
XNNPACK 比 Ruy 更胜一筹,但它只专注于 float 操作。
关于 Ruy 性能基准检查此线程 https://github.com/google/ruy/issues/195, and the benchmarks on Pixel4 https://docs.google.com/spreadsheets/d/1CB4gsI7pujNRAf5Iz5vuD783QQqO2zOu8up9IpTKdlU/edit#gid=510573209。
我从各种渠道(主要来自官方文档)听说 Tensorflow Lite(用于 ARM) 使用这三个库 - Ruy、Eigen、XNNPACK - 进行操作。
我知道它们以某种方式加速了 TF Lite 中的计算(主要是卷积),但我不确定每个库的用途是什么。我知道 Eigen 是一个 BLAS 库,但我不确定其他库是什么以及它们在 TF Lite 中是如何相互关联的。
有人愿意解释一下它们的不同用途以及它们如何在 TF Lite 中结合使用吗? (可能是调用堆栈?)
我一直在查看每个库的官方文档,但找不到关于 Ruy 和 XNNPACK 的详细信息。 Ruy 说它提供了高效的矩阵乘法,但这不是 BLAS 库所做的吗?
旧版本的 TensorFlow Lite 使用 Eigen 和 Gemmlowp 库来加速计算。然而,在 Arm 平台上,与例如相比,性能最差。 Arm 计算库。
TensorFlow Lite 在 2.3 版左右替换了 Eigen 和 Gemmlowp,并使用 Ruy 矩阵乘法库。它们的用途相似,但 Ruy 表现更好。 Arm 平台默认使用 Ruy,但不使用 Ruy 也可以编译 TensorFlow Lite。
XNNPACK 比 Ruy 更胜一筹,但它只专注于 float 操作。
关于 Ruy 性能基准检查此线程 https://github.com/google/ruy/issues/195, and the benchmarks on Pixel4 https://docs.google.com/spreadsheets/d/1CB4gsI7pujNRAf5Iz5vuD783QQqO2zOu8up9IpTKdlU/edit#gid=510573209。