# GPU-Basis-Image Dies soll ein Basis-Image für GPU-Applikationen darstellen: ```dockerfile # Wir nutzen ein Image von NVIDIA FROM nvidia/cuda:12.2.0-runtime-ubuntu20.04 # Lege für später Variablen für einen non-root User fest (mit fester UID zur besseren Zuweisung) ENV NB_USER="gpuuser" ENV UID=999 # Install essential packages RUN apt-get update && apt-get install -y \ python3.8 \ python3-pip \ python3.8-dev \ python3.8-distutils \ gcc \ g++ \ curl \ wget \ sudo \ && rm -rf /var/lib/apt/lists/* # Installiere hier PyTorch mit GPU support (Versionen können angepasst werden) RUN python3.8 -m pip install --upgrade pip \ torch==2.0.1\ torchvision==0.15.2 # Erstellen eines non-root Users RUN useradd -l -m -s /bin/bash -u $UID $NB_USER # Arbeitsverzeichnis festlegen WORKDIR /app # und zum non-root User wechseln USER ${NB_USER} # Starte die Konsole wenn wir den container starten CMD ["/bin/bash"] ``` ❗ ️ __Wichtig:__
Es muss mind. die gleiche Cuda-Version auf dem Host-Gerät installiert sein. ### Testen Erstelle einen Container aus dem Image mit ```docker build -t gputest .```. Anschließend starte den Container mit ```docker run --gpus all -it gputest```. Nun sollten wir direkt in der Konsole des Containers mit dem user ```gpuuser``` sein. Hier starten wir die Python Shell und wir können die Bibliothek ```torch``` nutzen um unsere GPU zu suchen mit: ```python >>> import torch >>> torch.cuda.is_available() True >>> torch.cuda.device_count() 1 >>> torch.cuda.current_device() 0 >>> torch.cuda.device(0) >>> torch.cuda.get_device_name(0) 'NVIDIA GeForce GTX 1080 Ti' ``` ⚠️Wichtig: wenn dies nicht funktioniert, dann bitte noch einmal die Treiber auf der Host-Maschine überprüfen. Das man auch die gleiche Version im Docker Container benutzt. Die Versionen in der ```Dockerfile``` können natürlich angepasst werden, aber auf die Treiber achten!!!