Hi Will, yeah there is something to be said for that idea of doing speculative processing.
One other issue though is with larger models it is not just CPU time that can be a problem but also memory consumption. Things that may need to carve off a big chunk of memory in addition to occupying a core can tend to be more intrusive. If the chunk of speculative work occupies enough memory it can push other things out to disk and start the whole virtual memory system swapping, that creates a big negative impact on the "standard task" that is happening at the same time...
I have actually been working on some stuff recently for multi-core, just yesterday I finished up a piece of work to make the tessellator thread safe. That was a pretty big step, but I still need to do some more work to separate things out into more individual work items though.
- Michael
|