OpenACC Tutorial - Adding directives/fr: Difference between revisions

Jump to navigation Jump to search
Updating to match new version of source page
No edit summary
(Updating to match new version of source page)
Line 263: Line 263:
}}
}}
[[File:Openacc profiling1.png|thumbnail|Cliquez pour agrandir.]]
[[File:Openacc profiling1.png|thumbnail|Cliquez pour agrandir.]]
<div class="mw-translate-fuzzy">
Les résultats sont corrects,  toutefois, loin de gagner en vitesse, l'opération a pris près de quatre fois plus de temps! Utilisons le NVidia Visual Profiler (<tt>nvvp</tt>) pour voir ce qui se passe.     
Les résultats sont corrects,  toutefois, loin de gagner en vitesse, l'opération a pris près de quatre fois plus de temps! Utilisons le NVidia Visual Profiler (<tt>nvvp</tt>) pour voir ce qui se passe.     
# Démarrez  <tt>nvvp</tt> avec la commande <tt>nvvp &</tt>, où le symbole <tt>&</tt> permet de démarrer en arrière-plan.
# Démarrez  <tt>nvvp</tt> avec la commande <tt>nvvp &</tt>, où le symbole <tt>&</tt> permet de démarrer en arrière-plan.
# Sélectionnez ''File -> New Session''.
# Sélectionnez ''File -> New Session''.
# Dans le champ "File", cherchez l'exécutable; dans notre exemple, nous utilisons  <tt>challenge</tt>.
# Dans le champ "File", cherchez l'exécutable; dans notre exemple, nous utilisons  <tt>challenge</tt>.
# Cliquez sur "Next" jusqu'à ce que vous puissiez cliquer sur "Finish".  
# Cliquez sur "Next" jusqu'à ce que vous puissiez cliquer sur "Finish".
</div>
 
=== NVIDIA Visual Profiler ===
[[File:Nvvp-pic0.png|thumbnail|300px|NVVP profiler|right]]
[[File:Nvvp-pic1.png|thumbnail|300px|Browse for the executable you want to profile|right]]
 
One graphical profiler available for OpenACC applications is the
[https://developer.nvidia.com/nvidia-visual-profiler NVIDIA Visual Profiler (NVVP)].
It's a cross-platform analyzing tool '''for codes written with OpenACC and CUDA C/C++ instructions'''.
Consequently, if the executable is not using the GPU, you will get no result from this profiler.
 
When [[Visualization/en#Remote_windows_with_X11-forwarding|X11 is forwarded to an X-Server]], or when using a [[VNC|Linux desktop environment]] (also via [[JupyterHub#Desktop|JupyterHub]] with two (2) CPU cores, 5000M of memory and one (1) GPU),
it is possible to launch the NVVP from a terminal:
{{Command
|module load cuda/11.7 java/1.8
}}
{{Command
|nvvp
}}
 
# After the NVVP startup window, you get prompted for a ''Workspace'' directory, which will be used for temporary files. Replace <code>home</code> with <code>scratch</code> in the suggested path. Then click ''OK''.
# Select ''File > New Session'', or click on the corresponding button in the toolbar.
# Click on the ''Browse'' button at the right of the ''File'' path editor.
## Change directory if needed.
## Select an executable built from codes written with OpenACC and CUDA C/C++ instructions.
# Below the ''Arguments'' editor, select the profiling option ''Profile current process only''.
# Click ''Next >'' to review additional profiling options.
# Click ''Finish'' to start profiling the executable.
 
This can be done with the following steps:
# Start <tt>nvvp</tt> with the command <tt>nvvp &</tt>  (the <tt>&</tt> sign is to start it in the background)
# Go in File -> New Session
# In the "File:" field, search for the executable (named <tt>challenge</tt> in our example).
# Click "Next" until you can click "Finish".  


Le programme est exécuté et on obtient un tableau chronologique du déroulement (voir l'image). On remarque que le transfert de données entre le départ et l'arrivée occupe la plus grande partie du temps d'exécution, ce qui est fréquent quand du code est porté d'un CPU vers un GPU. Nous verrons comment ceci peut être amélioré dans la prochaine partie, [https://docs.computecanada.ca/wiki/OpenACC_Tutorial_-_Data_movement/fr Mouvement des données].
Le programme est exécuté et on obtient un tableau chronologique du déroulement (voir l'image). On remarque que le transfert de données entre le départ et l'arrivée occupe la plus grande partie du temps d'exécution, ce qui est fréquent quand du code est porté d'un CPU vers un GPU. Nous verrons comment ceci peut être amélioré dans la prochaine partie, [https://docs.computecanada.ca/wiki/OpenACC_Tutorial_-_Data_movement/fr Mouvement des données].
38,760

edits

Navigation menu