Compartir comentarios
Las respuestas se generan en base a la documentación.

Soporte de GPU en Docker Desktop para Windows

Note

El soporte de GPU en Docker Desktop está disponible únicamente en Windows con el backend WSL2.

Docker Desktop para Windows admite la Paravirtualización de GPU de NVIDIA (GPU-PV) en GPU de NVIDIA, lo que permite a los contenedores acceder a los recursos de la GPU para cargas de trabajo de uso intensivo de cómputo como IA, aprendizaje automático (machine learning) o procesamiento de video.

Requisitos previos

Para habilitar la Paravirtualización de GPU en WSL 2, necesitas:

  • Una máquina Windows con una GPU NVIDIA
  • Una instalación actualizada de Windows 10 o Windows 11
  • Controladores actualizados de NVIDIA que admitan la Paravirtualización de GPU en WSL 2
  • La última versión del kernel de Linux para WSL 2. Utiliza wsl --update en la línea de comandos
  • Asegurarte de que el backend de WSL 2 esté activado en Docker Desktop

Validar el soporte de GPU

Para confirmar que el acceso a la GPU funciona dentro de Docker, ejecuta lo siguiente:

$ docker run --rm -it --gpus=all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

Esto ejecuta una prueba de rendimiento (benchmark) de simulación n-body en la GPU. La salida será similar a:

Run "nbody -benchmark [-numbodies=<numBodies>]" to measure performance.
        -fullscreen       (run n-body simulation in fullscreen mode)
        -fp64             (use double precision floating point values for simulation)
        -hostmem          (stores simulation data in host memory)
        -benchmark        (run benchmark to measure performance)
        -numbodies=<N>    (number of bodies (>= 1) to run in simulation)
        -device=<d>       (where d=0,1,2.... for the CUDA device to use)
        -numdevices=<i>   (where i=(number of CUDA devices > 0) to use for simulation)
        -compare          (compares simulation results running once on the default GPU and once on the CPU)
        -cpu              (run n-body simulation on the CPU)
        -tipsy=<file.bin> (load a tipsy model file for simulation)

> NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

> Windowed mode
> Simulation data stored in video memory
> Single precision floating point simulation
> 1 Devices used for simulation
> MapSMtoCores for SM 7.5 is undefined.  Default to use 64 Cores/SM
GPU Device 0: "GeForce RTX 2060 with Max-Q Design" with compute capability 7.5

> Compute 7.5 CUDA device: [GeForce RTX 2060 with Max-Q Design]
30720 bodies, total time for 10 iterations: 69.280 ms
= 136.219 billion interactions per second
= 2724.379 single-precision GFLOP/s at 20 flops per interaction

Ejecutar un modelo del mundo real: SmolLM2 con Docker Model Runner

Utiliza Docker Model Runner para ejecutar el LLM SmolLM2 con vLLM y aceleración de GPU:

$ docker model install-runner --backend vllm --gpu cuda

Comprueba que esté correctamente instalado:

$ docker model status
Docker Model Runner is running

Status:
llama.cpp: running llama.cpp version: c22473b
vllm: running vllm version: 0.11.0

Ejecuta el modelo:

$ docker model run ai/smollm2-vllm hi
Hello! I'm sure everything goes smoothly here. How can I assist you today?