Does 32 bit processing use less CPU than 64 bit? Just wondering. I’ve been running Nuendo 12 with the setting at 32bit for a few days trying to see if it results in less CPU usage. Does it? Thanks in advance.
Not in my experience, if anything makes sessions a bit snappier becuase Ram access is more limited with 32 bit. There are many threads on this already, eg:
Benefits with 64bit vs. 32bit - Cubase - Steinberg Forums
Or in the words of the great Adam Bandt, “google it mate”.
I remember checking this at some point and there was indeed a bit of CPU overhead. But I can’t remember how large it was and it was on a first-generation Ryzen CPU so I simply stayed with 32-bit until that computer got decommissioned. Haven’t moved to 64-bit yet since I haven’t really thought about it.
I imagine it would be little difference, and it would probably also depend on the CPU. The newer the CPU, the more powerful they are at double precision (64-bit) floating point in general. For regular SSE instructions I imagine that modern CPUs are the same for SP or DP.
Where I suppose it could make a difference, in theory, is something that is highly vectorized. Usually vector stuff is such that there will be a 256-bit or 128-bit register that you load up with multiple smaller pieces of data and then run math on. Well that means that you can pack twice the amount of SP data in a register. In a 256-bit register you can fit 8 SP numbers or 4 DP numbers. So for something like that you could see single precision speed gains.
I would imagine you see that kind of thing in plugins more often than the DAW though, so I don’t know that it would change much if you have the DAW set at 64-bit or 32-bit. I don’t believe it changes what plugins process at, they use whatever internal precision they are coded to use (usually SP/32-bit).
Thanks prof for the links. I read through all of them and I have to admit I am as confused as I was before. I’ll try a song with both settings and see which gives me better cpu levels. I just have to get through to July when hopefully my new M1 MacBook will arrive. Fingers crossed.
@Ted_Perlman2 So actually those links are not relevant to what you asked, which is why you are confused. The confusing thing here is there are two different things that get discussed when talking about 32-bit and 64-bit. I’ll try and explain:
The first is about the amount of memory the program can access. A 32-bit program can only access 2GB (or 3/4GB in some special circumstances) of memory. A 64-bit program can access more than 8,000,000,000GB of memory, which is more than any system has right now by a long shot. This is what the link was talking about. Back in the day when CPUs started to go 64-bit, things like DAWs had 32-bit and 64-bit versions. The 64-bit version could access more RAM, but all plugins have to be 64-bit. Since not all plugins had updated, some people used the 32-bit version.
This is all moot these days. Steinberg only distributes a 64-bit version of Nuendo, and has for some time. So if you are using Nuendo 8 or newer, it is 64-bit when you are talking about memory.
The second thing, the thing you are asking about is about floating point processing precision. The setting in Nuendo for 64-bit determines if the floating point math is calculated in 32-bit (single precision) or 64-bit (double precision). This is separate from the amount of memory the program can access. A 64-bit program can use single precision math, a 32-bit program can use double precision math.
Really to keep things more clear they should call it single precision and double precision rather than 32-bit and 64-bit since that can confuse people.
The reason that one might want to use double precision, 64-bit, is to eliminate rounding errors. Single precision numbers are 32-bit but are floating point and so are split into a base and an exponent. 24-bits is for the base, 8-bits is for the exponent. What that means in practice is they have a precision of 24-bits over a wide range. However if you do lots of repeated calculations, you can run in to rounding errors that slowly creep up because of the only 24-bits of precision. In theory that could become audible though in practice I’ve never seen that demonstrated.
The way to prevent that is to move to double precision, 64-bit, math. That has 53-bits for base and 11-bits for exponent. So it has WAY more precision than you would ever need for audio which is coming from a 24-bit source. Even if there are small rounding errors, they’ll never add up to anything that makes it in to the final 24-bit file.
As for which is faster, as I said in my other post, I suspect it is a wash. When it was first introduced as a feature single precision math was generally faster on CPUs but as time has gone on double precision has gotten more important so they have gotten faster at it. Often a given instruction will run at the same speed regardless of if it is SP or DP.
Dear Sycraft-w:
That is probably the most patiently written, well thought-out response I have ever received. Thank you for that. Lots of wonderfully informative information in there. I’ve gone back to the 64bit processing setting and the CPU seems to be okay in N12.
Please tell me if there is ever anything I can help you with.
Warm regards,
Ted
@Ted_Perlman2 Glad I could help, I always enjoy sharing knowledge
Just one other thing I’d note is not to worry about using 32-bit if you do find for any reason that it works better. While, in theory, it can have rounding errors that add up to audibility unlike 64-bit, in practice I’ve never heard of that happening. I mean even if there was enough repeated calculation that you got 4-bits of error… that’s still -120dbFS for 24-bit which is not only totally inaudible but below the limit of mods DACs.
I personally use it in 64-bit mode because it runs fine so why not, but I do like to make sure people don’t worry themselves over something that isn’t going to hurt their music.
I want to sit down with you and have coffee. Good to meetcha!
Nice to meet you too, if you are ever in the Tucson area I’d love to get coffee and chat.
Great topic, and as Ted already stated, very well put. I do have a question that has been nagging me for a bit with respect to the Cubase/Nuendo internal 32 bit/64 bit floating point choice:
Does it matter if you start a project in 32 and then switch to 64. I ask because I have a lot of projects in the works that were begun in 32, some of which I switched to 64 (Why, is anyone’s guess), and though I haven’t noticed any issues in doing so, is there anything I should be aware of that would advise against such a switch?
Jack
I will!
Ted
@J_L_Bowie Shouldn’t matter. It isn’t changing anything about the project data, just how much precision Nuendo uses when it does the math on it. So while changing it could, in theory, change the output file you render, it isn’t going to mess with the project itself and you should be able to switch it back and forth. For that matter you should be able to do a double precision bounce, then switch it, do a single precision bounce and then compare the two files to see how much rounding error is introduced (provided all FX are time invariant so both render the same) .
Makes sense, much appreciated.
Thanks for all the great input.