GPU Services Engine Properties

One set of intrinsic Engine properties is the CUDA GPU Engine properties set. On Windows and Linux systems, the Engine Daemon detects the presence and characteristics of GPU processors with the CUDA runtime library and provides those characteristics as Engine properties. This allows for the development of Services that can take advantage of machines that have GPU cards.

If the Engine Daemon detects a CUDA GPU, it sets the following Engine properties:

CUDA_DEVICES – The number of CUDA devices detected on an Engine.
CUDA_FIRST_GPU_NAME – The name of the first CUDA device.
CUDA_GLOBAL_MEMORY – The amount of CUDA global memory supported. If there is more than one device, this is the minimum amount supported.
CUDA_VERSION – The CUDA capability version. If there is more than one device, this is the minimum version.
CUDA_PROCESSORS – The number of CUDA processors supported. If there is more than one device, this is the minimum number of processors.

Note that on 64-bit Windows machines, CUDA properties are only detected when the Engine Daemon is started on the physical console. Engine Daemons started via RDP do not detect any GPUs.

On Linux machines, you must ensure that the device files /dev/nvidia* exist and have read/write file permissions for the user running the Engine. This can be done by creating a startup script to load the driver kernel module and create the entries at boot time. For more information, see the Linux documentation at the NVIDIA support site.

See the CUDA example in the GridServer SDK for more information.

CUDA detection was tested on the GeForce 210 device with 3.0 drivers, GeForce 9800 GT device with 3.10 drivers, the Quadro NVS 295 with 3.0 and 3.20 drivers, and the Quadro FX 380 with 3.10 drivers.