Download GPU computations in heterogeneous grid
Transcript
library. Section 5 of the ViennaCL user manual [28] provides instructions on how to extend the library. CUBLAS is a BLAS library utilizing Nvidia GPUs [29]. It is included in the CUDA Toolkit that is available for Linux, Windows and OS X operating systems. CUBLAS uses the CUDA runtime but does not require the end-user to directly interact with the runtime. The CUBLAS library provides all three levels of BLAS functions through its own API. CUBLAS supports single precision floating point arithmetic and also double precision arithmetic if the hardware is compatible. Using the CUBLAS library in the grid will require the creation of library bundles that contain the CUBLAS libary file, e.g. cublas.so, against which the application is linked at compilation. The CUDA driver is installed with the display drivers but the CUDA runtime library, e.g. cudart.so, has to be made available through a library bundle. It should be noted however that the CUBLAS, CUDA runtime, and CUDA driver libraries have to be of the same generation to ensure full compatibility, i.e. the workers’ display drivers should be of the version specified in the CUDA toolkit release notes and the CUDA runtime and CUBLAS libraries should be from the same CUDA toolkit release. CULA is a commercial third party Linear Algebra Package (LAPACK) implementation from EM Photonics Inc [30]. The basic version of CULA is available free of charge but it provides only single precision accuracy. CULA provides two C language interfaces for new developers, a standard interface that uses the host memory for data storage and a device interface that uses the graphics card’s DRAM for storage. The standard interface is aimed at those end-users not familiar with GPU computation. When the standard interface is used all transfers between host and device memory are hidden by CULA. An interface called bridge is provided, in addition to the standard and device interfaces. The bridge interface is intended to ease the transition from popular CPU based LAPACK libraries to CULA by providing matching function names and signatures. The bridge interface is built on top of the standard interface. CULA is provided as a dynamic library that uses the CUDA runtime library and the CUBLAS library. All the before mentioned libraries are provided with the install packages. Similarly to CUBLAS these libraries have to be made available to the worker executing a CULA application. All the CULA specific information needed for creating a Techila grid library bundle is made available through the CULA programmer’s guide in the installation package. The CULA install package is available for Windows, Linux and OS X. 25