# Windows dependencies (WSL)

*Don't follow this step if you plan to run BlurIt OP on Linux.* [*Go there*](https://doc-op.blurit.io/1.0.0/blurit-on-premise/installation/linux-dependencies) *instead.*

### Extract the BlurIt OP archive(windows only)

Extract the BlurIt OP archive with your favorite tools. In WSL you can use the same command as for Linux:

{% code lineNumbers="true" %}

```bash
tar -xzf filename.tar.gz
cd blurit-op
```

{% endcode %}

Otherwise, just use your favorite tool to extract the archive.

## Nvidia Driver installation

Download the NVIDIA driver >= 470 exe from: <https://www.nvidia.com/Download/index.aspx?lang=en-us>

You can also update the drivers using [Nvidia Geforce Experience](https://www.nvidia.com/fr-fr/geforce/geforce-experience/).

## Install WSL 2 (Windows Subsystem Linux)

To Check if WSL is installed, open PowerShell as administrator and run:

{% code lineNumbers="true" %}

```powershell
wsl -l –v
```

{% endcode %}

If WSL is not installed:

{% code lineNumbers="true" %}

```
wsl --install -d Ubuntu
```

{% endcode %}

Then reboot your machine.

It is possible to modify the resources allocated to WSL. For more information, you can refer to this link: <https://learn.microsoft.com/fr-fr/windows/wsl/wsl-config#wslconfig>.

## Docker installation

Instruction to install docker CE on windows with WSL 2 backend : <https://docs.docker.com/desktop/install/windows-install/>.

During the install don't forget to tick the Use **WSL 2 instead of Hyper-V** checkbox.

<figure><img src="https://2036027676-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgXm6TBRgBlG72YzWHe0h%2Fuploads%2FAqIKv9RmfFtIQqOq6pWr%2FDocker-WSL2.png?alt=media&#x26;token=d4965fee-8a0e-4414-89a5-c7db08e35f56" alt=""><figcaption></figcaption></figure>

## Docker-compose

Docker-compose version must be <= 1.29.

To enter WSL, open PowerShell and type `wsl` followed by pressing Enter.

{% code lineNumbers="true" %}

```bash
wget https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64
chmod +x docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 /usr/bin/docker-compose
```

{% endcode %}

## Nvidia-docker installation

To enter WSL, open PowerShell and type `wsl` followed by pressing Enter.

{% code lineNumbers="true" %}

```bash
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

sudo nvidia-ctk runtime configure --runtime=docker
```

{% endcode %}

Restart Docker:

{% code lineNumbers="true" %}

```bash
sudo systemctl restart docker
```

{% endcode %}

Verify that Nvidia-Docker is installed:

{% code lineNumbers="true" %}

```bash
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi -a
```

{% endcode %}

Look for the GPU UUID and copy the two first parts of the UID. For instance, for **GPU-45cbf7b3-f919-7228-7a26-b06628ebefa1** copy **GPU-45cbf7b3**.

### Configuring Docker daemon

Append the following JSON content on the Docker Desktop config like this:

{% code lineNumbers="true" %}

```json
{
	... # current content
	"runtimes": {
		"nvidia": {
			"path": "/usr/bin/nvidia-container-runtime",
			"runtimeArgs": []
		}
	},
	"default-runtime": "nvidia",
	"node-generic-resources": [
	    "NVIDIA-GPU=GPU-xxxxxxxx"
	]
}
```

{% endcode %}

Replace `xxxxxxxx` with the UUID you noted at [nvidia-docker section](#nvidia-docker-installation).

Restart Docker for the change to take effect.

{% code lineNumbers="true" %}

```bash
sudo systemctl restart docker
```

{% endcode %}
