I’m planning to build a new Linux box in the next couple weeks. I want to use Ubuntu 9.04, though that’s not officially supported… I’ll try it anyway.
But my main question is whether I should use 32 or 64 bit version. I clearly want to use 64 bit, badly, but I’d like some feedback from anyone with 64 bit Linux+CUDA experience.
On the Windows side this is an important question since XP64 is (and always will be) a lonely unsupported child, yet CUDA isn’t Vista/Win7 friendly yet.
No compelling one I can think of. Besides, aren’t you planning to spend megabucks on 12Gb of DDR3 ram for your new machine? Would be kind of a waste to see 8+1Gb of it sitting there doing nothing…
I live in a country with 22% sales tax and the current best prices I can see on 6Gb triple channel PC3-10666 kits is about the same in dollars as your total memory spend. Plus, because I usually build white box clusters rather than individual workstations, I tend think in multiples of 8…
In any case, it would be almost criminally negligent not to run 64bit linux on a machine like that, in my opinion.
Here’s another Yes vote for 64-bit Linux + CUDA. It works very nicely, I’ve been going at it for 1.5 years or so.
One reason for 32-bit is possibly that pointers are a bit smaller, 4 bytes instead of 8. This can save a little device memory. You can munge 64-bit code to use 32-bit pointers though, AFAIK. This hasn’t caused me any trouble or bottlenecks on 64-bit though, I simply use 64-bit pointers.
Another reason might be for that extra bit of compatibility with old libraries. I haven’t had any issues with this either.
At the office, we just upgraded our machines from 4GB to 8-12GB. It is definitely a boost to productivity and niceness. This is the single reason I’d never want to go back to 32-bit. Also if you’re using RAID on your workstation, this much memory is useful as far as I know, for big caches and stuff.
You even get a small win on CPU stuff (even if you don’t use int64_t) because when AMD defined the x86_64 architecture, they not only doubled the size of the registers, they doubled the number of registers as well. x86 has always been register-starved compared to other processor architectures, so doubling the # of registers has a noticeable impact. When the Opteron first came out, I was seeing 20% improvement on some toy benchmarks comparing 32 and 64-bit compiles of the same code.