A common question we're asked with CULA whether it's possible to simply swap out an existing LAPACK library for CULA. This short answer to this question is YES! In CULA 1.1 we introduced our "Bridge" interface, which provides a source level compatible interface so that you can swap out whatever LAPACK version you are using with CULA. By using this interface, you can get CULA's GPU acceleration without making any modifications to your code.
Our Bridge interface provides a layer that matches the different interface of 3 different linear algebra packages: CLAPACK, MKL, and ACML. This layer is implemented as a thin source code wrapper that matches the function names and signatures of these linear algebra packages. All you need to do to use this capability is swap in a CULA header and add CULA to your programs link settings.
Another great feature of the Bridge interface is that it provides a fallback to CPU execution when a user does not have a GPU or when problem size is too small to take advantage of GPU execution. In this way you can manage only one codebase yet include GPU-acceleration whenever a user has a supported GPU. You can even tune when to switch between CPU and GPU for your exact problems.
We put a lot of effort into making CULA as easy as possible and our Bridge interface is one of these ways. Try out the bridge example in our SDK and see how easy it is to get GPU-accelerated linear algebra with almost no effort at all.