Project comparisons#

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

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

NumPy vs cuNumeric APIs#

Module-Level#

NumPy

cunumeric

single-GPU/CPU

multi-GPU/CPU

numpy.arange

cunumeric.arange

numpy.array

cunumeric.array

numpy.asanyarray

numpy.asarray

cunumeric.asarray

numpy.asarray_chkfinite

numpy.ascontiguousarray

numpy.asfortranarray

numpy.asmatrix

numpy.bartlett

cunumeric.bartlett

numpy.base_repr

numpy.binary_repr

numpy.blackman

cunumeric.blackman

numpy.bmat

numpy.bool

numpy.bool_

numpy.broadcast

numpy.broadcast_shapes

cunumeric.broadcast_shapes

numpy.busdaycalendar

numpy.byte

numpy.bytes_

numpy.cdouble

numpy.character

numpy.clongdouble

numpy.complex128

numpy.complex256

numpy.complex64

numpy.complexfloating

numpy.csingle

numpy.datetime64

numpy.datetime_data

numpy.diag_indices

cunumeric.diag_indices

numpy.double

numpy.dtype

numpy.empty

cunumeric.empty

numpy.errstate

numpy.eye

cunumeric.eye

numpy.finfo

numpy.flatiter

numpy.flexible

numpy.float128

numpy.float16

numpy.float32

numpy.float64

numpy.floating

numpy.format_float_positional

numpy.format_float_scientific

numpy.from_dlpack

numpy.frombuffer

numpy.fromfile

numpy.fromfunction

numpy.fromiter

numpy.frompyfunc

numpy.fromregex

numpy.fromstring

numpy.full

cunumeric.full

numpy.generic

numpy.genfromtxt

numpy.get_include

numpy.get_printoptions

numpy.getbufsize

numpy.geterr

numpy.geterrcall

numpy.half

numpy.hamming

cunumeric.hamming

numpy.hanning

cunumeric.hanning

numpy.identity

cunumeric.identity

numpy.iinfo

numpy.indices

cunumeric.indices

numpy.inexact

numpy.info

numpy.int16

numpy.int32

numpy.int64

numpy.int8

numpy.int_

numpy.intc

numpy.integer

numpy.intp

numpy.isdtype

numpy.isfortran

numpy.isscalar

cunumeric.isscalar

numpy.issubdtype

numpy.kaiser

cunumeric.kaiser

numpy.load

cunumeric.load

numpy.loadtxt

numpy.long

numpy.longdouble

numpy.longlong

numpy.mask_indices

cunumeric.mask_indices

numpy.matrix

numpy.memmap

numpy.mintypecode

numpy.ndarray()

numpy.ndenumerate

numpy.ndindex

numpy.nditer

numpy.nested_iters

numpy.number

numpy.object_

numpy.ones

cunumeric.ones

numpy.poly1d

numpy.printoptions

numpy.promote_types

numpy.recarray

numpy.record

numpy.require

numpy.row_stack

cunumeric.row_stack

numpy.set_printoptions

numpy.setbufsize

numpy.seterr

numpy.seterrcall

numpy.short

numpy.show_config

numpy.show_runtime

numpy.signedinteger

numpy.single

numpy.str_

numpy.timedelta64

numpy.trapz

numpy.tri

cunumeric.tri

numpy.tril_indices

cunumeric.tril_indices

numpy.triu_indices

cunumeric.triu_indices

numpy.typename

numpy.ubyte

numpy.ufunc

numpy.uint

numpy.uint16

numpy.uint32

numpy.uint64

numpy.uint8

numpy.uintc

numpy.uintp

numpy.ulong

numpy.ulonglong

numpy.unsignedinteger

numpy.ushort

numpy.vectorize

numpy.void

numpy.zeros

cunumeric.zeros

Summary

Number of NumPy functions: 139

Number of functions covered by cunumeric: 24

Ufuncs#

NumPy

cunumeric

single-GPU/CPU

multi-GPU/CPU

numpy.absolute

cunumeric.absolute

numpy.acos

numpy.acosh

numpy.add

cunumeric.add

numpy.arccos

cunumeric.arccos

numpy.arccosh

cunumeric.arccosh

numpy.arcsin

cunumeric.arcsin

numpy.arcsinh

cunumeric.arcsinh

numpy.arctan

cunumeric.arctan

numpy.arctan2

cunumeric.arctan2

numpy.arctanh

cunumeric.arctanh

numpy.asin

numpy.asinh

numpy.atan

numpy.atan2

numpy.atanh

numpy.bitwise_and

cunumeric.bitwise_and

numpy.bitwise_count

numpy.bitwise_invert

numpy.bitwise_left_shift

numpy.bitwise_or

cunumeric.bitwise_or

numpy.bitwise_right_shift

numpy.bitwise_xor

cunumeric.bitwise_xor

numpy.cbrt

cunumeric.cbrt

numpy.ceil

cunumeric.ceil

numpy.conj

cunumeric.conj

numpy.conjugate

cunumeric.conjugate

numpy.copysign

cunumeric.copysign

numpy.cos

cunumeric.cos

numpy.cosh

cunumeric.cosh

numpy.deg2rad

cunumeric.deg2rad

numpy.degrees

cunumeric.degrees

numpy.divide

cunumeric.divide

numpy.divmod

numpy.equal

cunumeric.equal

numpy.exp

cunumeric.exp

numpy.exp2

cunumeric.exp2

numpy.expm1

cunumeric.expm1

numpy.fabs

cunumeric.fabs

numpy.float_power

cunumeric.float_power

numpy.floor

cunumeric.floor

numpy.floor_divide

cunumeric.floor_divide

numpy.fmax

cunumeric.fmax

numpy.fmin

cunumeric.fmin

numpy.fmod

cunumeric.fmod

numpy.frexp

cunumeric.frexp

numpy.gcd

cunumeric.gcd

numpy.greater

cunumeric.greater

numpy.greater_equal

cunumeric.greater_equal

numpy.heaviside

numpy.hypot

cunumeric.hypot

numpy.invert

cunumeric.invert

numpy.isfinite

cunumeric.isfinite

numpy.isinf

cunumeric.isinf

numpy.isnan

cunumeric.isnan

numpy.isnat

numpy.lcm

cunumeric.lcm

numpy.ldexp

cunumeric.ldexp

numpy.left_shift

cunumeric.left_shift

numpy.less

cunumeric.less

numpy.less_equal

cunumeric.less_equal

numpy.log

cunumeric.log

numpy.log10

cunumeric.log10

numpy.log1p

cunumeric.log1p

numpy.log2

cunumeric.log2

numpy.logaddexp

cunumeric.logaddexp

numpy.logaddexp2

cunumeric.logaddexp2

numpy.logical_and

cunumeric.logical_and

numpy.logical_not

cunumeric.logical_not

numpy.logical_or

cunumeric.logical_or

numpy.logical_xor

cunumeric.logical_xor

numpy.matmul

cunumeric.matmul

numpy.maximum

cunumeric.maximum

numpy.minimum

cunumeric.minimum

numpy.mod

cunumeric.mod

numpy.modf

cunumeric.modf

numpy.multiply

cunumeric.multiply

numpy.negative

cunumeric.negative

numpy.nextafter

cunumeric.nextafter

numpy.not_equal

cunumeric.not_equal

numpy.positive

cunumeric.positive

numpy.pow

numpy.power

cunumeric.power

numpy.rad2deg

cunumeric.rad2deg

numpy.radians

cunumeric.radians

numpy.reciprocal

cunumeric.reciprocal

numpy.remainder

cunumeric.remainder

numpy.right_shift

cunumeric.right_shift

numpy.rint

cunumeric.rint

numpy.sign

cunumeric.sign

numpy.signbit

cunumeric.signbit

numpy.sin

cunumeric.sin

numpy.sinh

cunumeric.sinh

numpy.spacing

numpy.sqrt

cunumeric.sqrt

numpy.square

cunumeric.square

numpy.subtract

cunumeric.subtract

numpy.tan

cunumeric.tan

numpy.tanh

cunumeric.tanh

numpy.true_divide

cunumeric.true_divide

numpy.trunc

cunumeric.trunc

numpy.vecdot

Summary

Number of NumPy functions: 102

Number of functions covered by cunumeric: 85

Multi-Dimensional Array#

NumPy

cunumeric

single-GPU/CPU

multi-GPU/CPU

numpy.ndarray.all()

cunumeric.ndarray.all()

numpy.ndarray.any()

cunumeric.ndarray.any()

numpy.ndarray.argmax()

cunumeric.ndarray.argmax()

numpy.ndarray.argmin()

cunumeric.ndarray.argmin()

numpy.ndarray.argpartition()

cunumeric.ndarray.argpartition()

numpy.ndarray.argsort()

cunumeric.ndarray.argsort()

numpy.ndarray.astype()

cunumeric.ndarray.astype()

numpy.ndarray.byteswap()

numpy.ndarray.choose()

cunumeric.ndarray.choose()

numpy.ndarray.clip()

cunumeric.ndarray.clip()

numpy.ndarray.compress()

cunumeric.ndarray.compress()

numpy.ndarray.conj()

cunumeric.ndarray.conj()

numpy.ndarray.conjugate()

cunumeric.ndarray.conjugate()

numpy.ndarray.copy()

cunumeric.ndarray.copy()

numpy.ndarray.cumprod()

cunumeric.ndarray.cumprod()

numpy.ndarray.cumsum()

cunumeric.ndarray.cumsum()

numpy.ndarray.diagonal()

cunumeric.ndarray.diagonal()

numpy.ndarray.dot()

cunumeric.ndarray.dot()

numpy.ndarray.dump()

cunumeric.ndarray.dump()

numpy.ndarray.dumps()

cunumeric.ndarray.dumps()

numpy.ndarray.fill()

cunumeric.ndarray.fill()

numpy.ndarray.flatten()

cunumeric.ndarray.flatten()

numpy.ndarray.getfield()

cunumeric.ndarray.getfield()

numpy.ndarray.item()

cunumeric.ndarray.item()

numpy.ndarray.mean()

cunumeric.ndarray.mean()

numpy.ndarray.nonzero()

cunumeric.ndarray.nonzero()

numpy.ndarray.partition()

cunumeric.ndarray.partition()

numpy.ndarray.prod()

cunumeric.ndarray.prod()

numpy.ndarray.put()

cunumeric.ndarray.put()

numpy.ndarray.ravel()

cunumeric.ndarray.ravel()

numpy.ndarray.repeat()

numpy.ndarray.reshape()

cunumeric.ndarray.reshape()

numpy.ndarray.resize()

numpy.ndarray.searchsorted()

cunumeric.ndarray.searchsorted()

numpy.ndarray.setfield()

cunumeric.ndarray.setfield()

numpy.ndarray.setflags()

cunumeric.ndarray.setflags()

numpy.ndarray.sort()

cunumeric.ndarray.sort()

numpy.ndarray.squeeze()

cunumeric.ndarray.squeeze()

numpy.ndarray.std()

numpy.ndarray.sum()

cunumeric.ndarray.sum()

numpy.ndarray.swapaxes()

cunumeric.ndarray.swapaxes()

numpy.ndarray.take()

cunumeric.ndarray.take()

numpy.ndarray.to_device()

numpy.ndarray.tobytes()

cunumeric.ndarray.tobytes()

numpy.ndarray.tofile()

cunumeric.ndarray.tofile()

numpy.ndarray.tolist()

cunumeric.ndarray.tolist()

numpy.ndarray.tostring()

cunumeric.ndarray.tostring()

numpy.ndarray.trace()

cunumeric.ndarray.trace()

numpy.ndarray.transpose()

cunumeric.ndarray.transpose()

numpy.ndarray.var()

cunumeric.ndarray.var()

numpy.ndarray.view()

cunumeric.ndarray.view()

Summary

Number of NumPy functions: 51

Number of functions covered by cunumeric: 46

Linear Algebra#

NumPy

cunumeric

single-GPU/CPU

multi-GPU/CPU

numpy.linalg.LinAlgError

Summary

Number of NumPy functions: 1

Number of functions covered by cunumeric: 0

Discrete Fourier Transform#

NumPy

cunumeric

single-GPU/CPU

multi-GPU/CPU

numpy.fft.fftfreq

numpy.fft.rfftfreq

Summary

Number of NumPy functions: 2

Number of functions covered by cunumeric: 0

Random Sampling#

NumPy

cunumeric

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.seed

cunumeric.random.seed

Summary

Number of NumPy functions: 10

Number of functions covered by cunumeric: 1