Alpha3 uploaded to GitHub
May 25, 2012
Posted by on
I just committed the third alpha code drop to GitHub. As before, there is also a tarball download without git metadata. That’s probably more convenient for most people.
While writing my presentation slide deck for AFDS 2012, I realized that there can be no beta release without documentation. It doesn’t matter if the core engineering is done. There is no usable technology product if developers don’t know how to use it.
Writing minimal documentation will take weeks. That seems excessive. But my experience preparing for conferences is that writing is a lot more work than it appears. Good writing is storytelling. It is considering the audience with an interesting narrative. I suspect this is true of technical writing as much as it is fiction.
So the beta release is still a ways off. Beta will mean something that is genuinely usable. It will have rough edges. But it will be a tool you can use to solve problems.
One more major feature I am considering is more direct interoperability with OpenCL. It should be easy for applications to mix Chai managed code with explicit OpenCL. The tricky part is of course memory management. That’s why managed platforms have foreign function interfaces. It’s always clunky. I’d prefer to have something more like inlined assembly language in C.
PeakStream didn’t have anything like this. However, that also makes sense as OpenCL didn’t exist. Even CUDA was released in 2007, the same year PeakStream was acquired by Google and disappeared. If there were a portable shader language then, would PeakStream have tried to interoperate with it?
My guess is they would have. Don’t force people to learn new languages. Try to work with what they have. That’s why BrookGPU and PeakStream are internal DSLs implemented as C++ APIs. OpenCL is now part of the mainstream. So it’s the language people know and use today.