NeMo Toolkit auf dem Jetson Nano – Versuch #1

Vor ein paar Tagen bin ich auf eine Diskussion aufmerksam geworden, in der es darum gehtdas NeMo Toolkit auf dem Jetson Nano zu installieren (https://forums.developer.nvidia.com/t/nemo-toolkit-on-jetson-nano/110571) und da habe ich gedacht ich probiere es einfach mal selbst.

Mit folgender Zeile die ich unter https://docs.nvidia.com/deeplearning/nemo/user-guide/docs/en/stable/starthere/intro.html#requirements gefunden habe sollte das Problem zu lösen sein

sudo docker run --gpus all -it --rm --shm-size=2g -p 8888:8888 -p 6006:6006 --ulimit memlock=-1 --ulimit stack=67108864 --device=/dev/snd nvcr.io/nvidia/nemo:1.0.0rc1

Nachdem mein Jetson Nano ein paar Gigabyte Daten heruntergeladen hat …

michael@jetson:~$ sudo docker images
 REPOSITORY            TAG        IMAGE ID       CREATED       SIZE
 nvcr.io/nvidia/nemo   1.0.0rc1   ab39b4bc3010   7 weeks ago   14.2GB

… startet der Container ….. leider nicht und bricht mit folgendem Feher ab 🙁

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
docker: Error response from daemon: OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --device=all --compute --utility --video --require=cuda>=9.0 --pid=7249 /var/lib/docker/overlay2/4b6ecfbe116b7458c34afe9e576c87feb62baa05732e81d4abe7175ea6a8ed37/merged]
nvidia-container-cli: mount error: mount operation failed: /usr/src/tensorrt: no such file or directory: unknown.

Schade, aber eine Suche nach der Fehlermeldung ergibt folgendes:

Hi, Please noticed that not all the container in NGC can be used on the Jetson platform. The container you shared is for desktop user. Please check this for the image that supports Jetson: https://ngc.nvidia.com/catalog/containers?orderBy=modifiedDESC&pageNumber=0&query=l4t&quickFilter=container…

https://forums.developer.nvidia.com/t/failed-to-run-tensorrt-docker-image-on-jetson-nano/123483

Auf der Webseite findet man leider keinen NeMo Docker Container. Der einzige Container, der etwas in Richtung Voice macht ist der Container „https://ngc.nvidia.com/catalog/containers/nvidia:jetson-voice„. Ich habe auch schon mal gesehen (Youtube), dass der Container auf einem Jetson Nano Lauft. In dem Container laufen folgende Modelle:

  • QuartzNet: speech recognition, using Triton Inference Server for streaming
  • BERT-Base: sequence length 128, SQuAD 1.1 (default)
  • BERT-Large: sequence length 384, SQuAD 1.1 (optional)

Stellt sich nur die Frage, ob das QuartzNet Model einfach durch ein „STT De Quartznet15x5“ Model ersetzt werden kann um hier eine Deutsche Speech-to-Text zu realisieren. Aber das werde ich ein anders Mal probieren.

Eine weitere Möglichkeit noch mal mit NeMo zu spielen ist z.B. https://colab.research.google.com/github/NVIDIA/NeMo/blob/main/tutorials/asr/01_ASR_with_NeMo.ipynb.

Ergänzung:
Jetson Nano Docker Version.

sudo nvidia-docker version
 NVIDIA Docker: 2.0.3
 Client:
  Version:           20.10.2
  API version:       1.41
  Go version:        go1.13.8
  Git commit:        20.10.2-0ubuntu1~18.04.2
  Built:             Tue Mar 30 21:35:54 2021
  OS/Arch:           linux/arm64
  Context:           default
  Experimental:      true
 Server:
  Engine:
   Version:          20.10.2
   API version:      1.41 (minimum version 1.12)
   Go version:       go1.13.8
   Git commit:       20.10.2-0ubuntu1~18.04.2
   Built:            Mon Mar 29 19:27:41 2021
   OS/Arch:          linux/arm64
   Experimental:     false
  containerd:
   Version:          1.4.4-0ubuntu1~18.04.2
   GitCommit:
  runc:
   Version:          spec: 1.0.2-dev
   GitCommit:
  docker-init:
   Version:          0.19.0
   GitCommit: