dc.contributor.authorTan, Wen Jun
dc.date.accessioned2014-11-06T01:26:14Z
dc.date.accessioned2017-07-23T08:30:12Z
dc.date.available2014-11-06T01:26:14Z
dc.date.available2017-07-23T08:30:12Z
dc.date.copyright2014en_US
dc.date.issued2014
dc.identifier.citationTan, W. J. (2014). A code transformation framework for linear algebra operations targeting multiple platforms. Master’s thesis, Nanyang Technological University, Singapore.
dc.identifier.urihttp://hdl.handle.net/10356/61835
dc.description.abstractLinear algebra is used in many fields of mathematics, natural sciences, computer science, and social science. The researchers in those fields, who are not experienced programmers, may write naive linear algebra codes for their applications. Despite the availability of multiple hardware platforms for computation, such as vector processing units, multi-core processors and general-purpose graphics processing units, it is particularly difficult for them to optimize their applications for these platforms. It is necessary to make use of hardware-specific architectural features to fully exploit the capabilities of the underlying hardware. This thesis presents a code transformation framework for assisting users writing naive linear algebra codes to optimize their applications. The code transformation framework recognizes and extracts the linear algebra operations from naive codes. The linear algebra intermediate representation can be expressed in terms of a domain specific language. The user can also write linear algebra kernels using this language directly. Using the intermediate representation, the framework transforms the linear algebra operations to equivalent library calls. There are two possible classes of code generated from the framework: (i) linear algebra template libraries and (ii) BLAS function calls. The linear algebra template libraries present the linear algebra operations in an algebraic form that is easily understandable by the user, and at the same time provides good performance when codes are compiled. It is possible to target multiple platforms through different linear algebra template libraries, such as Eigen and Armadillo. Although C++ template libraries are more intuitive to the user, these template libraries introduce additional overhead due to the library design. Therefore the code transformation framework is extended to generate calls to BLAS for different platforms, such as Intel MKL or Nvidia CUBLAS. We demonstrate that the code transformation framework can result in better performance in the generated codes compared to those which are generated by existing compilers. This is substantiated by experimental results on different hardware platforms, including vector processing units, multi-core processors and graphics processing units.en_US
dc.format.extent116 p.en_US
dc.language.isoenen_US
dc.subjectDRNTU::Engineering::Computer science and engineering::Software::Programming techniquesen_US
dc.subjectDRNTU::Engineering::Computer science and engineering::Software::Programming languagesen_US
dc.titleA code transformation framework for linear algebra operations targeting multiple platformsen_US
dc.typeThesis
dc.contributor.researchParallel and Distributed Computing Centreen_US
dc.contributor.schoolSchool of Computer Engineeringen_US
dc.contributor.supervisorStephen John Turneren_US
dc.description.degreeMASTER OF ENGINEERING (SCE)en_US


Files in this item

FilesSizeFormatView
thesis-print.pdf3.106Mbapplication/pdfView/Open

This item appears in the following Collection(s)

Show simple item record