GPU Accelerated TensorFlow for Commodity Android Devices

RSTensorFlow is a modified version of TensorFlow that utilizes the GPUs of commodity Android devices. RSTensorFlow is developed by the Networked and Embedded Systems Lab (NESL) at UCLA.

RSTensorFlow Paper

For more information about RSTensorFlow, please read our paper

If you use it for your own research project, please cite the our paper
"RSTensorFlow: GPU Enabled TensorFlow for Deep Learning on Commodity Android Devices ", Moustafa Alzantot, Yingnan Wang, Zhengshuang Ren, Mani Srivastava, Embedded and Mobile Deep Learning Workshop (EMDL 2017) .

RSTensorFlow Prebuilt libraries

You can download the pre-built libraries of RSTensorFlow and use them to develop your own RSTensorFlow enabled Android application.

RSTensorflow is available as an open-source project on GitHub

Our project is available at

Build instructions:

  1. Clone the project repository
            git clone
  3. Edit WORKSPACE file
  4. You need to update the WORKSPACE file to update the Android SDK/NDK location path.

  5. Select the appropriate branch
  6. master branch is the original TensorFlow libraries. matmul_only branch has code for GPU-accelerated matrix multiplication only. matmul_and_conv branch has the code for GPU-accelerated matrix multiplication and convolution operations.

    For example,
    git checkout matmul_only
  7. Build TensorFlow libraries for Android
  8. Build the Android demo app

    bazel build -c opt //tensorflow/examples/android:tensorflow_demo
    or build the TensorFlow for Android libraries.
    To build the native library
    bazel build -c opt //tensorflow/contrib/ \
       --crosstool_top=//external:android/crosstool \
       --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
    Then, build the Java library
    bazel build //tensorflow/contrib/android:android_tensorflow_inference_java

Contact us

Project developed by NESL, currently maintained by Moustafa Alzantot

Project supported by DAIS-ITA and MD2K