OpenCL-Based Linear Algebra Libraries for High-Performance Computing

Status: Completed

Start Date: 2012-02-23

End Date: 2012-08-23

Description: Despite its promise, OpenCL adoption is slow, owing to a lack of libraries and tools. Vendors have shown few signs of plans to provide OpenCL libraries, and were they to do so they would likely be incompatible with one another, much as NVIDIA's BLAS (CUDA) is presently not interchangeable with Intel's BLAS (MKL). The unified language and environment of OpenCL allows the community to ensure that the spirit of the language — its interchangeability — is reflected in its library and tools ecosystem. EM Photonics is well positioned to lead this effort; we have strong ties to several hardware manufacturers, to application developers, and we maintain a world-class LAPACK library for NVIDIA GPUs. To begin this process, EM Photonics proposes the development of a set of OpenCL BLAS routines and the framework necessary to allow researchers, developers, and hardware manufactures to integrate platform optimized versions of BLAS libraries. This software will be made open source to encourage community involvement and allow it to continue to evolve with the with future hardware technology. Upon completion of this project, EM Photonics will have developed a complete set of OpenCL BLAS routines. In addition, we will have the framework necessary for their efficient execution that also allows new routines to be added by either EM Photonics or third parties. This package will be released under an open source license to encourage community participation and allow for widespread adoption, and EM Photonics will be its ongoing steward. The commercial success of our CULA product has both opened doors for partnership opportunities and provided us commercialization opportunities that can be further leveraged once this project is complete. Based on this combination of technology, experience, partnerships, and commercial momentum, we are convinced this project will successfully meet our SBIR objectives and continue to flourish beyond.
Benefits: Virtually all software requiring extensive numerical processing could benefit from the solvers developed in this project. There are numerous software packages that are already built on BLAS or higher-level libraries such as LAPACK that require BLAS. Using the technology developed in this project, such software would therefore not need to be modified to take advantage of the emerging class of hardware accelerators from companies such as NVIDIA, Intel, AMD, and others. This can have an immediate impact on numerous NASA applications such as vibration analysis for a number of multi-body spacecraft configurations such as the Crew Exploration Vehicle (CEV), the Crew Launch Vehicle (CLV), and rotorcraft and computational fluid dynamics for spacecraft flight through the atmosphere and rocket design. Other application areas of interest to NASA include weather and climate modeling, mechanical and stress modeling, heat transfer analysis, and signal/image processing. These libraries are fundamental to high-performance computing and will be required for the next generation of hardware being released.

These solvers could be integrated into everything from specialized computational engines to general purpose tools such as MATLAB. MATLAB currently integrates BLAS compliant routines to solve computationally intense problems. Some versions of MATLAB even ship multiple implementations of this interface and allow the user to select between them. The solvers developed here could simply become another option for users to select, thereby offloading processing to an accelerator device such as a GPU. Specific application areas include automotive design, civil and mechanical engineering analysis, electromagnetic simulations, computational fluid dynamics, acoustics, signal/image processing, and financial modeling. There are many companies now taking advantage of GPUs to accelerate their software. Unfortunately, because of the tools available, they are mostly only compatible with NVIDIA GPUs. By using the OpenCL-based libraries we develop here, developers will be able to take advantage of all the available and emerging hardware devices such as GPUs from NVIDIA and AMD/ATI, x86 and ARM-based microprocessors, and other accelerator platforms such as the soon-to-be-released Knights Ferry from Intel.

Lead Organization: EM Photonics, Inc.