Thoughts on 64bit Blender (circa 2007)

Why?

Some user seems to have the wrong idea about 64bit applications, (Thanks to AMD?) they seems to think that 64bit application will magically double their computing power. This, unfortunately, is not true. 64 bit does equal two(2) 32 bit

Basics

The most fundamental change between 32bit and 64bit application is that 64bit application uses 64bit pointer to access data. Because memory locations are stored as pointer, do the math and you'll see that 64bit pointer can address more than 16 BILLION Gigabyte of memory, while 32bit application is limited to 4GB.

Think of pointers as telephone numbers, 32bit application is a city where everyone's phone number is 8 digits long. 64bit application is a city where everybody has a 16digit phone number. Now, does the extra-long phone number enhance the calling experience at all? No. You are still pulling your hair out for the same inadequate service and reception. The only benifit of a longer phone number is that the city can accommodate more people with phones, because there are more unique numbers to go around.

Disappointed? Going 64bit will not automatically double rendering performance, a 64bit CPU cannot cram to 32bit instruction into 1 cycle. x64-86 might give you a little more performance here and there, but at the same time many 64bit applications suffer a small performance loss because of the extra storage space required. More cache miss, more swap action, and more paging overhead all means a slower program.
* Ok, this is not strictly true. 64bit processor has double the number of registers, but in real-world tests, their effect is pretty small. So let's keep things simple.

Examples

Photoshop CS3: One of the most popular graphics package, CS3 is released in 2007, and it is STILL not 64bit. Here is why.
Crysis: A PC game that offers both 32/64bit binary. Yet benchmarks have shown that 32bit binary is actually faster than the 64bit binary.
Windows Vista: Bootup time of the 64bit Vista is significantly longer, because there is more stuff to load. While application performance sees a 15% gain on x64.

Related reading:

Article on 32bit Blender limitations, and 'hacks' to maximize Blender efficiency on 32bit Windows [link]

64bit thoughts, revisited (updated April 2008)

So it's been a year since I published the above text. I thought I'd revisit my earlier rant that was seen, sometimes, as an uninformed discourse purely aimed at discrediting the transition to 64bit.

I do agree that the transition to 64bit computing is inevitable and necessary. And for power-users, couldn’t have come at a better time. As a Windows Blender user, I am seeing segfaults left and right every time I push the polycounts too high. And I have also been told many times that AMD64/Intel 64 is more than I made it out to be. I want to clarify that the original rant was written for the 'average' computer users, the sort who just need to check their email and type up a few Word document now and then. Yes I realize now the target audience does not match the demographic of this site at all. But what I was trying to get at is, if you were an honest salesman, and was asked ‘so does 64bit mean it’s faster?’ Would you say yes to a person who is purchasing a $400 computer that runs Vista on 1GB of RAM? Would you bring up the fact that micro kernel-level optimization will squeeze a few more usable clock cycles out of their processor?

Counter Examples: 64bit is great because...

-Memory-mapped devices does not hog up the upper 4GB address space anymore: No more "why am I seeing 3.5GB when I have 4GB of RAM?" issue.
-NO more mysterious crashes due to the 2GB(default), 3GB(with 3GB and LAA), or 4GB(32bit LAA app on 64bit OS) address space limitation.
-Modern games really need more than 2GB: they stream in/out content on the fly: UE3 does this, so does CryEngine 2. The stutter and blurriness is hated by many.
-Ready for year 2038
-Memory is cheap. Cache is pretty cheap, too.


Comments



A Mike Pan Design.