为什么选择Eigen进行TensorFlow? [英] Why was Eigen chosen for TensorFlow?

查看:470
本文介绍了为什么选择Eigen进行TensorFlow?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

TensorFlow白皮书提到使用了Eigen。是否有公开的解释说明如何选择Eigen,是否有动机在TensorFlow C ++ op内核中使用Eigen?

The TensorFlow white paper mentions that Eigen is used. Are there public explanations for how Eigen was chosen, and are they motivation for using Eigen in TensorFlow C++ op kernels?

推荐答案

我认为首先推动Eigen使用的关键特征之一是因为Eigen具有自己高度优化的矩阵产品内核,而所有其他竞争者都必须链接到某些BLAS库。而且,Eigen产品内核的代码是C ++,可以轻松访问低级内部内核,因此,他们可以轻松地对其进行调整和扩展以满足他们的需求。这样,Google便能够以纯标题形式开发具有高CPU性能的Tensor模块。后来,通过SyCL对CUDA和现在的OpenCL的支持又来了,这些都不是推动最初选择的Eigen固有功能。

I think that one of the key feature that drove the use of Eigen in the first place is because Eigen features its own highly optimized matrix product kernels whereas all other competitors have to be linked to some BLAS libraries. Moreover, the code of Eigen's product kernel is C++ with easy access to low-level internal kernels, so it was 'easy' for them to tweak and extend it to match their needs. This way Google has been able to develop the Tensor module with high CPU performance in a pure header-only fashion. The support for CUDA and now OpenCL via SyCL came later, those are not intrinsic features of Eigen that drove the initial choice.

这篇关于为什么选择Eigen进行TensorFlow?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆