Re:Show HN: PlaidML, open source deep learning for any GPU
by b33pr on Friday October 20, 2017 @08:48PM
(#15520063)
To expand on this a bit, NNVM is mostly a graph serialization format and graph optimizer with a cuda/cudnn (and now TVM) backend. In this NNVM is very similar to XLA. Our approach handles both full graph optimization (though we have a lot of work to do there) and kernel creation and optimization through an intermediate language called Tile. TVM seems somewhat derivative of our approach, though it lacks a reasonable mechanism for optimizing kernels.
PlaidML and Tile are able to create optimal kernels for just about any architecture. This approach reduces dependencies and ensure that new hardware will just work.
We intend to have NNVM and Tensorflow backends in the future. The keras backend is only 2000 lines of code (thanks to tile).
As far as differences vs TensorFlow, Keras, etc, we're not aiming to replace the developer-facing Python APIs. You can run Keras on top of PlaidML now and we're planning to add compatibility for TensorFlow and other frameworks as well. The portability (once we have Mac/Win) will help students get started quickly. It's much easier to write kernels in our Tile language than raw OpenCL or CUDA so we think this will help speed up research as well. On the throughput side we already outrun cuDNN in some cases and it's likely we can give Volta users a boost once we add support for its tensor unit.