OpenACC Tutorial - Adding directives/fr: Revision history

Jump to navigation Jump to search

Diff selection: Mark the radio buttons of the revisions to compare and hit enter or the button at the bottom.
Legend: (cur) = difference with latest revision, (prev) = difference with preceding revision, m = minor edit.

(newest | oldest) View ( | older 50) (20 | 50 | 100 | 250 | 500)

11 May 2017

  • curprev 14:3914:39, 11 May 2017Diane27 talk contribs 21,509 bytes +8 Created page with "* l'intégrité du code parallélisé revient au programmeur * le programmeur voit la parallélisation que le compilateur pourrait manquer * le fonctionnement est identique en..."
  • curprev 14:3914:39, 11 May 2017Diane27 talk contribs 21,501 bytes −11 Created page with "La compilation produit le message suivant :"
  • curprev 14:3914:39, 11 May 2017Diane27 talk contribs 21,512 bytes −54 Created page with "Reprenons l'exemple de produit matrice-vecteur avec la directive <tt>parallel loop</tt>;"
  • curprev 14:3914:39, 11 May 2017Diane27 talk contribs 21,566 bytes −44 Created page with "Pour utiliser cette directive dans notre exemple du produit matrice-vecteur, nous avons besoin des clauses <tt>private</tt> et <tt>reduction</tt> pour gérer le flux des donn..."
  • curprev 14:3814:38, 11 May 2017Diane27 talk contribs 21,610 bytes +31 Created page with "Comme <tt>parallel loop</tt> est une directive ''prescriptive'', le compilateur est forcé d'exécuter la boucle en parallèle. Ceci signifie que la clause <tt>independent</tt..."
  • curprev 14:3814:38, 11 May 2017Diane27 talk contribs 21,579 bytes −95 Created page with "== La directive <tt>parallel loop</tt> == Avec la directive <tt>kernels</tt>, c'est le compilateur qui fait toute l'analyse; ceci est une approche ''descriptive'' pour port..."
  • curprev 14:3814:38, 11 May 2017Diane27 talk contribs 21,674 bytes +45 Created page with "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 o..."
  • curprev 14:3714:37, 11 May 2017Diane27 talk contribs 21,629 bytes +29 Created page with "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>..."
  • curprev 14:3714:37, 11 May 2017Diane27 talk contribs 21,600 bytes +6 Created page with "Cliquez pour agrandir."
  • curprev 14:3714:37, 11 May 2017Diane27 talk contribs 21,594 bytes 0 Created page with "Voici le résultat pour la version OpenACC : {{Command |./challenge |result=Rows: 8120601, nnz: 218535025 Iteration: 0, Tolerance: 4.0067e+08 Iteration: 10, Tolerance: 1..."
  • curprev 14:3714:37, 11 May 2017Diane27 talk contribs 21,594 bytes −50 Created page with "== Performance du code porté == Maintenant que le code est porté sur le GPU, nous pouvons analyser sa performance et vérifier si les résultats sont corrects. L'exécution..."
  • curprev 14:3614:36, 11 May 2017Diane27 talk contribs 21,644 bytes +45 Created page with "Remarquez que les autres pointeurs n'ont pas besoin d'être restreints puisque le compilateur ne les rapporte pas comme causant des problèmes. En recompilant avec les changem..."
  • curprev 14:3614:36, 11 May 2017Diane27 talk contribs 21,599 bytes −2 Created page with "par le code"
  • curprev 14:3614:36, 11 May 2017Diane27 talk contribs 21,601 bytes +14 Created page with "=== Produit matrice-vecteur === Revenons au cas du produit matrice-vecteur présenté plus haut. Notre recommandation pour éviter les faux alias est de définir les pointeur..."
  • curprev 14:3514:35, 11 May 2017Diane27 talk contribs 21,587 bytes +28 Created page with "=== Boucle avec clause <tt>independent</tt> === Une autre façon de s'assurer que le compilateur traite les boucles de manière indépendante est de le spécifier expliciteme..."
  • curprev 14:3414:34, 11 May 2017Diane27 talk contribs 21,559 bytes +27 Created page with "En déclarant un pointeur comme étant ''restraint'', on s'assure qu'uniquement ce pointeur ou une valeur dérivée (comme <tt>ptr +1</tt>) pourra accéder à l'objet auquel..."
  • curprev 14:3414:34, 11 May 2017Diane27 talk contribs 21,532 bytes 0 Created page with "Utilisation du mot-clé <tt>restrict</tt>"
  • curprev 14:3414:34, 11 May 2017Diane27 talk contribs 21,532 bytes +42 Created page with "===Mot-clé <tt>restrict</tt> === Une des manières de dire au compilateur que les pointeurs '''ne sont pas''' des alias est d'utiliser le mot-clé <tt>restrict</tt>, intro..."
  • curprev 14:3314:33, 11 May 2017Diane27 talk contribs 21,490 bytes +70 Created page with "== Réparer les fausses dépendances de boucles == Même lorsque le programmeur sait qu'une boucle peut être parallélisée, il arrive que le compilateur ne le remarque pas...."
  • curprev 14:3314:33, 11 May 2017Diane27 talk contribs 21,420 bytes −9 Created page with "Dans ce tutoriel, nous utilisons la version 16.3 des [http://www.pgroup.com/support/download_pgi2016.php?view=current compilateurs du Portland Group] qui sont gratuits pour d..."
  • curprev 14:3314:33, 11 May 2017Diane27 talk contribs 21,429 bytes −74 Created page with "En date de mai 2016, relativement peu de compilateurs offraient les fonctionnalités d'OpenACC. Les plus avancés en ce sens sont les compilateurs du [http://www.pgroup.com/ P..."
  • curprev 14:3214:32, 11 May 2017Diane27 talk contribs 21,503 bytes +136 No edit summary
  • curprev 14:3114:31, 11 May 2017Diane27 talk contribs 21,367 bytes +4 Created page with "Choix du compilateur"
  • curprev 14:3114:31, 11 May 2017Diane27 talk contribs 21,363 bytes +83 Created page with "==== Développer avec OpenACC ==== Dans ce tutoriel, nous travaillons avec la version 16.3 des [http://www.pgroup.com/support/download_pgi2016.php?view=current compilateurs d..."
  • curprev 14:3014:30, 11 May 2017Diane27 talk contribs 21,280 bytes +50 Created page with "Le premier changement à faire au code est d'ajouter la directive <tt>kernels</tt> pour essayer de le faire exécuter sur le GPU. Pour l'instant, nous n'avons pas à nous pr..."
  • curprev 14:3014:30, 11 May 2017Diane27 talk contribs 21,230 bytes +6 Created page with "=== Exemple : porter un produit matrice-vecteur === Pour notre exemple, nous utilisons du code provenant du [https://github.com/calculquebec/cq-formation-openacc répertoire..."
  • curprev 14:3014:30, 11 May 2017Diane27 talk contribs 21,224 bytes −12 Created page with "Pour leur part, plusieurs directives OpenACC sont de nature ''descriptive''. Ici, le compilateur est libre de compiler le code de la façon qu'il juge la meilleure, selon l'ar..."
  • curprev 14:3014:30, 11 May 2017Diane27 talk contribs 21,236 bytes +31 Created page with "Les utilisateurs d'[https://docs.computecanada.ca/wiki/OpenMP/fr OpenMP] retrouveront dans OpenACC le principe de directives. Il existe cependant d'importantes différences en..."
  • curprev 14:2914:29, 11 May 2017Diane27 talk contribs 21,205 bytes 0 Created page with "Description ou prescription"
  • curprev 14:2914:29, 11 May 2017Diane27 talk contribs 21,205 bytes −10 Created page with "Il est rare que du code soit aussi simple et il faut se baser sur la rétroaction du compilateur pour trouver les portions qu'il a négligé de paralléliser."
  • curprev 14:2914:29, 11 May 2017Diane27 talk contribs 21,215 bytes −10 Created page with "Voici un exemple de cette directive :"
  • curprev 14:2914:29, 11 May 2017Diane27 talk contribs 21,225 bytes +42 Created page with "== La directive <tt>kernels</tt> == Cette directive est dite ''descriptive''. Le programmeur l'utilise pour signifier au compilateur les portions qui selon lui peuvent être..."
  • curprev 14:2814:28, 11 May 2017Diane27 talk contribs 21,183 bytes +2 Created page with "Chaque cœur de calcul traite une valeur de <tt>i</tt>."
  • curprev 14:2814:28, 11 May 2017Diane27 talk contribs 21,181 bytes +4 Created page with "Calcule de 0-N, dans l'ordre"
  • curprev 14:2714:27, 11 May 2017Diane27 talk contribs 21,177 bytes +2 Created page with "BOUCLE"
  • curprev 14:2714:27, 11 May 2017Diane27 talk contribs 21,175 bytes −11 Created page with "=== Boucles et kernels === Quand le compilateur lit la directive OpenACC <tt>kernels</tt>, il analyse le code pour identifier les sections pouvant être parallélisées. Ceci..."
  • curprev 14:2714:27, 11 May 2017Diane27 talk contribs 21,186 bytes +36 Created page with "Remarquez que le bloc OpenACC est délimité en C/C++ par des accolades; en Fortran, le commentaire est placé une fois au début et une dernière fois à la fin, avec l'ajout..."
  • curprev 14:2714:27, 11 May 2017Diane27 talk contribs 21,150 bytes −21 Created page with "Dans les deux cas, le compilateur identifie deux noyaux (''kernels''). En C/C++, les deux noyaux sont à l'intérieur de chaque boucle. En Fortran, les noyaux sont à l'inté..."
  • curprev 14:2614:26, 11 May 2017Diane27 talk contribs 21,171 bytes −21 Created page with "Le code de notre exemple contient deux boucles : la première initialise deux vecteurs et la seconde effectue une opération de [https://fr.wikipedia.org/wiki/Basic_Line..."
  • curprev 14:2614:26, 11 May 2017Diane27 talk contribs 21,192 bytes +82 Created page with "==Directives OpenACC== <!--T:4--> Les directives OpenAcc sont semblables aux directives OpenMP. En C/C++, ce sont des <tt>pragmas</tt> et en Fortran, des commentaires. L'empl..."
  • curprev 14:2614:26, 11 May 2017Diane27 talk contribs 21,110 bytes +18 Created page with "== Transfert vers un processeur graphique (GPU) == Avant de porter du code sur un GPU, il faut savoir qu'ils ne partagent pas la même mémoire que le processeur (CPU); autr..."
  • curprev 14:2014:20, 11 May 2017Diane27 talk contribs 21,092 bytes −4 Created page with "* comprendre le processus de transfert (''offloading'') * comprendre ce qu'est une directive OpenACC * connaitre la différence entre les directives <tt>loop</tt> et <tt>kern..."
  • curprev 14:1014:10, 11 May 2017FuzzyBot talk contribs 21,096 bytes −20 Updating to match new version of source page

10 May 2017

9 May 2017

(newest | oldest) View ( | older 50) (20 | 50 | 100 | 250 | 500)