hyPACK-2013 : PGI Compilers OpenACC CUDA enabled NVIDIA GPU
NVIDIA\92s
Compute Unified Device Architecture (CUDA)
is a software platform for massively parallel high-performance
computing on the company's powerful GPUs.
PGI compilers deliver world-class performance across a wide spectrum of
applications and benchmarks. PGI is the compiler-of-choice among
many popular performance-critical applications used in the fields
of geophysical modeling, mechanical engineering, computational chemistry,
weather forecasting, and high-energy physics.
The Portland Group, a leader in GPGPU development tools and
technologies for HPC, offers one and two day courses on
NVIDIA GPU Programming with CUDA C, CUDA Fortran and the
PGI Accelerator programming model.The PGI Fortran & C accelerator programming
model document covers only user-directed
accelerator programming, where the user specifies
the regions of a host program to be
targeted for offloading to an accelerator device.
|
PGI 2012 compilers language support exisit for full CUDA C/C++ compiler for targettting
multi-core x64 platforms.
For GPU Computing, support for the OpenACC GPU programming directives specification v1.0
and
Asynchronous data transfers and kernel launch are provided.
One of the objectives to use PGI compiler on CUDA enabled NVIDIA GPUs is to introduce
a
collection of compiler directives in the specific regions of code in
Fortran and C programs that can be offloaded from a host CPU to an attached CUDA enable d
NVIDIA GPU accelerator. This method provides a model for accelerator programming that
is portable across
operating systems and various types of host CPUs and accelerators.
For more information
PGI Accelerator Programming Model for Fortran & C
Module : Summary of Programs on OpenACC in hyPACK-2013 workshop
Set of Programs on Numerical Linear Algebra and Solution of Possion Equations by
Finite Difference method (FDM) will be discussed.
PGI tutorials on applications will be provided.
|
NVIDIA - PGI OpenACC Compilation & Execution
Detatils of Compilation and execution of "openacc" program is given below.
|
References
1.
|
NVIDIA Kepler Architecture
|
2.
|
NVIDIA CUDA toolkit 5.0 Preview Release April 2012
|
3.
|
NVIDIA Developer Zone
|
4.
|
RDMA for NVIDIA GPUDirect coming in CUDA 5.0 Preview Release, April 2012
|
5.
|
NVIDIA CUDA C Programmig Guide Version 4.2 dated 4/16/2012 (April 2012)
|
6.
|
Dynamic Parallelism in CUDA Tesla K20 Kepler GPUs - Prelease of NVIDIA CUDA 5.0
|
7.
|
NVIDIA Developer ZONE - CUDA Downloads CUDA TOOLKIT 4.2
|
8.
|
NVIDIA Developer ZONE - GPUDirect
|
9.
|
OpenACC - NVIDIA
|
10.
|
Nsight, Eclipse Edition Pre-release of CUDA 5.0, April 2012
|
11.
|
NVIDIA OpenCL Programming Guide for the CUDA Architecture version 4.0 Feb, 2011 (2/14,2011)
|
12.
|
Optmization : NVIDIA OpenCL Best Practices Guide Version 1.0 Feb 2011
|
13.
|
NVIDIA OpenCL JumpStart Guide - Technical Brief
|
14.
|
NVIDA CUDA C BEST PRACTICES GUIDE (Design Guide) V4.0, May 2011
|
15.
|
NVIDA CUDA C Programming Guide Version V4.0, May 2011 (5/6/2011)
|
16.
|
NVIDIA GPU Computing SDK
|
17.
|
Apple : Snowleopard - OpenCL
|
18.
|
The OpenCL Specification, Version 1.1, Published by Khronos OpenCL
Working Group, Aaftab Munshi (ed.), 2010.
|
19.
|
The OpenCL Speciifcation Version : v1.0 Khronos OpenCL Working Group
|
20.
|
Khronos V1.0 Introduction and Overview, June 2010
|
21.
|
The OpenCL 1.1 Quick Reference card.
|
22.
|
OpenCL 1.2 (pdf file)
|
23.
|
OpenCL 1.1 Specification (Revision 44) June 1, 2011
|
24.
|
OpenCL Reference Pages
|
25.
|
MATLAB
|
26.
|
NVIDIA - CUDA MATLAB Acceleration
|
27.
|
CUDA BY EXAMPLE - An Introduction to General Purpose GPU Programnming,
Jason Sanders, Edward Kandrot (Foreword by Jack Dongarra),
Addison Wessely 2011, nvidia
|
28.
|
Programming Massievely Parallel Processors - A Hands-on Approach,
David B Kirk, Wen-mei W. Hwu
nvidia corporation, 2010, Elsevier, Morgan Kaufmann Publishers, 2011
|
29.
|
OpenCL Toolbox for MATLAB
|
30.
|
NAG
|
31.
|
OpenCL Progrmamin Guide,
Aftab Munshi Benedict R Gaster, timothy F Mattson, James Fung,
Dan Cinsburg, Addision Wesley, Pearson Education, 2012
|
32.
|
The OpenCL 1.2 Specification Khronos OpenCL Working Group
|
33.
|
The OpenCL 1.2 Quick-reference-card ; Khronos OpenCL Working Group
|
|
|
|
|