TensorFlow白皮书提到使用了Eigen。是否有关于如何选择 Eigen 的公开解释?它们是在 TensorFlow C++ 运算内核中使用 Eigen 的动机吗?
我认为,首先推动 Eigen 使用的关键功能之一是因为 Eigen 拥有自己的高度优化的矩阵乘积内核,而所有其他竞争对手都必须链接到一些 BLAS 库。此外,Eigen 产品内核的代码是 C++,可以轻松访问低级内部内核,因此他们可以“轻松”调整和扩展它以满足自己的需求。这样,Google 就能够以纯标头的方式开发具有高 CPU 性能的 Tensor 模块。对 CUDA 的支持以及现在通过 SyCL 的 OpenCL 支持后来才出现,这些并不是推动最初选择的 Eigen 的内在特征。