Log in

View Full Version : Best practices for 用ools?


DotJun
1st April 2023, 08:19
When encoding multiple instances, is it better to just let x265 determine the number of threads on its own or would it be better to specify a number?

For example: When encoding 2 instances on 12 cores x265 will spawn 12 threads for each of the 2 encodes. Would it be better to set 用ools 6 for each encode (12 cores / 2 encodes = 6 cores each)?

I知 assuming that if left to default values x265 would use any/all cores for each encode at its whim. What exactly is it doing when setting 用ools then? Does one encode get cores 0-5 and the second encode gets cores 6-10?

Selur
1st April 2023, 09:09
For me, using pools only seems to help when running multiple parallel encodes on systems with multi cpus,...

DotJun
1st April 2023, 13:09
For me, using pools only seems to help when running multiple parallel encodes on systems with multi cpus,...

Yes I agree that using pools on multi socket is helpful, but my question is more to do with a single node that has an abundance of cpus. I really just want to understand what 用ools is actually doing under the hood.

benwaggoner
3rd April 2023, 17:32
There is a long and pretty exhaustive description here: https://x265.readthedocs.io/en/master/cli.html#performance-options
And a good overview of threading in x265 here: https://x265.readthedocs.io/en/master/threading.html

Did you have a question beyond what's covered in those?

DotJun
17th April 2023, 11:42
There is a long and pretty exhaustive description here: https://x265.readthedocs.io/en/master/cli.html#performance-options
And a good overview of threading in x265 here: https://x265.readthedocs.io/en/master/threading.html

Did you have a question beyond what's covered in those?

Thank you for the reading material. It was informative, but some of the wording used left me with questions. For example, when setting pools +,+ the encoder should be free to use all available threads on nodes 0 and 1, but it does not. Is this because a single pool cannot jump nodes? I知 assuming only a single pool is created, even though my log says that two pools are created with one on each node, both pools are labeled as pool 0.

benwaggoner
17th April 2023, 20:34
Thank you for the reading material. It was informative, but some of the wording used left me with questions. For example, when setting pools +,+ the encoder should be free to use all available threads on nodes 0 and 1, but it does not. Is this because a single pool cannot jump nodes? I知 assuming only a single pool is created, even though my log says that two pools are created with one on each node, both pools are labeled as pool 0.
Encoding everything on a single pool is more efficient, so unless x265 can use more threads than will fit on a single pool, it'll stick to one. I've been able to get two to work when doing 8K content, for example.