--- title: "Enabling Application Machines with GPUs in On-Premise Docker Deployments" slug: "enabling-application-machines-with-gpus-in-on-premise-docker-deployments" updated: 2026-05-06T19:22:05Z published: 2026-05-06T19:22:05Z canonical: "help.hyperscience.ai/enabling-application-machines-with-gpus-in-on-premise-docker-deployments" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.hyperscience.ai/llms.txt > Use this file to discover all available pages before exploring further. # Enabling Application Machines with GPUs in On-Premise Docker Deployments With Hyperscience, you can leverage ORCA VLMs in the processing of your submissions. However, VLMs require more computing resources than our other automation capabilities do. In order to use ORCA VLMs in on-premise deployments of Hyperscience, you need to have **at least one application machine** in your instance that has both a GPU (graphics processing unit) and a CPU (central processing unit). GPUs have specialized cores that allow the system to perform multiple computations in parallel, reducing the time required to complete the complex operations required to apply visual machine learning to your use case. When you add a correctly sized machine with a GPU to your instance, you can maximize the benefits of ORCA VLMs. To learn more about this feature, see “ORCA (Optical Reasoning and Cognition Agent) VLMs” ( [v41](/v41/docs/orca-optical-reasoning-and-cognition-agent-vlms) | [v42.0-v42.2](/v42/docs/v420-v422-orca-optical-reasoning-and-cognition-agent-vlms) | [v42.3](/v42/docs/v423-orca-optical-reasoning-and-cognition-agent-vlms) | [v43](/v43/docs/v423-orca-optical-reasoning-and-cognition-agent-vlms) ). This article describes how to enable an application machine with both a GPU and a CPU in an on-premise Docker deployment of Hyperscience. **Steps 1-3 must be completed before untarring the Hyperscience bundle on the application machine.** For more information on installing Hyperscience, see [Technical Installation / Upgrade Instructions](/deployment/docs/technical-installation-upgrade-instructions). ## 1. Make sure your GPU hardware meets the requirements. See [Infrastructure Requirements](/deployment/docs/infrastructure-requirements#gpu1) for more information. ## 2. Make sure your application machine meets the software-compatibility requirements. There are several software-compatibility considerations to keep in mind when setting up your application machine. ### a. Verify that your GPU supports CUDA. *CUDA* is a parallel computing platform and programming model created by NVIDIA. Machine learning often uses CUDA-based libraries, SDKs, and other tools. You can find out whether your GPU supports CUDA by running the following command: ```bash lspci | grep -i nvidia ``` For more information, see NVIDIA’s [CUDA GPUs - Compute Capability](https://developer.nvidia.com/cuda-gpus) and [NVIDIA CUDA Installation Guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#verify-you-have-a-cuda-capable-gpu). ### b. Verify that you have a supported version of Linux. Follow the instructions in NVIDIA’s [NVIDIA CUDA Installation Guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#verify-you-have-a-supported-version-of-linux) to check your version of Linux. Then, make sure your Linux version is supported by the latest CUDA Toolkit by reviewing NVIDIA’s [NVIDIA CUDA Toolkit Release Notes](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-toolkit-major-component-versions). You should also ensure that you are running a version of Linux that is supported by Hyperscience. For a list of supported Linux distributions and versions, see [Infrastructure Requirements](/deployment/docs/infrastructure-requirements#operating-system). ### c. Verify that the system has *gcc* installed. The *gcc* compiler is required for development using the CUDA Toolkit. To make sure it is installed, follow the instructions in NVIDIA’s [NVIDIA CUDA Installation Guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#verify-the-system-has-gcc-installed). ### d. Verify that the system has the current Kernel headers and development packages installed. Kernel headers are header files that specify the interface between the Linux kernel and userspace libraries and programs. The CUDA driver requires that the kernel headers and development packages for the running version of the kernel be installed at the time of the driver installation, as well whenever the driver is rebuilt. For example, if your system is running kernel version 3.17.4-301, the 3.17.4-301 kernel headers and development packages must also be installed. To verify that these requirements are met, run the following command: ```bash apt-get install linux-headers-$(uname -r) ``` For more information and commands for various Linux distributions, see NVIDIA’s [NVIDIA CUDA Installation Guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#verify-the-system-has-the-correct-kernel-headers-and-development-packages-installed). ## 3. Install the CUDA drivers. Follow these steps to make sure that you have the most current and correct CUDA drivers installed. ### a. Remove any CUDA drivers installed on the system. Compatibility between the CUDA Toolkit and CUDA drivers is crucial. In our Docker-based system, the CUDA Toolkit is installed in the application’s images, and you need to make sure that they match the CUDA drivers that are installed in the host OS. The current CUDA Toolkit version installed should be compatible with the latest available CUDA driver. For details on toolkit and driver versions, see NVIDIA’s [NVIDIA CUDA Toolkit Release Notes](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#id5). ![CUDADriversAndToolkits.png](https://cdn.us.document360.io/87894cef-4958-4f3f-be6f-b75a78c82548/Images/Documentation/17533309419917.png) An example command for removing these drivers appears below: ```bash apt-get clean; apt-get update; apt-get purge -y cuda*; apt-get purge -y nvidia-*; apt-get -y autoremove ``` You can tailor this command to match your Linux distribution. ### b. Install *nvidia-container-toolkit* or *nvidia-docker2*. The Docker host needs to be prepared before it can expose your GPU hardware to the containers. Although containers share your host’s kernel, they cannot access information on the system packages you have installed. A plain container will lack the device drivers that interface with your GPU. #### (Ubuntu 21 and later) Install *nvidia-container-toolkit*. You can activate support for NVIDIA GPUs by installing NVIDIA’s Docker Container Toolkit: ```bash curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg        curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \          sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \          tee /etc/apt/sources.list.d/nvidia-container-toolkit.list        apt-get update        apt-get install -y nvidia-container-toolkit ``` Then, verify the contents of your `/etc/docker/daemon.json`, as described [below](/deployment/docs/enabling-application-machines-with-gpus-in-on-premise-docker-deployments#ubuntu-20-and-later-check-the-daemon-file). #### (Ubuntu 20) Install *nvidia-docker2*. To activate support for NVIDIA GPUs, install `nvidia-docker2` by running the following command: ```bash distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \        && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \        && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list        apt-get update && apt-get install -o Dpkg::Options::="--force-confold"   -y nvidia-docker2 ``` Then, verify the contents of your `/etc/docker/daemon.json`, as described [below](/deployment/docs/enabling-application-machines-with-gpus-in-on-premise-docker-deployments#ubuntu-20-and-later-check-the-daemon-file). #### (Ubuntu 20 and later) Check the *daemon* file. Make sure your Docker `daemon` file looks like the one shown below: ```json {        "log-driver": "json-file",        "log-opts": {        "max-size": "10m",        "max-file": "10"        },        "runtimes": {        "nvidia": {        "path": "/usr/bin/nvidia-container-runtime",        "runtimeArgs": []        }        },        "default-runtime": "nvidia",        "node-generic-resources": [        "NVIDIA-GPU=0"        ] } ``` Inspect your `/etc/docker/daemon.json` file to confirm that the configured container runtime has been changed. The system will handle the injection of GPU device connections when new containers start. ### c. Install the latest CUDA drivers. Running the following command installs the latest CUDA driver versions, which should be compatible with the container toolkit: ```bash distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')        wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-keyring_1.0-1_all.deb        dpkg -i cuda-keyring_1.0-1_all.deb        apt-get update && apt-get -y install cuda-drivers ``` While we recommend installing the latest version of the CUDA driver, only the minimum required version for your version of Hyperscience is required. See [Infrastructure Requirements](/deployment/docs/infrastructure-requirements#gpu) for more information. ## 4. Initialize the VLM in the application machine. Before you can use ORCA, you need to initialize it in the application machine with the GPU. Doing so ensures that that machine will be used for processing tasks that require ORCA. Run the following commands **on the machine that has the GPU**: ```bash ./run.sh init # standard installation step, skip if already done ./run.sh # standard installation step, skip if already done ./run.sh ipm VISION_LANGUAGE_MODEL_GPU # ORCA-specific installation step (only in the GPU machine) ``` ## Next steps After you’ve finished prepared your infrastructure to use ORCA VLMs, you are ready to apply ORCA to your use case. To learn how, see “ORCA (Optical Reasoning and Cognition Agent) VLMs” ( [v41](/v41/docs/orca-optical-reasoning-and-cognition-agent-vlms) | [v42.0-v42.2](/v42/docs/v420-v422-orca-optical-reasoning-and-cognition-agent-vlms) | [v42.3](/v42/docs/v423-orca-optical-reasoning-and-cognition-agent-vlms) | [v43](/v43/docs/v423-orca-optical-reasoning-and-cognition-agent-vlms) ).