cunumeric.dot#

cunumeric.dot(a, b, out=None)#

Dot product of two arrays. Specifically,

  • If both a and b are 1-D arrays, it is inner product of vectors (without complex conjugation).

  • If both a and b are 2-D arrays, it is matrix multiplication, but using a @ b is preferred.

  • If either a or b is 0-D (scalar), it is equivalent to multiply() and using cunumeric.multiply(a, b) or a * b is preferred.

  • If a is an N-D array and b is a 1-D array, it is a sum product over the last axis of a and b.

  • If a is an N-D array and b is an M-D array (where M>=2), it is a sum product over the last axis of a and the second-to-last axis of b:

    dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
    
Parameters
  • a (array_like) – First argument.

  • b (array_like) – Second argument.

  • out (ndarray, optional) – Output argument. This must have the exact shape that would be returned if it was not present. If its dtype is not what would be expected from this operation, then the result will be (unsafely) cast to out.

Returns

output – Returns the dot product of a and b. If out is given, then it is returned.

Return type

ndarray

Notes

The cuNumeric implementation is a little more liberal than NumPy in terms of allowed broadcasting, e.g. dot(ones((3,1)), ones((4,5))) is allowed.

Except for the inner-product case, only floating-point types are supported.

See also

numpy.dot

Availability

Multiple GPUs, Multiple CPUs