Hyperthreading enabled faster or slower?

I’m wondering if Touch will run faster if hyperthreading is disabled. When running Touch I see in the task manager that Touch is using 12.5% of the my total CPU ability on a machine that is 4 cores (but 8 virtual cores). Is that 1 thread actually using the full potential of 1 core or is it using half of the cores potential because hyperthreading is making it look like 2 cores?

thanks
Keith

Hi Keith,

This is an old thread but couldn’t find any others like it and today was discussing this exact topic with a developer on our team.
You’ve already moved on from this I’d guess, but it may be helpful to others that search on the forum.

I’ve experienced much better performance with hyper-threading disabled in projects of all types.
From what I understand: TouchDesigner is for the most part a single threaded application, aside from some video decoding operations. Even then, optimising for the the best single threaded performance has given me the best results. I believe because even with multi-threading a video decode e.g. H.264 or HapQ with chunked compression, if the core the primary thread is running on is over-utilised, everything is clinching on that main thread, the additional threads will wait for it to catch up.

Also seems the general consensus on hyper-threading for real-time applications such as video games is that hyper-threading will negatively affect performance, and is generally only helpful if you only have a one or two core CPU that has trouble with multi-threaded tasks / applications.

Would be great to hear your thoughts on this now after 5 years what you’ve found. ( and Malcolm’s inside perspective on this of course as I assume he did the lower level programming for TD in regards to this. )

Thanks for the info.

Can we disable HyperThreading for a single app?

Bruce

Hi Bruce,

Hyper-threading / HT is a low-level hardware feature that is initialised on the CPU at boot time according to the parameter set in the EFI/BIOS --it’s not configurable via software after the system is already running.

The truth is, traditional CPU architecture was never designed with parallel computing in mind so it’s poorly poised to accomplish these sort of tasks no matter how you dice it, HT or no HT. We’re realistically looking at maybe 15%-20% performance increases with HT on only certain applications.

So if you can help it, leave hyper-threading disabled for good, giving you the best single core performance per application from your physical CPU cores. Migrate to application workflows that use GPU accelerated parallel computing instead of CPU multi-threading whenever possible --providing performance gains in orders of magnitude rather than small percentiles.

e.g. for rendering photo-realistic CG, use OTOY OctaneRender
home.otoy.com/render/octane-render/

   for video editing, etc use Adobe Mercury Playback Engine (GPU Acceleration)
   [blogs.adobe.com/creativecloud/c ... miere-pro/](https://blogs.adobe.com/creativecloud/cuda-mercury-playback-engine-and-adobe-premiere-pro/)

It’s not a one-size-fits-all solution of course but works as a general guideline.

Cool, thanks for the info. Going through some servers today and I’ll switch that off!

Side-note: very happy to see ProRender standard in Cinema 4D now. None of the GPU approaches until now seemed great, partly because you need to learn all new lights and materials to get the best results.

Bruce

ProRender looks great! Thanks for the note

I realize this is very old thread, but I have been doing some experiments on disabling hyperthreading on my own system. For some reason, my project runs significantly better with HT turned on. With it off, the project runs at 30-35% cpu; with it on, the project runs at around 20% cpu.

I was doing a deep dive on setting device/application affinity in Windows using a couple of methods. I was experimenting with putting my RTX 3060 on one cpu core. allegedly, some gamers do this for a performance bump. I have yet to see an improvement.