Project comparisons#

Here is a list of NumPy APIs and corresponding cuPyNumeric implementations.

A dot in the cupynumeric column denotes that cuPyNumeric implementation is not provided yet. We welcome contributions for these functions.

NumPy vs cuPyNumeric APIs#

Module-Level#

NumPy

cupynumeric

single-GPU/CPU

multi-GPU/CPU

numpy.DataSource

numpy.RankWarning

numpy.arange

cupynumeric.arange

numpy.array

cupynumeric.array

numpy.asanyarray

numpy.asarray

cupynumeric.asarray

numpy.asarray_chkfinite

numpy.ascontiguousarray

numpy.asfortranarray

numpy.asmatrix

numpy.bartlett

cupynumeric.bartlett

numpy.base_repr

numpy.binary_repr

numpy.blackman

cupynumeric.blackman

numpy.bmat

numpy.bool_

numpy.broadcast

numpy.broadcast_shapes

cupynumeric.broadcast_shapes

numpy.busdaycalendar

numpy.byte

numpy.byte_bounds

numpy.bytes_

numpy.cdouble

numpy.cfloat

numpy.character

numpy.chararray

numpy.clongdouble

numpy.clongfloat

numpy.complex128

numpy.complex256

numpy.complex64

numpy.complex_

numpy.complexfloating

numpy.csingle

numpy.datetime64

numpy.datetime_data

numpy.deprecate

numpy.deprecate_with_doc

numpy.diag_indices

cupynumeric.diag_indices

numpy.disp

numpy.double

numpy.dtype

numpy.empty

cupynumeric.empty

numpy.errstate

numpy.eye

cupynumeric.eye

numpy.find_common_type

cupynumeric.find_common_type

numpy.finfo

numpy.flatiter

numpy.flexible

numpy.float128

numpy.float16

numpy.float32

numpy.float64

numpy.float_

numpy.floating

numpy.format_float_positional

numpy.format_float_scientific

numpy.format_parser

numpy.from_dlpack

numpy.frombuffer

numpy.fromfile

numpy.fromfunction

numpy.fromiter

numpy.frompyfunc

numpy.fromregex

numpy.fromstring

numpy.full

cupynumeric.full

numpy.generic

numpy.genfromtxt

numpy.get_include

numpy.get_printoptions

numpy.getbufsize

numpy.geterr

numpy.geterrcall

numpy.geterrobj

numpy.half

numpy.hamming

cupynumeric.hamming

numpy.hanning

cupynumeric.hanning

numpy.identity

cupynumeric.identity

numpy.iinfo

numpy.indices

cupynumeric.indices

numpy.inexact

numpy.info

numpy.int16

numpy.int32

numpy.int64

numpy.int8

numpy.int_

numpy.intc

numpy.integer

numpy.intp

numpy.isfortran

numpy.isscalar

cupynumeric.isscalar

numpy.issctype

numpy.issubclass_

numpy.issubdtype

numpy.issubsctype

numpy.kaiser

cupynumeric.kaiser

numpy.load

cupynumeric.load

numpy.loadtxt

numpy.longcomplex

numpy.longdouble

numpy.longfloat

numpy.longlong

numpy.lookfor

numpy.mask_indices

cupynumeric.mask_indices

numpy.mat

numpy.matrix

numpy.maximum_sctype

numpy.memmap

numpy.mintypecode

numpy.ndarray()

numpy.ndenumerate

numpy.ndindex

numpy.nditer

numpy.nested_iters

numpy.number

numpy.obj2sctype

numpy.object_

numpy.ones

cupynumeric.ones

numpy.poly1d

numpy.printoptions

numpy.promote_types

numpy.recarray

numpy.record

numpy.require

numpy.sctype2char

numpy.set_printoptions

numpy.set_string_function

numpy.setbufsize

numpy.seterr

numpy.seterrcall

numpy.seterrobj

numpy.short

numpy.show_config

numpy.show_runtime

numpy.signedinteger

numpy.single

numpy.singlecomplex

numpy.source

numpy.str_

numpy.string_

numpy.timedelta64

numpy.tri

cupynumeric.tri

numpy.tril_indices

cupynumeric.tril_indices

numpy.triu_indices

cupynumeric.triu_indices

numpy.typename

numpy.ubyte

numpy.ufunc

numpy.uint

numpy.uint16

numpy.uint32

numpy.uint64

numpy.uint8

numpy.uintc

numpy.uintp

numpy.ulonglong

numpy.unicode_

numpy.unsignedinteger

numpy.ushort

numpy.vectorize

numpy.void

numpy.who

numpy.zeros

cupynumeric.zeros

Summary

Number of NumPy functions: 164

Number of functions covered by cupynumeric: 24

Ufuncs#

NumPy

cupynumeric

single-GPU/CPU

multi-GPU/CPU

numpy.absolute

cupynumeric.absolute

numpy.add

cupynumeric.add

numpy.arccos

cupynumeric.arccos

numpy.arccosh

cupynumeric.arccosh

numpy.arcsin

cupynumeric.arcsin

numpy.arcsinh

cupynumeric.arcsinh

numpy.arctan

cupynumeric.arctan

numpy.arctan2

cupynumeric.arctan2

numpy.arctanh

cupynumeric.arctanh

numpy.bitwise_and

cupynumeric.bitwise_and

numpy.bitwise_or

cupynumeric.bitwise_or

numpy.bitwise_xor

cupynumeric.bitwise_xor

numpy.cbrt

cupynumeric.cbrt

numpy.ceil

cupynumeric.ceil

numpy.conj

cupynumeric.conj

numpy.conjugate

cupynumeric.conjugate

numpy.copysign

cupynumeric.copysign

numpy.cos

cupynumeric.cos

numpy.cosh

cupynumeric.cosh

numpy.deg2rad

cupynumeric.deg2rad

numpy.degrees

cupynumeric.degrees

numpy.divide

cupynumeric.divide

numpy.divmod

numpy.equal

cupynumeric.equal

numpy.exp

cupynumeric.exp

numpy.exp2

cupynumeric.exp2

numpy.expm1

cupynumeric.expm1

numpy.fabs

cupynumeric.fabs

numpy.float_power

cupynumeric.float_power

numpy.floor

cupynumeric.floor

numpy.floor_divide

cupynumeric.floor_divide

numpy.fmax

cupynumeric.fmax

numpy.fmin

cupynumeric.fmin

numpy.fmod

cupynumeric.fmod

numpy.frexp

cupynumeric.frexp

numpy.gcd

cupynumeric.gcd

numpy.greater

cupynumeric.greater

numpy.greater_equal

cupynumeric.greater_equal

numpy.heaviside

numpy.hypot

cupynumeric.hypot

numpy.invert

cupynumeric.invert

numpy.isfinite

cupynumeric.isfinite

numpy.isinf

cupynumeric.isinf

numpy.isnan

cupynumeric.isnan

numpy.isnat

numpy.lcm

cupynumeric.lcm

numpy.ldexp

cupynumeric.ldexp

numpy.left_shift

cupynumeric.left_shift

numpy.less

cupynumeric.less

numpy.less_equal

cupynumeric.less_equal

numpy.log

cupynumeric.log

numpy.log10

cupynumeric.log10

numpy.log1p

cupynumeric.log1p

numpy.log2

cupynumeric.log2

numpy.logaddexp

cupynumeric.logaddexp

numpy.logaddexp2

cupynumeric.logaddexp2

numpy.logical_and

cupynumeric.logical_and

numpy.logical_not

cupynumeric.logical_not

numpy.logical_or

cupynumeric.logical_or

numpy.logical_xor

cupynumeric.logical_xor

numpy.matmul

cupynumeric.matmul

numpy.maximum

cupynumeric.maximum

numpy.minimum

cupynumeric.minimum

numpy.mod

cupynumeric.mod

numpy.modf

cupynumeric.modf

numpy.multiply

cupynumeric.multiply

numpy.negative

cupynumeric.negative

numpy.nextafter

cupynumeric.nextafter

numpy.not_equal

cupynumeric.not_equal

numpy.positive

cupynumeric.positive

numpy.power

cupynumeric.power

numpy.rad2deg

cupynumeric.rad2deg

numpy.radians

cupynumeric.radians

numpy.reciprocal

cupynumeric.reciprocal

numpy.remainder

cupynumeric.remainder

numpy.right_shift

cupynumeric.right_shift

numpy.rint

cupynumeric.rint

numpy.sign

cupynumeric.sign

numpy.signbit

cupynumeric.signbit

numpy.sin

cupynumeric.sin

numpy.sinh

cupynumeric.sinh

numpy.spacing

numpy.sqrt

cupynumeric.sqrt

numpy.square

cupynumeric.square

numpy.subtract

cupynumeric.subtract

numpy.tan

cupynumeric.tan

numpy.tanh

cupynumeric.tanh

numpy.true_divide

cupynumeric.true_divide

numpy.trunc

cupynumeric.trunc

Summary

Number of NumPy functions: 89

Number of functions covered by cupynumeric: 85

Multi-Dimensional Array#

NumPy

cupynumeric

single-GPU/CPU

multi-GPU/CPU

numpy.ndarray.all()

cupynumeric.ndarray.all()

numpy.ndarray.any()

cupynumeric.ndarray.any()

numpy.ndarray.argmax()

cupynumeric.ndarray.argmax()

numpy.ndarray.argmin()

cupynumeric.ndarray.argmin()

numpy.ndarray.argpartition()

cupynumeric.ndarray.argpartition()

numpy.ndarray.argsort()

cupynumeric.ndarray.argsort()

numpy.ndarray.astype()

cupynumeric.ndarray.astype()

numpy.ndarray.byteswap()

numpy.ndarray.choose()

cupynumeric.ndarray.choose()

numpy.ndarray.clip()

cupynumeric.ndarray.clip()

numpy.ndarray.compress()

cupynumeric.ndarray.compress()

numpy.ndarray.conj()

cupynumeric.ndarray.conj()

numpy.ndarray.conjugate()

cupynumeric.ndarray.conjugate()

numpy.ndarray.copy()

cupynumeric.ndarray.copy()

numpy.ndarray.cumprod()

cupynumeric.ndarray.cumprod()

numpy.ndarray.cumsum()

cupynumeric.ndarray.cumsum()

numpy.ndarray.diagonal()

cupynumeric.ndarray.diagonal()

numpy.ndarray.dot()

cupynumeric.ndarray.dot()

numpy.ndarray.dump()

cupynumeric.ndarray.dump()

numpy.ndarray.dumps()

cupynumeric.ndarray.dumps()

numpy.ndarray.fill()

cupynumeric.ndarray.fill()

numpy.ndarray.flatten()

cupynumeric.ndarray.flatten()

numpy.ndarray.getfield()

cupynumeric.ndarray.getfield()

numpy.ndarray.item()

cupynumeric.ndarray.item()

numpy.ndarray.itemset()

cupynumeric.ndarray.itemset()

numpy.ndarray.mean()

cupynumeric.ndarray.mean()

numpy.ndarray.newbyteorder()

numpy.ndarray.nonzero()

cupynumeric.ndarray.nonzero()

numpy.ndarray.partition()

cupynumeric.ndarray.partition()

numpy.ndarray.prod()

cupynumeric.ndarray.prod()

numpy.ndarray.ptp()

numpy.ndarray.put()

cupynumeric.ndarray.put()

numpy.ndarray.ravel()

cupynumeric.ndarray.ravel()

numpy.ndarray.repeat()

numpy.ndarray.reshape()

cupynumeric.ndarray.reshape()

numpy.ndarray.resize()

numpy.ndarray.searchsorted()

cupynumeric.ndarray.searchsorted()

numpy.ndarray.setfield()

cupynumeric.ndarray.setfield()

numpy.ndarray.setflags()

cupynumeric.ndarray.setflags()

numpy.ndarray.sort()

cupynumeric.ndarray.sort()

numpy.ndarray.squeeze()

cupynumeric.ndarray.squeeze()

numpy.ndarray.std()

numpy.ndarray.sum()

cupynumeric.ndarray.sum()

numpy.ndarray.swapaxes()

cupynumeric.ndarray.swapaxes()

numpy.ndarray.take()

cupynumeric.ndarray.take()

numpy.ndarray.tobytes()

cupynumeric.ndarray.tobytes()

numpy.ndarray.tofile()

cupynumeric.ndarray.tofile()

numpy.ndarray.tolist()

cupynumeric.ndarray.tolist()

numpy.ndarray.tostring()

cupynumeric.ndarray.tostring()

numpy.ndarray.trace()

cupynumeric.ndarray.trace()

numpy.ndarray.transpose()

cupynumeric.ndarray.transpose()

numpy.ndarray.var()

cupynumeric.ndarray.var()

numpy.ndarray.view()

cupynumeric.ndarray.view()

Summary

Number of NumPy functions: 53

Number of functions covered by cupynumeric: 47

Linear Algebra#

NumPy

cupynumeric

single-GPU/CPU

multi-GPU/CPU

numpy.linalg.LinAlgError

Summary

Number of NumPy functions: 1

Number of functions covered by cupynumeric: 0

Discrete Fourier Transform#

NumPy

cupynumeric

single-GPU/CPU

multi-GPU/CPU

numpy.fft.fftfreq

numpy.fft.rfftfreq

Summary

Number of NumPy functions: 2

Number of functions covered by cupynumeric: 0

Random Sampling#

NumPy

cupynumeric

single-GPU/CPU

multi-GPU/CPU

numpy.random.BitGenerator

numpy.random.Generator

numpy.random.MT19937

numpy.random.PCG64

numpy.random.PCG64DXSM

numpy.random.Philox

numpy.random.RandomState

numpy.random.SFC64

numpy.random.SeedSequence

numpy.random.beta

cupynumeric.random.beta

numpy.random.binomial

cupynumeric.random.binomial

numpy.random.bytes

cupynumeric.random.bytes

numpy.random.chisquare

cupynumeric.random.chisquare

numpy.random.choice

numpy.random.default_rng

cupynumeric.random.default_rng

numpy.random.dirichlet

numpy.random.exponential

cupynumeric.random.exponential

numpy.random.f

cupynumeric.random.f

numpy.random.gamma

cupynumeric.random.gamma

numpy.random.geometric

cupynumeric.random.geometric

numpy.random.get_bit_generator

numpy.random.get_state

numpy.random.gumbel

cupynumeric.random.gumbel

numpy.random.hypergeometric

cupynumeric.random.hypergeometric

numpy.random.laplace

cupynumeric.random.laplace

numpy.random.logistic

cupynumeric.random.logistic

numpy.random.lognormal

cupynumeric.random.lognormal

numpy.random.logseries

cupynumeric.random.logseries

numpy.random.multinomial

numpy.random.multivariate_normal

numpy.random.negative_binomial

cupynumeric.random.negative_binomial

numpy.random.noncentral_chisquare

cupynumeric.random.noncentral_chisquare

numpy.random.noncentral_f

cupynumeric.random.noncentral_f

numpy.random.normal

cupynumeric.random.normal

numpy.random.pareto

cupynumeric.random.pareto

numpy.random.permutation

numpy.random.poisson

cupynumeric.random.poisson

numpy.random.power

cupynumeric.random.power

numpy.random.rand

cupynumeric.random.rand

numpy.random.randint

cupynumeric.random.randint

numpy.random.randn

cupynumeric.random.randn

numpy.random.random

cupynumeric.random.random

numpy.random.random_integers

cupynumeric.random.random_integers

numpy.random.random_sample

cupynumeric.random.random_sample

numpy.random.ranf

cupynumeric.random.ranf

numpy.random.rayleigh

cupynumeric.random.rayleigh

numpy.random.sample

cupynumeric.random.sample

numpy.random.seed

cupynumeric.random.seed

numpy.random.set_bit_generator

numpy.random.set_state

numpy.random.shuffle

numpy.random.standard_cauchy

cupynumeric.random.standard_cauchy

numpy.random.standard_exponential

cupynumeric.random.standard_exponential

numpy.random.standard_gamma

cupynumeric.random.standard_gamma

numpy.random.standard_normal

numpy.random.standard_t

cupynumeric.random.standard_t

numpy.random.triangular

cupynumeric.random.triangular

numpy.random.uniform

cupynumeric.random.uniform

numpy.random.vonmises

cupynumeric.random.vonmises

numpy.random.wald

cupynumeric.random.wald

numpy.random.weibull

cupynumeric.random.weibull

numpy.random.zipf

cupynumeric.random.zipf

Summary

Number of NumPy functions: 62

Number of functions covered by cupynumeric: 42