GPU system requirements (Linux, Windows only)

If you are planning to offload Java™ application processing to a general-purpose graphics processing unit (GPU), a series of hardware and software requirements must be satisfied.

Hardware requirements

  • Support for GPU processing is available on x86-64 systems and IBM® POWER® 8 systems that support NVIDIA Compute Unified Device Architecture (CUDA).
  • GPU adapters must have a minimum compute capability of 3.0. To determine the compute capability of a device, see https://developer.nvidia.com/cuda-gpus. The CUDA toolkit includes the sample programs deviceQuery and deviceQueryDrv that output the compute capability of devices in a system.
Note: If you have more than one GPU installed on your system and you want your application to target a specific GPU, you can use the CUDA environment variable CUDA_VISIBLE_DEVICES to control device visibility. For more information about this variable, see CUDA environment variables on the NVIDIA website.

Software requirements

Your operating system must be supported by J9 and the CUDA Toolkit:
  • GPU devices require the CUDA Toolkit 7.5, which provides a compiler, math libraries, and tools for debugging and tuning application performance. For a list of supported operating systems, and to download the toolkit, see https://developer.nvidia.com/cuda-toolkit.

Just-In-Time Compiler (JIT) based GPU support requires the NVIDIA Virtual Machine (NVVM) library, and the NVIDIA Management Library (NVML). NVVM is part of the CUDA Toolkit, and the runtime version of NVML is packaged with NVIDIA display drivers. You can download the latest GPU drivers from NVIDIA Driver Downloads.

You must include a path to the CUDA run time in the appropriate environment variable:
  • Linux®: LD_LIBRARY_PATH
  • Windows: PATH
For JIT-based GPU support, this variable must also include paths to the NVVM and NVML libraries. For information about setting this variable, see Enabling application processing on a graphics processing unit (Linux, Windows only).