2005
DOI: 10.1109/jproc.2004.840848
|View full text |Cite
|
Sign up to set email alerts
|

Self-Adapting Linear Algebra Algorithms and Software

Abstract: One of the main obstacles to the efficient solution of scientific problems is the problem of tuning software, both to the available architecture and to the user problem at hand. We describe approaches for obtaining tuned high-performance kernels, and for automatically choosing suitable algorithms. Specifically, we describe the generation of dense and sparse blas kernels, and the selection of linear solver algorithms. However, the ideas presented here extend beyond these areas, which can be considered proof of … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

2
102
0

Year Published

2007
2007
2016
2016

Publication Types

Select...
6
1

Relationship

0
7

Authors

Journals

citations
Cited by 162 publications
(104 citation statements)
references
References 55 publications
2
102
0
Order By: Relevance
“…One approach (that we explore) to systematically resolve these issues is the use of autotuning, a technique that in the context of OpenCL would involve collecting and generating multiple kernel versions, implementing the same algorithm optimized for different architectures, and heuristically selecting the best performing one. Autotuning has been used intensively on CPUs in the past to address these challenges to automatically generate near optimal numerical libraries, e.g., ATLAS [18,19] and PHiPAC [20] used it to generate highly optimized BLAS. Work on auto-tuning CUDA kernels for NVIDIA GPUs [21,22] has shown that the technique is a very practical solution to easily port existing algorithmic solutions on quickly evolving GPU architectures and to substantially speed up even highly tuned hand-written kernels.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…One approach (that we explore) to systematically resolve these issues is the use of autotuning, a technique that in the context of OpenCL would involve collecting and generating multiple kernel versions, implementing the same algorithm optimized for different architectures, and heuristically selecting the best performing one. Autotuning has been used intensively on CPUs in the past to address these challenges to automatically generate near optimal numerical libraries, e.g., ATLAS [18,19] and PHiPAC [20] used it to generate highly optimized BLAS. Work on auto-tuning CUDA kernels for NVIDIA GPUs [21,22] has shown that the technique is a very practical solution to easily port existing algorithmic solutions on quickly evolving GPU architectures and to substantially speed up even highly tuned hand-written kernels.…”
Section: Related Workmentioning
confidence: 99%
“…For example, ATLAS [18,19] and PHiPAC [20] are used to generate highly optimized BLAS. The main approach for doing autotuning is based on empirical optimization techniques.…”
Section: Performance Portability With Auto-tuningmentioning
confidence: 99%
“…WHT 2 n = (DFT 2 ⊗I 2 n−1 )(I 2 ⊗ WHT 2 n−1 ) (recursive) (18) (c) Determine the exact operations counts (again, additions and multiplications separately) of both algorithms. Also determine the degree of reuse as defined in Section 2.1.…”
Section: Exercisesmentioning
confidence: 99%
“…This way, the library can dynamically adapt to the computer's memory hierarchy. Sparsity and OSKI from the BeBOP group [17][18][19][20] is are other examples of such a libraries, used for sparse linear algebra problems.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation