CuPy 是一个与 NumPy 和 SciPy 完全兼容的 Python 数值计算库,但它不是在 CPU 上运行,而是在 NVIDIA CUDA 或 AMD ROCm 显卡上加速执行——简单说,它把原本慢吞吞的数组运算,“搬”到了显卡里跑,速度提升可达数倍甚至数十倍。对于深度学习、图像处理、物理仿真等需要大量矩阵计算的场景,CuPy 能让你不改一行代码,就享受 GPU 带来的澎湃算力。它不是另起炉灶的新框架,而是你熟悉的 NumPy 的“GPU 版本”,真正做到了“写一次,加速运行”。
核心功能
- 无缝替代 NumPy:只需将
import numpy as np改为import cupy as cp,绝大多数 NumPy 数组操作(如cp.array、cp.dot、cp.fft)即可自动在 GPU 上执行 - 完整覆盖 SciPy 核心模块:支持稀疏矩阵(
cupyx.scipy.sparse)、线性代数(cupyx.scipy.linalg)、信号处理(cupyx.scipy.signal)和 FFT 变换,让科学计算全流程 GPU 化 - 深度集成 CUDA 生态:底层调用 cuBLAS、cuFFT、cuSPARSE、cuSOLVER、cuTENSOR 等 NVIDIA 官方高性能库,并支持 NCCL 多卡通信,适配从单卡训练到大规模分布式计算
- ROCm 平台原生支持:不仅限于 NVIDIA 显卡,也全面兼容 AMD GPU(如 Instinct MI 系列),通过 HIP 后端实现跨厂商硬件加速,国产昇腾等架构亦可通过社区适配层扩展
- 灵活的内存与设备管理:支持显存池分配、流(Stream)控制、事件同步、NVTX 标记性能分析,开发者可精细调控 GPU 资源,避免常见瓶颈
- 与主流 AI 框架无缝协作:可直接与 PyTorch、TensorFlow 的 GPU 张量互转(如
torch.from_dlpack(cp.toDlpack(x))),是构建混合 CPU/GPU 计算流水线的理想粘合剂
适合哪些人用
如果你是以下角色之一,CuPy 很可能就是你一直在找的“隐形加速器”:从事机器学习/深度学习研究的学生或工程师,希望快速验证算法而不被 NumPy 单线程拖慢;高校科研人员开展大规模数值模拟(如流体力学、量子化学);工业界数据分析师处理千万级结构化数据或高分辨率图像;Python 科学计算讲师,想在教学中直观展示 GPU 加速效果;或是正在迁移旧有 NumPy 项目到 GPU 环境的开发者——无需重写逻辑,只需替换导入语句,就能立竿见影地提速。
快速上手
安装极其简单(需已配置 CUDA 或 ROCm 环境):
pip install cupy-cuda12x # 适配 CUDA 12.x(推荐) # 或使用 Conda: conda install -c conda-forge cupy
使用示例(对比清晰可见):
# CPU 版本(NumPy) import numpy as np a = np.random.rand(5000, 5000) b = np.random.rand(5000, 5000) c = np.dot(a, b) # 耗时数秒 # GPU 版本(CuPy)→ 仅改两行! import cupy as cp a = cp.random.rand(5000, 5000) b = cp.random.rand(5000, 5000) c = cp.dot(a, b) # 自动在 GPU 运行,通常快 5–20 倍
首次运行会自动编译 CUDA 内核,后续调用即刻生效。官方提供详细中文文档、交互式教程和数十个实战示例(含 GAN、粒子模拟、医学图像重建等),新手 30 分钟即可跑通第一个 GPU 加速脚本。
项目信息
NumPy & SciPy for GPU
11.4k
今日 +172 stars today
Stars
1.1k
Forks
Python
MIT
编程语言:Python|GitHub Star 数:11413|开源协议:MIT|GitHub 项目地址
如果你还在为 NumPy 计算太慢而反复优化循环、或为迁移到 TensorFlow/PyTorch 大费周章,那么 CuPy 就是你值得立刻尝试的“零成本加速方案”——它不改变你的思维习惯,只默默把算力推到极限。



