---
{"title": "CuPy vs dpnp in 2026: NumPy Acceleration Compared", "description": "CuPy and dpnp compared on what each does, what each costs, how each is installed and what to check before you pick one for NumPy acceleration.", "url": "https://saydeploy.com/cupy-vs-dpnp/", "date": "2026-10-19"}
---
CuPy and dpnp compared on what each does, what each costs, how each is installed and what to check before you pick one for NumPy acceleration.

CuPy is an open-source array library for GPU-accelerated computing with Python [^1]. dpnp is a Python library published under the BSD-3-Clause license [^2]. CuPy's sources say that in most cases it can be used as a drop-in replacement for NumPy and SciPy [^1] and that CuPy speeds up some operations more than 100X [^1]. dpnp can be installed using conda, mamba, or pip [^2]. PyOverdrive is open source under the MIT License [^3]. Calling pyoverdrive.enable() patches supported NumPy functions so existing code uses faster paths, and calls it does not support run on stock NumPy [^3].

| Option | License | Install | Paid plan | Platforms |
|---|---|---|---|---|
| CuPy | Open source [^1] | Wheels for Linux and Windows [^1] | Not published in the facts given here [^1] | Linux and Windows [^1] |
| dpnp | BSD-3-Clause [^2] | conda, mamba, or pip [^2] | Not published in the facts given here [^2] | Not published [^2] |
| PyOverdrive | MIT License [^3] | pip from GitHub [^3] | No paid tier stated; open source [^3] | OS independent; tested on Windows and Linux x86-64 [^3] |

## The short answer

CuPy is an open-source array library for GPU-accelerated computing with Python [^1]. In most cases it can be used as a drop-in replacement for NumPy and SciPy [^1]. dpnp is a Python library published under the BSD-3-Clause license [^2]. Its page says it can be installed using conda, mamba, or pip package managers [^2].

For GPU-accelerated array work, CuPy's sources describe GPU-accelerated array computing [^1] and speedups on some operations of more than 100X [^1]. dpnp's sources state its license and its install methods but do not describe what it does for a developer beyond that [^2] [^2]. PyOverdrive's sources cover patching supported NumPy functions so existing code uses faster paths, with unsupported calls running on stock NumPy [^3], and a self-check that compares every fast path with stock NumPy [^3].

## What CuPy and dpnp are built for

CuPy's own page calls it an open-source array library for GPU-accelerated computing with Python [^1]. In most cases it can be used as a drop-in replacement for NumPy and SciPy [^1]. CuPy provides wheels, which are precompiled binary packages, for Linux and Windows [^1]. CuPy speeds up some operations more than 100X [^1].

dpnp's repository is published under the BSD-3-Clause license [^2]. The dpnp library can be installed using conda, mamba, or pip package managers [^2]. The dpnp sources do not describe what the library does for a developer or what computing tasks it targets.

## What PyOverdrive is built for

PyOverdrive is made by the team that publishes this site.

Calling pyoverdrive.enable() patches supported NumPy functions so existing code uses faster paths, and calls it does not support run on stock NumPy [^3]. A fast path runs only when a check confirms the input is in its measured range [^3]. Anything else, or a fast path that raises an error, goes to stock NumPy [^3]. Threaded paths for np.sin, cos, tan, exp, log, log10 and tanh run on C-contiguous float64 and float32 arrays above a size floor calibrated per operation and dtype [^3].

You can turn off one fast path or switch all of them off to restore the original NumPy functions [^3]. A tool called pyoverdrive.explain() tells you which path a call would take and why, without running the call [^3]. You can run a self-check that compares every fast path with stock NumPy [^3]. You can also run a calibration that re-times the threaded paths at their own thresholds on your CPU and switches off any that do not pay there [^3]. It is open source under the MIT License [^3].

## Pricing and fees

CuPy is open source [^1]. No paid plan or price is published in the sources for CuPy [^1].

dpnp's repository is published under the BSD-3-Clause license [^2]. No paid plan or price is published for dpnp in its sources [^2].

PyOverdrive is open source under the MIT License [^3]. The version is 1.0.0 and its status is Beta [^3]. No paid tier or price is stated in its sources [^3].

## Setting it up and daily use

CuPy provides wheels, which are precompiled binary packages, for Linux and Windows [^1]. The CuPy sources do not state the exact install command or describe day to day use beyond the drop-in replacement note [^1]. In most cases it can be used as a drop-in replacement for NumPy and SciPy [^1].

dpnp can be installed using conda, mamba, or pip package managers [^2]. The dpnp sources say nothing further about setup or daily use.

PyOverdrive needs Python 3.12 or newer [^3]. You install it with pip straight from the GitHub repository [^3]. The package is marked OS independent, and the test suite has been run on Windows and on Linux x86-64 [^3]. Daily, you call pyoverdrive.enable() to switch on the faster paths and pyoverdrive.disable() to restore stock NumPy [^3] [^3]. A demo compares the headline operations with stock NumPy and with PyOverdrive on the developer's machine [^3].

## Things to check before you choose

Ask what hardware you have available. CuPy's page describes GPU-accelerated computing [^1], so check whether you have a compatible GPU and the drivers it needs. The dpnp sources do not state what hardware it uses, so check its own pages.

Ask what install method you prefer. CuPy provides wheels for Linux and Windows [^1], and dpnp can be installed with conda, mamba, or pip [^2]. PyOverdrive is installed with pip from GitHub [^3] and needs Python 3.12 or newer [^3].

Ask how each tool handles code that is not supported. CuPy says that in most cases it can be used as a drop-in replacement for NumPy and SciPy [^1], so check what falls outside that. PyOverdrive sends unsupported calls to stock NumPy [^3] and a self-check compares fast paths with stock NumPy [^3]. Check dpnp's own pages for its fallback behavior.

Ask about data correctness. The developer can run a self-check that compares every fast path with stock NumPy [^3]. Check CuPy and dpnp on their own pages for how they document output consistency.

## How to choose

CuPy's sources describe GPU-accelerated array computing [^1] and say that in most cases it can be used as a drop-in replacement for NumPy and SciPy [^1].

dpnp's sources say it is published under the BSD-3-Clause license [^2] and can be installed using conda, mamba, or pip [^2]. Check dpnp's own pages for what computing tasks it targets, since the sources do not say.

Calling pyoverdrive.enable() patches supported NumPy functions so existing code uses faster paths, and unsupported calls run on stock NumPy [^3].

A self-check compares every fast path with stock NumPy [^3]. A calibration re-times the threaded paths at their own thresholds on your CPU and switches off any that do not pay there [^3]. A tool called pyoverdrive.explain() tells you which path a call would take and why, without running the call [^3].

PyOverdrive is open source under the MIT License [^3], installed with pip from GitHub [^3], and needs Python 3.12 or newer [^3].

## Frequently asked questions

### Is CuPy free to use?

CuPy is an open-source array library for GPU-accelerated computing with Python [^1]. No paid plan or price is published in the sources for CuPy [^1]. Check CuPy's own pages if you need detail on any commercial offering or support plan.

### Is dpnp free to use?

The dpnp repository is published under the BSD-3-Clause license [^2]. No paid plan or price is published for dpnp in its sources [^2]. Check dpnp's own pages for any commercial offering or support terms.

### How do you install CuPy and dpnp?

CuPy provides wheels, which are precompiled binary packages, for Linux and Windows [^1]. The exact install command is not published in the sources. dpnp can be installed using conda, mamba, or pip package managers [^2]. Check each project's own pages for the exact commands.

### Can CuPy replace NumPy code directly?

In most cases CuPy can be used as a drop-in replacement for NumPy and SciPy [^1]. The sources do not state which cases fall outside that, so check CuPy's own pages for the limits of that drop-in behavior before relying on it.

### What does PyOverdrive cost and how is it installed?

PyOverdrive is open source under the MIT License [^3]. No paid tier or price is stated in its sources [^3]. You install it with pip straight from the GitHub repository [^3], and it needs Python 3.12 or newer [^3]. The version is 1.0.0 and its status is Beta [^3].

It is open source under the MIT License. [^3] - [Visit PyOverdrive](/go/start-pyoverdrive)

## Sources

[^1]: CuPy, cupy.dev, read 2026-10-07 (https://cupy.dev)
[^2]: dpnp, github.com/IntelPython/dpnp, read 2026-10-09 (https://github.com/IntelPython/dpnp)
[^3]: PyOverdrive's own description of itself (the product of this site's publisher) (/go/start-pyoverdrive)
