<div dir="ltr">Michael,<div>There have been a few other efforts to create a benchmarking tool around x265  as it stresses the CPU pretty heavily; some of these tools are available for free download as well.</div><div><br></div><div>As far as scaling goes, at this point, a single instance of x265 scales well to around 20-25 CPU threads, but the serial nature of the decisions that we make limits our parallelism to these levels. We have recently implemented the slices feature (the above number is without slices) which could enable us to scale more, and this is something that we're actively looking at. More lookahead-slices and lookahead-threads should help, but the specifics depend on the content that you are encoding; so I'd encourage you to play with them and share your results so that the community can also comment.</div><div><br></div><div>Also, from your command-line below, I would remove the -pass 1 --slow-firstpass options as I think those aren't relevant for you; they are used to generate results from a quick first pass that can be refined further in subsequent passes.<br><div class="gmail_extra"><br></div><div class="gmail_extra">Pradeep.<br></div><div class="gmail_extra"><div><div class="m_-2830936801270088733gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div></div></div></div></div></div></div></div></div></div><div class="gmail_quote">On Wed, Feb 1, 2017 at 4:55 PM, Michael Lackner <span dir="ltr"><<a href="mailto:michael.lackner@unileoben.ac.at" target="_blank">michael.lackner@unileoben.ac.<wbr>at</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Greetings,<br>
<br>
I have a question about parallelization in x265. I'm currently preparing a benchmarking<br>
project based on x265 (a successor of a similar project using x264).<br>
<br>
The x264 one created in 2010 was locked on a specific version/options and is now running<br>
out of steam because it fails to fully utilize todays' larger processors (16 and more<br>
logical CPUs).<br>
<br>
I'm currently basing this new thing on 4K input content (either UHD or full 4096x2160,<br>
unsure), and I'd like it to scale up to around 1000-2000 logical CPUs or more if possible<br>
(fully loading them). This would also make it possible to load entire shared memory<br>
clusters today.<br>
<br>
I don't care about effective output quality that much, so parallelization is paramount.<br>
<br>
I've seen that x265 has a few knobs you can turn manually to better utilize many cores,<br>
but for my content I'm not sure when I should set which option to what value?! I don't<br>
have test systems for this yet of course...<br>
<br>
I've begun to write a script to determine logical CPU counts on Windows, Linux and<br>
FreeBSD, I just need to know what to do with the following:<br>
<br>
--slices <integer><br>
--lookahead-slices <0..16><br>
--lookahead-threads <integer><br>
<br>
I'm already using:<br>
<br>
--ctu 16<br>
--wpp<br>
--pmode<br>
--pme<br>
<br>
In total, my current options are like this (I also want to be hard on the CPU per clock to<br>
make the benchmark run long enough even with a small enough input file, but only where it<br>
doesn't hurt parallelization):<br>
<br>
-D 10 --fps 24000/1001 -p veryslow --pmode --pme --wpp --open-gop --ref 6 --bframes 16<br>
--b-pyramid --weightb --max-merge 5 --b-intra --bitrate 10000 --rect --amp --aq-mode 2<br>
--no-sao --qcomp 0.75 --no-strong-intra-smoothing --psy-rd 1.6 --psy-rdoq 5.0 --rdoq-level<br>
1 --tu-inter-depth 4 --tu-intra-depth 4 --ctu 16 --max-tu-size 32 --pass 1<br>
--slow-firstpass --stats v.stats --sar 1 --range full<br>
<br>
These might not be good settings for my purpose, and some are redundant given the profile<br>
I guess, which is why I'd like to ask here. I'm just unsure when I should start using more<br>
lookahead slices. And then? Should I switch from lookahead slices to lookahead threads at<br>
some point, or can both be used together!?<br>
<br>
When should I start slicing up input frames, and what do I need to to consider given<br>
proper values for --slices <integer> etc.<br>
<br>
Is it even possible to scale to THAT many cores with 4K/UHD content?!<br>
<br>
I wanna make this a bit more future-proof this time around...<br>
<br>
Thanks a lot for your input!<br>
<br>
Best,<br>
Michael<br>
<span class="m_-2830936801270088733gmail-HOEnZb"><font color="#888888"><br>
--<br>
Michael Lackner<br>
Lehrstuhl für Informationstechnologie (CiT)<br>
Montanuniversität Leoben<br>
Tel.: +43 (0)3842/402-1505 | Mail: <a href="mailto:michael.lackner@unileoben.ac.at" target="_blank">michael.lackner@unileoben.ac.a<wbr>t</a><br>
Fax.: +43 (0)3842/402-1502 | Web: <a href="http://institute.unileoben.ac.at/infotech" rel="noreferrer" target="_blank">http://institute.unileoben.ac.<wbr>at/infotech</a><br>
______________________________<wbr>_________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org" target="_blank">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/l<wbr>istinfo/x265-devel</a><br>
</font></span></blockquote></div><br></div></div></div>