La compilation doit se faire dans un répertoire différent de celui contenant les sources.
Pour récupérer les sources :
ou
Par défaut, on compile Arcane et Alien si les pré-requis sont disponibles. La variable CMake ARCANEFRAMEWORK_BUILD_COMPONENTS
contient la liste des composants du dépôt à compiler. Cette liste peut contenir les valeurs suivantes:
Arcane
Alien
Par défaut la valeur est Arcane;Alien
et donc on compile les deux composants.
Pour compiler Arcane et Alien , il faut procéder comme suit:
Par défaut, l'installation se fait dans /usr/local
si l'option CMAKE_INSTALL_PREFIX
n'est pas spécifiée.
Options générales :
Option | Valeur | Description |
---|---|---|
CMAKE_INSTALL_PREFIX | /path/to/install | Choix d'un dossier d'installation |
ARCANEFRAMEWORK_BUILD_COMPONENTS | Arcane ou Alien ou Arcane;Alien | Composant(s) à compiler |
ARCCORE_CXX_STANDARD | 17 ou 20 ou 23 | Choix du standard C++ à utiliser |
Option | Valeur | Description |
---|---|---|
ARCANE_ACCELERATOR_MODE |
| Permet de spécifier le type d'accélerateur qu'on souhaite utiliser. A partir de la version 3.14 de Arcane, il est possible d'utiliser |
CMAKE_CUDA_COMPILER | Compilateur CUDA (exemple : nvcc ou clang++ ) | Permet de spécifier le chemin vers le compilateur CUDA historique ( |
CMAKE_HIP_COMPILER | Compilateur ROCM/HIP (exemple : amdclang++ ou clang++ ) | Permet de spécifier le chemin vers le compilateur utilisé pour générer le code pour ROCM/HIP |
CMAKE_CUDA_ARCHITECTURES | Architecture cible (exemple : 80 ) | Permet de spécifier une architecture cible (Capability Compute). Une liste de plusieurs valeurs est possible (par exemple |
CMAKE_HIP_ARCHITECTURES | Architecture cible (exemple : gfx90a ) | Permet de spécifier une architecture cible pour les GPUS AMD. Une liste de valeurs est possible (par exemple |
Depuis la version 3.12 de Arcane, le support des accélérateurs nécessite un compilateur supportant le C++20. Il est donc nécessaire de compiler Arcane en spécifiant la variable CMake -DARCCORE_CXX_STANDARD=20
.
La variable CMake ARCANE_ACCELERATOR_MODE
permet de spécifier le type d'accélerateur qu'on souhaite utiliser. Il y a actuellement deux valeurs supportées:
CUDANVCC
ou CUDA
pour les GPU NVIDIAROCMHIP
ou ROCM
pour les GPU AMDIl est nécessaire d'avoir au moins la version 12 de CUDA.
Si on souhaite compiler le support CUDA, il faut ajouter l'argument -DARCANE_ACCELERATOR_MODE=CUDA
à la configuration et spécifier le chemin vers le compilateur nvcc
ou clang++
via la variable CMake CMAKE_CUDA_COMPILER
ou la variable d'environnement CUDACXX
:
clang
comme compilateur au lieu de nvcc
car ce dernier génère du code moins performant sur la partie CPU. Cela est du à l'usage de std::function
pour encapsuler les lambdas utilisées dans Arcane (voir New Compiler Features in CUDA 8 pour plus d'informations)Il est aussi possible d'utiliser directement le compilateur du HPC SDK de NVidia:
Il est possible de spécifier une architecture cible (Capability Compute) via la variable CMAKE_CUDA_ARCHITECTURES
, par exemple -DCMAKE_CUDA_ARCHITECTURES=80
.
Pour compiler pour les GPU AMD (comme par exemple les GPU MI100 ou MI250) il faut avoir auparavant installer la bibliothèque ROCM. Lors de la configuration de Arcane, il faut spécifier -DARCANE_ACCELERATOR_MODE=ROCMHIP
.
Par exemple, si ROCM est installé dans /opt/rocm
et qu'on souhaite compiler pour les cartes MI250 (architecture gfx90x):
Option | Valeur | Description |
---|---|---|
ARCANEDOC_OFFLINE | ON ou OFF | Permet de savoir si on a accès à internet |
ARCANEDOC_LEGACY_THEME | ON ou OFF | Permet de générer la documentation avec le style de Doxygen original |
La génération de la documentation n'a été testée que sur les plateforme Linux. Elle nécessite l'outil Doxygen.
Si ARCANEDOC_OFFLINE=ON
, l'outil Doxygen a besoin d'une installation de LaTeX pour générer correctement certaines équations.
Suivant les plateformes, il peut être nécessaire d'installer des packages LaTeX supplémentaires (par exemple pour Ubuntu, le package texlive-latex-extra
est nécessaire).
Pour la configuration, deux options facultatives sont disponibles :
ARCANEDOC_LEGACY_THEME
ARCANEDOC_OFFLINE
Avec chaqu'une deux valeurs possibles : ON
et OFF
.
Si les variables ne sont pas présentes, OFF
est la valeur par défaut.
Exemple :
L'option ARCANEDOC_LEGACY_THEME
permet de générer la documentation avec le thème d'origine de Doxygen.
L'option ARCANEDOC_OFFLINE
permet de dire à CMake que la documentation sera utilisée en local, sans accès à internet. Cela permet de désactiver les élements ayant besoin d'un accès à internet, comme MathJax.
Une fois la configuration terminée, il suffit de lancer:
Pour la documentation utilisateur:
Pour la documentation développeur
La documentation utilisateur ne contient les infos que des classes utiles pour le développeur.
Option | Valeur | Description |
---|---|---|
ARCANE_NO_DEFAULT_PACKAGE | TRUE ou FALSE | Permet de supprimer la détection automatique des packages |
ARCANE_REQUIRED_PACKAGE_LIST | Nom de packages (exemple : LibUnwind;HDF5 ) | Permet de préciser explicitement les packages qu'on souhaite avoir |
Par défaut, tous les packages optionnels sont détectés automatiquement. Il est possible de supprimer ce comportement et de supprimer la détection automatique des packages en ajoutant -DARCANE_NO_DEFAULT_PACKAGE=TRUE
à la ligne de commande. Dans ce cas, il faut préciser explicitement les packages qu'on souhaite avoir en les spécifiant à la variable ARCANE_REQUIRED_PACKAGE_LIST
sous forme de liste. Par exemple, si on souhaite avoir uniquement HDF5
et LibUnwind
de disponible, il faut utilise CMake comme suit: