TensorFlow-HRT

License

TensorFlow-HRT is a project that is maintained by OPEN AI LAB, it uses heterogeneous computing infrastructure framework to speed up Tensorflow and provide utilities to debug, profile and tune application performance.

The release version is 0.0.1, is based on Rockchip RK3399 Platform, target OS is Ubuntu 16.04. Can download the source code from OAID/TensorFlow-HRT

  • The ARM Computer Vision and Machine Learning library is a set of functions optimised for both ARM CPUs and GPUs using SIMD technologies. See also Arm Compute Library.
  • Tensorflow is a fast open framework for deep learning. See also Tensorflow.

Documents

Arm Compute Library Compatibility Issues :

There are some compatibility issues between ACL and Tensorflow ops.

  • Tensorflow default data format is NHWC and HWIO, but ACL only supports NCHW and OIHW. In order to test TensorFlow-HRT, macro TEST_ACL is used to enable convert data format between ACL and TF at compiling.
  • ACL does not support some pooling ops, such as AvgPooling with 3x3 kernel, 1x1 stride and SAME padding.
  • ACL does not support some CONV ops, such as testConv2DKernelSmallerThanStrideSame, testConv2D2x2FilterStride2Same, ...
  • When using ACL C++ multi-thread, TF often hang. ACL scheduler is set to ST mode for workaround.
  • ACL buffer round is different with TF. Both ACL round CEIL and round FLOOR are tried to get the same buffer size as TF. If both fail, an exception is thrown.
  • Input/output/weight shape may be changed at inference. The shapes of all inputs must be checked before run ACL OP.

Performance is not good. In the future, TensorFlow-HRT needs to skip ACL runtime layer or only uses ACL very low layer APIs.

Release History

The Tensorflow version is 31b79e42b9e1643b3bcdc9df992eb3ce216804c5.

Version 0.0.1 - Jan 31, 2018

Support Arm Compute Library version 17.12 and following TF ops

  • Pooling op
  • Convolution op
  • Softmax op
  • LRN op
  • Matmul op
  • Sigmoid op
  • Tanh op
  • Relu op
  • Softplus op



Linux CPU Linux GPU Mac OS CPU Windows CPU Android
Build Status Build Status Build Status Build Status Build Status

TensorFlow is an open source software library for numerical computation using data flow graphs. The graph nodes represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) that flow between them. This flexible architecture lets you deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device without rewriting code. TensorFlow also includes TensorBoard, a data visualization toolkit.

TensorFlow was originally developed by researchers and engineers working on the Google Brain team within Google's Machine Intelligence Research organization for the purposes of conducting machine learning and deep neural networks research. The system is general enough to be applicable in a wide variety of other domains, as well.

If you want to contribute to TensorFlow, be sure to review the contribution guidelines. This project adheres to TensorFlow's code of conduct. By participating, you are expected to uphold this code.

We use GitHub issues for tracking requests and bugs. So please see TensorFlow Discuss for general questions and discussion, and please direct specific questions to Stack Overflow.

Installation

See Installing TensorFlow for instructions on how to install our release binaries or how to build from source.

People who are a little more adventurous can also try our nightly binaries:

Nightly pip packages

  • We are pleased to announce that TensorFlow now offers nightly pip packages under the tf-nightly and tf-nightly-gpu project on pypi. Simply run pip install tf-nightly or pip install tf-nightly-gpu in a clean environment to install the nightly TensorFlow build. We support CPU and GPU packages on Linux, Mac, and Windows.

Individual whl files

Try your first TensorFlow program

$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> sess.run(hello)
'Hello, TensorFlow!'
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> sess.run(a + b)
42
>>> sess.close()

For more information

Learn more about the TensorFlow community at the community page of tensorflow.org for a few ways to participate.

License

Apache License 2.0

Tensorflow Hrt

Heterogeneous Run Time version of TensorFlow. Added heterogeneous capabilities to the TensorFlow, uses heterogeneous computing infrastructure framework to speed up Deep Learning on Arm-based heterogeneous embedded platform. It also retains all the features of the original TensorFlow architecture which users deploy their applications seamlessly.

Tensorflow Hrt Info

⭐ Stars 33
🔗 Source Code github.com
🕒 Last Update 8 months ago
🕒 Created 3 years ago
🐞 Open Issues 9
➗ Star-Issue Ratio 4
😎 Author OAID