Re: mulithread rework

iibot <[email protected]>
Newsgroups gmane.comp.video.xvid.devel
Message-ID <[email protected]>
Con Kolivas schrieb:
>> Con Kolivas wrote:
> Converting it to strict locking has the effect of performing at
> virtually the same rate of frame encoding, but with much less CPU
> usage. What this means is that no CPU is wasted whatsoever by burning
> in the yield() loopback. The reason we don't get any more encoding
> speed is that as I said previously, it's not CPU limiting that
> prevents further speed gains; it's actually the fact that each
> successive thread depends entirely on the progress of the previous
> thread before it can make any forward progress. This is what I was
> worried about back earlier when I said it didn't sound particularly
> scalable.
 >
> Anyway, for the moment, I don't have any magic bullets on how to speed
> up the encoding. There simply isn't enough work for each thread to do
> before it blocks waiting on the other thread. Unless there was another
> way of parallelising the workloads such that each thread has more work
> to do before blocking, I think you're pretty close to the ceiling of
> the scalability of this approach. I'll look to see if there's anything
> else that can be done, but I'm not optimistic about the chances.
> 
> It was fun playing though :-)

That's good.

Actually there are a few knobs to tune now that it is not burning cycles 
to extract more useful work for the CPUs.

If possible you could try to change when a thread starts working again 
by setting it to use larger sets of macroblocks, i.e. only start when 
the above row has proceeded by k blocks (and not 1 as in current code).
This alone will make things worse but together with setting more threads 
(at least 2x number of cores) I guess there will be enough additional 
work for the CPUs to do.

Anyway it's a small (and I hope worthwhile) change to try and it just 
*could* work :)

bis besser,
Tobias
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.