OpenACC Tutorial: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
(Marked this version for translation)
 
(13 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Introduction ==
<languages />
<translate>
 
<!--T:9-->
This tutorial is strongly inspired from the OpenACC Bootcamp session presented at [http://www.gputechconf.com/ GPU Technology Conference 2016].  
This tutorial is strongly inspired from the OpenACC Bootcamp session presented at [http://www.gputechconf.com/ GPU Technology Conference 2016].  


OpenACC is an application programming interface (API) for porting code onto accelerators such as GPU and coprocessors. It has been developed by Cray, CAPS, NVidia and PGI. Like in [[OpenMP]], the programmer annotated C, C++ or Fortran code to identify portions that should be parallelized by the compiler.  
<!--T:2-->
OpenACC is an application programming interface (API) for porting code onto accelerators such as GPU and coprocessors. It has been developed by Cray, CAPS, NVidia and PGI. Like in [[OpenMP]], the programmer annotates C, C++ or Fortran code to identify portions that should be parallelized by the compiler.  
 
<!--T:10-->
A self-paced course on this topic is available from SHARCNET: [https://training.sharcnet.ca/courses/enrol/index.php?id=173 Introduction to GPU Programming].
</translate>


{{Prerequisites
{{Prerequisites
|title=Prerequisites for this tutorial
|title=<translate><!--T:3-->
Prerequisites for this tutorial</translate>
|content=
<translate><!--T:4-->
This tutorial uses OpenACC to accelerate C, C++ or Fortran code. A working knowledge of one of these languages is therefore required to gain the most benefit out of it. </translate>
}}
{{Getready
|title=<translate><!--T:5-->
Getting ready</translate>
|content=
|content=
This tutorial uses OpenACC to accelerate C, C++ or Fortran code. A working knowledge of one of these languages is therefore required to gain the most benefit out of it.  
<translate><!--T:6-->
This tutorial is based on examples. You can download all of the examples in this [https://github.com/calculquebec/cq-formation-openacc Github repository].</translate>
}}
}}


== Lesson plan ==
<translate>
== Lesson plan == <!--T:7-->
* [[OpenACC Tutorial - Introduction|Introduction]]
* [[OpenACC Tutorial - Introduction|Introduction]]
* [[OpenACC Tutorial - Profiling|Gathering a profile and getting compiler information]]
* [[OpenACC Tutorial - Adding directives|Expressing parallelism with OpenACC directives]]
* [[OpenACC Tutorial - Data movement|Expressing data movement]]
* [[OpenACC Tutorial - Optimizing loops|Optimizing loops]]


== External references ==
== External references == <!--T:8-->
Here are some useful external references:  
Here are some useful external references:  
* [http://www.openacc.org/sites/default/files/OpenACC_Programming_Guide_0.pdf OpenACC Programming and Best Practices Guide]
* [https://www.openacc.org/sites/default/files/inline-files/openacc-guide.pdf OpenACC Programming and Best Practices Guide (PDF)]
* [http://www.openacc.org/sites/default/files/OpenACC_2.5_ref_guide.pdf OpenACC 2.15 Quick Reference]
* [https://www.openacc.org/sites/default/files/inline-files/API%20Guide%202.7.pdf OpenACC API 2.7 Reference Guide (PDF)]
* [http://jefflarkin.github.io/openacc-man-pages/ OpenACC "Man" Pages]
* [https://developer.nvidia.com/blog/getting-started-openacc/ Getting Started with OpenACC]
* [http://www.pgroup.com/doc/pgiug.pdf PGI Compiler]
* [https://docs.nvidia.com/hpc-sdk/pgi-compilers/legacy.html PGI Compiler]
* [http://www.pgroup.com/resources/pgprof-quickstart.htm PG Profiler]
* [http://www.pgroup.com/resources/pgprof-quickstart.htm PG Profiler]
* [http://docs.nvidia.com/cuda/profiler-users-guide/index.html#visual-profiler NVIDIA Visual Profiler]
* [http://docs.nvidia.com/cuda/profiler-users-guide/index.html#visual-profiler NVIDIA Visual Profiler]
* [https://devblogs.nvidia.com/parallelforall/getting-started-openacc/ Getting Started with OpenACC]
</translate>

Latest revision as of 16:56, 16 October 2024

Other languages:

This tutorial is strongly inspired from the OpenACC Bootcamp session presented at GPU Technology Conference 2016.

OpenACC is an application programming interface (API) for porting code onto accelerators such as GPU and coprocessors. It has been developed by Cray, CAPS, NVidia and PGI. Like in OpenMP, the programmer annotates C, C++ or Fortran code to identify portions that should be parallelized by the compiler.

A self-paced course on this topic is available from SHARCNET: Introduction to GPU Programming.


Prerequisites for this tutorial

This tutorial uses OpenACC to accelerate C, C++ or Fortran code. A working knowledge of one of these languages is therefore required to gain the most benefit out of it.


Getting ready

This tutorial is based on examples. You can download all of the examples in this Github repository.


Lesson plan

External references

Here are some useful external references: