vignettes/hh-software-on-the-image.Rmd
hh-software-on-the-image.Rmd
l4t-ml
imageA Docker image is composed of layers. The first set of layers on edgyr-ml
are the layers on the NVIDIA l4t-ml
image.1
The operating system on the image is Linux for Tegra (L4T).2 L4T is Ubuntu 18.04 LTS “Bionic Beaver” for the arm64
architecture, with added NVIDIA drivers, libraries, compilers and other development tools for the GPU on Jetson modules and development kits. A Jetson developer can use C/C++, Python or both with the software on an L4T system. The vim
editor is standard, as is the git
version control system.
The base l4t-ml
image contains a complete Python 3 data science / machine learning stack. edgyr
adds the virtualenv
environment manager, the SymPy
computer algebra package and the tensorflow-probability
probabilistic programming package.
Package | Version |
---|---|
jupyterlab | 2.1.5 |
jupyterlab-server | 1.1.5 |
Keras-Applications | 1.0.8 |
Keras-Preprocessing | 1.0.5 |
matplotlib | 2.1.1 |
numba | 0.50.0 |
numpy | 1.19.0 |
onnx | 1.7.0 |
pandas | 1.0.5 |
pycuda | 2019.1.2 |
scikit-learn | 0.23.1 |
scipy | 1.5.0 |
sympy | 1.6.1 |
tensorboard | 1.15.0 |
tensorflow | 1.15.2+nv20.6 |
tensorflow-estimator | 1.15.1 |
tensorflow-probability | 0.8.0 |
torch | 1.6.0 |
torchaudio | 0.6.0a0+d6f81d1 |
torchvision | 0.7.0a0+6631b74 |
virtualenv | 15.1.0 |
edgyr-ml
adds some Linux packages to the base:
edgyr-ml
includes Julia 1.5.03 installed from the Julia project download page. The IJulia
Jupyter kernel4 and the CUDA.jl
5 GPU interface package are also included. Note that at present there are no tests that the Jetson GPU is accessible from Julia - see issue https://github.com/znmeb/edgyR/issues/30.
edgyr-ml
includes R 4.0.2 and RStudio Server 1.3.1056 compiled from source. The compressed log files from all builds are on the image in /home/edgyr/logfiles/
.
edgyr
userOnce the Linux layers are complete and RStudio Server is configured, the build process adds a non-root user edgyr
with main group edgyr
and sudo
privileges. This is standard practice for servers built on Ubuntu Linux.
edgyr-ml
includes the R Python interface library reticulate
.6 By default, reticulate
uses virtualenv
7 to manage Python virtual environments.edgyr-ml
also includes virtualenvwrapper
,8 a command line tool for managing Python virtual environments.
The R packages included on the edgyr-ml
image are aimed at the core mission of edgyr
, providing an R development environment for the Jetson. Because the base image contains a Python machine learning stack, libraries for interfacing with it are also provided.
SymPy
)pkgdown
rebuild addin, imports shiny
as a bonus!)Some notes about tinytex
:9 it’s installed, and it works. The full TeXLive LaTeX on an Ubuntu distribution is something like 4 gigabytes, and the image is already almost 7 gigabytes, so this is a big deal.
The tradeoff is that if you use a LaTeX package that isn’t already there, tinytex
will pause and download it before continuing. This takes some time, but it only happens once.
“L4T | Nvidia Developer.” 2020. https://developer.nvidia.com/embedded/linux-tegra.
“Machine Learning for Jetson/L4t.” 2019. https://ngc.nvidia.com/catalog/containers/nvidia:l4t-ml.
Ushey, Kevin, JJ Allaire, and Yuan Tang. 2020. Reticulate: Interface to ’Python’. https://CRAN.R-project.org/package=reticulate.
“Virtualenv.” 2020. https://virtualenv.pypa.io/en/latest/.
“Virtualenvwrapper.” 2020. https://virtualenvwrapper.readthedocs.io/en/latest/index.html.
Xie, Yihui. 2019. “TinyTeX: A Lightweight, Cross-Platform, and Easy-to-Maintain Latex Distribution Based on Tex Live.” TUGboat, no. 1: 30–32. http://tug.org/TUGboat/Contents/contents40-1.html.