1 (edited by will_m 2018-02-22 16:01:56)

Topic: UFX+ Recommended Optimisations?

This is my first post here so hello everyone.

I've just got a UFX+ and I'm trying to achieve the best low latency performance possible. I normally work with a high number of VI tracks, (usually Kontakt) so just looking to squeeze very last drop of performance from my set-up.

I'm looking for any and all tweaks I can do within either Windows 10, my BIOS, Cubase 9 or the UFX+ itself.

Should also mention I'm using the UFX+ over TB via an Apple TB adapter into an Asus Thunderbolt EX3 card.

Just a quick note on my specs too if helpful:

Win 10 PRO
Asus X99 A-II
i7 6900k
64GB RAM
Asus GTX 960
SSD OS and Sample Drive

Thanks!

2 (edited by pianopictures 2018-02-22 17:10:03)

Re: UFX+ Recommended Optimisations?

You may want to check this: https://www.cantabilesoftware.com/glitchfree/

Also check the manual how to set it to a separate USB controller on your motherboard.

Re: UFX+ Recommended Optimisations?

pianopictures wrote:

You may want to check this: https://www.cantabilesoftware.com/glitchfree/

Also check the manual how to set it to a separate USB controller on your motherboard.

Thanks for the link, I'l check it out.

Do I still need to set a separate USB controller if I'm using it over TB?

Re: UFX+ Recommended Optimisations?

Ah, I missed that you use it over TB, I don't know then.

5 (edited by ramses 2018-02-22 19:10:44)

Re: UFX+ Recommended Optimisations?

pianopictures wrote:

You may want to check this: https://www.cantabilesoftware.com/glitchfree/

Also check the manual how to set it to a separate USB controller on your motherboard.

Many thanks for this link. Its quite nice. But just a few remarks.

Most tips are good, but the author fails to give some information here and there.

What really makes me wonder, that he forgets to talk about a very important basic step to do.
To check the BIOS settings and to disable everything related to power saving in the BIOS.
Especially this can cause much latency inside of the system as it takes time, until a core becomes available again
after a core entered a sleep state. The deeper the sleep state up to C6, the more time it takes until he is available.
This can take over 250 microseconds for C6 which is a lot.
So its best to disable all C-States (keep C0/C1), P-States and T-States (depends on the BIOS whats configurable)
C1E should also be disabled. EIST and Turbo can stay, as you can control in Windows with the tool parkcontrol
to disable CPU core parking and whether a Core shall change its clock.
If both is enabled you can control it as user with tools and in a good case of luck you will get by Turbo
a clock frquency which is a little higher than the base clock of the CPU for all cores permanently.
Which is definitively much better than having to put a few cores to sleep to be able to reach highest turbo clock frequency, but then for a minority of cores.

And if he goes that much into details up to process scheduler and driver, then he should not forget to mention, that those ISR and DPC driver routines are not under the control of the process scheduler, they run as long as the developer coded, this is fully based on programming conventions. This is one of the reasons to disable not required hardware and not to use those hardware which is known to create many interrupts. This reduces the likeliness that an audio related thread needs to wait for a CPU to become available.

I also missed a bit to give the user a helping hand how to use LatencyMon. It makes no sense to execute it when you have load on your system or already started your application. Then you do not see anymore how much BASE load the system already has, although it should be IDLE. Another use case is to use LatencyMon after having tuned the system to see, whether under an audio load the systems kernel timer latency etc has no spikes, which can cause audio drops, which requires to choose higher ASIO buffer sizes to mitigate this issue, if the CPU can't react that agile anymore under load and immediately process audio ... then you need to raise ASIO buffers shall you get Audio drops ... etc.

BR Ramses - UFX III, 12Mic, XTC, ADI-2 Pro FS R BE, RayDAT, X10SRi-F, E5-1680v4, Win10Pro22H2, Cub13

Re: UFX+ Recommended Optimisations?

Thank you for the input. I actually did not read that GlitchFree book myself yet, still postponing.

Re: UFX+ Recommended Optimisations?

ramses wrote:

What really makes me wonder, that he forgets to talk about a very important basic step to do.
To check the BIOS settings and to disable everything related to power saving in the BIOS.
Especially this can cause much latency inside of the system as it takes time, until a core becomes available again
after a core entered a sleep state. The deeper the sleep state up to C6, the more time it takes until he is available.
This can take over 250 microseconds for C6 which is a lot.
So its best to disable all C-States (keep C0/C1), P-States and T-States (depends on the BIOS whats configurable)
C1E should also be disabled. EIST and Turbo can stay, as you can control in Windows with the tool parkcontrol
to disable CPU core parking and whether a Core shall change its clock.
If both is enabled you can control it as user with tools and in a good case of luck you will get by Turbo
a clock frquency which is a little higher than the base clock of the CPU for all cores permanently.
Which is definitively much better than having to put a few cores to sleep to be able to reach highest turbo clock frequency, but then for a minority of cores.

And if he goes that much into details up to process scheduler and driver, then he should not forget to mention, that those ISR and DPC driver routines are not under the control of the process scheduler, they run as long as the developer coded, this is fully based on programming conventions. This is one of the reasons to disable not required hardware and not to use those hardware which is known to create many interrupts. This reduces the likeliness that an audio related thread needs to wait for a CPU to become available.

I also missed a bit to give the user a helping hand how to use LatencyMon. It makes no sense to execute it when you have load on your system or already started your application. Then you do not see anymore how much BASE load the system already has, although it should be IDLE. Another use case is to use LatencyMon after having tuned the system to see, whether under an audio load the systems kernel timer latency etc has no spikes, which can cause audio drops, which requires to choose higher ASIO buffer sizes to mitigate this issue, if the CPU can't react that agile anymore under load and immediately process audio ... then you need to raise ASIO buffers shall you get Audio drops ... etc.

I've now had a good read through the glitchfree guide, there was some good information in there, a lot of the tweaks I'd done already but there were a few extra things to try.

I've also gone into my BIOS and disabled C-States, I couldn't find any options for P or T states.

I've also been running LatencyMon and there is a potential issue with my graphics card driver:

https://i.imgur.com/n4MEY1w.jpg

Re: UFX+ Recommended Optimisations?

I've also been doing some latency testing with my old interface and the UFX+, the results seem to suggest the RTL latency differences are larger at the lower buffer settings but at larger buffers the differences are smaller or non existent.

https://i.imgur.com/ME9ZsHB.jpg