docs.unity3d.com
    Show / Hide Table of Contents

    Class ComputeOps

    GPU compute implementation of IOps

    Inheritance
    Object
    ReferenceCPUOps
    ReferenceComputeOps
    ComputeOps
    PrecompiledComputeOps
    Inherited Members
    ReferenceComputeOps.Pin(Tensor, Boolean)
    ReferenceComputeOps.TensorToRenderTexture(Tensor, RenderTexture, Int32, Int32, Vector4, Vector4, Texture3D)
    ReferenceComputeOps.ShouldFlattenInputForDenseLayer(TensorShape)
    ReferenceComputeOps.IsFusedActivationSupported(Layer.FusedActivation)
    ReferenceComputeOps.Upsample3D(Tensor, Int32[], Boolean)
    ReferenceComputeOps.Resample2D(Tensor, Int32[], Boolean)
    ReferenceComputeOps.DepthToSpace(Tensor, Int32[], Layer.DepthToSpaceMode)
    ReferenceComputeOps.SpaceToDepth(Tensor, Int32[])
    ReferenceComputeOps.MaxPool2D(Tensor, Int32[], Int32[], Int32[])
    ReferenceComputeOps.AvgPool2D(Tensor, Int32[], Int32[], Int32[])
    ReferenceComputeOps.GlobalPool2D(String, Tensor)
    ReferenceComputeOps.ApplyPadding3D(Tensor, Int32[], String, Single)
    ReferenceComputeOps.Border2D(Tensor, Int32[], Single)
    ReferenceComputeOps.Border3D(Tensor, Int32[], Single)
    ReferenceComputeOps.Pad2DReflect(Tensor, Int32[])
    ReferenceComputeOps.Pad2DSymmetric(Tensor, Int32[])
    ReferenceComputeOps.Pad2DEdge(Tensor, Int32[])
    ReferenceComputeOps.LRN(Tensor, Single, Single, Single, Int32)
    ReferenceComputeOps.Dropout(Tensor, Single)
    ReferenceComputeOps.Relu(Tensor)
    ReferenceComputeOps.Tanh(Tensor)
    ReferenceComputeOps.Softplus(Tensor)
    ReferenceComputeOps.Sigmoid(Tensor)
    ReferenceComputeOps.HardSigmoid(Tensor, Single, Single)
    ReferenceComputeOps.Relu6(Tensor)
    ReferenceComputeOps.Elu(Tensor, Single)
    ReferenceComputeOps.LeakyRelu(Tensor, Single)
    ReferenceComputeOps.Selu(Tensor, Single, Single)
    ReferenceComputeOps.Swish(Tensor)
    ReferenceComputeOps.Abs(Tensor)
    ReferenceComputeOps.Neg(Tensor)
    ReferenceComputeOps.Ceil(Tensor)
    ReferenceComputeOps.Clip(Tensor, Single, Single)
    ReferenceComputeOps.Floor(Tensor)
    ReferenceComputeOps.Round(Tensor)
    ReferenceComputeOps.Reciprocal(Tensor)
    ReferenceComputeOps.Pow(Tensor, Single)
    ReferenceComputeOps.Exp(Tensor)
    ReferenceComputeOps.Log(Tensor)
    ReferenceComputeOps.Sqrt(Tensor)
    ReferenceComputeOps.Acos(Tensor)
    ReferenceComputeOps.Acosh(Tensor)
    ReferenceComputeOps.Asin(Tensor)
    ReferenceComputeOps.Asinh(Tensor)
    ReferenceComputeOps.Atan(Tensor)
    ReferenceComputeOps.Atanh(Tensor)
    ReferenceComputeOps.Cos(Tensor)
    ReferenceComputeOps.Cosh(Tensor)
    ReferenceComputeOps.Sin(Tensor)
    ReferenceComputeOps.Sinh(Tensor)
    ReferenceComputeOps.Tan(Tensor)
    ReferenceComputeOps.Erf(Tensor)
    ReferenceComputeOps.Expand(Tensor, TensorShape)
    ReferenceComputeOps.Add(Tensor[])
    ReferenceComputeOps.Sub(Tensor[])
    ReferenceComputeOps.Mul(Tensor[])
    ReferenceComputeOps.Div(Tensor[])
    ReferenceComputeOps.Pow(Tensor[])
    ReferenceComputeOps.Min(Tensor[])
    ReferenceComputeOps.Max(Tensor[])
    ReferenceComputeOps.Mean(Tensor[])
    ReferenceComputeOps.ReduceMin(Tensor, Int32)
    ReferenceComputeOps.ReduceMax(Tensor, Int32)
    ReferenceComputeOps.ReduceSum(Tensor, Int32)
    ReferenceComputeOps.ReduceMean(Tensor, Int32)
    ReferenceComputeOps.ReduceProd(Tensor, Int32)
    ReferenceComputeOps.Greater(Tensor, Tensor)
    ReferenceComputeOps.GreaterEqual(Tensor, Tensor)
    ReferenceComputeOps.Less(Tensor, Tensor)
    ReferenceComputeOps.LessEqual(Tensor, Tensor)
    ReferenceComputeOps.Equal(Tensor, Tensor)
    ReferenceComputeOps.LogicalOr(Tensor, Tensor)
    ReferenceComputeOps.LogicalAnd(Tensor, Tensor)
    ReferenceComputeOps.LogicalXor(Tensor, Tensor)
    ReferenceComputeOps.OneHot(Tensor, Int32, Single, Single)
    ReferenceComputeOps.Flatten(Tensor)
    ReferenceComputeOps.Reshape(Tensor, TensorShape)
    ReferenceComputeOps.GetOnDeviceShape(TensorShape)
    ReferenceComputeOps.ConvertPermutationToDeviceLayout(Int32[])
    ReferenceComputeOps.StridedSlice(Tensor, Int32[], Int32[], Int32[])
    ReferenceComputeOps.Tile(Tensor, Int32[])
    ReferenceComputeOps.Gather(Tensor[], Int32)
    ReferenceComputeOps.Copy(Tensor)
    ReferenceComputeOps.Prepare(Tensor)
    ReferenceComputeOps.PrepareNoAlloc(Tensor)
    ReferenceCPUOps.PostLayerCleanup()
    ReferenceCPUOps.NewTensor(TensorShape, AllocScope, String)
    ReferenceCPUOps.NewTensorLike(Tensor, AllocScope)
    ReferenceCPUOps.NewTensorLike(Tensor[], AllocScope)
    ReferenceCPUOps.NewTensor(Int32, Int32, AllocScope, String)
    ReferenceCPUOps.NewTensor(Int32, Int32, Int32, Int32, AllocScope, String)
    ReferenceCPUOps.ResetAllocator(Boolean)
    ReferenceCPUOps.SetModelExecutionsReporter(IModelExecutionsReporter)
    ReferenceCPUOps.GetModelExecutionsReporter()
    ReferenceCPUOps.Bernoulli(Single)
    ReferenceCPUOps.Gaussian(Single, Single)
    ReferenceCPUOps.RandomNormal(TensorShape, Single, Single, Int32)
    ReferenceCPUOps.RandomUniform(TensorShape, Single, Single, Int32)
    ReferenceCPUOps.Multinomial(Tensor, Int32, Int32)
    ReferenceCPUOps.TopKIndices(Tensor, Int32, Int32, Boolean, Boolean)
    ReferenceCPUOps.NonZero(Tensor)
    ReferenceCPUOps.TopKValues(Tensor, Tensor, Int32)
    ReferenceCPUOps.ConstantOfShape(TensorShape, Single)
    ReferenceCPUOps.Shape(Tensor, Int32)
    ReferenceCPUOps.NonMaxSuppression(Tensor[], Int32, Single, Single, Int32)
    ReferenceCPUOps.LSTM(Tensor, Tensor[], Tensor[], Tensor[], Tensor[], Tensor, Tensor)
    Namespace: Unity.Barracuda
    Syntax
    public class ComputeOps : ReferenceComputeOps, IOps, IOpsStatistics

    Constructors

    ComputeOps(ITensorAllocator, Boolean)

    Create ComputeOps

    Declaration
    public ComputeOps(ITensorAllocator allocator = null, bool verbose = false)
    Parameters
    Type Name Description
    ITensorAllocator allocator

    allocator

    Boolean verbose

    verbose flag

    Methods

    Activation(String, Tensor, Single, Single)

    Generic activation function

    Declaration
    protected override Tensor Activation(string kernelName, Tensor X, float alpha = 0F, float beta = 0F)
    Parameters
    Type Name Description
    String kernelName

    kernel name

    Tensor X

    input

    Single alpha

    alpha

    Single beta

    beta

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Activation(String, Tensor, Single, Single)

    ApplyPadding(Tensor, Int32[], String, Single)

    Apply padding

    Declaration
    protected override Tensor ApplyPadding(Tensor X, int[] pad, string kernelName, float constant = 0F)
    Parameters
    Type Name Description
    Tensor X

    input

    Int32[] pad

    padding

    String kernelName

    kernel name

    Single constant

    constant

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.ApplyPadding(Tensor, Int32[], String, Single)

    ArgMax(Tensor, Int32)

    ArgMax

    Declaration
    public override Tensor ArgMax(Tensor X, int axis)
    Parameters
    Type Name Description
    Tensor X
    Int32 axis

    axis

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.ArgMax(Tensor, Int32)

    ArgMin(Tensor, Int32)

    ArgMax

    Declaration
    public override Tensor ArgMin(Tensor X, int axis)
    Parameters
    Type Name Description
    Tensor X
    Int32 axis

    axis

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.ArgMin(Tensor, Int32)

    Concat(Tensor[], Int32)

    Concatenate tensors across axis

    Declaration
    public override Tensor Concat(Tensor[] tensors, int axis)
    Parameters
    Type Name Description
    Tensor[] tensors

    input tensors

    Int32 axis

    axis

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Concat(Tensor[], Int32)

    Conv2D(Tensor, Tensor, Tensor, Int32[], Int32[], Layer.FusedActivation)

    2D convolution

    Declaration
    public override Tensor Conv2D(Tensor X, Tensor K, Tensor B, int[] stride, int[] pad, Layer.FusedActivation fusedActivation)
    Parameters
    Type Name Description
    Tensor X
    Tensor K
    Tensor B
    Int32[] stride

    stride

    Int32[] pad

    padding

    Layer.FusedActivation fusedActivation

    fused activation type

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Conv2D(Tensor, Tensor, Tensor, Int32[], Int32[], Layer.FusedActivation)

    Conv2DTrans(Tensor, Tensor, Tensor, Int32[], Int32[], Int32[], Layer.FusedActivation)

    Transpose 2D convolution

    Declaration
    public override Tensor Conv2DTrans(Tensor X, Tensor K, Tensor B, int[] stride, int[] pad, int[] outputAdjustment, Layer.FusedActivation fusedActivation)
    Parameters
    Type Name Description
    Tensor X
    Tensor K
    Tensor B
    Int32[] stride

    stride

    Int32[] pad

    padding

    Int32[] outputAdjustment

    output adjustments

    Layer.FusedActivation fusedActivation

    fused activation type

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Conv2DTrans(Tensor, Tensor, Tensor, Int32[], Int32[], Int32[], Layer.FusedActivation)

    Conv3D(Tensor, Tensor, Tensor, Int32[], Int32[], Layer.FusedActivation)

    3D convolution

    Declaration
    public override Tensor Conv3D(Tensor X, Tensor K, Tensor B, int[] stride, int[] pad, Layer.FusedActivation fusedActivation)
    Parameters
    Type Name Description
    Tensor X
    Tensor K
    Tensor B
    Int32[] stride

    stride

    Int32[] pad

    padding

    Layer.FusedActivation fusedActivation

    fused activation type

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Conv3D(Tensor, Tensor, Tensor, Int32[], Int32[], Layer.FusedActivation)

    CopyAndReshape(Tensor, TensorShape)

    Copy and reshape Tensor

    Declaration
    protected override Tensor CopyAndReshape(Tensor X, TensorShape newShape)
    Parameters
    Type Name Description
    Tensor X

    input

    TensorShape newShape
    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.CopyAndReshape(Tensor, TensorShape)

    CopyAndReshape_NCHW(Tensor, TensorShape)

    Copy and reshape tensor for NCHW layout

    Declaration
    protected override Tensor CopyAndReshape_NCHW(Tensor X, TensorShape newShape)
    Parameters
    Type Name Description
    Tensor X

    input

    TensorShape newShape

    new shape

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.CopyAndReshape_NCHW(Tensor, TensorShape)

    Dense(Tensor, Tensor, Tensor, Layer.FusedActivation)

    Dense layer (matrix multiplication) o = x ⨯ w + b

    Declaration
    public override Tensor Dense(Tensor X, Tensor W, Tensor B, Layer.FusedActivation fusedActivation)
    Parameters
    Type Name Description
    Tensor X
    Tensor W
    Tensor B
    Layer.FusedActivation fusedActivation

    fused activation type

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Dense(Tensor, Tensor, Tensor, Layer.FusedActivation)

    Dense3(Tensor, Tensor, Tensor)

    rank3 Dense layer (matrix multiplication) o = x ⨯ w + b O: N,,W,C / X: N,,W,C / W:N,,,C / B:N,,,_

    Declaration
    public override Tensor Dense3(Tensor X, Tensor W, Tensor B)
    Parameters
    Type Name Description
    Tensor X
    Tensor W
    Tensor B
    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Dense3(Tensor, Tensor, Tensor)

    DepthwiseConv2D(Tensor, Tensor, Tensor, Int32[], Int32[], Layer.FusedActivation)

    Depthwise 2D convolution

    Declaration
    public override Tensor DepthwiseConv2D(Tensor X, Tensor K, Tensor B, int[] stride, int[] pad, Layer.FusedActivation fusedActivation)
    Parameters
    Type Name Description
    Tensor X
    Tensor K
    Tensor B
    Int32[] stride

    stride

    Int32[] pad

    padding

    Layer.FusedActivation fusedActivation

    fused activation type

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.DepthwiseConv2D(Tensor, Tensor, Tensor, Int32[], Int32[], Layer.FusedActivation)

    ElementwiseWithBroadcast(String, Tensor[])

    Elementwise broadcast for specified kernel

    Declaration
    protected override Tensor ElementwiseWithBroadcast(string kernelName, Tensor[] tensors)
    Parameters
    Type Name Description
    String kernelName

    kernel name

    Tensor[] tensors

    input tensors

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.ElementwiseWithBroadcast(String, Tensor[])

    GlobalAvgPool2D(Tensor)

    2D global average pooling

    Declaration
    public override Tensor GlobalAvgPool2D(Tensor X)
    Parameters
    Type Name Description
    Tensor X
    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.GlobalAvgPool2D(Tensor)

    GlobalAvgVariancePool2D(Tensor)

    2D global average variance pooling

    Declaration
    public override Tensor GlobalAvgVariancePool2D(Tensor X)
    Parameters
    Type Name Description
    Tensor X
    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.GlobalAvgVariancePool2D(Tensor)

    GlobalMaxPool2D(Tensor)

    2D global max pooling

    Declaration
    public override Tensor GlobalMaxPool2D(Tensor X)
    Parameters
    Type Name Description
    Tensor X
    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.GlobalMaxPool2D(Tensor)

    GlobalPool2D(String, String, Tensor)

    Generic global 2D pooling

    Declaration
    protected virtual Tensor GlobalPool2D(string smallKernelName, string globalKernelName, Tensor X)
    Parameters
    Type Name Description
    String smallKernelName

    small kernel name

    String globalKernelName

    global kernel name

    Tensor X

    input

    Returns
    Type Description
    Tensor

    output Tensor

    LogicalNot(Tensor)

    Not

    Declaration
    public override Tensor LogicalNot(Tensor X)
    Parameters
    Type Name Description
    Tensor X
    Returns
    Type Description
    Tensor

    Tensor with !x values

    Overrides
    ReferenceComputeOps.LogicalNot(Tensor)

    LogSoftmax(Tensor, Int32)

    LogSoftmax

    Declaration
    public override Tensor LogSoftmax(Tensor X, int axis)
    Parameters
    Type Name Description
    Tensor X
    Int32 axis
    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.LogSoftmax(Tensor, Int32)

    MatMul(Tensor, Boolean, Tensor, Boolean)

    Simple 2D matrix multiplication O = X ⨯ Y

    Declaration
    public override Tensor MatMul(Tensor X, bool xTranspose, Tensor Y, bool yTranspose)
    Parameters
    Type Name Description
    Tensor X

    left Tensor

    Boolean xTranspose

    X transposed data flag

    Tensor Y

    right Tensor

    Boolean yTranspose

    Y transposed data flag

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.MatMul(Tensor, Boolean, Tensor, Boolean)

    MatMul(Tensor, Int32, Tensor, Int32)

    Multidimensional Matrix multiplication o = x ⨯ y

    Declaration
    public override Tensor MatMul(Tensor X, int rankX, Tensor Y, int rankY)
    Parameters
    Type Name Description
    Tensor X
    Int32 rankX

    rank of x

    Tensor Y
    Int32 rankY

    rank of y

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.MatMul(Tensor, Int32, Tensor, Int32)

    Normalization(Tensor, Tensor, Tensor, Int32, Int32, Single, Layer.FusedActivation)

    Normalization

    Declaration
    public override Tensor Normalization(Tensor X, Tensor S, Tensor B, int pool, int axis, float epsilon, Layer.FusedActivation fusedActivation)
    Parameters
    Type Name Description
    Tensor X
    Tensor S
    Tensor B
    Int32 pool

    pooling

    Int32 axis

    axis

    Single epsilon

    threshold

    Layer.FusedActivation fusedActivation

    fused activation type

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Normalization(Tensor, Tensor, Tensor, Int32, Int32, Single, Layer.FusedActivation)

    Pool2D(String, Tensor, Int32[], Int32[], Int32[])

    Declaration
    protected override Tensor Pool2D(string kernelName, Tensor X, int[] pool, int[] stride, int[] pad)
    Parameters
    Type Name Description
    String kernelName
    Tensor X
    Int32[] pool
    Int32[] stride
    Int32[] pad
    Returns
    Type Description
    Tensor
    Overrides
    ReferenceComputeOps.Pool2D(String, Tensor, Int32[], Int32[], Int32[])

    PRelu(Tensor, Tensor)

    PReLU

    Declaration
    public override Tensor PRelu(Tensor X, Tensor S)
    Parameters
    Type Name Description
    Tensor X
    Tensor S
    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.PRelu(Tensor, Tensor)

    ScaleBias(Tensor, Tensor, Tensor)

    Scale bias o = s * x + b, element wise

    Declaration
    public override Tensor ScaleBias(Tensor X, Tensor S, Tensor B)
    Parameters
    Type Name Description
    Tensor X
    Tensor S
    Tensor B
    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.ScaleBias(Tensor, Tensor, Tensor)

    Sign(Tensor)

    Sign

    Declaration
    public override Tensor Sign(Tensor X)
    Parameters
    Type Name Description
    Tensor X
    Returns
    Type Description
    Tensor

    Tensor with 1 if x > 0 -1 if < 0 and 0 if == 0 values

    Overrides
    ReferenceComputeOps.Sign(Tensor)

    Softmax(Tensor, Int32)

    Softmax

    Declaration
    public override Tensor Softmax(Tensor X, int axis)
    Parameters
    Type Name Description
    Tensor X
    Int32 axis

    axis

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Softmax(Tensor, Int32)

    Transpose(Tensor)

    Transpose matrix

    Declaration
    public override Tensor Transpose(Tensor X)
    Parameters
    Type Name Description
    Tensor X
    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Transpose(Tensor)

    Transpose(Tensor, Int32[])

    Transpose according to permutations

    Declaration
    public override Tensor Transpose(Tensor X, int[] permutations)
    Parameters
    Type Name Description
    Tensor X
    Int32[] permutations

    new axis order

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Transpose(Tensor, Int32[])

    Upsample2D(Tensor, Int32[], Boolean)

    Upsample 2D

    Declaration
    public override Tensor Upsample2D(Tensor X, int[] scale, bool bilinear)
    Parameters
    Type Name Description
    Tensor X
    Int32[] scale

    scale

    Boolean bilinear

    bilinear flag

    Returns
    Type Description
    Tensor

    output Tensor

    Overrides
    ReferenceComputeOps.Upsample2D(Tensor, Int32[], Boolean)

    Where(Tensor, Tensor, Tensor)

    Where

    Declaration
    public override Tensor Where(Tensor C, Tensor A, Tensor B)
    Parameters
    Type Name Description
    Tensor C
    Tensor A
    Tensor B
    Returns
    Type Description
    Tensor

    Tensor with values c ? a : b

    Overrides
    ReferenceComputeOps.Where(Tensor, Tensor, Tensor)
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023