Skip to content

osai-ai/dokai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dokai-logo

Collection of Docker images for ML/DL and video processing projects.

Overview of CPU.* images

Several types of images are presented:

  • core: Python (3.11.9)
  • ffmpeg: FFmpeg (6.1)
  • base: Python ML and CV packages listed here

Overview of GPU.* images

Several types of images are presented:

  • core: CUDA (12.2.2), cuDNN (8.9.6), Python (3.11.9)
  • ffmpeg: FFmpeg (6.1) with NVENC/NVDEC support
  • base: Python ML and CV packages listed here
  • pytorch: TensorRT (9.2.0), PyTorch (2.1.2), torchvision (0.16.2), torchaudio (2.1.2) and torch based libraries listed here
  • video: VideoProcessingFramework (2.0.0) and Tensor Stream (0.5.0) for full HW acceleration of video decoding

Supported NVIDIA architectures: Pascal (sm_60, sm_61), Volta (sm_70), Turing (sm_75), Ampere (sm_80, sm_86), Ada Lovelace (sm_89), Hopper (sm_90).
You can identify the architecture of your GPU here.

There are also optimized GPU images which have the same packages and libraries installed as stated above. To install them add .opt suffix at the end of the docker image name, e.g. dokai:gpu.pytorch.opt.

Example

Pull an image from the GitHub Container registry

docker pull ghcr.io/osai-ai/dokai:24.04-gpu.pytorch

Docker Hub mirror

docker pull osaiai/dokai:24.04-gpu.pytorch

Check available GPUs inside the container

docker run --rm \
    --gpus=all \
    ghcr.io/osai-ai/dokai:24.04-gpu.pytorch \
    nvidia-smi

Package versions

img.png

CPU images

dokai:24.04-cpu.core

ghcr.io/osai-ai/dokai:24.04-cpu.core

Image based on python:3.11.9-slim-bookworm which includes:

  • Debian Bookworm Operational System;
  • Python 3.11.9;
  • etc..

On top of that packages are installed, here's a brief description and purpose of each:

Utilities:

  • nano, vim, tmux are text editors and terminal multiplexers used for editing files and managing terminal sessions.
  • unzip is a utility used to decompress ZIP archives, commonly used for extracting files from compressed archives.
  • git is a distributed version control system used for tracking changes in source code during software development.
  • wget, curl are command-line tools used for downloading files from the internet, commonly used in scripts and automation tasks.
  • htop is interactive system monitoring tool used for displaying system resource usage.
  • sysstat collects and reports system performance statistics, including CPU, memory, and disk usage.

dokai:24.04-cpu.ffmpeg

ghcr.io/osai-ai/dokai:24.04-cpu.ffmpeg

Image based on dokai:24.04-cpu.core:

Additionally, installed:

  • FFmpeg (n6.1)

dokai:24.04-cpu.base

ghcr.io/osai-ai/dokai:24.04-cpu.base

Image based on dokai:24.04-cpu.ffmpeg:

Additionally, installed:

GPU images built from source

dokai:24.04-gpu.core

ghcr.io/osai-ai/dokai:24.04-gpu.core

Image based on nvidia/cuda:12.2.2-cudnn8-devel-ubuntu22.04 which includes:

  • Ubuntu 22.04 Operational System;
  • CUDA (12.2.2);
  • cuDNN (8.9.6);
  • NVCC;
  • etc..

On top of that packages are installed, here's a brief description and purpose of each:

Python (3.11.9):

  • python3.11 is a programming language used for scripting and software development.
  • python3.11-dev contains header files and development tools for building Python extensions.
  • python3.11-distutils contains utilities for distributing and installing Python packages.
  • python3.11-tk contains Tkinter, a GUI toolkit for Python.

Builders, configurators and compilers:

  • build-essential package contains essential tools required for building software on Ubuntu, including compilers (gcc, g++, etc.) and build-related tools.
  • Yasm and nasm are assemblers used for compiling assembly language code into machine-readable format, commonly used in building software.
  • Ninja is a small build system that is fast and efficient, used as an alternative to GNU Make in some projects.
  • cmake is a cross-platform build system generator used to control the software compilation process using simple platform-independent configuration files.
  • pkgconf is a package configuration system used to help locate and configure libraries needed for building software.
  • gfortran is a GNU Fortran compiler used for compiling Fortran code.
  • autoconf and libtool are tools for generating configure scripts and managing software builds on various platforms.

Utilities:

  • nano, vim, tmux are text editors and terminal multiplexers used for editing files and managing terminal sessions.
  • unzip is a utility used to decompress ZIP archives, commonly used for extracting files from compressed archives.
  • git is a distributed version control system used for tracking changes in source code during software development.
  • wget, curl are command-line tools used for downloading files from the internet, commonly used in scripts and automation tasks.
  • htop and nvtop are interactive system monitoring tools used for displaying system resource usage.
  • sysstat collects and reports system performance statistics, including CPU, memory, and disk usage.

Libraries:

  • libsm6, libxext6, libxrender1, libgl1-mesa-glx libraries for X Window System used for rendering graphics and managing graphical applications.
  • libtcmalloc-minimal4 is a memory allocation library, providing optimized memory management functions.
  • libx264-dev is a library for encoding H.264 video streams.
  • libsndfile1 is a library for reading and writing audio files.
  • libssl-dev is a development package for OpenSSL, providing cryptographic functions.
  • libpng-dev and libjpeg-dev are development libraries for handling PNG and JPEG image formats, respectively.
  • libmp3lame-dev is a development library for encoding and decoding MP3 audio files.
  • liblapack-dev is a library for numerical linear algebra functions.
  • libopenblas-dev is an optimized BLAS (Basic Linear Algebra Subprograms) library.

dokai:24.04-gpu.ffmpeg

ghcr.io/osai-ai/dokai:24.04-gpu.ffmpeg

Image based on dokai:24.04-gpu.core:

Additionally, installed:

  • FFmpeg (n6.1)
  • nv-codec-headers (n12.1.14.0)

dokai:24.04-gpu.base

ghcr.io/osai-ai/dokai:24.04-gpu.base

Image based on dokai:24.04-gpu.ffmpeg:

Additionally, installed:

dokai:24.04-gpu.pytorch

ghcr.io/osai-ai/dokai:24.04-gpu.pytorch

Image based on dokai:24.04-gpu.base.

Additionally, installed:

dokai:24.04-gpu.video

ghcr.io/osai-ai/dokai:24.04-gpu.video

Image based on dokai:24.04-gpu.pytorch.

Additionally, installed:

  • VideoProcessingFramework==2.0.0 (source, v2.0.0)
  • tensor-stream==0.5.0 (source, 0.5.0)

GPU images optimized

Optimized set is composed of the previous one but based on lighter NVIDIA runtime base image.

dokai:24.04-gpu.core.opt

ghcr.io/osai-ai/dokai:24.04-gpu.core.opt

Image based on nvidia/cuda:12.2.2-cudnn8-runtime-ubuntu22.04 and includes the same additionally installed packages as dokai:24.04-gpu.core.

dokai:24.04-gpu.ffmpeg.opt

ghcr.io/osai-ai/dokai:24.04-gpu.ffmpeg.opt

Image based on dokai:24.04-gpu.core.opt and includes the same additionally installed packages as dokai:24.04-gpu.ffmpeg.

dokai:24.04-gpu.base.opt

ghcr.io/osai-ai/dokai:24.04-gpu.base.opt

Image based on dokai:24.04-gpu.ffmpeg.opt and includes the same additionally installed packages as dokai:24.04-gpu.base.

dokai:24.04-gpu.pytorch.opt

ghcr.io/osai-ai/dokai:24.04-gpu.pytorch.opt

Image based on dokai:24.04-gpu.base.opt and includes the same additionally installed packages as dokai:24.04-gpu.pytorch.

dokai:24.04-gpu.video.opt

ghcr.io/osai-ai/dokai:24.04-gpu.video.opt

Image based on dokai:24.04-gpu.pytorch.opt and includes the same additionally installed packages as dokai:24.04-gpu.video.

Size comparison

Image cpu.* gpu.* gpu.*.opt
core 0.49Gb 11Gb 4.5Gb
ffmpeg 0.53Gb 11Gb 4.6Gb
base 1.6Gb 12Gb 5.7Gb
pytorch - 17Gb 12Gb
video - 17Gb 12Gb

Versions for past releases can be found in release descriptions.