A memory-saving, fault-tolerant and distributed collection of Nx compilers and backends for embedded systems.
This repository currently holds the following projects:
Backends:
PelemayBackend
(WIP) - A memory-saving, fault-tolerant and distributed collection of Nx compilers and backends for embedded systems.LoggingBackend
(WIP) - A backend to log the behavior of the specifiedbased_backend
.
Utilities:
BackendDecorator
(WIP) - A backend generator to decorate the specifiedbased_backend
with the functions before and after a set of functions in the backend. The set can be specified with the style of AspectJ, which is an AOP language, and with grouping written in hexdocs of Nx, for example, Aggregates, Backend, Conversion, and so on.NodeActivator
- A module to activate VM nodes.
SpawnCoElixir
- SpawnCoElixir spawns cooperative Elixir nodes that are supervised.
HttpDownloader
- Downloads remote file with progress bar.
Benchmarks:
OnnxToAxonBench
- A benchmark program of loading ONNX to Axon. The results deny the hope to use ResNet, which is one of popular models that perform image classification, for embedded systems due to too much memory consumption. This fact supports the concept of the Pelemay Backend.
DistributedComputingBench
Each has their own README, which you can access above to learn more.
Supported Erlang/OTP and Elixir versions:
- OTP: 25, 26, 27
- Elixir: 1.15, 1.16, 1.17
Tested Platforms by CI:
- Ubuntu 22.04
- macOS 14 Sonoma (Apple Silicon and x86_64)
Other manually tested platforms:
- groovEPIC
Not tested by CI:
- macOS 13 Ventura and 12 Monterey (x86_64 and x86_64)
Temporally not tested by CI of Nerves:
- rpi4
- rpi3a, rpi3, rpi2, rpi0, rpi
- bbb
- osd32mp1
- npi_imx6ull
- grisp2
- mangopi_mq_pro
Temporally unsupportted:
- Windows 2022
Copyright (c) 2023 University of Kitakyushu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This work was supported by Asahi Kohsan Group Research Support Program of Kitakyushu Foundation for the Advancement of Industry Science and Technology (FAIS).