Is there any way to overlap any kind of host <-> device access at all? We’re trying to build a “real time” system and the inability to do any kind of overlap is killing our timing.
The data is already being “compressed” for both copies.
Is there any way to overlap any of that so that if I were to do that “twice” (or constantly), the average would be less than 108ms? I think I’ve seen that we can’t do that, but even if I could just do simultaneous copies that would reduce the average time by 12ms. Is this possible on the hardware? Is this possible in current CUDA?
Yes of course, all our transfers are pagelocked. The issue is that we need to move a lot of data on and off of the board, and there’s no way around that. If we could be sending or recieving data while the next set processes that would be excellent.
Can you say if this is a CUDA limitation or a HW limitation, and when it might be “remedied”?
No, it has only been possible to use the CPU in concurrency with the memory transfers. The GPU has always waited for the memory transfers to complete, even with use of the pixel buffer objects.