#pragma once #include // TODO: Remove me when moved to MacOS 13 #if !defined(__MAC_13_2) && \ (!defined(MAC_OS_X_VERSION_13_2) || (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_13_2)) @interface FakeMPSGraphConvolution3DOpDescriptor : NSObject @property (readwrite, nonatomic) NSUInteger strideInX; @property (readwrite, nonatomic) NSUInteger strideInY; @property (readwrite, nonatomic) NSUInteger strideInZ; @property (readwrite, nonatomic) NSUInteger dilationRateInX; @property (readwrite, nonatomic) NSUInteger dilationRateInY; @property (readwrite, nonatomic) NSUInteger dilationRateInZ; @property (readwrite, nonatomic) NSUInteger paddingLeft; @property (readwrite, nonatomic) NSUInteger paddingRight; @property (readwrite, nonatomic) NSUInteger paddingTop; @property (readwrite, nonatomic) NSUInteger paddingBottom; @property (readwrite, nonatomic) NSUInteger paddingFront; @property (readwrite, nonatomic) NSUInteger paddingBack; @property (readwrite, nonatomic) MPSGraphPaddingStyle paddingStyle; @property (readwrite, nonatomic) MPSGraphTensorNamedDataLayout dataLayout; @property (readwrite, nonatomic) MPSGraphTensorNamedDataLayout weightsLayout; @property (readwrite, nonatomic) NSUInteger groups; @end @compatibility_alias MPSGraphConvolution3DOpDescriptor FakeMPSGraphConvolution3DOpDescriptor; #endif @interface MPSGraph (VenturaOps) #if !defined(__MAC_13_0) && \ (!defined(MAC_OS_X_VERSION_13_0) || (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_13_0)) typedef NS_ENUM(NSUInteger, MPSGraphResizeNearestRoundingMode) { MPSGraphResizeNearestRoundingModeRoundPreferCeil = 0L, MPSGraphResizeNearestRoundingModeRoundPreferFloor = 1L, MPSGraphResizeNearestRoundingModeCeil = 2L, MPSGraphResizeNearestRoundingModeFloor = 3L, MPSGraphResizeNearestRoundingModeRoundToEven = 4L, MPSGraphResizeNearestRoundingModeRoundToOdd = 5L, }; // Define complex enums for MacOS 12 #define MPSDataTypeComplexBit 0x01000000 #define MPSDataTypeComplexFloat32 ((MPSDataType) (MPSDataTypeFloatBit | MPSDataTypeComplexBit | 64)) #define MPSDataTypeComplexFloat16 ((MPSDataType) (MPSDataTypeFloatBit | MPSDataTypeComplexBit | 32)) #endif - (MPSGraphTensor * _Nonnull) convolution3DWithSourceTensor:(MPSGraphTensor * _Nonnull) source weightsTensor:(MPSGraphTensor * _Nonnull) weights descriptor:(MPSGraphConvolution3DOpDescriptor * _Nonnull) descriptor name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) convolution3DDataGradientWithIncomingGradientTensor:(MPSGraphTensor * _Nonnull) incomingGradient weightsTensor:(MPSGraphTensor * _Nonnull) weights outputShape:(MPSShape * _Nonnull) outputShape forwardConvolutionDescriptor:(MPSGraphConvolution3DOpDescriptor * _Nonnull) forwardConvolutionDescriptor name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) convolution3DWeightsGradientWithIncomingGradientTensor:(MPSGraphTensor * _Nonnull) incomingGradient sourceTensor:(MPSGraphTensor * _Nonnull) source outputShape:(MPSShape * _Nonnull) outputShape forwardConvolutionDescriptor:(MPSGraphConvolution3DOpDescriptor * _Nonnull) forwardConvolutionDescriptor name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull)cumulativeSumWithTensor:(MPSGraphTensor * _Nonnull)tensor axis:(NSInteger)axis name:(NSString * _Nullable)name; - (MPSGraphTensor * _Nonnull)sortWithTensor:(MPSGraphTensor * _Nonnull)tensor axis:(NSInteger)axis name:(NSString * _Nullable)name; - (MPSGraphTensor * _Nonnull) sortWithTensor:(MPSGraphTensor * _Nonnull) tensor axis:(NSInteger) axis descending:(BOOL) descending name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) sortWithTensor:(MPSGraphTensor * _Nonnull) tensor axisTensor:(MPSGraphTensor * _Nonnull) axisTensor descending:(BOOL) descending name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) sortWithTensor:(MPSGraphTensor * _Nonnull) tensor axisTensor:(MPSGraphTensor * _Nonnull) axisTensor name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull)argSortWithTensor:(MPSGraphTensor * _Nonnull)tensor axis:(NSInteger)axis name:(NSString * _Nullable)name; - (MPSGraphTensor * _Nonnull) argSortWithTensor:(MPSGraphTensor * _Nonnull) tensor axis:(NSInteger) axis descending:(BOOL) descending name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) argSortWithTensor:(MPSGraphTensor * _Nonnull) tensor axisTensor:(MPSGraphTensor * _Nonnull) axisTensor descending:(BOOL) descending name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) argSortWithTensor:(MPSGraphTensor * _Nonnull) tensor axisTensor:(MPSGraphTensor * _Nonnull) axisTensor name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull)inverseOfTensor:(MPSGraphTensor * _Nonnull) inputTensor name:(NSString * _Nullable)name; - (MPSGraphTensor * _Nonnull) resizeNearestWithTensor:(MPSGraphTensor * _Nonnull) imagesTensor sizeTensor:(MPSGraphTensor * _Nonnull) size nearestRoundingMode:(MPSGraphResizeNearestRoundingMode) nearestRoundingMode centerResult:(BOOL) centerResult alignCorners:(BOOL) alignCorners layout:(MPSGraphTensorNamedDataLayout) layout name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) resizeNearestWithTensor:(MPSGraphTensor * _Nonnull) imagesTensor sizeTensor:(MPSGraphTensor * _Nonnull) size scaleOffsetTensor:(MPSGraphTensor * _Nonnull) scaleOffset nearestRoundingMode:(MPSGraphResizeNearestRoundingMode) nearestRoundingMode layout:(MPSGraphTensorNamedDataLayout) layout name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) resizeBilinearWithTensor:(MPSGraphTensor * _Nonnull) imagesTensor sizeTensor:(MPSGraphTensor * _Nonnull) size centerResult:(BOOL) centerResult alignCorners:(BOOL) alignCorners layout:(MPSGraphTensorNamedDataLayout) layout name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) resizeBilinearWithTensor:(MPSGraphTensor * _Nonnull) imagesTensor sizeTensor:(MPSGraphTensor * _Nonnull) size scaleOffsetTensor:(MPSGraphTensor * _Nonnull) scaleOffset layout:(MPSGraphTensorNamedDataLayout) layout name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) resizeNearestWithGradientTensor:(MPSGraphTensor * _Nonnull) gradient input:(MPSGraphTensor * _Nonnull) input nearestRoundingMode:(MPSGraphResizeNearestRoundingMode) nearestRoundingMode centerResult:(BOOL) centerResult alignCorners:(BOOL) alignCorners layout:(MPSGraphTensorNamedDataLayout) layout name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) resizeNearestWithGradientTensor:(MPSGraphTensor * _Nonnull) gradient input:(MPSGraphTensor * _Nonnull) input scaleOffsetTensor:(MPSGraphTensor * _Nonnull) scaleOffset nearestRoundingMode:(MPSGraphResizeNearestRoundingMode) nearestRoundingMode layout:(MPSGraphTensorNamedDataLayout) layout name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) resizeBilinearWithGradientTensor:(MPSGraphTensor * _Nonnull) gradient input:(MPSGraphTensor * _Nonnull) input centerResult:(BOOL) centerResult alignCorners:(BOOL) alignCorners layout:(MPSGraphTensorNamedDataLayout) layout name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) resizeBilinearWithGradientTensor:(MPSGraphTensor * _Nonnull) gradient input:(MPSGraphTensor * _Nonnull) input scaleOffsetTensor:(MPSGraphTensor * _Nonnull) scaleOffset layout:(MPSGraphTensorNamedDataLayout) layout name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) sampleGridWithSourceTensor:(MPSGraphTensor * _Nonnull) source coordinateTensor:(MPSGraphTensor * _Nonnull) coordinates layout:(MPSGraphTensorNamedDataLayout) layout normalizeCoordinates:(BOOL) normalizeCoordinates relativeCoordinates:(BOOL) relativeCoordinates alignCorners:(BOOL) alignCorners paddingMode:(MPSGraphPaddingMode) paddingMode samplingMode:(MPSGraphResizeMode) samplingMode constantValue:(double) constantValue name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) sampleGridWithSourceTensor:(MPSGraphTensor * _Nonnull) source coordinateTensor:(MPSGraphTensor * _Nonnull) coordinates layout:(MPSGraphTensorNamedDataLayout) layout normalizeCoordinates:(BOOL) normalizeCoordinates relativeCoordinates:(BOOL) relativeCoordinates alignCorners:(BOOL) alignCorners paddingMode:(MPSGraphPaddingMode) paddingMode nearestRoundingMode:(MPSGraphResizeNearestRoundingMode) nearestRoundingMode constantValue:(double) constantValue name:(NSString * _Nullable) name; - (MPSGraphTensor * _Nonnull) truncateWithTensor:(MPSGraphTensor * _Nonnull) tensor name:(NSString * _Nullable) name; @end