Original Post
Suppose I have some crazy large computations that I expect to take several seconds, even with the GPU's raw horsepower. I can do it on the CPU as a background thread of some sort. But the CPU can only really manage something in the ~1-10 GFLOP range. The GPU can theoretically handle things in the 100 GFLOP range or larger. And if I have multiple computations I could theoretically split them up between GPU and CPU. My "game" (more of a simulation with a visualizer) uses very little graphics horsepower, so it would be cool to offload some of these multi-frame calculations to the GPU. They don't have a kill-by date, so I'm mostly interested in throughput over latency. But I don't want to affect the graphics FPS at all if I can avoid it. I'm guessing the only way to really achieve this is if I could break the large computation in to per-frame chunks that I know will not take longer than a few milliseconds to execute. That is, I could devote part of my rendering budget to these computations per frame. That would probably even work well if I was targeting a console since I would know a priori what sort of hardware and timings to expect. But it doesn't really help in the PC world where users might have anything from an Intel integrated chip to a dual 9800 NVidia. So I'm wondering if anyone has any thoughts on how this might work. My current thought is that I could maybe have a separate context for the computations, but I'm not sure if that would do a good job at load balancing between the high priority but low load graphics vs. the low priority but high load computations.