Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

MPSNDArray macOS xcode16.0 b1

Rolf Bjarne Kvinge edited this pageAug 30, 2024 ·3 revisions

#MPSNDArray.frameworkhttps://github.com/xamarin/xamarin-macios/pull/21155

diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArray.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArray.h--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArray.h2024-04-13 20:23:59+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArray.h2024-05-30 02:38:51@@ -10,3 +10,6 @@ #import <MPSNDArray/MPSNDArrayMatrixMultiplication.h> #import <MPSNDArray/MPSNDArrayStridedSlice.h> #import <MPSNDArray/MPSNDArrayGather.h>+#import <MPSNDArray/MPSNDArrayIdentity.h>+#import <MPSNDArray/MPSNDArrayQuantization.h>+#import <MPSNDArray/MPSNDArrayQuantizedMatrixMultiplication.h>diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayIdentity.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayIdentity.h--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayIdentity.h1970-01-01 01:00:00+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayIdentity.h2024-05-30 02:38:54@@ -0,0 +1,65 @@+//+//  MPSNDArrayIdentity.h+//  MPS+//+//  Created by Dhruv Saksena on 8/3/19.+//  Copyright © 2019 Apple. All rights reserved.+//++#ifndef MPSNDArrayIdentity_h+#define MPSNDArrayIdentity_h++#import <MPSNDArray/MPSNDArrayKernel.h>++#pragma mark - Base class Identity Kernels++/*!+ *  @class      MPSNDArrayIdentityKernel+ *+ *  @dependency This depends on Metal.framework.+ *  @abstract   An efficient kernel to handle copies, transposed-copies and reshapes.+ *+ *+ */+MPS_CLASS_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0) )+@interface MPSNDArrayIdentity : MPSNDArrayUnaryKernel++-(nonnull instancetype) initWithDevice: (nonnull id <MTLDevice>) device NS_DESIGNATED_INITIALIZER;++/*! @abstract   Do a reshape operation, either by trying to alias the array, returning an arrayview, or by copying.+ *  @param      cmdBuf          The command buffer into which to encode the kernel, or to create a temporary array alias.+ *  @param      sourceArray    Source array. If this function returns a non-nil result, then the readCount of `sourceArray` is decremented.+ *  @param      shape       The new shape, given in TF dimension ordering (as always with MPSShape).+ *  @param      destinationArray    If not nil, then the result of reshape will be copied to this. Shape of `destinationArray` must match `shape`.+ *  @result     If `destinationArray` is not nil, then `destinationArray`. Otherwise aliasing is tried, and if aliasing is not possible+ *              due to existing slices or transposes nil is returned. If aliasing is successful, then a new arrayview of `sourceArray`+ *              is returned; If `sourceArray` is a `MPSTemporaryArray` then a `MPSTemporaryArray` is returned referencing the same data,+ *              otherwise a `MPSNDArray` type result is returned.+ *   */+-(MPSNDArray * __nullable) reshapeWithCommandBuffer: (__nullable id <MTLCommandBuffer>) cmdBuf+                                        sourceArray: (MPSNDArray * __nonnull) sourceArray+                                              shape: (MPSShape * __nonnull) shape+                                   destinationArray: (MPSNDArray * __nullable) destinationArray;+// Variant with MPS dimension-ordering+-(MPSNDArray * __nullable) reshapeWithCommandBuffer: (__nullable id <MTLCommandBuffer>) cmdBuf+                                        sourceArray: (MPSNDArray * __nonnull) sourceArray+                                     dimensionCount: (NSUInteger) numberOfDimensions+                                     dimensionSizes: (NSUInteger*__nonnull) dimensionSizes+                                   destinationArray: (MPSNDArray * __nullable) destinationArray;++-(MPSNDArray * __nullable) reshapeWithCommandEncoder: (__nullable id <MTLComputeCommandEncoder>) encoder+                                       commandBuffer: (__nullable id <MTLCommandBuffer>) cmdBuf+                                        sourceArray: (MPSNDArray * __nonnull) sourceArray+                                              shape: (MPSShape * __nonnull) shape+                                   destinationArray: (MPSNDArray * __nullable) destinationArray;+// Variant with MPS dimension-ordering+-(MPSNDArray * __nullable) reshapeWithCommandEncoder: (__nullable id <MTLComputeCommandEncoder>) encoder+                                       commandBuffer: (__nullable id <MTLCommandBuffer>) cmdBuf+                                        sourceArray: (MPSNDArray * __nonnull) sourceArray+                                     dimensionCount: (NSUInteger) numberOfDimensions+                                     dimensionSizes: (NSUInteger*__nonnull) dimensionSizes+                                   destinationArray: (MPSNDArray * __nullable) destinationArray;++@end    // MPSNDArrayIdentity++#endif /* MPSNDArrayIdentity_h */diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayQuantization.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayQuantization.h--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayQuantization.h1970-01-01 01:00:00+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayQuantization.h2024-05-30 05:07:59@@ -0,0 +1,125 @@+//+//  MPSNDArrayQuantization.h+//  MPSNDArray+//+//  Created by Saharsh Oza on 4/24/23.+//  Copyright © 2023 Apple. All rights reserved.+//++#ifndef MPSNDArrayQuantization_h+#define MPSNDArrayQuantization_h++#import <MPSCore/MPSCoreTypes.h>+#import <MPSCore/MPSKernel.h>+#import <MPSCore/MPSNDArray.h>++/*! @enum       MPSNDArrayQuantizationScheme+ *  @discussion  Which quantization mode is applied to an MPSNDArray+ *+ *  @constant   MPSNDArrayQuantizationTypeNone              No quantization - inputs are read and outputs are produced in the original datatype.+ *  @constant   MPSNDArrayQuantizationTypeAffine           Dequantization with: y = scale( input - zeroPoint) + minValue+ *  @constant   MPSNDArrayQuantizationTypeLUT           Dequantization with y = lookuptable[ input ]+ */++#if defined(DOXYGEN)+    typedef enum MPSNDArrayQuantizationScheme+#else+    typedef NS_OPTIONS(NSUInteger, MPSNDArrayQuantizationScheme)+#endif+{+    MPSNDArrayQuantizationTypeNone MPS_ENUM_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0) ) MPS_SWIFT_NAME( none ) = 0,+    MPSNDArrayQuantizationTypeAffine MPS_ENUM_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0) ),+    MPSNDArrayQuantizationTypeLUT MPS_ENUM_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0) ),+}+#if defined(DOXYGEN)+    MPSNDArrayQuantizationScheme+#endif+;+++/*!+ *  @class      MPSNDArrayQuantizationDescriptor+ *+ *  @dependency This depends on Metal.framework.+ *  @abstract   Common methods for quantization descriptors+ *+ *+ */+MPS_CLASS_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0) )+@interface MPSNDArrayQuantizationDescriptor : NSObject <NSCopying>++/*! @property  quantizationDataType+ *  @abstract  The datatype to use with quantization - the default is MPSDataTypeUint8+ */+@property (readonly, nonatomic) MPSDataType quantizationDataType;++/*! @property  quantizationScheme+ *  @abstract  The quantization scheme for this descriptor. The default is MPSNDArrayQuantizationTypeNone.+ */+@property (readonly, nonatomic) MPSNDArrayQuantizationScheme quantizationScheme;++@end++/*!+ *  @class      MPSNDArrayAffineQuantizationDescriptor+ *+ *  @dependency This depends on Metal.framework.+ *  @abstract   Describes an affine quantization scheme+ *+ */+MPS_CLASS_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0) )+@interface MPSNDArrayAffineQuantizationDescriptor : MPSNDArrayQuantizationDescriptor++/*! @property  hasZeroPoint+ *  @abstract  If yes then asymmetric quantization is used. See MPSNDArrayQuantizationScheme.+ */+@property (readwrite, nonatomic) BOOL hasZeroPoint;++/*! @property  hasMinValue+ *  @abstract  If yes then offset is used. See MPSNDArrayQuantizationScheme.+ */+@property (readwrite, nonatomic) BOOL hasMinValue;+++- (nonnull instancetype) init;++/*! @abstract   Initializes an affine quantization descriptor.+ *  @param      quantizationDataType    Which quantized datatype is used.+ *  @param      hasZeroPoint        A flag indicating that a zero-point input is expected.+ *  @param      hasMinValue        A flag indicating that a minimum value input is expected.+ *  @result     A new quantization descriptor.+ *   */+- (nonnull instancetype) initWithDataType: (MPSDataType) quantizationDataType+                             hasZeroPoint: (BOOL) hasZeroPoint+                              hasMinValue: (BOOL) hasMinValue;++@end+++/*!+ *  @class      MPSNDArrayLUTQuantizationDescriptor+ *+ *  @dependency This depends on Metal.framework.+ *  @abstract   Describes a lookup-table based quantization scheme+ *+ */+MPS_CLASS_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0) )+@interface MPSNDArrayLUTQuantizationDescriptor : MPSNDArrayQuantizationDescriptor++/*! @abstract   Initializes a scalar lookup-table quantization descriptor.+ *  @param      quantizationDataType    Which quantized datatype is used.+ *  @result     A new quantization descriptor.+ *   */+- (nonnull instancetype) initWithDataType: (MPSDataType) quantizationDataType;++/*! @abstract   Initializes a vector lookup-table quantization descriptor.+ *  @param      quantizationDataType    Which quantized datatype is used.+ *  @param      vectorAxis        The quantization vector axis - this axis will receive the vector component in the destination.+ *  @result     A new quantization descriptor.+ *   */+- (nonnull instancetype) initWithDataType: (MPSDataType) quantizationDataType+                               vectorAxis: (NSUInteger) vectorAxis;++@end++#endif /* MPSNDArrayQuantization_h */diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayQuantizedMatrixMultiplication.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayQuantizedMatrixMultiplication.h--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayQuantizedMatrixMultiplication.h1970-01-01 01:00:00+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNDArray.framework/Headers/MPSNDArrayQuantizedMatrixMultiplication.h2024-05-30 03:40:26@@ -0,0 +1,127 @@+//+//  MPSNDArrayQuantizedMatrixMultiplication.h+//  MPSNDArray+//+//  Copyright © 2023 Apple. All rights reserved.+//++#ifndef MPSNDArrayQuantizedMatrixMultiplication_h+#define MPSNDArrayQuantizedMatrixMultiplication_h++#import <MPSNDArray/MPSNDArrayMatrixMultiplication.h>+#import <MPSNDArray/MPSNDArrayQuantization.h>++/*!+ *  @class      MPSNDArrayQuantizedMatrixMultiplication+ *+ *  @dependency This depends on Metal.framework.+ *  @abstract   A quantized matrix multiplication kernel: C = AB, where each input A and B can be quantized.+ *  @discussion The kernel works with 2-8 inputs, order of inputs: First all LHS inputs, then all RHS inputs.+ *              The order of inputs for LUT based LHS or RHS: 1) quantized input 2) Lookup Table.+ *              The order of inputs for affine LHS or RHS: 1) quantized input 2) scale 3) zeropoint 4) minValue.+ *              The full order of inputs for the encode methods is:+ *                   `[LHS, RHS, <LHS quantization inputs>, <RHS quantization inputs>]`,+ *              where `LHS` is the left input (quantized or float) `RHS` is the right input (quantized or float) and+ *              `<LHS quantization inputs>` are the auxiliary quantization inputs for the LHS array (scales, zeropoints etc).+ *              and `<RHS quantization inputs>` are the auxiliary quantization input for the RHS array.+ *              The inputs are provided as a compacted `NSArray<MPSNDArray *>`, for example for computing+ *              `C = A * B^T` where `A` is quantized with a LUT and `B` is quantized with affine quantization that+ *              uses scale and minValue the array of inputs is:+ *              ` [ Aq, Bq^T, ALUT, BScale^T, BMin^T ] `.+ *              NOTE: For affine scale, zeropoint and minValue must have same transposes as quantized input.+ *+ */+MPS_CLASS_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0) )+@interface MPSNDArrayQuantizedMatrixMultiplication : MPSNDArrayMatrixMultiplication++-(nonnull instancetype) initWithDevice:(nonnull id<MTLDevice>)device+                           sourceCount:(NSUInteger) sourceCount NS_UNAVAILABLE;++/*! @abstract   Initializes a quantized matrix multiplication kernel.+ *  @param      leftQuantizationDescriptor    The quantization definition for the LHS input.+ *  @param      rightQuantizationDescriptor    The quantization definition for the RHS input.+ *  @result     A new valid quantized matrix multiplication kernel.+ *   */+- (nonnull instancetype) initWithDevice: (nonnull id<MTLDevice>) device+             leftQuantizationDescriptor: (MPSNDArrayQuantizationDescriptor* _Nullable) leftQuantizationDescriptor+            rightQuantizationDescriptor: (MPSNDArrayQuantizationDescriptor* _Nullable) rightQuantizationDescriptor;++@end++/*!+ *  @class      MPSNDArrayLUTDequantize+ *+ *  @dependency This depends on Metal.framework.+ *  @abstract   A kernel which dequantizes a lookup-table based NDArray.+ *  @discussion The kernel works with 2 inputs: 1) The quantized input, 2) The LookUp table array.+ *+ */++MPS_CLASS_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0) )+@interface MPSNDArrayLUTDequantize : MPSNDArrayMultiaryKernel++-(nonnull instancetype) initWithDevice: (nonnull id <MTLDevice>) device+NS_DESIGNATED_INITIALIZER;++-(nonnull instancetype) initWithDevice:(nonnull id<MTLDevice>)device+                           sourceCount:(NSUInteger) sourceCount NS_UNAVAILABLE;++@end++/*!+ *  @class      MPSNDArrayVectorLUTDequantize+ *+ *  @dependency This depends on Metal.framework.+ *  @abstract   A kernel which dequantizes a lookup-table based NDArray with vector LUT support.+ *  @discussion The kernel works with 2 inputs: 1) The quantized input, 2) The LookUp table array.+ *+ */+MPS_CLASS_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0) )+@interface MPSNDArrayVectorLUTDequantize : MPSNDArrayMultiaryKernel++/*! @property  vectorAxis+ *  @abstract  Which axis in the destination will receive the vector component, must be less than 4.+ */+@property(readwrite, nonatomic) NSUInteger vectorAxis;++/*! @abstract   Initializes a kernel for vector-based LUT dequantization.+ *  @param      device    The Metal device to be used with this kernel.+ *  @param      axis        The vector axis in the output.+ *  @result     A new vector LUT dequantization kernel.+ *   */+-(nonnull instancetype) initWithDevice: (nonnull id <MTLDevice>) device+                                  axis: (NSUInteger) axis+NS_DESIGNATED_INITIALIZER;++-(nonnull instancetype) initWithDevice:(nonnull id<MTLDevice>)device+                           sourceCount:(NSUInteger) sourceCount NS_UNAVAILABLE;++@end++/*!+ *  @class      MPSNDArrayAffineInt4Dequantize+ *+ *  @dependency This depends on Metal.framework.+ *  @abstract   A kernel which dequantizes an input with affine quantization scheme.+ *  @discussion The kernel works with 2-4 inputs, order of inputs: 1) quantized input, 2) scale, 3) zeropoint, 4) minValue+ *+ */+MPS_CLASS_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0) )+@interface MPSNDArrayAffineInt4Dequantize : MPSNDArrayMultiaryKernel++-(nonnull instancetype) initWithDevice: (nonnull id <MTLDevice>) device NS_UNAVAILABLE;++/*! @abstract   Initializes a kernel for 4-bit affine dequantization.+ *  @param      device    The Metal device to be used with this kernel.+ *  @param      quantizationDescriptor        Describes the quantization scheme.+ *  @result     A new vector LUT dequantization kernel.+ *   */+-(nonnull instancetype) initWithDevice:(nonnull id<MTLDevice>)device+                quantizationDescriptor:(MPSNDArrayAffineQuantizationDescriptor* __nonnull) quantizationDescriptor;++-(nonnull instancetype) initWithDevice:(nonnull id<MTLDevice>)device+                           sourceCount:(NSUInteger) sourceCount NS_UNAVAILABLE;++@end++#endif /* MPSNDArrayQuantizedMatrixMultiplication_h */
Clone this wiki locally

[8]ページ先頭

©2009-2025 Movatter.jp