|
1 | 1 | # Edge ML Accelerators |
| 2 | + |
2 | 3 | This repository contains the code, scripts, and Dockerfiles for setting up different edge machine learning accelerators on different platforms. |
| 4 | + |
| 5 | +## Required Software: |
| 6 | + |
| 7 | +- A computer with an Intel/AMD x86-64 CPU running a 64-bit version of Linux with sudo priveleges (other OSes not tested). |
| 8 | +- [Docker](https://docs.docker.com/engine/install/) |
| 9 | + |
| 10 | + - See [A Note on Docker](#a-note-on-docker) and [Installing Docker](#installing-docker) |
| 11 | + - For the Intel NCS2, Google Coral Edge TPU, and flashing the NVIDIA Jetson Nano. |
| 12 | + - Optional to install on Raspberry Pi. |
| 13 | + - Installed by default on Jetson Nano via SDK Manager. |
| 14 | + |
| 15 | +- Internet Access to install software dependencies. |
| 16 | + |
| 17 | +## Required Hardware: |
| 18 | + |
| 19 | +Each device has its own requirements for cables, power supplies, and etc. These are listed in the `Required Hardware` sections of each device. The following are general requirements: |
| 20 | + |
| 21 | +- Mouse, keyboard, and monitor (Raspberry Pi and Jetson Nano) |
| 22 | +- A host computer with a CPU (Intel NCS2 and Google Coral Edge TPU) |
| 23 | + |
| 24 | +## Device Setup Documentation |
| 25 | + |
| 26 | +- [coraltpu](./coraltpu) - Google Coral Edge TPU setup instructions. |
| 27 | +- [jetson](./jetson) - NVIDIA Jetson Nano (2GB and 4GB) setup instructions. |
| 28 | +- [ncs2](./ncs2/) - Intel Neural Computer Stick 2 setup instructions. |
| 29 | +- [raspberrypi](./raspberrypi) - Raspberry Pi setup instructions. |
| 30 | + |
| 31 | +## A Note on Docker |
| 32 | + |
| 33 | +Docker is a containerization software that is able to isolate applications and even operating systems. The idea of containers is similar to a Virtual Machine (VM), but without the hypervisor i.e. emulating the hardware which resource demanding. Instead, containers are able to directly work with the computer's hardware and kernel for making more efficient use of system resources than a VM. |
| 34 | + |
| 35 | +Theoretically, all of these devices should work independent of using Docker and in many cases we observed they could. However, for the simplest setup, we recommend using Docker to prevent compatibility issues with your host computer's OS. |
| 36 | + |
| 37 | +Many of the devices require sudo priveleges to install packages and to access the hardware directly. Thus, when running the docker image many of the commands use the `--priveleged` flag. **_Using this flag can have certain negative security implications._** Please use this with care. |
| 38 | + |
| 39 | +## Installing Docker |
| 40 | + |
| 41 | +Use the instructions from Docker's official documentation to install docker on your computer. |
| 42 | + |
| 43 | +- Ubuntu: |
| 44 | + |
| 45 | + - https://docs.docker.com/engine/install/ubuntu/ |
| 46 | + |
| 47 | +- All other OS's: |
| 48 | + - https://docs.docker.com/get-docker/ |
| 49 | + |
| 50 | +Be sure to run `sudo docker run hello-world` to be sure your docker install was successful. |
| 51 | + |
| 52 | +**_Note: You may need to use `sudo docker` to elevate permission on some OSes. You can avoid using `sudo` by adding your username to the `docker` group via the following command and logging out and back in:_** |
| 53 | + |
| 54 | +```shell |
| 55 | +sudo usermod -aG docker username |
| 56 | +``` |
0 commit comments