Changes between Version 10 and Version 11 of PortageGpu


Ignore:
Timestamp:
Oct 13, 2022, 2:07:55 PM (19 months ago)
Author:
Laurent Fairhead
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PortageGpu

    v10 v11  
    6363En revanche, si la méthode par défaut nous permet de vérifier que les résultats sont les mêmes entre une exécution CPU et une exécution GPU, elle ne nous permet pas de vérifier le gain en temps du passage au GPU vu qu'on lit tous les champs d'entrée à partir d'un fichier à chaque pas de temps et qu'il faut donc les transférer du CPU au GPU à chaque pas de temps en perdant ainsi le bénéfice de l'accélération GPU. Une adaptation du programme principal où on ne lirait les champs d'entrée qu'au premier pas de temps en bouclant sur les mêmes champs sur tous les pas de temps devrait permettre de mesurer la performance.
    6464
     65==== Proposition de méthodologie ====
    6566
     67Une fois la mécanique "replay" mise en place, on passe par les étapes suivantes:
     68
     69   1. on outille les boucles de la paramétrisation avec des ```!$acc kernels``` sans se soucier de l'aspect 'gestion de données', dans un premier temps on laisse le compilateur s'en occuper. On teste les modifications sur un pas de temps (avec le replay3d modifié) en comparant les sorties de phys.nc entre un run cpu et un run gpu jusqu'à ce qu'on soit content du résultat (a priori les deux phys.nc doivent être les mêmes)
     70   2. une fois l'étape 1 réussie, on commence à outiller la paramétrisation en directives de gestion des données, et on continue à les tester en mode comparaison de 1 pas de temps cpu/gpu jusqu'à être content du résultat
     71   3. à ce stade, on peut lancer des runs sur plusieurs pas sans input ni output, pour mesurer les performances.
     72
     73Les routines replay3d et call_param_replay ont été modifiées pour pouvoir, interactivement :
     74   1. rentrer le nombre de fois à passer dans la boucle principale
     75   2. décider si on lit le fichier input à chaque passage dans la boucle ou si on se contente de repasser en boucle les paramètres correspondant au 1er pas de temps
     76   3. décider si on sort le fichier phys.nc ou non
     77
     78 
     79
     80