Skip to content

Design Doc: Tensorflow as a backend

Fritz Obermeyer edited this page Aug 25, 2017 · 19 revisions

Design doc has moved to Google Docs

This task list remains in the wiki.

Tasks

  • Benchmark possible optimization strategies.

    • Measure overhead of Tensorflow on small computations.

    • Compare performance of Tensorflow vs Eigen for various-sized linear algebra.

    • Measure how well Tensorflow parallelizes over independent parts of a graph.

      • Compile multiple expressions into a single graph.
  • Compile and link against the Tensorflow library.

    • PR Add dual API support to Tensorflow (see `v1.1.0-nimble branch).

    • PR Support compiling against tensorflow/c/c_api.h and linking against _pywrap_tensorflow_internal.so in Nimble.

      • Add base64 decoding library to Nimble.

      • Add helpers to check TF_Status, e.g. TF_CHECK_OK().

      • Convert between NimArr<> and TF_Tensor.

      • Add helpers to handle sessions and running.

      • Optimize to share/cache sessions or graphs.

  • Generate Tensorflow code.

    • PR Factor eigenization logic out of sizeProcessing.

    • branch Add an alternate Tensorflow compiler stage gated by nimbleOptions(useTensorflow = TRUE).

    • Decide what generated code should look like.

      • notebook For RCfunctions.

      • notebook For nimbleModels.

      • For inference algorithms against models.

Clone this wiki locally