Fixed the build for good out of box experience
January 21, 2012
Posted by on
I regularly copy source code tarballs off-site and to several external mass storage drives. In case of disaster, no more than a day’s work will be lost.
Yes… perhaps I should be pushing to GitHub instead of checkpointing tarballs. That would serve as a revision controlled off-site backup service. One thing though: even GitHub is not completely safe. I have another project hosted there which lost history from a big outage in 2010. Not complaining at all, only love for git and GitHub.
The real risk is development downtime. I do almost all work on a several years old X-series Thinkpad. There should be a backup if that laptop fails.
So I wiped an old Pentium M laptop, installed Ubuntu 10.04 LTS and set up a duplicate development environment on it. This was an excellent exercise. I found the build for Chai hardcoded x86_64 and lib64 in places. Even worse, it relied on having both AMD/ATI and NVIDIA OpenCL SDKs installed to work!
This is all fixed now. The build follows the standard “./configure; make” idiom. It’s also robust and should handle any combination of AMD/ATI and NVIDIA SDKs, always picking the latest release versions from both vendors (yet is very easy to manually change), and 32/64 bit processor architecture. So much nicer.
Even with good software, when an automatic configure/build breaks, I am annoyed. It’s a bad out of box experience. Fail.
I wanted to try Intel’s OpenCL which can auto-vectorize (Chai does too!). My experience is limited to AMD/ATI and NVIDIA. Unfortunately, even my x86_64 Thinkpad is too old with an unsupported CPU.
The Core i7 920 in my GPU compute server is supported. So I’m going to see what happens with Chai using a “shader compiler” designed for a modern (hyper-threading) multi-core CPU. I’ll see what happens tonight.