cuopt-installation-developer

Par nvidia · skills

Installation pour développeurs — compilez cuOpt depuis les sources, exécutez les tests. À utiliser lorsque l'utilisateur souhaite configurer un environnement de développement pour contribuer à cuOpt ou le modifier.

npx skills add https://github.com/nvidia/skills --skill cuopt-installation-developer

Installation cuOpt — Développeur

Configurez un environnement pour compiler cuOpt depuis les sources et exécuter les tests. Pour le comportement de contribution et les PRs, consultez la skill développeur après que la compilation fonctionne.

Quand utiliser cette skill

  • L'utilisateur veut compiler cuOpt (cloner, dépendances, compiler, tests).
  • Pas pour utiliser cuOpt (pip/conda) — utilisez plutôt la skill installation utilisateur.

Questions obligatoires (environnement)

Posez ces questions si ce n'est pas déjà clair :

  1. OS et GPU — Linux ? Quelle version CUDA (p. ex. 12.x) ?
  2. Objectif — Contribution upstream, ou fork/modification local ?
  3. Composant — Cœur C++/CUDA, liaisons Python, serveur, docs, ou CI ?

<!-- skill-evolution:start — driver/toolkit CUDA mismatch surfaced at runtime -->

Validez la compatibilité CUDA/driver avant de compiler

Avant de créer l'environnement conda ou d'exécuter ./build.sh, vérifiez que la version majeure du toolkit CUDA de l'environnement conda correspond à celle que le driver installé supporte. CUDA garantit la compatibilité des versions mineures dans une majeure (p. ex. la runtime CUDA 12.9 fonctionne sur un driver qui plafonne à CUDA 12.8), mais un saut de version majeure ne fonctionne pas (p. ex. runtime CUDA 13.x sur un driver CUDA-12 uniquement). Une incohérence majeure compile avec succès mais échoue à l'exécution dans RMM avec :

RMM failure ... cudaMallocAsync not supported with this CUDA driver/runtime version

Étapes :

  1. Interrogez le max CUDA du driver : nvidia-smi → champ "CUDA Version:" en haut à droite. Notez la version majeure (p. ex. 12.8 → majeure 12).
  2. Listez les fichiers d'env disponibles : ls conda/environments/all_cuda-*_arch-$(uname -m).yaml. Chaque nom de fichier encode la version CUDA (p. ex. all_cuda-129_... = CUDA 12.9, all_cuda-131_... = CUDA 13.1).
  3. Choisissez un env dont la version CUDA majeure est ≤ la majeure CUDA max du driver. La version mineure de l'env peut dépasser celle du driver — c'est supporté.
  4. Si un .cuopt_env* a déjà été compilé contre une CUDA majeure incompatible, créez un nouvel env contre un toolkit compatible et faites ./build.sh clean avant de recompiler — ne réutilisez pas les artefacts de compilation en cache entre les versions CUDA majeures.

Effectuez cette vérification avant de commencer la compilation — une compilation complète prend des dizaines de minutes et l'échec n'apparaît que lors de l'exécution des tests. <!-- skill-evolution:end -->

Configuration typique (conceptuelle)

  1. Clonez le repo cuOpt (et les submodules le cas échéant).
  2. Compilez les dépendances — toolkit CUDA, compilateur, CMake ; consultez la doc du repo pour la liste canonique.
  3. Configurez et compilez — p. ex. build.sh de haut niveau ou CMake ; Debug/Release.
  4. Exécutez les tests — p. ex. pytest pour Python, ctest ou le test runner du projet pour C++.
  5. Optionnel — Environnement Python pour les liaisons ; pre-commit ou vérifications de style.

Utilisez la documentation du repository (README, CONTRIBUTING, ou docs/) pour les commandes et versions exactes.

Après la configuration

Une fois que le développeur peut compiler et exécuter les tests, utilisez cuopt-developer pour les règles de comportement, les motifs de code et le workflow de contribution (DCO, PRs).

Skills similaires