Stan Tomov wrote:That's an interesting post and I would be happy to see more people commenting on this.
OpenCL is a standard that many have decided to support. This is great but in my opinion it will take time to develop software infrastructure for it. For example libraries, and in particular BLAS, are not yet available in OpenCL.
MAGMA is abstracted from low level GPU development by operating on "high" level - just using GPU libraries, in particular CUBLAS. Therefore, when BLAS becomes available in OpenCL it will be trivial to port MAGMA in OpenCL. We intend to do that.
I wouldn't expect OpenCL to become quickly popular in the high performance computing though.
I am also very interested in OpenCL support in MAGMA, and more broadly in true hybrid architecture support in MAGMA. I know that this is in line with the stated goals of the project to support mixed multi-core and GPU architectures.
I think that Stan is absolutely correct when he suggests that it will take some time for standards to settle, implementations to emerge, and support to grow around those implementations. I think it is also true that just like with ATLAS and GotoBLAS, we will see multiple architectures needing support, maybe with similar API's, but certainly with architecture specific differences.
From a user perspective, I think it is most important that any library attempt to hide these architecture differences from the user. If MAGMA can continue to be linked with existing LAPACK implementations, taking over calculations where appropriate, users should see speedup in calculation without having to do extensive customization of existing code. While custom-crafted code is sometimes required, much of the promise of standardized BLAS libraries is that this is abstracted from userspace.