Batch Linear Algebra for GPU-Accelerated High Performance Computing Environments

Size: px
Start display at page:

Download "Batch Linear Algebra for GPU-Accelerated High Performance Computing Environments"

Transcription

1 Batch Linear Algebra for GPU-Accelerated High Performance Computing Environments Ahmad Abdelfattah, Azzam Haidar, Stanimire Tomov, and Jack Dongarra SIAM Conference on Computational Science and Engineering 2017 Monday, February 27 th, 2017

2 Outline 1 At a Glance 2 Introduction 3 MAGMA Batched 4 Batched BLAS Design 5 Batched LAPACK Design 6 Batched Computation on Tiny Sizes 7 Conclusion A. Abdelfattah 2/30

3 Outline 1 At a Glance 2 Introduction 3 MAGMA Batched 4 Batched BLAS Design 5 Batched LAPACK Design 6 Batched Computation on Tiny Sizes 7 Conclusion A. Abdelfattah 3/30

4 What this talk is all about A design framework to perform batched computation using GPUs Part of the MAGMA library ( A foundation of batched linear algebra operations (BLAS and LAPACK) on small matrices of the same size or different sizes. A. Abdelfattah 4/30

5 Workshop on Batched, Reproducible, and Reduced Precision BLAS A community effort to establish standards for batch BLAS Two workshops so far: May 2016: ( Feb. 2017: ( We are always looking for feedback A. Abdelfattah 5/30

6 Outline 1 At a Glance 2 Introduction 3 MAGMA Batched 4 Batched BLAS Design 5 Batched LAPACK Design 6 Batched Computation on Tiny Sizes 7 Conclusion A. Abdelfattah 6/30

7 Why do we care? This is an application-driven need. Astrophysics Tensor contractions Large scale sparse direct solvers CA Krylov solvers Anomaly detection in hyperspectral images batched LU batched GEMMs batched LU, QR, and Cholesky batched GEMM, GEMV and others batched Cholesky Problems are generally of different sizes. A. Abdelfattah 7/30

8 Can we use existing GPU numerical software? Mostly No Relatively small caches Most existing software focuses on big matrices Using streams does not help We need to batch the execution in one computational kernel (batched kernel) A. Abdelfattah 8/30

9 Outline 1 At a Glance 2 Introduction 3 MAGMA Batched 4 Batched BLAS Design 5 Batched LAPACK Design 6 Batched Computation on Tiny Sizes 7 Conclusion A. Abdelfattah 9/30

10 The MAGMA Batched Library A subpackage of MAGMA Supports fixed and variable size problems A unified design structure Various BLAS and LAPACK functionality BLAS fixed size var. size Level-3 (all routines) Level-2 (GEMV,HEMV) LAPACK fixed size var. size One-sided factorization LU/QR/Chol. Chol. A. Abdelfattah 10/30

11 Design Assumptions Column major layout Same problem settings (e.g. transposition, upper/lower triangular matrix,... etc) Generally, matrices are not stored consecutively A sample dgemm_vbatched interface void magmablas_dgemm_vbatched( enum transa, enum transb, int* m, int* n, int* k, double alpha, double ** Aarray, int* lda, double ** Barray, int* ldb, double beta, double ** Carray, int* ldc, int batchcount, magma_queue_t queue ); A. Abdelfattah 11/30

12 Kernel Design Framework A kernel is a 1D array of 2D subgrids Each subgrid has a unique batchid Preprocessing layer for variable size batched kernel vbatched kernel subgrid subgrid thread block thread block non-batched device code Preprocessing A. Abdelfattah 12/30

13 Working with Different Sizes A preprocessing layer performs adaptive subgrid truncation (ASGT) ASGT: Kernels use self-adaptive subgrids Each subgrid is configured to accomodate any matrix in the input batch Each subgrid truncates itself to exactly fit the assigned problem Argument checking Separate GPU kernels Can be skipped through advanced APIs (similar to MKL direct calls) A. Abdelfattah 13/30

14 Outline 1 At a Glance 2 Introduction 3 MAGMA Batched 4 Batched BLAS Design 5 Batched LAPACK Design 6 Batched Computation on Tiny Sizes 7 Conclusion A. Abdelfattah 14/30

15 A GEMM-concentric Design Every BLAS kernel inherits/uses GEMM Except Hermitian matrix multiplication Any improvements in GEMM propagates to other routines TRSM (small size) TRSM (generic) HEMM/SYMM (generic) similar code base GEMM (generic) GEMM code base TRMM (small size) TRMM (generic) HERK/SYRK (generic) internal routine (generic) HER2K/SYR2K (generic) A. Abdelfattah 15/30

16 Design of the GEMM kernel Every thread block computes an output submatrix Square/rectangular recursive blocking Tuning is crucial Performance is sensitive to tuning parameters Tune for realistic cases found in LAPACK One parameterized code base, 6400 candidates Ended up with 34 winning kernels N /* some code */ case DGEMM_NT: // B is transposed { if(k < 128){ gemm_kernel_nt<double, version(nt,160)>(...); }else{ if(m < 256){ gemm_kernel_nt<double, version(nt,134)>(...); }else{ gemm_kernel_nt<double, version(nt,190)>(...); } } } break; /* some code */ M BLK k K BLK M A K BLK k BLK N B BLK N BLK M C A. Abdelfattah 16/30

17 DGEMM Performance 2k matrices, Pascal P100 GPU, NVIDIA CUDA 8.0 Fixed Size Variable Size A. Abdelfattah 17/30

18 DSYRK/DTRSM Performance 2k matrices, Pascal P100 GPU, NVIDIA CUDA 8.0 Fixed Size Variable Size A. Abdelfattah 18/30

19 Outline 1 At a Glance 2 Introduction 3 MAGMA Batched 4 Batched BLAS Design 5 Batched LAPACK Design 6 Batched Computation on Tiny Sizes 7 Conclusion A. Abdelfattah 19/30

20 Design of Batched LAPACK Batched LAPACK builds on top of batched BLAS Extract performance from level-3 batched BLAS kernels We started by batched one-sided factorization A new component is needed: batched panel factorizations Non-batched MAGMA is hybrid: uses the CPU for this task We cannot do the same on batched workloads Trailing matrix updates cannot hide the CPU-GPU communication Communication of non-consecutive data A full GPU solution is developed A. Abdelfattah 20/30

21 Intro magma-batched BLAS LAPACK Tiny-sizes Summary Figure 8: left-looking Cholesky factorization Cholesky Panel Factorization Algorithm 3 The fused potf2 kernel. 1: 2: 3: m-i 4: ib 5: 6: m-i A C ib 7: 8: 9: 10: 11: lb 12: 13: for i = 0, ib to m = nb do rak A(i:m,0:lb) ; rc 0 for k = 0, lb to m i do rakk rak sb rak(i:lb,k:k+lb) inplace transpose barrier() ra1 A(i:m,k+lb:k+2lb) prefetching rc rc + rakk sb multiplying barrier() end for sc ra1 - rc factorize sc end for Left looking variant with recursive We blocking first implemented this routine on GPUs and foun performance is about 3 Gflop/s for double precisio Kernel fusion: the panel (C) isits reused in shared memory both architectures. We then performed a detailed perform study basedin onshared the collection and analysis of machine A is read in registers, B is transposed memory ters. Counter readings were taken using performance (NVIDIA s CUPTI and PAPI CUDA component [20]. Prefetching helps hide the memory latency A. Abdelfattah While previously the unblocked potf2 algorithm wa plemented with outer loops going from 1 to nb runnin 21/30the CPU, calling the computational kernels on the GP

22 Performance of Batched Cholesky Factorization 2k matrices, Pascal P100 GPU, NVIDIA CUDA A. Abdelfattah 22/30

23 LU Panel Factorization LAPACK equivalent of (DGETF2) Swapping in LU factorization is very expensive One row at a time Parallel swapping allows concurrent row interchanges DGETRF on 2000 matrices of size using a K40c GPU A. Abdelfattah 23/30 ure 2. Execution trace of the batched LU factorization using either classical swap (top)

24 Performance of Batched LU Factorization 2k matrices, Pascal P100 GPU, NVIDIA CUDA A. Abdelfattah 24/30

25 Outline 1 At a Glance 2 Introduction 3 MAGMA Batched 4 Batched BLAS Design 5 Batched LAPACK Design 6 Batched Computation on Tiny Sizes 7 Conclusion A. Abdelfattah 25/30

26 What if the matrices are "embarrassingly small"? For example less than a warp size (32) LAPACK-style blocking is not a wise choice We cannot afford any redundant memory traffic We must preserve minimal memory traffic Each problem is entirely solved by one thread block Data is kept in registers/shared memory Instruction mix is also important Minimize the amount of integer instructions by fully unrolling the code for every size. Add the size as a tuning parameter A. Abdelfattah 26/30

27 Performance for tiny matrices 100k matrices, Pascal P100 GPU, NVIDIA CUDA 8.0 DGEMM DPOTRF DGETRF M matrices, Pascal P100 GPU, NVIDIA CUDA A. Abdelfattah 27/30

28 Outline 1 At a Glance 2 Introduction 3 MAGMA Batched 4 Batched BLAS Design 5 Batched LAPACK Design 6 Batched Computation on Tiny Sizes 7 Conclusion A. Abdelfattah 28/30

29 Conclusion and Future Work To summarize: MAGMA provides many BLAS/LAPACK routines for batched workloads High performance through careful design and tuning Special approach for tiny sizes Future Directions: Performance improvements in one-sided factorization Autotuning framework for batched routines Other LAPACK functionalities A. Abdelfattah 29/30

30 Thank You! A. Abdelfattah 30/30

A Standard for Batching BLAS Operations

A Standard for Batching BLAS Operations A Standard for Batching BLAS Operations Jack Dongarra University of Tennessee Oak Ridge National Laboratory University of Manchester 5/8/16 1 API for Batching BLAS Operations We are proposing, as a community

More information

Fast Cholesky Factorization on GPUs for Batch and Native Modes in MAGMA

Fast Cholesky Factorization on GPUs for Batch and Native Modes in MAGMA Fast Cholesky Factorization on GPUs for Batch and Native Modes in MAGMA Ahmad Abdelfattah a,, Azzam Haidar a, Stanimire Tomov a, Jack Dongarra a,b,c a Innovative Computing Laboratory, University of Tennessee,

More information

Hierarchical DAG Scheduling for Hybrid Distributed Systems

Hierarchical DAG Scheduling for Hybrid Distributed Systems June 16, 2015 Hierarchical DAG Scheduling for Hybrid Distributed Systems Wei Wu, Aurelien Bouteiller, George Bosilca, Mathieu Faverge, Jack Dongarra IPDPS 2015 Outline! Introduction & Motivation! Hierarchical

More information

C++ API for Batch BLAS

C++ API for Batch BLAS 4 C++ API for Batch BLAS Ahmad Abdelfattah ICL 1 Konstantin Arturov Intel 2 Cris Cecka NVIDIA 3 Jack Dongarra ICL Chip Freitag AMD 4 Mark Gates ICL Azzam Haidar ICL Jakub Kurzak ICL Piotr Luszczek ICL

More information

Solving Dense Linear Systems on Graphics Processors

Solving Dense Linear Systems on Graphics Processors Solving Dense Linear Systems on Graphics Processors Sergio Barrachina Maribel Castillo Francisco Igual Rafael Mayo Enrique S. Quintana-Ortí High Performance Computing & Architectures Group Universidad

More information

High-performance Cholesky factorization for GPU-only execution

High-performance Cholesky factorization for GPU-only execution High-performance Cholesky factorization for GPU-only execution Azzam Haidar Ahmad Abdelfatah Stanimire Tomov University of Tennessee, U.S.A. haidar,ahmad,tomov@icl.utk.edu Jack Dongarra University of Tennessee,

More information

Optimizing GPU Kernels for Irregular Batch Workloads: A Case Study for Cholesky Factorization

Optimizing GPU Kernels for Irregular Batch Workloads: A Case Study for Cholesky Factorization Optimizing GPU Kernels for Irregular Batch Workloads: A Case Study for Cholesky Factorization Ahmad Abdelfattah, Azzam Haidar, Stanimire Tomov, and Jack Dongarra Innovative Computing Laboratory University

More information

MAGMA Library. version 0.1. S. Tomov J. Dongarra V. Volkov J. Demmel

MAGMA Library. version 0.1. S. Tomov J. Dongarra V. Volkov J. Demmel MAGMA Library version 0.1 S. Tomov J. Dongarra V. Volkov J. Demmel 2 -- MAGMA (version 0.1) -- Univ. of Tennessee, Knoxville Univ. of California, Berkeley Univ. of Colorado, Denver June 2009 MAGMA project

More information

Novel HPC Techniques to Batch Execution of Many Variable Size BLAS Computations on GPUs

Novel HPC Techniques to Batch Execution of Many Variable Size BLAS Computations on GPUs Novel HPC Techniques to Batch Execution of Many Variable Size BLAS Computations on GPUs Ahmad Abdelfattah, Azzam Haidar, Stanimire Tomov, Jack Dongarra Innovative Computing Laboratory, University of Tennessee

More information

Scientific Computing with GPUs Autotuning GEMMs Fermi GPUs

Scientific Computing with GPUs Autotuning GEMMs Fermi GPUs Parallel Processing and Applied Mathematics September 11-14, 2011 Toruń, Poland Scientific Computing with GPUs Autotuning GEMMs Fermi GPUs Innovative Computing Laboratory Electrical Engineering and Computer

More information

Implementation of the C++ API for Batch BLAS

Implementation of the C++ API for Batch BLAS 7 Implementation of the C++ API for Batch BLAS Ahmad Abdelfattah Mark Gates Jakub Kurzak Piotr Luszczek Jack Dongarra Innovative Computing Laboratory June 29, 2018 This research was supported by the Exascale

More information

Batched BLAS (Basic Linear Algebra Subprograms) 2018 Specification

Batched BLAS (Basic Linear Algebra Subprograms) 2018 Specification Batched BLAS (Basic Linear Algebra Subprograms) 2018 Specification Jack Dongarra *, Iain Duff, Mark Gates *, Azzam Haidar *, Sven Hammarling, Nicholas J. Higham, Jonathan Hogg, Pedro Valero Lara, Piotr

More information

GPU ACCELERATION OF WSMP (WATSON SPARSE MATRIX PACKAGE)

GPU ACCELERATION OF WSMP (WATSON SPARSE MATRIX PACKAGE) GPU ACCELERATION OF WSMP (WATSON SPARSE MATRIX PACKAGE) NATALIA GIMELSHEIN ANSHUL GUPTA STEVE RENNICH SEID KORIC NVIDIA IBM NVIDIA NCSA WATSON SPARSE MATRIX PACKAGE (WSMP) Cholesky, LDL T, LU factorization

More information

MAGMA a New Generation of Linear Algebra Libraries for GPU and Multicore Architectures

MAGMA a New Generation of Linear Algebra Libraries for GPU and Multicore Architectures MAGMA a New Generation of Linear Algebra Libraries for GPU and Multicore Architectures Stan Tomov Innovative Computing Laboratory University of Tennessee, Knoxville OLCF Seminar Series, ORNL June 16, 2010

More information

Comparing Hybrid CPU-GPU and Native GPU-only Acceleration for Linear Algebra. Mark Gates, Stan Tomov, Azzam Haidar SIAM LA Oct 29, 2015

Comparing Hybrid CPU-GPU and Native GPU-only Acceleration for Linear Algebra. Mark Gates, Stan Tomov, Azzam Haidar SIAM LA Oct 29, 2015 Comparing Hybrid CPU-GPU and Native GPU-only Acceleration for Linear Algebra Mark Gates, Stan Tomov, Azzam Haidar SIAM LA Oct 29, 2015 Overview Dense linear algebra algorithms Hybrid CPU GPU implementation

More information

Optimizing the SVD Bidiagonalization Process for a Batch of Small Matrices

Optimizing the SVD Bidiagonalization Process for a Batch of Small Matrices This space is reserved for the Procedia header, do not use it Optimizing the SVD Bidiagonalization Process for a Batch of Small Matrices Tingxing Dong 1, Azzam Haidar 2, Stanimire Tomov 2, and Jack Dongarra

More information

Adrian Tate XK6 / openacc workshop Manno, Mar

Adrian Tate XK6 / openacc workshop Manno, Mar Adrian Tate XK6 / openacc workshop Manno, Mar6-7 2012 1 Overview & Philosophy Two modes of usage Contents Present contents Upcoming releases Optimization of libsci_acc Autotuning Adaptation Asynchronous

More information

Accelerating GPU kernels for dense linear algebra

Accelerating GPU kernels for dense linear algebra Accelerating GPU kernels for dense linear algebra Rajib Nath, Stanimire Tomov, and Jack Dongarra Department of Electrical Engineering and Computer Science, University of Tennessee, Knoxville {rnath1, tomov,

More information

NEW ADVANCES IN GPU LINEAR ALGEBRA

NEW ADVANCES IN GPU LINEAR ALGEBRA GTC 2012: NEW ADVANCES IN GPU LINEAR ALGEBRA Kyle Spagnoli EM Photonics 5/16/2012 QUICK ABOUT US» HPC/GPU Consulting Firm» Specializations in:» Electromagnetics» Image Processing» Fluid Dynamics» Linear

More information

MAGMA. Matrix Algebra on GPU and Multicore Architectures

MAGMA. Matrix Algebra on GPU and Multicore Architectures MAGMA Matrix Algebra on GPU and Multicore Architectures Innovative Computing Laboratory Electrical Engineering and Computer Science University of Tennessee Piotr Luszczek (presenter) web.eecs.utk.edu/~luszczek/conf/

More information

DAG-Scheduled Linear Algebra Using Template-Based Building Blocks

DAG-Scheduled Linear Algebra Using Template-Based Building Blocks DAG-Scheduled Linear Algebra Using Template-Based Building Blocks Jonathan Hogg STFC Rutherford Appleton Laboratory 1 / 20 19 March 2015 GPU Technology Conference San Jose, California * Thanks also to

More information

Automatically Tuned Linear Algebra Software (ATLAS) R. Clint Whaley Innovative Computing Laboratory University of Tennessee.

Automatically Tuned Linear Algebra Software (ATLAS) R. Clint Whaley Innovative Computing Laboratory University of Tennessee. Automatically Tuned Linear Algebra Software (ATLAS) R. Clint Whaley Innovative Computing Laboratory University of Tennessee Outline Pre-intro: BLAS Motivation What is ATLAS Present release How ATLAS works

More information

INTEL MKL Vectorized Compact routines

INTEL MKL Vectorized Compact routines INTEL MKL Vectorized Compact routines Mesut Meterelliyoz, Peter Caday, Timothy B. Costa, Kazushige Goto, Louise Huot, Sarah Knepper, Arthur Araujo Mitrano, Shane Story 2018 BLIS RETREAT 09/17/2018 OUTLINE

More information

Automatic Performance Tuning. Jeremy Johnson Dept. of Computer Science Drexel University

Automatic Performance Tuning. Jeremy Johnson Dept. of Computer Science Drexel University Automatic Performance Tuning Jeremy Johnson Dept. of Computer Science Drexel University Outline Scientific Computation Kernels Matrix Multiplication Fast Fourier Transform (FFT) Automated Performance Tuning

More information

Faster Code for Free: Linear Algebra Libraries. Advanced Research Compu;ng 22 Feb 2017

Faster Code for Free: Linear Algebra Libraries. Advanced Research Compu;ng 22 Feb 2017 Faster Code for Free: Linear Algebra Libraries Advanced Research Compu;ng 22 Feb 2017 Outline Introduc;on Implementa;ons Using them Use on ARC systems Hands on session Conclusions Introduc;on 3 BLAS Level

More information

Dense matrix algebra and libraries (and dealing with Fortran)

Dense matrix algebra and libraries (and dealing with Fortran) Dense matrix algebra and libraries (and dealing with Fortran) CPS343 Parallel and High Performance Computing Spring 2018 CPS343 (Parallel and HPC) Dense matrix algebra and libraries (and dealing with Fortran)

More information

A Few Numerical Libraries for HPC

A Few Numerical Libraries for HPC A Few Numerical Libraries for HPC CPS343 Parallel and High Performance Computing Spring 2016 CPS343 (Parallel and HPC) A Few Numerical Libraries for HPC Spring 2016 1 / 37 Outline 1 HPC == numerical linear

More information

GPU-Accelerated Parallel Sparse LU Factorization Method for Fast Circuit Analysis

GPU-Accelerated Parallel Sparse LU Factorization Method for Fast Circuit Analysis GPU-Accelerated Parallel Sparse LU Factorization Method for Fast Circuit Analysis Abstract: Lower upper (LU) factorization for sparse matrices is the most important computing step for circuit simulation

More information

Accelerating GPU Kernels for Dense Linear Algebra

Accelerating GPU Kernels for Dense Linear Algebra Accelerating GPU Kernels for Dense Linear Algebra Rajib Nath, Stan Tomov, and Jack Dongarra Innovative Computing Lab University of Tennessee, Knoxville July 9, 21 xgemm performance of CUBLAS-2.3 on GTX28

More information

A Linear Algebra Library for Multicore/Accelerators: the PLASMA/MAGMA Collection

A Linear Algebra Library for Multicore/Accelerators: the PLASMA/MAGMA Collection A Linear Algebra Library for Multicore/Accelerators: the PLASMA/MAGMA Collection Jack Dongarra University of Tennessee Oak Ridge National Laboratory 11/24/2009 1 Gflop/s LAPACK LU - Intel64-16 cores DGETRF

More information

Distributed Dense Linear Algebra on Heterogeneous Architectures. George Bosilca

Distributed Dense Linear Algebra on Heterogeneous Architectures. George Bosilca Distributed Dense Linear Algebra on Heterogeneous Architectures George Bosilca bosilca@eecs.utk.edu Centraro, Italy June 2010 Factors that Necessitate to Redesign of Our Software» Steepness of the ascent

More information

Optimization for Performance and Energy for Batched Matrix Computations on GPUs

Optimization for Performance and Energy for Batched Matrix Computations on GPUs Optimization for Performance and Energy for Batched Matrix Computations on GPUs Azzam Haidar University of Tennessee, U.S.A. haidar@eecs.utk.edu Stanimire Tomov University of Tennessee, U.S.A. tomov@eecs.utk.edu

More information

arxiv: v1 [cs.ms] 26 Apr 2013

arxiv: v1 [cs.ms] 26 Apr 2013 A GEMM interface and implementation on NVIDIA GPUs for multiple small matrices arxiv:1304.7053v1 [cs.ms] 26 Apr 2013 Abstract Chetan Jhurani, Paul Mullowney Tech-X Corporation 5621 Arapahoe Ave Boulder,

More information

GPU ACCELERATION OF CHOLMOD: BATCHING, HYBRID AND MULTI-GPU

GPU ACCELERATION OF CHOLMOD: BATCHING, HYBRID AND MULTI-GPU April 4-7, 2016 Silicon Valley GPU ACCELERATION OF CHOLMOD: BATCHING, HYBRID AND MULTI-GPU Steve Rennich, Darko Stosic, Tim Davis, April 6, 2016 OBJECTIVE Direct sparse methods are among the most widely

More information

BLASFEO. Gianluca Frison. BLIS retreat September 19, University of Freiburg

BLASFEO. Gianluca Frison. BLIS retreat September 19, University of Freiburg University of Freiburg BLIS retreat September 19, 217 Basic Linear Algebra Subroutines For Embedded Optimization performance dgemm_nt 5 4 Intel Core i7 48MQ HP OpenBLAS.2.19 MKL 217.2.174 ATLAS 3.1.3 BLIS.1.6

More information

Automatic Development of Linear Algebra Libraries for the Tesla Series

Automatic Development of Linear Algebra Libraries for the Tesla Series Automatic Development of Linear Algebra Libraries for the Tesla Series Enrique S. Quintana-Ortí quintana@icc.uji.es Universidad Jaime I de Castellón (Spain) Dense Linear Algebra Major problems: Source

More information

Optimizing Memory-Bound Numerical Kernels on GPU Hardware Accelerators

Optimizing Memory-Bound Numerical Kernels on GPU Hardware Accelerators Optimizing Memory-Bound Numerical Kernels on GPU Hardware Accelerators Ahmad Abdelfattah 1, Jack Dongarra 2, David Keyes 1 and Hatem Ltaief 3 1 KAUST Division of Mathematical and Computer Sciences and

More information

BLAS. Christoph Ortner Stef Salvini

BLAS. Christoph Ortner Stef Salvini BLAS Christoph Ortner Stef Salvini The BLASics Basic Linear Algebra Subroutines Building blocks for more complex computations Very widely used Level means number of operations Level 1: vector-vector operations

More information

MAGMA: a New Generation

MAGMA: a New Generation 1.3 MAGMA: a New Generation of Linear Algebra Libraries for GPU and Multicore Architectures Jack Dongarra T. Dong, M. Gates, A. Haidar, S. Tomov, and I. Yamazaki University of Tennessee, Knoxville Release

More information

PRACE PATC Course: Intel MIC Programming Workshop, MKL. Ostrava,

PRACE PATC Course: Intel MIC Programming Workshop, MKL. Ostrava, PRACE PATC Course: Intel MIC Programming Workshop, MKL Ostrava, 7-8.2.2017 1 Agenda A quick overview of Intel MKL Usage of MKL on Xeon Phi Compiler Assisted Offload Automatic Offload Native Execution Hands-on

More information

Turing Architecture and CUDA 10 New Features. Minseok Lee, Developer Technology Engineer, NVIDIA

Turing Architecture and CUDA 10 New Features. Minseok Lee, Developer Technology Engineer, NVIDIA Turing Architecture and CUDA 10 New Features Minseok Lee, Developer Technology Engineer, NVIDIA Turing Architecture New SM Architecture Multi-Precision Tensor Core RT Core Turing MPS Inference Accelerated,

More information

How to perform HPL on CPU&GPU clusters. Dr.sc. Draško Tomić

How to perform HPL on CPU&GPU clusters. Dr.sc. Draško Tomić How to perform HPL on CPU&GPU clusters Dr.sc. Draško Tomić email: drasko.tomic@hp.com Forecasting is not so easy, HPL benchmarking could be even more difficult Agenda TOP500 GPU trends Some basics about

More information

Thinking Outside of the Tera-Scale Box. Piotr Luszczek

Thinking Outside of the Tera-Scale Box. Piotr Luszczek Thinking Outside of the Tera-Scale Box Piotr Luszczek Brief History of Tera-flop: 1997 1997 ASCI Red Brief History of Tera-flop: 2007 Intel Polaris 2007 1997 ASCI Red Brief History of Tera-flop: GPGPU

More information

Linear Algebra Libraries: BLAS, LAPACK, ScaLAPACK, PLASMA, MAGMA

Linear Algebra Libraries: BLAS, LAPACK, ScaLAPACK, PLASMA, MAGMA Linear Algebra Libraries: BLAS, LAPACK, ScaLAPACK, PLASMA, MAGMA Shirley Moore svmoore@utep.edu CPS5401 Fall 2012 svmoore.pbworks.com November 8, 2012 1 Learning ObjecNves AOer complenng this lesson, you

More information

Accelerating Dense Linear Algebra for GPUs, Multicores and Hybrid Architectures: an Autotuned and Algorithmic Approach

Accelerating Dense Linear Algebra for GPUs, Multicores and Hybrid Architectures: an Autotuned and Algorithmic Approach University of Tennessee, Knoxville Trace: Tennessee Research and Creative Exchange Masters Theses Graduate School 8-21 Accelerating Dense Linear Algebra for GPUs, Multicores and Hybrid Architectures: an

More information

Making Dataflow Programming Ubiquitous for Scientific Computing

Making Dataflow Programming Ubiquitous for Scientific Computing Making Dataflow Programming Ubiquitous for Scientific Computing Hatem Ltaief KAUST Supercomputing Lab Synchronization-reducing and Communication-reducing Algorithms and Programming Models for Large-scale

More information

Toward a supernodal sparse direct solver over DAG runtimes

Toward a supernodal sparse direct solver over DAG runtimes Toward a supernodal sparse direct solver over DAG runtimes HOSCAR 2013, Bordeaux X. Lacoste Xavier LACOSTE HiePACS team Inria Bordeaux Sud-Ouest November 27, 2012 Guideline Context and goals About PaStiX

More information

Parallelism V. HPC Profiling. John Cavazos. Dept of Computer & Information Sciences University of Delaware

Parallelism V. HPC Profiling. John Cavazos. Dept of Computer & Information Sciences University of Delaware Parallelism V HPC Profiling John Cavazos Dept of Computer & Information Sciences University of Delaware Lecture Overview Performance Counters Profiling PAPI TAU HPCToolkit PerfExpert Performance Counters

More information

Framework for Batched and GPU-resident Factorization Algorithms Applied to Block Householder Transformations

Framework for Batched and GPU-resident Factorization Algorithms Applied to Block Householder Transformations Framework for Batched and GPU-resident Factorization Algorithms Applied to Block Householder Transformations Azzam Haidar 1, Tingxing Tim Dong 1, Stanimire Tomov 1, Piotr Luszczek 1, and Jack Dongarra

More information

Overcoming the Barriers to Sustained Petaflop Performance. William D. Gropp Mathematics and Computer Science

Overcoming the Barriers to Sustained Petaflop Performance. William D. Gropp Mathematics and Computer Science Overcoming the Barriers to Sustained Petaflop Performance William D. Gropp Mathematics and Computer Science www.mcs.anl.gov/~gropp But First Are we too CPU-centric? What about I/O? What do applications

More information

One-sided dense matrix factorizations on a multicore with multiple GPU accelerators in MAGMA 1

One-sided dense matrix factorizations on a multicore with multiple GPU accelerators in MAGMA 1 Procedia Computer Science Procedia Computer Science 00 1 10 International Conference on Computational Science, ICCS One-sided dense matrix factorizations on a multicore with multiple GPU accelerators in

More information

Issues In Implementing The Primal-Dual Method for SDP. Brian Borchers Department of Mathematics New Mexico Tech Socorro, NM

Issues In Implementing The Primal-Dual Method for SDP. Brian Borchers Department of Mathematics New Mexico Tech Socorro, NM Issues In Implementing The Primal-Dual Method for SDP Brian Borchers Department of Mathematics New Mexico Tech Socorro, NM 87801 borchers@nmt.edu Outline 1. Cache and shared memory parallel computing concepts.

More information

Fast and reliable linear system solutions on new parallel architectures

Fast and reliable linear system solutions on new parallel architectures Fast and reliable linear system solutions on new parallel architectures Marc Baboulin Université Paris-Sud Chaire Inria Saclay Île-de-France Séminaire Aristote - Ecole Polytechnique 15 mai 2013 Marc Baboulin

More information

Technical Report Performance Analysis of CULA on different NVIDIA GPU Architectures. Prateek Gupta

Technical Report Performance Analysis of CULA on different NVIDIA GPU Architectures. Prateek Gupta Technical Report 2014-02 Performance Analysis of CULA on different NVIDIA GPU Architectures Prateek Gupta May 20, 2014 1 Spring 2014: Performance Analysis of CULA on different NVIDIA GPU Architectures

More information

H2020 FETHPC 2014: GA D7.3 Draft specification for Hybrid (Batched) BLAS

H2020 FETHPC 2014: GA D7.3 Draft specification for Hybrid (Batched) BLAS H2020 FETHPC 2014: GA 671633 D7.3 Draft specification for Hybrid (Batched) BLAS April 2016 Document information Scheduled delivery 2016-04-30 Actual delivery 2016-04-26 Version 0.1 Responsible partner

More information

CUSOLVER LIBRARY. DU _v7.0 March 2015

CUSOLVER LIBRARY. DU _v7.0 March 2015 CUSOLVER LIBRARY DU-06709-001_v7.0 March 2015 TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. cusolverdn: Dense LAPACK...2 1.2. cusolversp: Sparse LAPACK...2 1.3. cusolverrf: Refactorization...3 1.4.

More information

MAGMA. LAPACK for GPUs. Stan Tomov Research Director Innovative Computing Laboratory Department of Computer Science University of Tennessee, Knoxville

MAGMA. LAPACK for GPUs. Stan Tomov Research Director Innovative Computing Laboratory Department of Computer Science University of Tennessee, Knoxville MAGMA LAPACK for GPUs Stan Tomov Research Director Innovative Computing Laboratory Department of Computer Science University of Tennessee, Knoxville Keeneland GPU Tutorial 2011, Atlanta, GA April 14-15,

More information

Solving dense symmetric indefinite systems using GPUs

Solving dense symmetric indefinite systems using GPUs CONCURRENCY AND COMPUTATION: PRACTICE AND EXPERIENCE Published online in Wiley Online Library (wileyonlinelibrary.com)..4055 SPECIAL ISSUE PAPER Solving dense symmetric indefinite systems using GPUs Marc

More information

High-performance matrix-matrix multiplications of very small matrices

High-performance matrix-matrix multiplications of very small matrices High-performance matrix-matrix multiplications of very small matrices I. Masliah 2, A. Abdelfattah 1, A. Haidar 1, S. Tomov 1, M. Baboulin 2, J. Falcou 2, and J. Dongarra 1,3 1 Innovative Computing Laboratory,

More information

Dense Linear Algebra for Hybrid GPU-Based Systems. Stanimire Tomov Department of Electrical Engineering and Computer Science, University of Tennessee

Dense Linear Algebra for Hybrid GPU-Based Systems. Stanimire Tomov Department of Electrical Engineering and Computer Science, University of Tennessee Chapter 3 Dense Linear Algebra for Hybrid GPU-Based Systems Stanimire Tomov Department of Electrical Engineering and Computer Science, University of Tennessee Jack Dongarra Department of Electrical Engineering

More information

Dense Linear Algebra on Heterogeneous Platforms: State of the Art and Trends

Dense Linear Algebra on Heterogeneous Platforms: State of the Art and Trends Dense Linear Algebra on Heterogeneous Platforms: State of the Art and Trends Paolo Bientinesi AICES, RWTH Aachen pauldj@aices.rwth-aachen.de ComplexHPC Spring School 2013 Heterogeneous computing - Impact

More information

HPC with Multicore and GPUs

HPC with Multicore and GPUs HPC with Multicore and GPUs Stan Tomov Electrical Engineering and Computer Science Department University of Tennessee, Knoxville COSC 594 Lecture Notes March 22, 2017 1/20 Outline Introduction - Hardware

More information

Intel Math Kernel Library (Intel MKL) Team - Presenter: Murat Efe Guney Workshop on Batched, Reproducible, and Reduced Precision BLAS Georgia Tech,

Intel Math Kernel Library (Intel MKL) Team - Presenter: Murat Efe Guney Workshop on Batched, Reproducible, and Reduced Precision BLAS Georgia Tech, Intel Math Kernel Library (Intel MKL) Team - Presenter: Murat Efe Guney Workshop on Batched, Reproducible, and Reduced Precision BLAS Georgia Tech, Atlanta February 24, 2017 Acknowledgements Benoit Jacob

More information

High Performance Computing on GPUs using NVIDIA CUDA

High Performance Computing on GPUs using NVIDIA CUDA High Performance Computing on GPUs using NVIDIA CUDA Slides include some material from GPGPU tutorial at SIGGRAPH2007: http://www.gpgpu.org/s2007 1 Outline Motivation Stream programming Simplified HW and

More information

MAGMA QR, 1 GPU, All Available Cores. Mitch Horton, Stanimire Tomov, Jack Dongarra Innovative Computing Laboratory

MAGMA QR, 1 GPU, All Available Cores. Mitch Horton, Stanimire Tomov, Jack Dongarra Innovative Computing Laboratory A Class of Hybrid LAPACK Algorithms for Multicore and GPU Architectures MAGMA QR, 1 GPU, All Available Cores Mitch Horton, Stanimire Tomov, Jack Dongarra Innovative Computing Laboratory University of Tennessee

More information

Auto-tunable GPU BLAS

Auto-tunable GPU BLAS Auto-tunable GPU BLAS Jarle Erdal Steinsland Master of Science in Computer Science Submission date: June 2011 Supervisor: Anne Cathrine Elster, IDI Norwegian University of Science and Technology Department

More information

High-Performance Matrix-Matrix Multiplications of Very Small Matrices

High-Performance Matrix-Matrix Multiplications of Very Small Matrices High-Performance Matrix-Matrix Multiplications of Very Small Matrices Ian Masliah 2(B), Ahmad Abdelfattah 1, A. Haidar 1, S. Tomov 1, Marc Baboulin 2, J. Falcou 2, and J. Dongarra 1,3 1 Innovative Computing

More information

Cray Scientific Libraries. Overview

Cray Scientific Libraries. Overview Cray Scientific Libraries Overview What are libraries for? Building blocks for writing scientific applications Historically allowed the first forms of code re-use Later became ways of running optimized

More information

A Comparison of Potential Interfaces for Batched BLAS Computations. Relton, Samuel D. and Valero-Lara, Pedro and Zounon, Mawussi. MIMS EPrint: 2016.

A Comparison of Potential Interfaces for Batched BLAS Computations. Relton, Samuel D. and Valero-Lara, Pedro and Zounon, Mawussi. MIMS EPrint: 2016. A Comparison of Potential Interfaces for Batched BLAS Computations Relton, Samuel D. and Valero-Lara, Pedro and Zounon, Mawussi 2016 MIMS EPrint: 2016.42 Manchester Institute for Mathematical Sciences

More information

Resources for parallel computing

Resources for parallel computing Resources for parallel computing BLAS Basic linear algebra subprograms. Originally published in ACM Toms (1979) (Linpack Blas + Lapack). Implement matrix operations upto matrix-matrix multiplication and

More information

Redesigning Triangular Dense Matrix Computations on GPUs

Redesigning Triangular Dense Matrix Computations on GPUs Redesigning Triangular Dense Matrix Computations on GPUs Ali Charara, Hatem Ltaief, and David Keyes Extreme Computing Research Center, King Abdullah University of Science and Technology, Thuwal, Jeddah,

More information

Heterogenous Acceleration for Linear Algebra in Mulit-Coprocessor Environments

Heterogenous Acceleration for Linear Algebra in Mulit-Coprocessor Environments Heterogenous Acceleration for Linear Algebra in Mulit-Coprocessor Environments Azzam Haidar 1, Piotr Luszczek 1, Stanimire Tomov 1, and Jack Dongarra 1,2,3 1 University of Tennessee Knoxville, USA 2 Oak

More information

Out Of Memory SVD Solver for Big Data

Out Of Memory SVD Solver for Big Data Out Of Memory SVD Solver for Big Data Azzam Haidar, Khairul Kabir, Diana Fayad, Stanimire Tomov, Jack Dongarra {haidar fayad tomov dongarra}@icl.utk.edu, Innovative Computing Laboratory (ICL), University

More information

Intel MIC Architecture. Dr. Momme Allalen, LRZ, PRACE PATC: Intel MIC&GPU Programming Workshop

Intel MIC Architecture. Dr. Momme Allalen, LRZ, PRACE PATC: Intel MIC&GPU Programming Workshop Intel MKL @ MIC Architecture Dr. Momme Allalen, LRZ, allalen@lrz.de PRACE PATC: Intel MIC&GPU Programming Workshop 1 2 Momme Allalen, HPC with GPGPUs, Oct. 10, 2011 What is the Intel MKL? Math library

More information

Implementing Strassen-like Fast Matrix Multiplication Algorithms with BLIS

Implementing Strassen-like Fast Matrix Multiplication Algorithms with BLIS Implementing Strassen-like Fast Matrix Multiplication Algorithms with BLIS Jianyu Huang, Leslie Rice Joint work with Tyler M. Smith, Greg M. Henry, Robert A. van de Geijn BLIS Retreat 2016 *Overlook of

More information

NVIDIA GTX200: TeraFLOPS Visual Computing. August 26, 2008 John Tynefield

NVIDIA GTX200: TeraFLOPS Visual Computing. August 26, 2008 John Tynefield NVIDIA GTX200: TeraFLOPS Visual Computing August 26, 2008 John Tynefield 2 Outline Execution Model Architecture Demo 3 Execution Model 4 Software Architecture Applications DX10 OpenGL OpenCL CUDA C Host

More information

WHILE linear algebra software has achieved high efficiency

WHILE linear algebra software has achieved high efficiency 2036 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 27, NO. 7, JULY 2016 Implementation and Tuning of Batched Cholesky Factorization and Solve for NVIDIA GPUs Jakub Kurzak, Hartwig Anzt, Mark

More information

QR Factorization on a Multicore Node Enhanced with Multiple GPU Accelerators

QR Factorization on a Multicore Node Enhanced with Multiple GPU Accelerators QR Factorization on a Multicore Node Enhanced with Multiple GPU Accelerators Emmanuel Agullo, Cédric Augonnet, Jack Dongarra, Mathieu Faverge, Hatem Ltaief, Samuel Thibault and Stanimire Tomov INRIA, LaBRI,

More information

High Performance Matrix-matrix Multiplication of Very Small Matrices

High Performance Matrix-matrix Multiplication of Very Small Matrices High Performance Matrix-matrix Multiplication of Very Small Matrices Ian Masliah, Marc Baboulin, ICL people University Paris-Sud - LRI Sparse Days Cerfacs, Toulouse, 1/07/2016 Context Tensor Contractions

More information

printf("\n\nx = "); for(i=0;i<5;i++) printf("\n%f %f", X[i],X[i+5]); printf("\n\ny = "); for(i=0;i<5;i++) printf("\n%f", Y[i]);

printf(\n\nx = ); for(i=0;i<5;i++) printf(\n%f %f, X[i],X[i+5]); printf(\n\ny = ); for(i=0;i<5;i++) printf(\n%f, Y[i]); OLS.c / / #include #include #include int main(){ int i,info, ipiv[2]; char trans = 't', notrans ='n'; double alpha = 1.0, beta=0.0; int ncol=2; int nrow=5; int

More information

PRACE PATC Course: Intel MIC Programming Workshop, MKL LRZ,

PRACE PATC Course: Intel MIC Programming Workshop, MKL LRZ, PRACE PATC Course: Intel MIC Programming Workshop, MKL LRZ, 27.6-29.6.2016 1 Agenda A quick overview of Intel MKL Usage of MKL on Xeon Phi - Compiler Assisted Offload - Automatic Offload - Native Execution

More information

A class of communication-avoiding algorithms for solving general dense linear systems on CPU/GPU parallel machines

A class of communication-avoiding algorithms for solving general dense linear systems on CPU/GPU parallel machines Available online at www.sciencedirect.com Procedia Computer Science 9 (2012 ) 17 26 International Conference on Computational Science, ICCS 2012 A class of communication-avoiding algorithms for solving

More information

Using recursion to improve performance of dense linear algebra software. Erik Elmroth Dept of Computing Science & HPC2N Umeå University, Sweden

Using recursion to improve performance of dense linear algebra software. Erik Elmroth Dept of Computing Science & HPC2N Umeå University, Sweden Using recursion to improve performance of dense linear algebra software Erik Elmroth Dept of Computing Science & HPCN Umeå University, Sweden Joint work with Fred Gustavson, Isak Jonsson & Bo Kågström

More information

Outline. Availability Routines Code Testers Methodology

Outline. Availability Routines Code Testers Methodology Outline Availability Routines Code Testers Methodology 1 2.3 Availability http://icl.utk.edu/magma/ download, documentation, forum https://bitbucket.org/icl/magma Mercurial repo Support Linux, macos, Windows

More information

NAG Fortran Library Routine Document F01CWF.1

NAG Fortran Library Routine Document F01CWF.1 NAG Fortran Library Routine Document Note: before using this routine, please read the Users Note for your implementation to check the interpretation of bold italicised terms and other implementation-dependent

More information

Center for Scalable Application Development Software (CScADS): Automatic Performance Tuning Workshop

Center for Scalable Application Development Software (CScADS): Automatic Performance Tuning Workshop Center for Scalable Application Development Software (CScADS): Automatic Performance Tuning Workshop http://cscads.rice.edu/ Discussion and Feedback CScADS Autotuning 07 Top Priority Questions for Discussion

More information

Fastest and most used math library for Intel -based systems 1

Fastest and most used math library for Intel -based systems 1 Fastest and most used math library for Intel -based systems 1 Speaker: Alexander Kalinkin Contributing authors: Peter Caday, Kazushige Goto, Louise Huot, Sarah Knepper, Mesut Meterelliyoz, Arthur Araujo

More information

Scheduling of QR Factorization Algorithms on SMP and Multi-core Architectures

Scheduling of QR Factorization Algorithms on SMP and Multi-core Architectures Scheduling of Algorithms on SMP and Multi-core Architectures Gregorio Quintana-Ortí Enrique S. Quintana-Ortí Ernie Chan Robert A. van de Geijn Field G. Van Zee quintana@icc.uji.es Universidad Jaime I de

More information

Porting Scientific Research Codes to GPUs with CUDA Fortran: Incompressible Fluid Dynamics using the Immersed Boundary Method

Porting Scientific Research Codes to GPUs with CUDA Fortran: Incompressible Fluid Dynamics using the Immersed Boundary Method Porting Scientific Research Codes to GPUs with CUDA Fortran: Incompressible Fluid Dynamics using the Immersed Boundary Method Josh Romero, Massimiliano Fatica - NVIDIA Vamsi Spandan, Roberto Verzicco -

More information

Parallelization of the QR Decomposition with Column Pivoting Using Column Cyclic Distribution on Multicore and GPU Processors

Parallelization of the QR Decomposition with Column Pivoting Using Column Cyclic Distribution on Multicore and GPU Processors Parallelization of the QR Decomposition with Column Pivoting Using Column Cyclic Distribution on Multicore and GPU Processors Andrés Tomás 1, Zhaojun Bai 1, and Vicente Hernández 2 1 Department of Computer

More information

Cray Scientific Libraries: Overview and Performance. Cray XE6 Performance Workshop University of Reading Nov 2012

Cray Scientific Libraries: Overview and Performance. Cray XE6 Performance Workshop University of Reading Nov 2012 Cray Scientific Libraries: Overview and Performance Cray XE6 Performance Workshop University of Reading 20-22 Nov 2012 Contents LibSci overview and usage BFRAME / CrayBLAS LAPACK ScaLAPACK FFTW / CRAFFT

More information

Batched Factorization and Inversion Routines for Block-Jacobi Preconditioning on GPUs

Batched Factorization and Inversion Routines for Block-Jacobi Preconditioning on GPUs Workshop on Batched, Reproducible, and Reduced Precision BLAS Atlanta, GA 02/25/2017 Batched Factorization and Inversion Routines for Block-Jacobi Preconditioning on GPUs Hartwig Anzt Joint work with Goran

More information

Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators

Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators Francisco D. Igual Enrique S. Quintana-Ortí Gregorio Quintana-Ortí Universidad Jaime I de Castellón (Spain) Robert A. van de

More information

Chapter 1 Accelerating Numerical Dense Linear Algebra Calculations with GPUs

Chapter 1 Accelerating Numerical Dense Linear Algebra Calculations with GPUs Chapter 1 Accelerating Numerical Dense Linear Algebra Calculations with GPUs Jack Dongarra, Mark Gates, Azzam Haidar, Jakub Kurzak, Piotr Luszczek, Stanimire Tomov, and Ichitaro Yamazaki 1.1 Introduction

More information

High Performance Linear Algebra

High Performance Linear Algebra High Performance Linear Algebra Hatem Ltaief Senior Research Scientist Extreme Computing Research Center King Abdullah University of Science and Technology 4th International Workshop on Real-Time Control

More information

Task based parallelization of recursive linear algebra routines using Kaapi

Task based parallelization of recursive linear algebra routines using Kaapi Task based parallelization of recursive linear algebra routines using Kaapi Clément PERNET joint work with Jean-Guillaume DUMAS and Ziad SULTAN Université Grenoble Alpes, LJK-CASYS January 20, 2017 Journée

More information

Data parallel algorithms, algorithmic building blocks, precision vs. accuracy

Data parallel algorithms, algorithmic building blocks, precision vs. accuracy Data parallel algorithms, algorithmic building blocks, precision vs. accuracy Robert Strzodka Architecture of Computing Systems GPGPU and CUDA Tutorials Dresden, Germany, February 25 2008 2 Overview Parallel

More information

Performance Optimization Tutorial. Labs

Performance Optimization Tutorial. Labs Performance Optimization Tutorial Labs Exercise 1 These exercises are intended to provide you with a general feeling about some of the issues involved in writing high performance code, both on a single

More information

Optimization of Dense Linear Systems on Platforms with Multiple Hardware Accelerators. Enrique S. Quintana-Ortí

Optimization of Dense Linear Systems on Platforms with Multiple Hardware Accelerators. Enrique S. Quintana-Ortí Optimization of Dense Linear Systems on Platforms with Multiple Hardware Accelerators Enrique S. Quintana-Ortí Disclaimer Not a course on how to program dense linear algebra kernels on s Where have you

More information

Heterogenous Acceleration for Linear Algebra in Mulit-Coprocessor Environments

Heterogenous Acceleration for Linear Algebra in Mulit-Coprocessor Environments Heterogenous Acceleration for Linear Algebra in Mulit-Coprocessor Environments Azzam Haidar 1, Piotr Luszczek 1, Stanimire Tomov 1, and Jack Dongarra 1,2,3 1 University of Tennessee Knoxville, USA 2 Oak

More information