Sign inSign up

derekmerck/diana

By derekmerck

Updated almost 8 years ago

Multi-arch DIANA and DIANA-Learn Python Docker images for embedded systems

Image
0

1.4K

derekmerck/diana repository overview

DIANA xArch Docker Image

Build Status

Derek Merck
[email protected]
Rhode Island Hospital and Brown University
Providence, RI

Build multi-arch DIANA and DIANA-Learn Python Docker images for embedded systems.

Use It

$ docker run derekmerck/diana:latest    # (amd64, arm32v7, arm64v8)
$ docker run derekmerck/diana:learn     # (learn-amd64, learn-arm32v7, learn-arm64v8)
$ docker run derekmerck/diana:movidius  # (movidius-arm32v7)

Build It

This image uses system python and the resin/$ARCH-debian:stretch image. Resin.io base images include a QEMU cross-compiler to facilitate building images for low-power single-board computers on more powerful Intel-architecture desktops and servers.

docker-compose.yml contains build descriptions for all relevant architectures.

amd64
$ docker-compose build diana-amd64

Desktop computers/vms, UP boards, and the Intel NUC are amd64 devices. The appropriate image can be built and pushed from Travis CI.

arm32v7

Most low-power single board computers such as the Raspberry Pi and Beagleboard are arm32v7 devices. Appropriate images can be cross-compiled and pushed from Travis CI.

$ docker-compose build diana-arm32v7 diana-movidius-arm32v7

The official arm32 tensorflow wheels are available from pypi or as nightly build artifacts. The wheel name for the python 3.4 build has to be manipuated to remove the platform restriction tags in order to install on 3.5 or 3.6.

The Intel Movidius NPU drivers from the NCSDK v2.0 are available in the diana:movidius tag. Only the toolkit itself is installed, tensorflow is from pypi and caffe must be installed separately if needed.

arm64v8

The NVIDIA Jetson TX2 uses a Tegra arm64v8 cpu. The appropriate image can be built natively and pushed from Packet.io, using a brief tenancy on a bare-metal Cavium ThunderX ARMv8 server.

$ apt update && apt upgrade
$ curl -fsSL get.docker.com -o get-docker.sh
$ sh get-docker.sh 
$ docker run hello-world
$ apt install git python-pip
$ pip install docker-compose
$ git clone http://github.com/derekmerck/diana-xarch@system_python
$ cd orthanc-xarch
$ docker-compose build diana-arm64v8
$ docker-compose build diana-learn-arm64v8
$ python3 manifest-it.py diana-xarch.manifest.yml

Although Resin uses Packet ARM servers to compile arm32 images, the available ThunderX does not implement the arm32 instruction set, so it cannot compile natively for the Raspberry Pi.

NVIDIA provides a recent tensorflow wheel for their Jetson TXs.

Manifest It

After building new images, call manifest-it.py to push updated images and build the Docker multi-architecture service mappings.

$ python3 manifest-it diana-xarch.manifest.yml

License

MIT

Tag summary

Content type

Image

Digest

Size

353.1 MB

Last updated

almost 8 years ago

docker pull derekmerck/diana