3 ms·
To me this is laughably naive question, but I ask it any way. My understanding is that CPU/GPU per application can make only single draw call in sequential man
by neatze 6y ago
To me this is laughably naive question, but I ask it any way.
My understanding is that CPU/GPU per application can make only single draw call in sequential manner. (eg. CPU->GPU->CPU->GPU)
Could vgpu's be used for concurrent draw calls from multiple processes of an single application ?
- milkey_mouse 6y ago> My understanding is that CPU/GPU per application can make only single draw call in sequential manner. The limitation you're probably thinking of is in the OpenGL drivers/API, not in the GPU driver itself. OpenGL has global (per-application) state that needs to be tracked, so outside of a few special cases like texture uploading you have to only issue OpenGL calls from one thread. If applications use the lower-level Vulkan API, they can use a separate "command queue" for each thread. Both of those are graphics APIs, I'm less familiar with the compute-focused ones but I'm sure they can also process calls from multiple threads.
- milkey_mouse 6y agoAnd VGPUS are isolated from one another, that's the whole point-so using multiple in one application would be very difficult, as I don't think they can share data/memory in any way.
- neatze 6y agoMy primitive thoughts: Threaded Computation on CPU -> Single GPU Call -> Parallel Computation on GPU -> Threaded Computation on CPU ... I wonder if it can be used in such way: Asyc Concurrent Computation on CPU -> Asyc Concurrent GPU Calls -> Parallel Time Independent Computations on GPU -> Asyc Concurrent Computation on CPU
- deleted 6y ago[deleted]