Website | Install | Tutorial | Examples | Documentation | API Reference | Forum
CuPy is a NumPy/SciPy-compatible array library for GPU-accelerated computing with Python. CuPy acts as a drop-in replacement to run existing NumPy/SciPy code on NVIDIA CUDA or AMD ROCm platforms.
>>> import cupy as cp
>>> x = cp.arange(6).reshape(2, 3).astype('f')
>>> x
array([[ 0., 1., 2.],
[ 3., 4., 5.]], dtype=float32)
>>> x.sum(axis=1)
array([ 3., 12.], dtype=float32)
CuPy also provides access to low-level CUDA features.
You can pass ndarray
to existing CUDA C/C++ programs via RawKernels, use Streams for performance, or even call CUDA Runtime APIs directly.
Wheels (precompiled binary packages) are available for Linux and Windows. Choose the right package for your platform.
Platform | Architecture | Command |
---|---|---|
CUDA 10.2 | x86_64 | pip install cupy-cuda102 |
aarch64 | pip install cupy-cuda102 -f https://pip.cupy.dev/aarch64 |
|
CUDA 11.0 | x86_64 | pip install cupy-cuda110 |
CUDA 11.1 | x86_64 | pip install cupy-cuda111 |
CUDA 11.2 or later | x86_64 | pip install cupy-cuda11x |
aarch64 | pip install cupy-cuda11x -f https://pip.cupy.dev/aarch64 |
|
ROCm 4.3 (*) | x86_64 | pip install cupy-rocm-4-3 |
ROCm 5.0 (*) | x86_64 | pip install cupy-rocm-5-0 |
(*) ROCm support is an experimental feature. Refer to the docs for details.
Append --pre -f https://pip.cupy.dev/pre
options to install pre-releases (e.g., pip install cupy-cuda11x --pre -f https://pip.cupy.dev/pre
).
See the Installation Guide if you are using Conda/Anaconda or building from source.
Use NVIDIA Container Toolkit to run CuPy image with GPU.
$ docker run --gpus all -it cupy/cupy
MIT License (see LICENSE
file).
CuPy is designed based on NumPy's API and SciPy's API (see docs/LICENSE_THIRD_PARTY
file).
CuPy is being maintained and developed by Preferred Networks Inc. and community contributors.
Ryosuke Okuta, Yuya Unno, Daisuke Nishino, Shohei Hido and Crissman Loomis. CuPy: A NumPy-Compatible Library for NVIDIA GPU Calculations. Proceedings of Workshop on Machine Learning Systems (LearningSys) in The Thirty-first Annual Conference on Neural Information Processing Systems (NIPS), (2017). [PDF]
@inproceedings{cupy_learningsys2017,
author = "Okuta, Ryosuke and Unno, Yuya and Nishino, Daisuke and Hido, Shohei and Loomis, Crissman",
title = "CuPy: A NumPy-Compatible Library for NVIDIA GPU Calculations",
booktitle = "Proceedings of Workshop on Machine Learning Systems (LearningSys) in The Thirty-first Annual Conference on Neural Information Processing Systems (NIPS)",
year = "2017",
url = "http://learningsys.org/nips17/assets/papers/paper_16.pdf"
}