cupy.einsum#
- cupy.einsum(subscripts, *operands, dtype=None, optimize=False)[source]#
Evaluates the Einstein summation convention on the operands. Using the Einstein summation convention, many common multi-dimensional array operations can be represented in a simple fashion. This function provides a way to compute such summations.
Note
Memory contiguity of the returned array is not always compatible with that of
numpy.einsum()
.out
,order
, andcasting
options are not supported.If
CUPY_ACCELERATORS
includescutensornet
, the einsum calculation will be performed by the cuTensorNet backend if possible.The support of the
optimize
option is limited (currently, only False, ‘cutensornet’, or a custom path for pairwise contraction is supported, and the maximum intermediate size is ignored). If you need finer control for path optimization, consider replacingcupy.einsum()
bycuquantum.contract()
instead.Requires cuQuantum Python (v22.03+).
If
CUPY_ACCELERATORS
includescutensor
, einsum will be accelerated by the cuTENSOR backend whenever possible.
- Parameters:
subscripts (str) – Specifies the subscripts for summation.
operands (sequence of arrays) – These are the arrays for the operation.
dtype – If provided, forces the calculation to use the data type specified. Default is None.
optimize – Valid options include {False, True, ‘greedy’, ‘optimal’}. Controls if intermediate optimization should occur. No optimization will occur if False, and True will default to the ‘greedy’ algorithm. Also accepts an explicit contraction list from
numpy.einsum_path()
. Defaults to False. If a pair is supplied, the second argument is assumed to be the maximum intermediate size created.
- Returns:
The calculation based on the Einstein summation convention.
- Return type:
See also