manpagez: man pages & more
man MPSMatrixMultiplication(3)
Home | html | info | man
MPSMatrixMultiplication(3)




NAME

       MPSMatrixMultiplication


SYNOPSIS

       #import <MPSMatrixMultiplication.h>

       Inherits MPSKernel.

   Instance Methods
       (nonnull instancetype) -
           initWithDevice:transposeLeft:transposeRight:resultRows:resultColumns:interiorColumns:alpha:beta:
       (nonnull instancetype) -
           initWithDevice:resultRows:resultColumns:interiorColumns:
       (nonnull instancetype) - initWithDevice:
       (void) - encodeToCommandBuffer:leftMatrix:rightMatrix:resultMatrix:

   Properties
       MTLOrigin resultMatrixOrigin
       MTLOrigin leftMatrixOrigin
       MTLOrigin rightMatrixOrigin
       NSUInteger batchStart
       NSUInteger batchSize

   Additional Inherited Members

Detailed Description

       MPSMatrixMultiplication.h  MetalPerformanceShaders.framework

       Copyright:
           Copyright (c) 2016 Apple Inc. All rights reserved.
           MetalPerformanceShaders filter base classes

       This depends on Metal.framework.

       A matrix multiplication kernel.

       A MPSMatrixMultiplication object computes:

                   C = alpha * op(A) * op(B) + beta * C

               A, B, and C are matrices which are represented by MPSMatrix
               objects. alpha and beta are scalar values (of the same data type
               as values of C) which are applied as shown above.  A and B may
               each have an optional transposition operation applied.

               A, B, and C (also referred to in later discussions as the left input
               matrix, the right input matrix, and the result matrix respectively).

               A MPSMatrixMultiplication object is initialized with the transpose
               operators to apply to A and B, sizes for the operation to perform,
               and the scalar values alpha and beta.




Method Documentation

   - (void) encodeToCommandBuffer: (nonnull id< MTLCommandBuffer >)
       commandBuffer(MPSMatrix const *__nonnull) leftMatrix(MPSMatrix const
       *__nonnull) rightMatrix(MPSMatrix *__nonnull) resultMatrix
       Encode a MPSMatrixMultiplication object to a command buffer.

       Parameters:
           commandBuffer A valid MTLCommandBuffer to receive the encoded
           kernel.
           leftMatrix A valid MPSMatrix object which specifies the left input
           matrix.
           rightMatrix A valid MPSMatrix object which specifies the right
           input matrix.
           resultMatrix A valid MPSMatrix object which specifies the addend
           matrix which will also be overwritten by the result.

       Certain constraints apply to the sizes of the matrices depending on the
       transposition operations and sizes requested at initialization time as
       well as the origins at the time this routine is called:

       The left input matrix must be large enough to hold an array of size
       resultRows x interiorColumns elements beginning at leftMatrixOrigin.

       The right input matrix must be large enough to hold an array of size
       interiorColumns x resultColumns elements beginning at
       rightMatrixOrigin.

       The result matrix must be large enough to hold an array of size
       resultRows x resultColumns elements beginning at resultMatrixOrigin.

       Each matrix within the range specified by batchStart and batchSize,
       which also specifies a valid set of matrices within leftMatrix,
       rightMatrix, and resultMatrix, will be processed.

   - (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >) device
       Use the above initialization method instead.

       Reimplemented from MPSKernel.

   - (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >)
       device(NSUInteger) resultRows(NSUInteger) resultColumns(NSUInteger)
       interiorColumns
       Convenience initialization for a matrix-matrix multiplication with no
       transpositions, unit scaling of the product, and no accumulation of the
       result. The scaling factors alpha and beta are taken to be 1.0 and 0.0
       respectively.

       Parameters:
           device The device on which the kernel will execute.
           resultRows The number of rows in the result matrix, M in BLAS GEMM
           description.
           resultColumns The number of columns in the result matrix, N in BLAS
           GEMM description.
           interiorColumns The number of columns of the left input matrix. K
           in BLAS GEMM description.

       Returns:
           A valid MPSMatrixMultiplication object or nil, if failure.



   - (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >)
       device(BOOL) transposeLeft(BOOL) transposeRight(NSUInteger)
       resultRows(NSUInteger) resultColumns(NSUInteger)
       interiorColumns(double) alpha(double) beta
       Initialize an MPSMatrixMultiplication object on a device for a given
       size and desired transpose and scale values.

       Parameters:
           device The device on which the kernel will execute.
           transposeLeft A boolean value which indicates if the left input
           matrix should be used in transposed form. If 'YES' then op(A) =
           A**T, otherwise op(A) = A.
           transposeRight A boolean value which indicates if the right input
           matrix should be used in transposed form. If 'YES' then op(B) =
           B**T, otherwise op(B) = B.
           resultRows The number of rows in the result matrix, M in BLAS GEMM
           description.
           resultColumns The number of columns in the result matrix, N in BLAS
           GEMM description.
           interiorColumns The number of columns of the left input matrix
           after the appropriate transpose operation has been applied. K in
           BLAS GEMM description.
           alpha The scale factor to apply to the product. Specified in double
           precision. Will be converted to the appropriate precision in the
           implementation subject to rounding and/or clamping as necessary.
           beta The scale factor to apply to the initial values of C.
           Specified in double precision. Will be converted to the appropriate
           precision in the implementation subject to rounding and/or clamping
           as necessary.

       Returns:
           A valid MPSMatrixMultiplication object or nil, if failure.




Property Documentation

   - batchSize [read],  [write],  [nonatomic],  [assign]
       The number of matrices in the batch to process. This property is
       modifiable and by default allows all matrices available at encoding
       time to be processed.

   - batchStart [read],  [write],  [nonatomic],  [assign]
       The index of the first matrix in the batch. This property is modifiable
       and defaults to 0 at initialization time. If batch processing should
       begin at a different matrix this value should be modified prior to
       encoding the kernel.

   - leftMatrixOrigin [read],  [write],  [nonatomic],  [assign]
       The origin, relative to [0, 0] in the left input matrix, at which to
       start reading values. This property is modifiable and defaults to [0,
       0] at initialization time. If a different origin is desired then this
       should be modified prior to encoding the kernel. The z value must be 0.

   - resultMatrixOrigin [read],  [write],  [nonatomic],  [assign]
       The origin, relative to [0, 0] in the result matrix, at which to start
       writing (and reading if necessary) results. This property is modifiable
       and defaults to [0, 0] at initialization time. If a different origin is
       desired then this should be modified prior to encoding the kernel. The
       z value must be 0.

   - rightMatrixOrigin [read],  [write],  [nonatomic],  [assign]
       The origin, relative to [0, 0] in the right input matrix, at which to
       start reading values. This property is modifiable and defaults to [0,
       0] at initialization time. If a different origin is desired then this
       should be modified prior to encoding the kernel. The z value must be 0.



Author

       Generated automatically by Doxygen for
       MetalPerformanceShaders.framework from the source code.





Version MetalPerformanceShaders-Thu2Jul 13 2017     MPSMatrixMultiplication(3)


Mac OS X 10.13.1 - Generated Tue Nov 7 18:48:43 CST 2017
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.