Skip to content

PelemayBackend: A memory-saving, fault-tolerant and distributed collection of Nx compilers and backends for embedded systems.

License

Notifications You must be signed in to change notification settings

zeam-vm/pelemay_backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pelemay Backend (Collection)

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 specified based_backend.

Utilities:

  • BackendDecorator (WIP) - A backend generator to decorate the specified based_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 Hex.pm Elixir CI (NodeActivator) status - A module to activate VM nodes.
  • SpawnCoElixir Hex.pm Elixir CI (SpawnCoElixir) status - SpawnCoElixir spawns cooperative Elixir nodes that are supervised.
  • HttpDownloader Hex.pm Elixir CI (HttpDownloader) status - Downloads remote file with progress bar.

Benchmarks:

  • OnnxToAxonBench Elixir CI (OnnxToAxonBench) status - 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 Elixir CI (DistributedComputingBench) status

Each has their own README, which you can access above to learn more.

Supported Erlang/OTP and Elixir versions:

Supported Erlang/OTP and Elixir versions:

  • OTP: 25, 26, 27
  • Elixir: 1.14, 1.15, 1.16

Supported Platforms

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

License

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.

Acknowledgement

This work was supported by Asahi Kohsan Group Research Support Program of Kitakyushu Foundation for the Advancement of Industry Science and Technology (FAIS).

About

PelemayBackend: A memory-saving, fault-tolerant and distributed collection of Nx compilers and backends for embedded systems.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •