Automatically harnessing sparse acceleration
Autor: | Bruce Collie, Michael O'Boyle, Philip Ginsbach |
---|---|
Rok vydání: | 2020 |
Předmět: |
FOS: Computer and information sciences
050101 languages & linguistics Domain-specific language Source code Fortran Computer science media_common.quotation_subject 02 engineering and technology computer.software_genre library integration CUDA Marshalling Software 0202 electrical engineering electronic engineering information engineering 0501 psychology and cognitive sciences computer.programming_language media_common Computer Science - Performance business.industry Programming language 05 social sciences sparse linear algebra Specification language declarative langauges Performance (cs.PF) domain specific languages data marshalling Computer Science - Mathematical Software 020201 artificial intelligence & image processing Compiler business Mathematical Software (cs.MS) computer |
Zdroj: | CC Ginsbach, P, Collie, B & O'Boyle, M 2020, Automatically Harnessing Sparse Acceleration . in Proceedings of the 29th International Conference on Compiler Construction . Association for Computing Machinery (ACM), New York, NY, USA, pp. 179–190, ACM SIGPLAN 2020 International Conference on Compiler Construction, San Diego, United States, 22/02/20 . https://doi.org/10.1145/3377555.3377893 |
Popis: | Sparse linear algebra is central to many scientific programs, yet compilers fail to optimize it well. High-performance libraries are available, but adoption costs are significant. Moreover, libraries tie programs into vendor-specific software and hardware ecosystems, creating non-portable code. In this paper, we develop a new approach based on our specification Language for implementers of Linear Algebra Computations (LiLAC). Rather than requiring the application developer to (re)write every program for a given library, the burden is shifted to a one-off description by the library implementer. The LiLAC-enabled compiler uses this to insert appropriate library routines without source code changes. LiLAC provides automatic data marshaling, maintaining state between calls and minimizing data transfers. Appropriate places for library insertion are detected in compiler intermediate representation, independent of source languages. We evaluated on large-scale scientific applications written in FORTRAN; standard C/C++ and FORTRAN benchmarks; and C++ graph analytics kernels. Across heterogeneous platforms, applications and data sets we show speedups of 1.1$\times$ to over 10$\times$ without user intervention. Accepted to CC 2020 |
Databáze: | OpenAIRE |
Externí odkaz: |