[x264-devel] Re: Scalability

Loren Merritt lorenm at u.washington.edu
Tue Feb 27 22:24:28 CET 2007


On Tue, 27 Feb 2007, Christian Bienia wrote:

>> BTW, using 8 threads on a lots-of-cpus system should not be confused with
>> using 8 cpus. You need at least 12 threads to get optimal scaling on 8
>> cpus. (Probably the most prominent reason is that not all frames take the
>> same amount of time to encode.)
>
> How can differences in encoding time cause lower scalability? Doesn't a
> thread grab an new frame as soon as it is done? So as long as no other
> limitation (such as the you described below for high numbers of threads)
> causes a delay, the work distribution mechanism should keep all threads
> busy all the time.

When a fast frame is predicted from a slow frame, it can't encode any
faster than the slow frame, so the fast frame's thread sits idle some of
the time. This doesn't reduce the scalability-per-number-of-cpus, only the
scalability-per-number-of-threads.

> How difficult would it be to use a finer granularity? Could multiple
> threads encode a single frame (without slices), or are there any data
> dependencies?

Finer-grained threading is possible (see XviD), but it can't be used at
the same time as frame-threading. And frame-threading has better
scalability.

--Loren Merritt

-- 
This is the x264-devel mailing-list
To unsubscribe, go to: http://developers.videolan.org/lists.html



More information about the x264-devel mailing list