OpenACC Tutorial: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
<languages /> | |||
<translate> | |||
== Introduction == | == Introduction == | ||
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 annotates C, C++ or Fortran code to identify portions that should be parallelized by the compiler. | 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. | ||
</translate> | |||
{{Prerequisites | {{Prerequisites | ||
|title=Prerequisites for this tutorial | |title=<translate>Prerequisites for this tutorial</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>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 | {{Getready | ||
|title=Getting ready | |title=<translate>Getting ready</translate> | ||
|content= | |content= | ||
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>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> | ||
}} | }} | ||
<translate> | |||
== Lesson plan == | == Lesson plan == | ||
* [[OpenACC Tutorial - Introduction|Introduction]] | * [[OpenACC Tutorial - Introduction|Introduction]] | ||
Line 32: | Line 35: | ||
* [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] | * [https://devblogs.nvidia.com/parallelforall/getting-started-openacc/ Getting Started with OpenACC] | ||
</translate> |
Revision as of 18:31, 18 May 2016
Introduction
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.
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
- Introduction
- Gathering a profile and getting compiler information
- Expressing parallelism with OpenACC directives
- Expressing data movement
- Optimizing loops
External references
Here are some useful external references: