网站|安装|教程|示例|文档| API 参考|论坛
CuPy 是一个兼容 NumPy/SciPy 的数组库,用于使用 Python 进行 GPU 加速计算。 CuPy 可作为在 NVIDIA CUDA 或 AMD ROCm 平台上运行现有 NumPy/SciPy 代码的直接替代品。
> >> 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 还提供对低级 CUDA 功能的访问。您可以通过 RawKernels 将ndarray
传递给现有的 CUDA C/C++ 程序,使用 Streams 提高性能,甚至直接调用 CUDA Runtime API。
二进制包(轮子)可用于 PyPI 上的 Linux 和 Windows。为您的平台选择正确的软件包。
平台 | 建筑学 | 命令 |
---|---|---|
CUDA 11.x (11.2+) | x86_64 / aarch64 | pip install cupy-cuda11x |
CUDA 12.x | x86_64 / aarch64 | pip install cupy-cuda12x |
ROCm 4.3(实验) | x86_64 | pip install cupy-rocm-4-3 |
ROCm 5.0(实验) | x86_64 | pip install cupy-rocm-5-0 |
笔记
要安装预发行版,请附加--pre -U -f https://pip.cupy.dev/pre
(例如, pip install cupy-cuda11x --pre -U -f https://pip.cupy.dev/pre
)。
Conda-Forge 上还提供适用于 Linux 和 Windows 的二进制包。
平台 | 建筑学 | 命令 |
---|---|---|
CUDA | x86_64 / aarch64 / ppc64le | conda install -c conda-forge cupy |
如果您需要精简安装(无需安装 CUDA 依赖项),您可以执行conda install -c conda-forge cupy-core
。
如果您需要使用特定的 CUDA 版本(例如 12.0),您可以使用cuda-version
元包来选择版本,例如conda install -c conda-forge cupy cuda-version=12.0
。
笔记
如果您在从conda-forge
安装 CuPy 时遇到任何问题,请随时向 cupy-feedstock 报告,我们将帮助调查这是否只是conda-forge
配方中的包装问题或 CuPy 中的实际问题。
使用 NVIDIA Container Toolkit 运行 CuPy 容器映像。
$ docker run --gpus all -it cupy/cupy
MIT 许可证(请参阅LICENSE
文件)。
CuPy 是基于 NumPy 的 API 和 SciPy 的 API 设计的(参见docs/source/license.rst
文件)。
CuPy 由 Preferred Networks 和社区贡献者开发和维护。
奥田凉介、海野裕也、西野大辅、日户翔平和克里斯曼·卢米斯。 CuPy:用于 NVIDIA GPU 计算的 NumPy 兼容库。第三十一届神经信息处理系统年会 (NIPS) 机器学习系统 (LearningSys) 研讨会论文集,(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 "
}
从 v13.0.0 开始,cuSignal 现在是 CuPy 的一部分。 ↩