Author Topic: 32bit vs. 64bit  (Read 37306 times)

FarleyCZ

  • Low Mid
  • **
  • Posts: 493
  • Honor: 93
    • farleycz
    • farleycz
    • View Profile
    • I tried to code a page, look!
Re: 32bit vs. 64bit
« Reply #15 on: January 07, 2016, 02:13:41 pm »
Let's get technical. CPU works this way: It waits for a number called "instruction" which tells it what kind of operation it will perform. Immediately after it it awaits number of a same length called "operand" which is input data for that specified operation. Having both those numbers bigger means two things. CPU makers can make CPU smarter by having bigger instruction sets (a list o possible operations) and CPU can recieve longer operands. The first advantage doesn't apply to music software too much as for compatibility sake developers tend to not go crazy about new "exotic" operations CPU developers add. The length of operand is a different story, becouse memmory addresses are sent to CPU as operands. With 32-bit address you ended up with maximum of 4 gigs of addressable RAM. With 64-bits, it goes up to terra-bytes. This makes change for people using big sample libraries and multi-samples, becouse you can load much more of them into RAM before their DAW crashes. As synth-ish stuff goes, not much changes actually.

Unless specified, 32-bit and 64-bit version of software doesn't mean what bitdepth software's internal engine uses.
« Last Edit: January 07, 2016, 02:15:36 pm by FarleyCZ »
"Earth is round right? Look at it from right angle and you'll be always on top of the world."
...but don't overdo it, because that's called being a d***k.

Dichotomy

  • Sub Bass
  • *
  • Posts: 60
  • Honor: 42
    • dichotomy
    • djdichotomy
    • View Profile
Re: 32bit vs. 64bit
« Reply #16 on: January 07, 2016, 02:22:41 pm »
If your software is 64 bit, then it will take better advantage of a modern CPU and can address a lot more memory.  However, 32 bit VSTs won't work in a 64 bit host.  So, you either gotta use somethin' like jBridge to wrap your 32 bit VSTs (which is a bit flakey, we're discussing this in another thread), or you just don't use the VST.


32 bit is dying tech, so it's only a matter of time... and chances are, we're not going to bother with 128 bit for a real long time, so we're going to be on 64 bit for a long while.

i thought it was the other way around (64 can't run on 32), just realized it now that i was wrong hahaha
there are a few lovely vst that only runs in 32 though :(

The Host OS's architecture can be different from the VST host (Ableton, FL, etc.). A 64bit chip & OS can run 32 bit software, 64bit software cannot run on a 32bit chip & OS. (your initial thought is correct when talking about hardware & operating systems)

In a 64bit OS... you can load a 32bit OR 64bit VST into a 64bit OR 32bit host... jBridge bridges both ways.
In a 32bit OS... only 32bit everything.

deathy

  • Sub Bass
  • *
  • Posts: 53
  • Honor: 7
    • deathy-1
    • View Profile
    • deathy's FB page
Re: 32bit vs. 64bit
« Reply #17 on: January 07, 2016, 02:58:32 pm »
This is not quite correct either. The floating point parts of the 32 bit CPUs have been handling 64 (and 80) bit floats for quite some time, I think as far back as the 386DX and beyond (i.e. back in the 80's).


True, but I didn't state the number of bits of FP your CPU will support, just that 64 bit will support twice as wide FP on-board - a 64 bit CPU is going to be doing 64 bit FP in a single register, but it really doesn't matter much since that extra accuracy is just going to get thrown into the bit bucket anyway.
If the truth can be... told...
so as to be... underSTOOOD...
it will be... belIEVed.

- Terrence McKenna

GuillaumePiolat

  • Subsonic
  • Posts: 4
  • Honor: 0
    • asimpleurltoremember
    • @auburnsounds
    • View Profile
    • Auburn Sounds
Re: 32bit vs. 64bit
« Reply #18 on: January 08, 2016, 12:56:30 pm »
Hi, I'm a developer and would like to clear up things a bit.

About 32-bit vs 64-bit program bitness:

First, it is possible for both 32-bit and 64-bit programs to use 32-bit or 64-bit instructions.
And whatever the bitness of a plugin, he is able to use the full instruction set: FPU, SSE, AVX...
Some developers think that FPU instructions are not available in 64-bit mode. No, they are there and work well.

64-bit programs have plenty of address space (what is also known as "virtual memory"). That is only valuable if you were maxing out your memory in your 32-bit DAW, which seems a bit unlikely to me but well. Bridging can work-around the restriction of 3gb by program in 32-bit Windows.

True advantages of 64-bit programs are in the speed department. A 64-bit program will typically be 15% faster from what I've seen. 64-bit programs are all kinds of good:
- more registers, larger registers: x86 is traditionally starved by the number of registers, 64-bit instructions solve that.
- more consistent C ABI accross platforms
- red zone: this is a low level optimization
- because there is enough addressing space for anything, stability may be better for plugins with threads or that allocate on the "stack" a lot
- the assembler itself is actually pretty easy to port from 32-bit

About 32-bit vs 64-bit vs 80-bit operands:

This is completely unrelated to program bitness.

Difference between 64-bit and 80-bit is very likely not able to count in the slightest. 64-bit vs 80-bit sounds like splitting hairs.

Difference between 32-bit vs 64-bit computations do matter for some tasks notably recursive filters.

Accidental higher precision when using FPU:

You can get accidental higher-precision when using FPU instructions because they bring the bitdepth of all numbers to 80-bit.

So if porting a plugin to 64-bit, it is possible that a plugin developer was inadvertently relying on 80-bit precision in the FPU for doing computation, and now he's using SSE 32-bit float and it makes things sound worse by accident. This has happened to me before release of my last plugin.

Conclusion:
Naive translations of 32-bit plugins to 64-bit _might_ sound slightly worse for this reason. With a bit of care they sound the same up to say -80dB RMS.

64-bit programs make developer lives easier and are a bit faster. Though you probably won't see much difference as users.
« Last Edit: January 08, 2016, 12:59:16 pm by GuillaumePiolat »

Mussar

  • Administrator
  • Mid
  • *****
  • Posts: 631
  • Honor: 252
    • mussarmusic
    • mussarmusic
    • View Profile
    • My Site
Re: 32bit vs. 64bit
« Reply #19 on: January 08, 2016, 05:36:13 pm »
I'm really freaking smart.

Thank you so much for sharing this, I never knew all this stuff!

auvic

  • Sub Bass
  • *
  • Posts: 47
  • Honor: 8
  • im a dragon
    • auvicmusic
    • auvicmusic
    • View Profile
Re: 32bit vs. 64bit
« Reply #20 on: January 08, 2016, 05:40:43 pm »
Bridging is so resource intensive, and I only have 6gb of RAM... So I tend to use up more RAM for bridging 32-bit plugins into the 64-bit software. If I had more RAM, bridging wouldn't be an issue at all...

BrienWithAnE

  • Sub Bass
  • *
  • Posts: 78
  • Honor: 3
    • BrienWithAnE
    • ItsBrienWithAnE
    • View Profile
Re: 32bit vs. 64bit
« Reply #21 on: January 08, 2016, 05:57:12 pm »
Thank you everybody, this is a lot of great information
~ BrienWithAnE

brianmanee

  • Subsonic
  • Posts: 1
  • Honor: 0
    • View Profile
Re: 32bit vs. 64bit
« Reply #22 on: April 06, 2017, 05:22:35 am »
It usually refers to x86 for 32 bit OS and x64 for system with 64 bit.

Technically x86 simply refers to a family of processors and the instruction set they all use. It doesn't actually say anything specific about data sizes. The term x86 started out as a 16-bit instruction set for 16-bit processors (the 8086 and 8088 processors), then was extended to a 32-bit instruction set for 32-bit processors (80386 and 80486), and now has been extended to a 64-bit instruction set for 64-bit processors. It used to be written as 80x86 to reflect the changing value in the middle of the chip model numbers, but somewhere along the line the 80 in the front was dropped, leaving just x86.

Brian