From 24314887a87fd9ac2dbf3d7384f9bba569229d5d Mon Sep 17 00:00:00 2001
From: "Marco Emilio \"sphakka\" Poleggi" <marcoep@ieee.org>
Date: Tue, 4 Mar 2025 15:49:51 +0100
Subject: [PATCH] Ajoute du README.md avec info profiling

Signed-off-by: Marco Emilio "sphakka" Poleggi <marcoep@ieee.org>
---
 README.md | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 85 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index e90baa0..7ef2d6d 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,88 @@
-(à completer)
+:construction: (à compléter)
 
 ## Profiling
 
-(à completer)
+Afin d'évaluer les performances d'un logiciel, le "profiling" est la méthode
+plus avancée, car elle fournit un profil d'utilisation des ressources
+logicielles et matérielles (SW/HW).
+
+Dans le cadre des logiciels écrit en CUDA, deux outils sont disponibles:
+  * [Nsight System](https://docs.nvidia.com/nsight-systems/UserGuide/index.html):
+    profiler classique pour l'analyse globale (système) de l'application,
+  * [Nsight Compute](https://docs.nvidia.com/nsight-compute/NsightComputeCli/index.html):
+    profiler avancé axé sur l'optimisation de l'application.
+
+Ces deux logiciel sont donc complémentaires et peuvent être lancés soit en
+ligne de commande (CLI), soit en mode graphique (GUI). On les utilise
+normalement en mode interactif, en se connectant en SSH sur un nœud de calcul
+avec une GPU rattachée, p. ex.:
+
+``` shell
+lcl$ ssh votre-système-hpc
+hpc$ salloc --partition=shared-gpu --gpus=1 --mem=8G -t 0:15:00
+gpu$ nsys ...     # lancement de la CLI:
+gpu$ nsys-cu ...  #
+```
+
+:bulb: On peut lancer le profiling directement dans la GUI, mais il peut y
+avoir de problèmes de stabilité (crash)!
+
+
+### Nsight System
+
+Aide en ligne:
+``` shell
+gpu$ ncu --help
+gpu$ ncu profile --help
+```
+
+Profiling de l'application:
+``` shell
+gpu$ ncu profile YOUR_CUDA_APP [OPTIONS]
+```
+
+Exemple:
+``` shell
+gpu$ ncu profile vec_add_grid
+...
+Generating '/tmp/ncu-report-43ac.qdstrm'
+[1/1] [========================100%] report1.ncu-rep
+Generated:
+    /home/users/.../report1.ncu-rep
+```
+
+On obtient ainsi le rapport `report1.ncu-rep` que l'on peut ensuite analyser
+dans la GUI:
+``` shell
+gpu$ ncu-ui report1.ncu-rep
+```
+
+### Nsight Compute
+
+Aide en ligne:
+``` shell
+gpu$ ncu --help
+```
+
+Profiling de l'application, avec l'option `-o` pour garder le rapport dans un fichier:
+``` shell
+gpu$ ncu -o report1.ncu-rep YOUR_CUDA_APP [OPTIONS]
+```
+
+Exemple:
+``` shell
+gpu$ ncu -o report1.ncu-rep vec_add_grid
+...
+==PROF== Disconnected from process 2485633
+==PROF== Report: .../report1.ncu-rep
+```
+
+On obtient ainsi le rapport `report1.ncu-rep` que l'on peut ensuite analyser
+dans la GUI:
+``` shell
+gpu$ ncu-ui report1.ncu-rep
+```
+
+<!-- Local Variables: -->
+<!-- jinx-languages: "fr_FR" -->
+<!-- End: -->
-- 
GitLab