Skip to content

Commit e4735e5

Browse files
Merge pull request #1776 from arcaneframework/dev/gg-add-doc-for-memory-pool
Add documentation for accelerator memory pool
2 parents 7d739cf + d944859 commit e4735e5

File tree

4 files changed

+86
-1
lines changed

4 files changed

+86
-1
lines changed

arcane/doc/doc_user/chap_acceleratorapi/0_acceleratorapi.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ Sommaire de ce chapitre :
1414
2. \subpage arcanedoc_acceleratorapi_reduction <br>
1515
Présente les mécanismes disponibles pour effectuer des réductions.
1616

17+
3. \subpage arcanedoc_acceleratorapi_memorypool <br>
18+
Présente le mécanisme de pool de mémoire.
1719
____
1820

1921
<div class="section_buttons">

arcane/doc/doc_user/chap_acceleratorapi/5_reduce.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ ____
7272

7373
<div class="section_buttons">
7474
<span class="back_section_button">
75-
\ref arcanedoc_acceleratorapi
75+
\ref arcanedoc_parallel_accelerator
76+
</span>
77+
<span class="next_section_button">
78+
\ref arcanedoc_acceleratorapi_memorypool
7679
</span>
7780
</div>
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Pool de mémoire {#arcanedoc_acceleratorapi_memorypool}
2+
3+
[TOC]
4+
5+
%Arcane dispose depuis la version 3.14.10 (novembre 2024) d'un
6+
mécanisme de pool mémoire permettant de conserver une partie de la
7+
mémoire allouée pour les accélérateurs et ainsi éviter des appels
8+
couteux aux fonctions d'allocations ou de désallocation.
9+
10+
\note Ce mécanisme est pour l'instant expérimental et ne fonctionne
11+
que pour CUDA.
12+
13+
\warning L'utilisation du pool mémoire peut changer le comportement du
14+
code en supprimant des synchronisations implicites effectuées sur les
15+
streams associées aux allocations et au désallocation. Notamment, les
16+
appels tels que `cudaMalloc()` ou `cudaFree()`. La page
17+
[CUDA implicit synchronization behavior and conditions in detail]
18+
(https://forums.developer.nvidia.com/t/cuda-implicit-synchronization-behavior-and-conditions-in-detail/251729)
19+
explique ce comportement pour CUDA.
20+
21+
Le gestionnaire de pool mémoire est désactivé par défaut. Il est
22+
possible de l'activer et de modifier son comportement en positionnant
23+
des variables d'environnements.
24+
25+
<table>
26+
<tr><th>Variable d'environnement</th><th>Description</th></tr>
27+
28+
<tr>
29+
<td>ARCANE_ACCELERATOR_MEMORY_POOL</td>
30+
<td>
31+
Indique le type de mémoire pour lesquelles on souhaite activer le
32+
pool. Les valeeurs sont spécifiées par une combinaison de bit:
33+
- 1 pour la mémoire managée (\arcane{eMemoryRessource::UnifiedMemory})
34+
- 2 pour la mémoire sur l'accélérateur (\arcane{eMemoryRessource::Device})
35+
- 4 pour la mémoire punaisée sur l'hôte
36+
(\arcane{eMemoryRessource::HostPinned})
37+
38+
Si la valeur de la variable d'environnement vaut `7` par exemple,
39+
alors le pool mémoire est actif pour ces 3 types de ressource mémoire.
40+
</td>
41+
</tr>
42+
43+
<tr>
44+
<td>ARCANE_ACCELERATOR_MEMORY_POOL_MAX_BLOCK_SIZE</td>
45+
<td>
46+
Indique la taille maximale (en octet) des blocs qui sont conservés
47+
dans le pool mémoire. Une valeur élevée permet de faire moins
48+
d'allocations et de désallocation mais en contre-partie conserve plus
49+
de mémorie ce qui réduit la quantité disponible pour les allocations
50+
qui ne passent pas par le pool de mémoire. La valeur par défaut est de
51+
1Mo (1024*1024).
52+
</td>
53+
</tr>
54+
55+
<tr>
56+
<td>ARCANE_ACCELERATOR_MEMORY_PRINT_LEVEL</td>
57+
<td>
58+
Indique si on affiche des informations sur l'utilisation de la
59+
mémoire. Ces informations sont utiles pour le débug uniquement. Les
60+
valeurs possibles sont:
61+
- 0 n'affiche aucune information
62+
- 1 affiche des statistiques d'utilisation en fin de calcul
63+
- 2 idem 1 et affiche des informations lors des réallocations
64+
- 3 idem 2 et affiche la pile d'appel pour une réallocation pour les
65+
tableaux sans nom.
66+
- 4 idem 3 mais affiche la pile d'appel lors de la réallocation pour
67+
tous les tableaux.
68+
</td>
69+
</tr>
70+
71+
</table>
72+
73+
____
74+
75+
<div class="section_buttons">
76+
<span class="back_section_button">
77+
\ref arcanedoc_acceleratorapi_reduction
78+
</span>
79+
</div>

arcane/doc/userdoc.doxyfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2431,6 +2431,7 @@ PREDEFINED = DOXYGEN_DOC=1 \
24312431
ARCANE_UTILS_EXPORT= \
24322432
ARCANE_IMPL_EXPORT= \
24332433
ARCANE_GEOMETRY_EXPORT= \
2434+
ARCCORE_MESSAGEPASSING_EXPORT= \
24342435
"ARCCORE_HOST_DEVICE=__host__ __device__" \
24352436
ARCCORE_DEPRECATED_2019(a)=[[deprecated(a)]] \
24362437
ARCCORE_DEPRECATED_2020(a)=[[deprecated(a)]] \

0 commit comments

Comments
 (0)