Hi
I a currently working on a Linux Ubuntu workstation now.
I know that multiple process should not simultaneously run on the same GPU.
But how do you handle that? Is there some device login process or document to do that?
I want to develop something like device login to handle the other process from all userw to schedule the work on GPU
Right now our workstation has only one GPU but we are guying a 4-GPU machine so I definitely want something like that
Does anyone has experience?
You might want to look at cuda_wrapper.
In the alternative, the nvidia driver supports the concept of “compute exclusivity” which forces the driver to only allow a single context at a time on a gpu, and this can be used in combination with standard queue scheduling software like Sun grid engone (or whatever the oracle version is now called), and PBS/Torque to manage access to GPUs on a mutli-gpu system or cluster.
I suspect that all the tools you need already exist and you only need to set them up to your tastes.
This restriction is not applicable to my setup: a variety of CUDA cards under a variety of Ubuntus on different boxes, CUDA 2.3 and 3.2.
I routinely (24/7) run up to three processes per GPU. The processes aren’t aware of each other, i.e. they contain no GPU sharing logic beyond what CUDA libraries and the driver provide by default. Everything looks very stable at the moment. All these processes run under the same user ID, so I have no multi-user experience in this respect.
The only limitation I see so far that might prevent you from running multiple processes is finite amount of the GPU RAM.