If there is no display to be managed and no X rendering tasks (for example, OpenGL) required, then X can usually be disabled. For example:Įxport CUDA_VISIBLE_DEVICES="1" (Choose the numerical parameter to select the GPU that is not the X GPU) CUDA processing should be forced onto the other GPU, for example by using the CUDA_VISIBLE_DEVICES environment variable before any CUDA applications are launched.The PCI IDs of the GPUs may be determined from the lspci command or from the nvidia-smi -a command. In addition, any other "Device" sections should be deleted. The X display should be forced onto a single GPU using the BusID parameter in the relevant "Device" section of the nf file.
This allows full interactivity and no disturbance of X while simultaneously allowing unhindered CUDA execution. If two GPUs can be made available in the system, then X processing can be handled on one GPU while CUDA tasks are executed on the other. There are several options for managing the interactivity requirements of X while performing CUDA processing tasks. If no consideration is given to managing both sets of tasks simultaneously, the system may experience disturbances and hangs in the X Window system, leading to an interruption of processing X-related tasks, such as display updates and rendering.
When GPUs are used to simultaneously function as a General Computing Processor using the NVIDIA CUDA architecture and also as a display manager using X Windows, the user should be aware of certain limitations with handling both activities simultaneously on a single GPU.