GPU Computing SupportΒΆ

The usage of the NVIDIA GPU accelerator requires CUDA runtime libraries which are compatible with the installed NVIDIA driver. On Linux, JCMsuite provides a configuration tool which helps you set up these runtime libraries for your installation.

Local installation on Linux

Run the following command from your JCMsuite installation:

>> <JCMROOT>/lib/cuda/configure_cuda

Use this tool if:

  • You have freshly installed JCMsuite.
  • You want to configure a shared JCMsuite installation for GPU computations on a different computer.
  • JCMsolve does not find CUDA support.

The configurator offers two ways to provide the required CUDA runtime libraries:

  • Use an existing CUDA toolkit. This is the recommended option if CUDA is already installed on your system, for example following the official NVIDIA installation instructions at https://developer.nvidia.com/cuda-downloads. The configurator asks for the CUDA toolkit path and links your JCMsuite installation to the corresponding library folder. This way the CUDA libraries can be shared by several users and reused across multiple JCMsuite installations.
  • Install CUDA runtime libraries locally. Choose this option if no suitable CUDA runtime is available on your system. The configurator downloads the required standalone runtime package from the JCMwave installation server and installs it locally below <JCMROOT>/lib/cuda.

After the configuration step, the tool checks whether the CUDA runtime can be used by JCMsolve. You can also check the configured platform information manually with

>> <JCMROOT>/bin/JCMsolve --platform

When your JCMsuite installation is shared by multiple computers with different NVIDIA driver versions, you can install CUDA runtime libraries for different major versions side by side. JCMsolve will select a compatible version during runtime.

Note

The configurator writes below <JCMROOT>/lib/cuda. For a central JCMsuite installation you therefore need write permissions for the installation directory while running the tool.