Skip to main content

Arkitekt and the GPU

Quite a lot of modern image analysis tools, especially those based on deep learning, are designed to run on GPUs. Arkitekt aims to make it easy to use these tools, and to make it easy to run them on GPUs. However there are a few things to be aware of, as Arkitekt is not a magical solution to all GPU problems.

GPU Support

There are two different ways to use GPUs with Arkitekt. The first is to use the GPU support built into the standalone tools themselves and on their hardware. This is probably the case when this tool exists primarily outside of the Arkitekt ecosystem, and Arkitekt is just being used to bridge it. You can then just connect this tool like any other tool, and Arkitekt will run in on the connecting tool and hardware.

The second way is to use the GPU support built into Arkitekt itself. This is the case when the tool is designed to run inside Arkitekt as a PluginApp. See more in the developer section on how to build an Arkitekt plugin. Here Arkitekt uses the docker support system to run the plugin in a docker container within the Arkitekt server.

How the Arkitekt server can manage GPU access. (Adapted from the NVIDIA Container Toolkit Documentatoin) . Containers run in a sandbodex environment and request GPU access from the underlying service (docker engine). This

GPU Support on Windows

Luckily the easy of integration of the CUDA support into docker containers has gotten a lot easier in the last two years. Windows users will no longer need to install the NVIDIA Container Toolkit, but can instead use the WSL2 backend of Docker Desktop. The installation instructions for this can be found here.

GPU Support on Linux

The same is true for Linux users. The NVIDIA Container Toolkit is no longer needed, and the docker engine can be used directly. The installation instructions for this can be found here.