LoginSignup
2
2

CUDA+OpenGL Dockerイメージの作成方法

Posted at

はじめに

  • NVIDIA CUDA + OpenGLを利用可能なDockerイメージの作成方法
    • 用途: NVIDIA GPUを使ってコンテナ内でGPGPU処理とGUI表示する
  • Ubuntu20.04までは、NVIDIAが公式で「cudagl」というDockerイメージを用意していた
    • Ubuntu22.04ベースは用意されていない(2024.3.1時点)

方法

Ubuntu20.04

下記からcudaglイメージを使う。

例:Ubuntu20.04 + CUDA11.3.0(devel) + OpenGLの場合

docker pull nvcr.io/nvidia/cudagl:11.3.0-devel-ubuntu20.04

Ubuntu22.04

ベースのCUDAイメージを起点にして、OpenGL関連の必要なファイルをインストールする。

Dockerfileは以下のようになっているので、build-argで指定するか、自身のDockerfileに組み込んでビルドする。

ARG from

FROM ${from}

RUN apt-get update && apt-get install -y --no-install-recommends \
        pkg-config \
        libglvnd-dev libglvnd-dev:i386 \
        libgl1-mesa-dev libgl1-mesa-dev:i386 \
        libegl1-mesa-dev libegl1-mesa-dev:i386 \
        libgles2-mesa-dev libgles2-mesa-dev:i386 && \
    rm -rf /var/lib/apt/lists/*
  • ポイント
    下記部分がOpenGLの部分。この部分を自身のDockerfileに追記すればよい。
    RUN apt-get update && apt-get install -y --no-install-recommends \
         pkg-config \
         libglvnd-dev libglvnd-dev:i386 \
         libgl1-mesa-dev libgl1-mesa-dev:i386 \
         libegl1-mesa-dev libegl1-mesa-dev:i386 \
         libgles2-mesa-dev libgles2-mesa-dev:i386 && \
     rm -rf /var/lib/apt/lists/*
    

起点となるCUDAイメージは以下を参照。

例:Ubuntu22.04 + CUDA 12.3.2(devel) + OpenGL

docker build -t {YOUR_IMAGE_NAME} --build-arg "from=nvcr.io/nvidia/cuda:12.3.2-devel-ubuntu22.04" .

参考

トラブルシューティング

32bit(i386)用OpenGLライブラリのインストールが失敗する

E: Unable to locate package libglvnd-dev:i386
E: Unable to locate package libgl1-mesa-dev:i386
E: Unable to locate package libegl1-mesa-dev:i386
E: Unable to locate package libgles2-mesa-dev:i386
  • 対処方法
    • 上記パッケージを除いて、インストールする。
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2