cupynumeric-install
NVIDIA/skills
conda または pip を使用して Python 用の cuPyNumeric をインストールし、GPU の使用状況の確認を含めて動作を確認します。
...すべて拡張しますcuPyNumeric のインストール(ユーザー向け)
目的
このスキルは、PythonからcuPyNumericをインストールし、インストールが正常に機能しているか(GPUの使用状況を含む)を確認するために使用します。ユーザーがcondaまたはpipを介してcuPyNumericを実行したい場合に適用してください。ソースからのビルド(修正や貢献のため)には使用しないでください。それらは本スキルの対象外です。
必須のルール
- 決してインストールを実行しないでください。
「pip install」、「conda install」、またはいかなるインストーラも実行しないでください。コマンドを表示し、ユーザーに実行させてください。 - 常に隔離してください。ベースのconda、システムのPython、または共有グローバル環境へのインストールは行わないでください。
- 推奨する前に検出すること。
「--version」による読み取り専用の確認は問題ありません。
前提条件
インストールを推奨する前に、以下のシステム要件を確認してください:
- GPU:Compute Capability ≥ 7.0(Volta以降)。CPUのみの場合もサポートされています。
- CUDA: 12.2 以上。
- OS:Linux (x86_64 / aarch64)、macOS aarch64(pip wheel のみ)、Windows(WSL経由)。
- Python: Linuxでは3.11~3.14、macOS aarch64では3.11~3.13。
- conda: 24.1以上(conda pathのみ)。
- パッケージマネージャー:conda(アップストリーム推奨)またはpip。どちらもインストールされていない場合は、まずいずれかをセットアップしてください(手順を参照)。
手順
以下の手順を順に実行してください:前提条件の確認、適用範囲に関する質問への回答、選択したパス経由でのインストール、そして検証。
インストール前に確認すること
- パッケージマネージャー?`
conda --version` および `pip --version` を確認してください。conda(アップストリーム推奨)を優先し、それが利用できない場合は pip に切り替えてください。 - 実行環境は?GPUマシン、CPUのみのノートPC、クラウド、コンテナ、またはリモート/サーバー。
- CUDAのバージョン?目に見えるGPUがないホストでGPU版を強制的に使用する場合にのみ確認してください。
nvidia-smi/nvcc --versionで確認してください。
ブートストラップ — まずパッケージマネージャーをインストールする
condaもpipも利用できない場合は、いずれかをインストールしてください。コマンドとドキュメントへのリンクを提供してください。実行はしないでください— `curl | bash ` を実行するにはユーザーの信頼が必要です。
推奨:Miniforge(フルコンダ、conda-forgeがデフォルト)
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash "Miniforge3-$(uname)-$(uname -m).sh"
ドキュメント:https://github.com/conda-forge/miniforge
別の方法: Python + pip
OSのパッケージマネージャー(apt/dnf/brew)または https://www.python.org/downloads/ から Python をインストールしてください。既存の Python に pip がインストールされていない場合は、`python -m ensurepip --upgrade` を実行してください。
インストール後、バイナリが PATH に追加されるよう、新しいシェルを開いてください。
インストール — conda パス
conda create -n cupynumeric -c conda-forge -c legate cupynumeric
conda activate cupynumeric
既存の開発環境にインストールする場合:conda install -c conda-forge -c legate cupynumeric。
conda は、インストール時にnvidia-smi が動作するかどうかに基づいて、GPU 版と CPU 版を自動的に選択します。これを上書きするには、以下を参照してください。
GPU版を強制する
インストール時にGPUが検出されない場合(例:GPUホスト用のコンテナを構築する場合)にのみ、CONDA_OVERRIDE_CUDA を設定してください。実行ホストのCUDAバージョンを使用します:
CONDA_OVERRIDE_CUDA="12.2" conda install -c conda-forge -c legate cupynumeric
ナイトリー版(検証が不十分)
conda install -c conda-forge -c legate-nightly cupynumeric
インストール — pip パス
python -m venv .venv
source .venv/bin/activate
pip install nvidia-cupynumeric
検証
スモークテスト(常に実行)
Legateランチャーを通じてスタンドアロンスクリプトを実行します。リポジトリのチェックアウトは不要です。
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()) # 結果は 45 となるはず
print("matmul:", (b @ b).sum()) # 結果は 64.0 となるはず
EOF
legate "$TMP/smoke.py"
rm -rf "$TMP"
sum: 45、matmul: 64.0 となるはずです。legate が実行されていない場合、環境が有効化されていません。詳細は「トラブルシューティング」を参照してください。
GPU使用状況の確認(対応GPUが存在する場合は必須)
スモークテストに合格したからといって、GPUが使用されているとは限りません。GPU搭載マシンにCPU版をインストールした場合でも、正しい結果が得られることがあります。以下の2つの手順を実行してください。
1. GPUの起動を強制します。 legate --gpus N はN 個のGPUを要求します。認識可能なGPUがない場合やCPU版がインストールされている場合は、すぐに失敗します。
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"
結果は16777216.0 となるはずです。CUDA ドライバや libcudart が表示された場合、または利用可能な GPU がない場合は、CPU 版がインストールされています。CONDA_OVERRIDE_CUDA を指定して再インストールしてください。
2. GPUが使用されたことを確認します。1つのシェルから、nvidia-smiを実行しながら、期限制限付きのmatmulループを実行してください。2つ目のターミナルを起動して競合が発生する心配はありません:
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()) # 同期を強制し、matmulが確実に実行されるようにする
iters += 1
print("iters:", iters)
EOF
legate --gpus 1 "$SCRIPT" &
WORKLOAD=$!
sleep 5 # Legateの起動待ち時間
for _ in $(seq 10); do # 1秒ごとに10サンプル — 起動遅延をカバー
nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader
sleep 1
done
wait "$WORKLOAD"
rm -rf "$TMPDIR_GPU"
ほとんどのサンプルでmemory.used がGiB 単位の範囲にあり、いくつかのサンプルでutilization.gpu が一定以上になることが予想されます。すべてのサンプルで両方がベースラインのままの場合、GPU バリアントはインストールされていません。conda list cupynumericで*_gpu(*_cpu ではない) を確認してください。
より詳細なレシピ
マルチGPUの確認、CPUフォールバック、コンテナ、およびトラブルシューティングについては、verification_examples.mdを参照してください。
制限事項
- 1つの環境内でcondaとpipを混在させないでください。混在させると、最初にインストールされたものが上書きされ、インポート時にエラーが発生します。切り替えるには、まず
`pip uninstall nvidia-cupynumeric` または`conda remove cupynumeric` を実行してください。 - マルチGPU/マルチランク実行には、
legateランチャーを使用してください。通常のPythonではシングルプロセスで実行されます:legate --gpus 2 script.py。 - CPUのみのホストでGPU版を強制するには、
CONDA_OVERRIDE_CUDAを使用してください。これを行わない場合、condaはインストール時にnvidia-smiからCPU版またはGPU版を自動的に選択します。 - Volta 以降が必要です。Pascal (GTX 10xx / P100) はサポートされていません。
-
conda --version が24.1 以上であることを確認してください。古いリリースでは、バリアントの選択が正常に行われなくなる場合があります。 - マルチノード / MPI / UCX は対象外として扱います。https://docs.nvidia.com/legate/latest/networking-wheels.html および https://docs.nvidia.com/legate/latest/mpi-wrapper.html を参照してください。
トラブルシューティング
ModuleNotFoundError: 'cupynumeric' という名前のモジュールはありません→ 同じシェルから`which python` および`pip list | grep cupynumeric`(または `conda list | grep cupynumeric`)を実行し、環境の不一致を確認してください。- CUDA /
libcudartに関するImportError→CONDA_OVERRIDE_CUDA="を指定して再インストールしてください。GPU 搭載マシンで CPU 版が使用されているか、CUDA のバージョンが一致していない可能性があります。" legate: コマンドが見つかりません→ 環境をアクティブにしてから、`which legate` を実行して確認してください。- ノートPCでNumPyより処理が遅い→ 小規模な問題ではこの現象が予想されます(Legateのタスクごとのオーバーヘッド)。cuPyNumericのFAQを参照してください。
以下も参照
- references/verification_examples.md — 検証およびトラブルシューティングの手順。
- アップストリームのドキュメント: https://docs.nvidia.com/cupynumeric/latest/installation.html
- 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
すべてのファイル
6件のファイルcupynumeric-installをインストール
スキルファイルをダウンロードし、.claude/skills/ ディレクトリに解凍してください。
ZIPをダウンロードリポジトリをクローンし、スキルファイルをプロジェクトにコピーしてください。
git clone https://github.com/NVIDIA/skills/tree/main/skills/cupynumeric-install # Copy SKILL.md to your .claude/skills/ directory
コピー





家
