Goran Flegar

dblp:193/9905 · DBLP profile ↗
← Back
12ranked-venue papers
3as first author
2since 2021 · last 2022
0000-0002-4154-0420ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 8 · 1 first-authorTheory of computation · 3 · 2 first-author · 2 since 2021
YearPublicationVenuePosition
2022 Ginkgo: A Modern Linear Operator Algebra Framework for High Performance Computing
abstract
In this article, we present Ginkgo , a modern C++ math library for scientific high performance computing. While classical linear algebra libraries act on matrix and vector objects, Ginkgo ’s design principle abstracts all functionality as “linear operators,” motivating the notation of a “linear operator algebra library.” Ginkgo ’s current focus is oriented toward providing sparse linear algebra functionality for high performance graphics processing unit (GPU) architectures, but given the library design, this focus can be easily extended to accommodate other algorithms and hardware architectures. We introduce this sophisticated software architecture that separates core algorithms from architecture-specific backends and provide details on extensibility and sustainability measures. We also demonstrate Ginkgo ’s usability by providing examples on how to use its functionality inside the MFEM and deal.ii finite element ecosystems. Finally, we offer a practical demonstration of Ginkgo ’s high performance on state-of-the-art GPU architectures.
Hartwig Anzt, Terry Cojean, Goran Flegar, Fritz Göbel, Thomas Grützmacher, Pratik Nayak, Tobias Ribizel, Yu-Hsiang Tsai, Enrique S. Quintana-Ortí
ACM Trans. Math. Softw.3
2021 Adaptive Precision Block-Jacobi for High Performance Preconditioning in the Ginkgo Linear Algebra Software
abstract
The use of mixed precision in numerical algorithms is a promising strategy for accelerating scientific applications. In particular, the adoption of specialized hardware and data formats for low-precision arithmetic in high-end GPUs (graphics processing units) has motivated numerous efforts aiming at carefully reducing the working precision in order to speed up the computations. For algorithms whose performance is bound by the memory bandwidth, the idea of compressing its data before (and after) memory accesses has received considerable attention. One idea is to store an approximate operator–like a preconditioner–in lower than working precision hopefully without impacting the algorithm output. We realize the first high-performance implementation of an adaptive precision block-Jacobi preconditioner which selects the precision format used to store the preconditioner data on-the-fly, taking into account the numerical properties of the individual preconditioner blocks. We implement the adaptive block-Jacobi preconditioner as production-ready functionality in the Ginkgo linear algebra library, considering not only the precision formats that are part of the IEEE standard, but also customized formats which optimize the length of the exponent and significand to the characteristics of the preconditioner blocks. Experiments run on a state-of-the-art GPU accelerator show that our implementation offers attractive runtime savings.
Goran Flegar, Hartwig Anzt, Terry Cojean, Enrique S. Quintana-Ortí
ACM Trans. Math. Softw.1
2020 Multiprecision Block-Jacobi for Iterative Triangular Solves
Fritz Göbel, Hartwig Anzt, Terry Cojean, Goran Flegar, Enrique S. Quintana-Ortí
Euro-Par4
2020 A customized precision format based on mantissa segmentation for accelerating sparse linear algebra
abstract
Summary In this work, we pursue the idea of radically decoupling the floating point format used for arithmetic operations from the format used to store the data in memory. We complement this idea with a customized precision memory format derived by splitting the mantissa (significand) of standard IEEE formats into segments, such that values can be accessed faster if lower accuracy is acceptable. Combined with precision‐aware algorithms that dynamically adapt the data access accuracy to the numerical requirements, the customized precision memory format can render attractive runtime savings without impacting the memory footprint of the data or the accuracy of the final result. In an experimental analysis using the adaptive precision Jacobi method on diagonalizable test problems, we assess the benefits of the mantissa‐segmenting customized precision format on recent multi‐ and manycore architectures.
Thomas Grützmacher, Terry Cojean, Goran Flegar, Fritz Göbel, Hartwig Anzt
Concurr. Comput. Pract. Exp.3
2019 ParILUT - A Parallel Threshold ILU for GPUs
abstract
In this paper, we present the first algorithm for computing threshold ILU factorizations on GPU architectures. The proposed ParILUT-GPU algorithm is based on interleaving parallel fixed-point iterations that approximate the incomplete factors for an existing nonzero pattern with a strategy that dynamically adapts the nonzero pattern to the problem characteristics. This requires the efficient selection of thresholds that separate the values to be dropped from the incomplete factors, and we design a novel selection algorithm tailored towards GPUs. All components of the ParILUT-GPU algorithm make heavy use of the features available in the latest NVIDIA GPU generations, and outperform existing multithreaded CPU implementations.
Hartwig Anzt, Tobias Ribizel, Goran Flegar, Edmond Chow, Jack J. Dongarra
IPDPS3
2019 Adaptive precision in block-Jacobi preconditioning for iterative sparse linear system solvers
abstract
Summary We propose an adaptive scheme to reduce communication overhead caused by data movement by selectively storing the diagonal blocks of a block‐Jacobi preconditioner in different precision formats (half, single, or double). This specialized preconditioner can then be combined with any Krylov subspace method for the solution of sparse linear systems to perform all arithmetic in double precision. We assess the effects of the adaptive precision preconditioner on the iteration count and data transfer cost of a preconditioned conjugate gradient solver. A preconditioned conjugate gradient method is, in general, a memory bandwidth‐bound algorithm, and therefore its execution time and energy consumption are largely dominated by the costs of accessing the problem's data in memory. Given this observation, we propose a model that quantifies the time and energy savings of our approach based on the assumption that these two costs depend linearly on the bit length of a floating point number. Furthermore, we use a number of test problems from the SuiteSparse matrix collection to estimate the potential benefits of the adaptive block‐Jacobi preconditioning scheme.
Hartwig Anzt, Jack J. Dongarra, Goran Flegar, Nicholas J. Higham, Enrique S. Quintana-Ortí
Concurr. Comput. Pract. Exp.3
2019 Variable-size batched Gauss-Jordan elimination for block-Jacobi preconditioning on graphics processors
Hartwig Anzt, Jack J. Dongarra, Goran Flegar, Enrique S. Quintana-Ortí
Parallel Comput.3
2019 FloatX: A C++ Library for Customized Floating-Point Arithmetic
abstract
We present FloatX (Float eXtended), a C ++ framework to investigate the effect of leveraging customized floating-point formats in numerical applications. FloatX formats are based on binary IEEE 754 with smaller significand and exponent bit counts specified by the user. Among other properties, FloatX facilitates an incremental transformation of the code, relies on hardware-supported floating-point types as back-end to preserve efficiency, and incurs no storage overhead. The article discusses in detail the design principles, programming interface, and datatype casting rules behind FloatX. Furthermore, it demonstrates FloatX’s usage and benefits via several case studies from well-known numerical dense linear algebra libraries, such as BLAS and LAPACK; the Ginkgo library for sparse linear systems; and two neural network applications related with image processing and text recognition.
Goran Flegar, Florian Scheidegger, Vedran Novakovic, Giovanni Mariani, Andrés Tomás, Cristiano Malossi, Enrique S. Quintana-Ortí
ACM Trans. Math. Softw.1
2018 Variable-Size Batched Condition Number Calculation on GPUs
abstract
We present a kernel that is designed to quickly compute the condition number of a large collection of tiny matrices on a graphics processing unit (GPU). The matrices can differ in size and the process integrates the use of pivoting to ensure a numerically-stable matrix inversion. The performance assessment reveals that, in double precision arithmetic, the new GPU kernel achieves up to 550 GFLOPs (billions of floating-point operations per second) and 800 GFLOPs on NVIDIA's P100 and V100 GPUs, respectively. The results also demonstrate a considerable speed-up with respect to a workflow that computes the condition number via launching a set of four batched kernels. In addition, we present a variable-size batched kernel for the computation of the matrix infinity norm. We show that this memory-bound kernel achieves up to 90% of the sustainable peak bandwidth.
Hartwig Anzt, Jack J. Dongarra, Goran Flegar, Thomas Grützmacher
SBAC-PAD3
2017 Balanced CSR Sparse Matrix-Vector Product on Graphics Processors
Goran Flegar, Enrique S. Quintana-Ortí
Euro-Par1
2017 Variable-Size Batched LU for Small Matrices and Its Integration into Block-Jacobi Preconditioning
abstract
We present a set of new batched CUDA kernels for the LU factorization of a large collection of independent problems of different size, and the subsequent triangular solves. All kernels heavily exploit the registers of the graphics processing unit (GPU) in order to deliver high performance for small problems. The development of these kernels is motivated by the need for tackling this embarrasingly-parallel scenario in the context of block-Jacobi preconditioning that is relevant for the iterative solution of sparse linear systems.
Hartwig Anzt, Jack J. Dongarra, Goran Flegar, Enrique S. Quintana-Ortí
ICPP3
2017 Communication in task-parallel ILU-preconditioned CG solvers using MPI + OmpSs
abstract
Summary We target the parallel solution of sparse linear systems via iterative Krylov subspace–based methods enhanced with incomplete LU (ILU)‐type preconditioners on clusters of multicore processors. In order to tackle large‐scale problems, we develop task‐parallel implementations of the classical iteration for the CG method, accelerated via ILUPACK and ILU(0) preconditioners, using MPI + OmpSs. In addition, we integrate several communication‐avoiding strategies into the codes, including the butterfly communication scheme and Eijkhout's formulation of the CG method. For all these implementations, we analyze the communication patterns and perform a comparative analysis of their performance and scalability on a cluster consisting of 16 nodes, with 16 cores each.
José Ignacio Aliaga, Maria Barreda, Goran Flegar, Matthias Bollhöfer, Enrique S. Quintana-Ortí
Concurr. Comput. Pract. Exp.3