# 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](https://developer.nvidia.com/cuda/wsl) 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](/desktop/features/gpu/wsl/#turn-on-docker-desktop-wsl-2) en Docker Desktop

## Validar el soporte de GPU

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

```console
$ 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:

```console
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:

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

Comprueba que esté correctamente instalado:

```console
$ 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:

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

