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