cupynumeric-install
NVIDIA/skills
Installez et vérifiez le bon fonctionnement de cuPyNumeric pour Python à l'aide de conda ou de pip, notamment en effectuant des contrôles relatifs à l'utilisation du GPU.
...Développer toutInstallation de cuPyNumeric (utilisateur)
Objectif
Utilisez cette compétence pour installer cuPyNumeric afin de l'utiliser depuis Python et pour vérifier que l'installation fonctionne correctement (y compris l'utilisation du GPU). Appliquez-la chaque fois qu'un utilisateur souhaite exécuter cuPyNumeric via conda ou pip. Ne l'utilisez pas pour compiler à partir du code source (pour modifier ou contribuer) — cela n'entre pas dans le cadre de cette compétence.
Règles obligatoires
- N’exécutez jamais les installations. N’exécutez pas
pip install,conda installni aucun programme d’installation. Affichez la commande ; laissez l’utilisateur l’exécuter. - Isolez toujours l’environnement. Pas d’installation dans le répertoire conda de base, dans Python système ou dans des environnements globaux partagés.
- Détectez avant de recommander. Les vérifications en lecture seule de
la version (« --version») sont acceptables.
Prérequis
Vérifiez que la configuration système suivante est respectée avant de recommander toute installation :
- GPU: capacité de calcul ≥ 7,0 (Volta+). Prise en charge également en mode CPU seul.
- CUDA: 12.2+.
- Système d'exploitation: Linux (x86_64 / aarch64), macOS aarch64 (wheels pip uniquement), Windows via WSL.
- Python: versions 3.11 à 3.14 sous Linux ; versions 3.11 à 3.13 sous macOS aarch64.
- conda: ≥ 24.1 (chemin conda uniquement).
- Gestionnaire de paquets: conda (recommandé par l'éditeur) ou pip. Si aucun des deux n'est présent, installez-en un au préalable (voir les instructions).
Instructions
Suivez ces étapes dans l'ordre : vérifiez les prérequis, répondez aux questions de cadrage, effectuez l'installation via le chemin choisi, puis vérifiez le résultat.
À vérifier avant l'installation
- Gestionnaire de paquets ? Vérifiez
conda --versionetpip --version. Privilégiez conda (recommandé par l'éditeur) ; utilisez pip à défaut. - Cible d'environnement ? Machine GPU, ordinateur portable CPU uniquement, cloud, conteneur ou serveur distant.
- Version de CUDA ? Ne posez cette question que si vous imposez la variante GPU sur un hôte ne disposant pas de GPU visible. Vérifiez avec
`nvidia-smi` ou`nvcc --version`.
Bootstrap — installez d’abord un gestionnaire de paquets
Si ni conda ni pip ne sont disponibles, installez-en un. Indiquez la commande et le lien vers la documentation ; ne l'exécutez pas — curl | bash nécessite la confiance de l'utilisateur.
Recommandé : Miniforge (conda complet, conda-forge par défaut)
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash "Miniforge3-$(uname)-$(uname -m).sh"
Documentation : https://github.com/conda-forge/miniforge
Alternative : Python + pip
Installez Python à partir du gestionnaire de paquets de votre système d'exploitation (apt/dnf/brew) ou via https://www.python.org/downloads/. Si pip n'est pas présent sur une installation Python existante : python -m ensurepip --upgrade.
Après l'installation, ouvrez un nouveau terminal pour que le binaire soit ajouté au PATH.
Installation — chemin conda
conda create -n cupynumeric -c conda-forge -c legate cupynumeric
conda activate cupynumeric
Dans un environnement existant : ` conda install -c conda-forge -c legate cupynumeric`.
conda sélectionne automatiquement la variante GPU ou CPU en fonction de la disponibilité de nvidia-smi au moment de l'installation. Pour passer outre, voir ci-dessous.
Forcer la variante GPU
Définissez CONDA_OVERRIDE_CUDA uniquement lorsqu’aucun GPU n’est détecté au moment de l’installation (par exemple, lors de la création d’un conteneur pour un hôte GPU). Utilisez la version CUDA de l’hôte d’exécution :
CONDA_OVERRIDE_CUDA="12.2" conda install -c conda-forge -c legate cupynumeric
Version « nightly » (moins validée)
conda install -c conda-forge -c legate-nightly cupynumeric
Installation — chemin pip
python -m venv .venv
source .venv/bin/activate
pip install nvidia-cupynumeric
Vérification
Test de fonctionnement (à effectuer systématiquement)
Exécutez un script autonome via le lanceur Legate — aucun checkout du dépôt n'est nécessaire.
TMP=$(mktemp -d)
cat > "$TMP/smoke.py" <<'EOF'
import cupynumeric as np
a = np.arange(10)
b = np.ones((4, 4))
print("somme :", a.sum()) # résultat attendu : 45
print("matmul :", (b @ b).sum()) # résultat attendu : 64,0
EOF
legate "$TMP/smoke.py"
rm -rf "$TMP"
Résultats attendus : somme : 45 et matmul : 64,0. Si la commande « legate » est absente, l'environnement n'est pas activé — voir la section Dépannage.
Vérification de l'utilisation du GPU (obligatoire lorsqu'un GPU pris en charge est présent)
La réussite d’un test de validation ne prouve pas l’utilisation du GPU — une installation de la variante CPU sur une machine équipée d’un GPU produit également des résultats corrects. Exécutez les deux étapes.
1. Forcez le lancement du GPU. La commande ` legate --gpus N ` demande N GPU ; elle échoue rapidement si aucun GPU n’est détecté ou si la variante CPU est installée.
TMP=$(mktemp -d)
cat > "$TMP/check.py" <<'EOF'
import cupynumeric as np
print(np.ones((4096, 4096)).sum())
EOF
legate --gpus 1 "$TMP/check.py"
rm -rf "$TMP"
Le résultat attendu est 16777216,0. Si vous voyez le pilote CUDA, libcudart ou si aucun GPU n’est disponible, c’est que la variante CPU est installée ; réinstallez avec CONDA_OVERRIDE_CUDA.
2. Vérifiez que le GPU a bien été utilisé. Exécutez une boucle matmul avec une limite de temps en parallèle avec nvidia-smi, le tout depuis un seul shell — pas de conflit avec un deuxième terminal :
TMPDIR_GPU=$(mktemp -d)
SCRIPT="$TMPDIR_GPU/cupynumeric_gpu_check.py"
cat > "$SCRIPT" <<'EOF'
import cupynumeric as np, time
a = np.ones((10000, 10000))
deadline = time.time() + 20
iters = 0
while time.time() < deadline:
b = a @ a
_ = float(b.sum()) # forcer la synchronisation pour que la multiplication matricielle s'exécute réellement
iters += 1
print("iters:", iters)
EOF
legate --gpus 1 "$SCRIPT" &
WORKLOAD=$!
sleep 5 # délai pour le démarrage de Legate
for _ in $(seq 10); do # 10 échantillons à 1 s — couvre un démarrage lent
nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader
sleep 1
done
wait "$WORKLOAD"
rm -rf "$TMPDIR_GPU"
On s'attend à ce que la valeur memory.used soit de l'ordre du GiB pour la plupart des échantillons et à ce que la valeur utilization.gpu soit significative pour plusieurs d'entre eux. Si ces deux valeurs restent au niveau de référence pour tous les échantillons, cela signifie que la variante GPU n'est pas installée — vérifiez la liste conda cupynumeric pour voir s'il y a des éléments *_gpu (et non *_cpu).
Recettes plus avancées
Consultez le fichier verification_examples.md pour les vérifications multi-GPU, le repli sur CPU, les conteneurs et le dépannage.
Limitations
- Ne mélangez pas conda et pip dans un même environnement. Ce mélange remplace la première installation et provoque une erreur lors de l’importation. Pour changer, exécutez d’abord
`pip uninstall nvidia-cupynumeric` ou`conda remove cupynumeric`. - Utilisez le lanceur
« legate »pour les exécutions multi-GPU / multi-rank.Pythonstandard s’exécute en un seul processus :`legate --gpus 2 script.py`. - Forcez la variante GPU sur un hôte exclusivement CPU à l’aide de
CONDA_OVERRIDE_CUDA. Sans cela, conda sélectionne automatiquement la variante CPU ou GPU à partir denvidia-smiau moment de l’installation. - Volta ou version plus récente requise. Pascal (GTX 10xx / P100) n’est pas pris en charge.
- Vérifiez que
conda --versionest ≥ 24.1. Les versions antérieures empêchent la sélection de variante sans avertissement. - Les configurations multi-nœuds / MPI / UCX sont hors du champ d’application. Reportez-vous à https://docs.nvidia.com/legate/latest/networking-wheels.html et https://docs.nvidia.com/legate/latest/mpi-wrapper.html.
Dépannage
ModuleNotFoundError : Aucun module nommé « cupynumeric »→ Exécutez« which python» et «pip list | grep cupynumeric» (ou «conda list | grep cupynumeric») depuis le même shell pour identifier l’incompatibilité d’environnement.ImportErrormentionnant CUDA /libcudart→ Réinstallez avecCONDA_OVERRIDE_CUDA="; la variante CPU se trouve sur une machine équipée d’un GPU, ou les versions de CUDA ne correspondent pas." legate : commande introuvable→ Activez l’environnement, puis exécutez`which legate` pour vérifier.- Plus lent que NumPy sur un ordinateur portable → C’est normal pour les petits problèmes (surcoût de Legate par tâche). Consultez la FAQ de cuPyNumeric.
Voir également
- references/verification_examples.md — exemples de vérification et de dépannage.
- Documentation en amont : https://docs.nvidia.com/cupynumeric/latest/installation.html
- Exigences de Legate : https://docs.nvidia.com/legate/latest/installation.html
---
name: cupynumeric-install
description: Install and verify cuPyNumeric for Python using conda or pip, including GPU usage checks.
license: CC-BY-4.0 OR Apache-2.0
---
# cuPyNumeric Install (user)
## Purpose
Use this skill to install cuPyNumeric for *use* from Python and to verify the install actually works (including GPU usage). Apply it whenever a user wants cuPyNumeric running via conda or pip. Do not use it to build from source (to modify or contribute) — that is out of scope.
## Mandatory rules
- **Never run installs.** Do not run `pip install`, `conda install`, or any installer. Print the command; let the user run it.
- **Always isolate.** No installs into base conda, system Python, or shared global envs.
- **Detect before recommending.** Read-only `--version` checks are fine.
## Prerequisites
Confirm these system requirements before recommending any install:
- **GPU**: Compute Capability ≥ 7.0 (Volta+). CPU-only also supported.
- **CUDA**: 12.2+.
- **OS**: Linux (x86_64 / aarch64), macOS aarch64 (pip wheels only), Windows via WSL.
- **Python**: 3.11 through 3.14 on Linux; 3.11 through 3.13 on macOS aarch64.
- **conda**: ≥ 24.1 (conda path only).
- **Package manager**: conda (upstream-recommended) or pip. If neither is present, bootstrap one first (see Instructions).
## Instructions
Follow these steps in order: confirm the prerequisites, ask the scoping questions, install via the chosen path, then verify.
### Ask before installing
1. **Package manager?** Check `conda --version` and `pip --version`. Prefer conda (upstream-recommended); fall back to pip.
1. **Env target?** GPU machine, CPU-only laptop, cloud, container, or remote/server.
1. **CUDA version?** Ask only when forcing the GPU variant on a host without a visible GPU. Check with `nvidia-smi` / `nvcc --version`.
### Bootstrap — install a package manager first
If neither `conda` nor `pip` is available, install one. **Provide the command and the docs link; do not run it** — `curl | bash` requires user trust.
#### Recommended: Miniforge (full conda, conda-forge default)
```bash
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash "Miniforge3-$(uname)-$(uname -m).sh"
```
Docs: https://github.com/conda-forge/miniforge
#### Alternative: Python + pip
Install Python from your OS package manager (apt/dnf/brew) or https://www.python.org/downloads/. If pip is missing on an existing Python: `python -m ensurepip --upgrade`.
After installing, **open a new shell** so the binary is on PATH.
### Install — conda path
```bash
conda create -n cupynumeric -c conda-forge -c legate cupynumeric
conda activate cupynumeric
```
Into an existing env: `conda install -c conda-forge -c legate cupynumeric`.
conda auto-selects the GPU vs CPU variant from whether `nvidia-smi` works at install time. To override that, see below.
#### Force the GPU variant
Set `CONDA_OVERRIDE_CUDA` only when no GPU is visible at install time (e.g. building a container for a GPU host). Use the runtime host's CUDA version:
```bash
CONDA_OVERRIDE_CUDA="12.2" conda install -c conda-forge -c legate cupynumeric
```
#### Nightly (less validated)
```bash
conda install -c conda-forge -c legate-nightly cupynumeric
```
### Install — pip path
```bash
python -m venv .venv
source .venv/bin/activate
pip install nvidia-cupynumeric
```
### Verify
#### Smoke test (always run)
Run a self-contained script through the `legate` launcher — no repo checkout needed.
```bash
TMP=$(mktemp -d)
cat > "$TMP/smoke.py" <<'EOF'
import cupynumeric as np
a = np.arange(10)
b = np.ones((4, 4))
print("sum:", a.sum()) # expect 45
print("matmul:", (b @ b).sum()) # expect 64.0
EOF
legate "$TMP/smoke.py"
rm -rf "$TMP"
```
Expect `sum: 45` and `matmul: 64.0`. If `legate` is missing, the env is not activated — see Troubleshooting.
#### GPU usage check (mandatory when a supported GPU is present)
A passing smoke test does **not** prove GPU usage — a CPU-variant install on a GPU box produces correct results too. Run both steps.
**1. Force a GPU launch.** `legate --gpus N` requests N GPUs; fails fast if no GPU is visible or the CPU variant is installed.
```bash
TMP=$(mktemp -d)
cat > "$TMP/check.py" <<'EOF'
import cupynumeric as np
print(np.ones((4096, 4096)).sum())
EOF
legate --gpus 1 "$TMP/check.py"
rm -rf "$TMP"
```
Expect `16777216.0`. If you see `CUDA driver`, `libcudart`, or `no GPUs available`, the CPU variant is installed; reinstall with `CONDA_OVERRIDE_CUDA`.
**2. Confirm the GPU was touched.** Run a deadline-bounded matmul loop alongside `nvidia-smi`, all from one shell — no second-terminal race:
```bash
TMPDIR_GPU=$(mktemp -d)
SCRIPT="$TMPDIR_GPU/cupynumeric_gpu_check.py"
cat > "$SCRIPT" <<'EOF'
import cupynumeric as np, time
a = np.ones((10000, 10000))
deadline = time.time() + 20
iters = 0
while time.time() < deadline:
b = a @ a
_ = float(b.sum()) # force sync so the matmul actually runs
iters += 1
print("iters:", iters)
EOF
legate --gpus 1 "$SCRIPT" &
WORKLOAD=$!
sleep 5 # buffer for Legate startup
for _ in $(seq 10); do # 10 samples at 1s — covers slow startup
nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader
sleep 1
done
wait "$WORKLOAD"
rm -rf "$TMPDIR_GPU"
```
Expect `memory.used` in the GiB range across most samples and non-trivial `utilization.gpu` in several. If both stay at baseline across every sample, the GPU variant is not installed — check `conda list cupynumeric` for `*_gpu` (not `*_cpu`).
#### Deeper recipes
See [verification_examples.md](references/verification_examples.md) for multi-GPU checks, CPU fallback, container, and troubleshooting.
## Limitations
- **Don't mix conda and pip in one env.** Mixing overrides the first install and breaks at import. To switch, run `pip uninstall nvidia-cupynumeric` or `conda remove cupynumeric` first.
- **Use the `legate` launcher for multi-GPU / multi-rank runs.** Plain `python` runs single-process: `legate --gpus 2 script.py`.
- **Force the GPU variant on a CPU-only host with `CONDA_OVERRIDE_CUDA`.** conda otherwise auto-selects the CPU or GPU variant from `nvidia-smi` at install time.
- **Require Volta or newer.** Pascal (GTX 10xx / P100) is unsupported.
- **Verify `conda --version` ≥ 24.1.** Older releases silently break variant selection.
- **Treat multi-node / MPI / UCX as out of scope.** Defer to https://docs.nvidia.com/legate/latest/networking-wheels.html and https://docs.nvidia.com/legate/latest/mpi-wrapper.html.
## Troubleshooting
- **`ModuleNotFoundError: No module named 'cupynumeric'`** → Run `which python` and `pip list | grep cupynumeric` (or `conda list | grep cupynumeric`) from the same shell to find the env mismatch.
- **`ImportError` mentioning CUDA / `libcudart`** → Reinstall with `CONDA_OVERRIDE_CUDA="<your-cuda-version>"`; the CPU variant is on a GPU box, or CUDA versions are mismatched.
- **`legate: command not found`** → Activate the env, then run `which legate` to confirm.
- **Slower than NumPy on a laptop** → Expect this for small problems (Legate per-task overhead). See the cuPyNumeric FAQ.
## See also
- [references/verification_examples.md](references/verification_examples.md) — verification + troubleshooting recipes.
- Upstream docs: https://docs.nvidia.com/cupynumeric/latest/installation.html
- Legate requirements: https://docs.nvidia.com/legate/latest/installation.html
Tous les fichiers
6 fichiersInstaller cupynumeric-install
Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.
Télécharger le ZIPClonez le dépôt et copiez les fichiers de compétence dans votre projet.
git clone https://github.com/NVIDIA/skills/tree/main/skills/cupynumeric-install # Copy SKILL.md to your .claude/skills/ directory
Copier





Maison
