Skip to content
MACE is a deep learning inference framework optimized for mobile heterogeneous computing platforms.
C++ Python C CMake HTML Shell Other
Branch: master
Clone or download
Latest commit 94ced0b Sep 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake/toolchains Add support for CMake May 15, 2019
docker Enable ccache in build Jun 14, 2019
docs Add option `opencl_queue_window_size` to keep UI responsiveness. Aug 27, 2019
examples/android Merge benchmark and run. Jul 9, 2019
include Expose MaceStatus as external API Jun 10, 2019
mace Refactor model run: Support CMake everything Sep 10, 2019
repository Fix bug of generating OpenCL kernel source file. Jun 14, 2019
setup update onnx converter May 22, 2019
test support NHWC format and opt code for softmax op. Jul 30, 2019
third_party Refactor model run: Support CMake everything Sep 10, 2019
tools Merge pull request #521 from gasgallo/master Sep 12, 2019
.bazelrc Support new bazelrc file list Nov 6, 2018
.clang-format Add support for CMake May 15, 2019
.gitignore Refactor model run: Support CMake everything Sep 10, 2019
.gitlab-ci.yml Refactor model run: Support CMake everything Sep 10, 2019
.gitmodules Add tensorflow build Sep 25, 2017
.travis.yml Update travis CI and remove build log for bazel. Jun 14, 2019
BUILD.bazel Improve portability and add Darwin support Mar 19, 2019
CMakeLists.txt Refactor model run: Support CMake everything Sep 10, 2019
ISSUE_TEMPLATE.md Add HOW-TO-DEBUG and FAQ links to ISSUE_TEMPLATE Jan 3, 2019
JOBS.md Add ads Jul 27, 2018
LICENSE Update licences Apr 17, 2018
README.md Fix gradle NDK build May 15, 2019
README_zh.md Fix gradle NDK build May 15, 2019
RELEASE.md Add realse note for v0.10.0. Jan 3, 2019
ROADMAP.md Update Roadmap Apr 15, 2019
WORKSPACE Add support for CMake May 15, 2019

README.md

MACE

License Build Status pipeline status doc build status

Documentation | FAQ | Release Notes | Roadmap | MACE Model Zoo | Demo | Join Us | 中文

Mobile AI Compute Engine (or MACE for short) is a deep learning inference framework optimized for mobile heterogeneous computing on Android, iOS, Linux and Windows devices. The design focuses on the following targets:

  • Performance
    • Runtime is optimized with NEON, OpenCL and Hexagon, and Winograd algorithm is introduced to speed up convolution operations. The initialization is also optimized to be faster.
  • Power consumption
    • Chip dependent power options like big.LITTLE scheduling, Adreno GPU hints are included as advanced APIs.
  • Responsiveness
    • UI responsiveness guarantee is sometimes obligatory when running a model. Mechanism like automatically breaking OpenCL kernel into small units is introduced to allow better preemption for the UI rendering task.
  • Memory usage and library footprint
    • Graph level memory allocation optimization and buffer reuse are supported. The core library tries to keep minimum external dependencies to keep the library footprint small.
  • Model protection
    • Model protection has been the highest priority since the beginning of the design. Various techniques are introduced like converting models to C++ code and literal obfuscations.
  • Platform coverage
    • Good coverage of recent Qualcomm, MediaTek, Pinecone and other ARM based chips. CPU runtime supports Android, iOS and Linux.
  • Rich model formats support

Getting Started

Performance

MACE Model Zoo contains several common neural networks and models which will be built daily against a list of mobile phones. The benchmark results can be found in the CI result page (choose the latest passed pipeline, click release step and you will see the benchmark results). To get the comparison results with other frameworks, you can take a look at MobileAIBench project.

Communication

  • GitHub issues: bug reports, usage issues, feature requests
  • Slack: mace-users.slack.com
  • QQ群: 756046893

Contributing

Any kind of contribution is welcome. For bug reports, feature requests, please just open an issue without any hesitation. For code contributions, it's strongly suggested to open an issue for discussion first. For more details, please refer to the contribution guide.

License

Apache License 2.0.

Acknowledgement

MACE depends on several open source projects located in the third_party directory. Particularly, we learned a lot from the following projects during the development:

Finally, we also thank the Qualcomm, Pinecone and MediaTek engineering teams for their help.

Join Us

We are hiring.

You can’t perform that action at this time.