Linux Accelerator Images#
Optional NVIDIA GPU image chain#
Optional NVIDIA GPU image chain (built by passing --build-arg ENABLE_NVIDIA=true to standard Dockerfiles):
linux/Dockerfile.nvidia: CUDA 13.3, cuDNN 9, TensorRT 10, NCCL, cuBLAS/cuSPARSE/cuFFT, NVTX. (Inserts after:sdk)linux/Dockerfile.media: Builds media stack with NVIDIA codec headers + ORT CUDA/TRT/cuDNN EPs whenENABLE_NVIDIA=true.linux/Dockerfile.android: Android SDK/NDK on top of the NVIDIA media layer.linux/Dockerfile.torch: Torch/Python add-on on top of the Android NVIDIA layer.linux/Dockerfile.torch: Final entrypoint image (:nvidiatag).
NVIDIA GPU Build (Linux)#
Requirements:
Host driver >= 590.44 (for CUDA 13.3).
nvidia-container-toolkitinstalled and configured on the host.
--runtime=nvidiaor--gpus allpassed todocker run.
The NVIDIA variant inserts a new Dockerfile.nvidia layer after :sdk and before the media stage. Subsequent stages reuse the standard Dockerfiles by passing --build-arg ENABLE_NVIDIA=true.
Files involved:
File |
Purpose |
|---|---|
|
Installs CUDA 13.3, cuDNN 9, TensorRT 10, NCCL, cuBLAS, cuSPARSE, cuFFT, NVTX |
|
Media stack: conditionally builds ORT with CUDA/TRT/cuDNN EPs when |
|
Conditionally builds on top of the NVIDIA media image |
|
Conditionally tags the final entrypoint image |
|
ORT build script with CUDA, TensorRT, cuDNN EPs |
Sequential build (nerdctl):
If apt is slow in this chain, add --build-arg USE_FAST_UBUNTU_MIRROR=true and --build-arg FAST_UBUNTU_MIRROR_URL=http://de.archive.ubuntu.com/ubuntu/ to each Ubuntu-based build command below. The helper rewrites archive mirror entries only by default and leaves security.ubuntu.com untouched.
LOG_DIR="logs/$(date -u +'%Y%m%dT%H%M%SZ')-nvidia"
mkdir -p "${LOG_DIR}"
# Step 1: NVIDIA layer (builds on top of existing :sdk from standard chain)
sudo nerdctl build --platform linux/amd64 -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:toolchain-nvidia \
--output 'type=image,name=ghcr.io/kataglyphis/kataglyphis_beschleuniger:toolchain-nvidia,push=true' \
-f linux/Dockerfile.nvidia \
--build-arg BASE_IMAGE=ghcr.io/kataglyphis/kataglyphis_beschleuniger:sdk \
--cache-to=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-toolchain-nvidia,mode=max,oci-mediatypes=true \
--cache-from=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-toolchain-nvidia \
. 2>&1 | tee "${LOG_DIR}/toolchain-nvidia.log"
# Step 2: media-nvidia (GStreamer nvcodec + ORT with CUDA/TRT/cuDNN EPs)
sudo nerdctl build --platform linux/amd64 -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:media-nvidia \
--output 'type=image,name=ghcr.io/kataglyphis/kataglyphis_beschleuniger:media-nvidia,push=true' \
-f linux/Dockerfile.media \
--build-arg ENABLE_NVIDIA=true \
--build-arg BASE_IMAGE=ghcr.io/kataglyphis/kataglyphis_beschleuniger:toolchain-nvidia \
--cache-to=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-media-nvidia,mode=max,oci-mediatypes=true \
--cache-from=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-media-nvidia \
. 2>&1 | tee "${LOG_DIR}/media-nvidia.log"
# Step 3: android-nvidia
sudo nerdctl build --platform linux/amd64 -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:android-nvidia \
--output 'type=image,name=ghcr.io/kataglyphis/kataglyphis_beschleuniger:android-nvidia,push=true' \
-f linux/Dockerfile.android \
--build-arg ENABLE_NVIDIA=true \
--build-arg BASE_IMAGE=ghcr.io/kataglyphis/kataglyphis_beschleuniger:media-nvidia \
--cache-to=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-android-nvidia,mode=max,oci-mediatypes=true \
--cache-from=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-android-nvidia \
. 2>&1 | tee "${LOG_DIR}/android-nvidia.log"
# Step 4: torch-nvidia
sudo nerdctl build --platform linux/amd64 -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:torch-nvidia \
--output 'type=image,name=ghcr.io/kataglyphis/kataglyphis_beschleuniger:torch-nvidia,push=true' \
-f linux/Dockerfile.torch \
--build-arg ENABLE_NVIDIA=true \
--build-arg BASE_IMAGE=ghcr.io/kataglyphis/kataglyphis_beschleuniger:android-nvidia \
--build-arg ONNX_PACKAGE="onnxruntime-gpu" \
--build-arg PYTORCH_EXTRA="pytorch-cu130" \
--cache-to=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-torch-nvidia,mode=max,oci-mediatypes=true \
--cache-from=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-torch-nvidia \
. 2>&1 | tee "${LOG_DIR}/torch-nvidia.log"
# Step 5: final nvidia image
sudo nerdctl build --platform linux/amd64 -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:nvidia \
--output 'type=image,name=ghcr.io/kataglyphis/kataglyphis_beschleuniger:nvidia,push=true' \
-f linux/Dockerfile.torch \
--build-arg ENABLE_NVIDIA=true \
--build-arg BASE_IMAGE=ghcr.io/kataglyphis/kataglyphis_beschleuniger:torch-nvidia \
--cache-to=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-nvidia,mode=max,oci-mediatypes=true \
--cache-from=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-nvidia \
. 2>&1 | tee "${LOG_DIR}/nvidia.log"
Run with GPU access:
sudo nerdctl run --rm -it --gpus all ghcr.io/kataglyphis/kataglyphis_beschleuniger:nvidia
# or with nvidia runtime explicitly
sudo nerdctl run --rm -it --runtime=nvidia ghcr.io/kataglyphis/kataglyphis_beschleuniger:nvidia
Version overrides (all have sensible defaults):
LOG_DIR="logs/$(date -u +'%Y%m%dT%H%M%SZ')-nvidia-overrides"
mkdir -p "${LOG_DIR}"
sudo nerdctl build --platform linux/amd64 -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:toolchain-nvidia \
--output 'type=image,name=ghcr.io/kataglyphis/kataglyphis_beschleuniger:toolchain-nvidia,push=true' \
-f linux/Dockerfile.nvidia \
--build-arg BASE_IMAGE=ghcr.io/kataglyphis/kataglyphis_beschleuniger:sdk \
--build-arg CUDA_VERSION=13.3.0 \
--build-arg CUDA_VERSION_MAJOR_MINOR=13-3 \
--build-arg CUDNN_VERSION=9 \
--build-arg TENSORRT_VERSION=10 \
--cache-to=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-toolchain-nvidia,mode=max,oci-mediatypes=true \
--cache-from=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-toolchain-nvidia \
. 2>&1 | tee "${LOG_DIR}/toolchain-nvidia.log"
Key differences from the standard build:
Feature |
Standard build |
NVIDIA build |
|---|---|---|
CUDA Toolkit |
Not installed |
CUDA 13.3 |
cuDNN |
Not installed |
cuDNN 9 |
TensorRT |
Not installed |
TensorRT 10 |
NCCL |
Not installed |
Installed |
cuBLAS/cuSPARSE/cuFFT |
Not installed |
Installed |
NVTX |
Not installed |
Installed |
GStreamer nvcodec |
Auto-detected (off in builds) |
Always enabled |
ORT native EP |
CPU only |
CPU + CUDA + TensorRT + cuDNN |
ORT Python Package |
|
|
PyTorch Extra |
|
|
ORT output dir |
|
Both cpu and |
Image tag |
|
|
Torch Add-on (Linux)#
Builds on the base image:
docker build -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:torch -f linux/Dockerfile.torch .
AMD GPU Build (Linux)#
Requirements:
Host driver >= 6.0 (for ROCm 6.1).
--device=/dev/kfd --device=/dev/dripassed todocker run.
The AMD variant inserts a new Dockerfile.amd layer after :sdk and before the media stage. Subsequent stages reuse the standard Dockerfiles by passing --build-arg ENABLE_AMD=true.
Files involved:
File |
Purpose |
|---|---|
|
Installs ROCm Toolkit, MIOpen, RCCL, rocBLAS, rocFFT |
|
Media stack: conditionally builds ORT with ROCm EP when |
|
Conditionally builds on top of the AMD media image |
|
Conditionally tags the final entrypoint image |
|
ORT build script with ROCm EP |
Sequential build (nerdctl):
If apt is slow in this chain, add --build-arg USE_FAST_UBUNTU_MIRROR=true and --build-arg FAST_UBUNTU_MIRROR_URL=http://de.archive.ubuntu.com/ubuntu/ to each Ubuntu-based build command below. The helper rewrites archive mirror entries only by default and leaves security.ubuntu.com untouched.
LOG_DIR="logs/$(date -u +'%Y%m%dT%H%M%SZ')-amd"
mkdir -p "${LOG_DIR}"
# Step 1: AMD layer (builds on top of existing :sdk from standard chain)
sudo nerdctl build --platform linux/amd64 -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:toolchain-amd \
--output 'type=image,name=ghcr.io/kataglyphis/kataglyphis_beschleuniger:toolchain-amd,push=true' \
-f linux/Dockerfile.amd \
--build-arg BASE_IMAGE=ghcr.io/kataglyphis/kataglyphis_beschleuniger:sdk \
--cache-to=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-toolchain-amd,mode=max,oci-mediatypes=true \
--cache-from=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-toolchain-amd \
. 2>&1 | tee "${LOG_DIR}/toolchain-amd.log"
# Step 2: media-amd
sudo nerdctl build --platform linux/amd64 -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:media-amd \
--output 'type=image,name=ghcr.io/kataglyphis/kataglyphis_beschleuniger:media-amd,push=true' \
-f linux/Dockerfile.media \
--build-arg ENABLE_AMD=true \
--build-arg BASE_IMAGE=ghcr.io/kataglyphis/kataglyphis_beschleuniger:toolchain-amd \
--cache-to=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-media-amd,mode=max,oci-mediatypes=true \
--cache-from=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-media-amd \
. 2>&1 | tee "${LOG_DIR}/media-amd.log"
# Step 3: android-amd
sudo nerdctl build --platform linux/amd64 -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:android-amd \
--output 'type=image,name=ghcr.io/kataglyphis/kataglyphis_beschleuniger:android-amd,push=true' \
-f linux/Dockerfile.android \
--build-arg ENABLE_AMD=true \
--build-arg BASE_IMAGE=ghcr.io/kataglyphis/kataglyphis_beschleuniger:media-amd \
--cache-to=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-android-amd,mode=max,oci-mediatypes=true \
--cache-from=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-android-amd \
. 2>&1 | tee "${LOG_DIR}/android-amd.log"
# Step 4: torch-amd
sudo nerdctl build --platform linux/amd64 -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:torch-amd \
--output 'type=image,name=ghcr.io/kataglyphis/kataglyphis_beschleuniger:torch-amd,push=true' \
-f linux/Dockerfile.torch \
--build-arg ENABLE_AMD=true \
--build-arg BASE_IMAGE=ghcr.io/kataglyphis/kataglyphis_beschleuniger:android-amd \
--build-arg ONNX_PACKAGE="onnxruntime-rocm" \
--build-arg PYTORCH_EXTRA="pytorch-rocm71" \
--cache-to=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-torch-amd,mode=max,oci-mediatypes=true \
--cache-from=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-torch-amd \
. 2>&1 | tee "${LOG_DIR}/torch-amd.log"
# Step 5: final amd image
sudo nerdctl build --platform linux/amd64 -t ghcr.io/kataglyphis/kataglyphis_beschleuniger:amd \
--output 'type=image,name=ghcr.io/kataglyphis/kataglyphis_beschleuniger:amd,push=true' \
-f linux/Dockerfile.torch \
--build-arg ENABLE_AMD=true \
--build-arg BASE_IMAGE=ghcr.io/kataglyphis/kataglyphis_beschleuniger:torch-amd \
--cache-to=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-amd,mode=max,oci-mediatypes=true \
--cache-from=type=registry,ref=ghcr.io/kataglyphis/kataglyphis_beschleuniger:buildcache-amd \
. 2>&1 | tee "${LOG_DIR}/amd.log"
Run with GPU access:
sudo nerdctl run --rm -it --device=/dev/kfd --device=/dev/dri ghcr.io/kataglyphis/kataglyphis_beschleuniger:amd