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?
Why was Eigen chosen for TensorFlow? [closed]
Asked Answered
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.
thanks this fits with what i'm seeing as i look further into the eigen code. matrix manipulations are highly visible, not outside in blas. really interesting and motivating to dig deeper. –
Memoried
© 2022 - 2024 — McMap. All rights reserved.
hi Name
please use@Name
. This way a notification is sent to the user. – Seethrough