MetalPerformanceShadersGraph macOS 11.3 to 12.0 API Differences

MPSGraph.h
Added MPSGraphCompilationDescriptor
Added -[MPSGraphCompilationDescriptor disableTypeInference]
Added -[MPSGraph compileWithDevice:feeds:targetTensors:targetOperations:compilationDescriptor:]
MPSGraphActivationOps.h
Added -[MPSGraph leakyReLUWithTensor:alpha:name:]
Added -[MPSGraph leakyReLUWithTensor:alphaTensor:name:]
Added -[MPSGraph leakyReLUGradientWithIncomingGradient:sourceTensor:alphaTensor:name:]
MPSGraphArithmeticOps.h
Added -[MPSGraph minimumWithNaNPropagationWithPrimaryTensor:secondaryTensor:name:]
Added -[MPSGraph maximumWithNaNPropagationWithPrimaryTensor:secondaryTensor:name:]
MPSGraphControlFlowOps.h
Added MPSGraphControlFlowDependencyBlock
Added -[MPSGraph controlDependencyWithOperations:dependentBlock:name:]
Added MPSGraphIfThenElseBlock
Added -[MPSGraph ifWithPredicateTensor:thenBlock:elseBlock:name:]
Added MPSGraphWhileBeforeBlock
Added MPSGraphWhileAfterBlock
Added -[MPSGraph whileWithInitialInputs:before:after:name:]
Added MPSGraphForLoopBodyBlock
Added -[MPSGraph forLoopWithLowerBound:upperBound:step:initialBodyArguments:body:name:]
Added -[MPSGraph forLoopWithNumberOfIterations:initialBodyArguments:body:name:]
MPSGraphConvolutionOps.h
Added -[MPSGraph convolution2DDataGradientWithIncomingGradientTensor:weightsTensor:outputShapeTensor:forwardConvolutionDescriptor:name:]
Added -[MPSGraph convolution2DWeightsGradientWithIncomingGradientTensor:sourceTensor:outputShapeTensor:forwardConvolutionDescriptor:name:]
MPSGraphConvolutionTransposeOps.h
Added -[MPSGraph convolutionTranspose2DWithSourceTensor:weightsTensor:outputShapeTensor:descriptor:name:]
Added -[MPSGraph convolutionTranspose2DDataGradientWithIncomingGradientTensor:weightsTensor:outputShapeTensor:forwardConvolutionDescriptor:name:]
Added -[MPSGraph convolutionTranspose2DWeightsGradientWithIncomingGradientTensor:sourceTensor:outputShapeTensor:forwardConvolutionDescriptor:name:]
MPSGraphCore.h
Added MPSGraphType
Added MPSGraphPaddingStyleExplicitOffset
Added MPSGraphPaddingModeClampToEdge
Added MPSGraphPaddingModeZero
Added MPSGraphPaddingModePeriodic
Added MPSGraphPaddingModeAntiPeriodic
Added MPSGraphReductionMode
Added MPSGraphReductionModeMin
Added MPSGraphReductionModeMax
Added MPSGraphReductionModeSum
Added MPSGraphReductionModeProduct
Added MPSGraphReductionModeArgumentMin
Added MPSGraphReductionModeArgumentMax
Modified MPSGraphShapedType
SuperclassProtocols
FromNSObjectNSCopying
ToMPSGraphTypenone

MPSGraphDepthwiseConvolutionOps.h
Added MPSGraphDepthwiseConvolution3DOpDescriptor
Added MPSGraphDepthwiseConvolution3DOpDescriptor.strides
Added MPSGraphDepthwiseConvolution3DOpDescriptor.dilationRates
Added MPSGraphDepthwiseConvolution3DOpDescriptor.paddingValues
Added MPSGraphDepthwiseConvolution3DOpDescriptor.paddingStyle
Added MPSGraphDepthwiseConvolution3DOpDescriptor.channelDimensionIndex
Added +[MPSGraphDepthwiseConvolution3DOpDescriptor descriptorWithStrides:dilationRates:paddingValues:paddingStyle:]
Added +[MPSGraphDepthwiseConvolution3DOpDescriptor descriptorWithPaddingStyle:]
Added -[MPSGraph depthwiseConvolution3DWithSourceTensor:weightsTensor:descriptor:name:]
Added -[MPSGraph depthwiseConvolution3DDataGradientWithIncomingGradientTensor:weightsTensor:outputShape:descriptor:name:]
Added -[MPSGraph depthwiseConvolution3DWeightsGradientWithIncomingGradientTensor:sourceTensor:outputShape:descriptor:name:]
MPSGraphExecutable.h
Added MPSGraphExecutableCompletionHandler
Added MPSGraphExecutableScheduledHandler
Added MPSGraphExecutableExecutionDescriptor
Added MPSGraphExecutableExecutionDescriptor.scheduledHandler
Added MPSGraphExecutableExecutionDescriptor.completionHandler
Added MPSGraphExecutableExecutionDescriptor.waitUntilCompleted
Added MPSGraphExecutable
Added MPSGraphExecutable.options
Added MPSGraphExecutable.feedTensors
Added MPSGraphExecutable.targetTensors
Added -[MPSGraphExecutable specializeWithDevice:inputTypes:compilationDescriptor:]
Added -[MPSGraphExecutable runWithMTLCommandQueue:inputsArray:resultsArray:executionDescriptor:]
Added -[MPSGraphExecutable runAsyncWithMTLCommandQueue:inputsArray:resultsArray:executionDescriptor:]
Added -[MPSGraphExecutable encodeToCommandBuffer:inputsArray:resultsArray:executionDescriptor:]
MPSGraphLossOps.h
Added MPSGraphLossReductionTypeMean
MPSGraphPoolingOps.h
Added MPSGraphPooling2DOpDescriptor.ceilMode
Added MPSGraphPooling2DOpDescriptor.includeZeroPadToAverage
Added MPSGraphPooling4DOpDescriptor
Added MPSGraphPooling4DOpDescriptor.kernelSizes
Added MPSGraphPooling4DOpDescriptor.strides
Added MPSGraphPooling4DOpDescriptor.dilationRates
Added MPSGraphPooling4DOpDescriptor.paddingValues
Added MPSGraphPooling4DOpDescriptor.paddingStyle
Added MPSGraphPooling4DOpDescriptor.ceilMode
Added MPSGraphPooling4DOpDescriptor.includeZeroPadToAverage
Added +[MPSGraphPooling4DOpDescriptor descriptorWithKernelSizes:strides:dilationRates:paddingValues:paddingStyle:]
Added +[MPSGraphPooling4DOpDescriptor descriptorWithKernelSizes:paddingStyle:]
Added -[MPSGraph maxPooling4DWithSourceTensor:descriptor:name:]
Added -[MPSGraph maxPooling4DGradientWithGradientTensor:sourceTensor:descriptor:name:]
Added -[MPSGraph avgPooling4DWithSourceTensor:descriptor:name:]
Added -[MPSGraph avgPooling4DGradientWithGradientTensor:sourceTensor:descriptor:name:]
Added -[MPSGraph L2NormPooling4DWithSourceTensor:descriptor:name:]
Added -[MPSGraph L2NormPooling4DGradientWithGradientTensor:sourceTensor:descriptor:name:]
MPSGraphReductionOps.h
Added -[MPSGraph reductionArgMaximumWithTensor:axis:name:]
Added -[MPSGraph reductionArgMinimumWithTensor:axis:name:]
MPSGraphResizeOps.h
Added -[MPSGraph resizeTensor:sizeTensor:mode:centerResult:alignCorners:layout:name:]
MPSGraphScatterNDOps.h
Added -[MPSGraph scatterNDWithDataTensor:updatesTensor:indicesTensor:batchDimensions:mode:name:]
Added -[MPSGraph scatterWithUpdatesTensor:indicesTensor:shape:axis:mode:name:]
Added -[MPSGraph scatterWithDataTensor:updatesTensor:indicesTensor:axis:mode:name:]
MPSGraphSparseOps.h
Added MPSGraphSparseStorageType
Added MPSGraphSparseStorageCOO
Added MPSGraphSparseStorageCSC
Added MPSGraphSparseStorageCSR
Added MPSGraphCreateSparseOpDescriptor
Added MPSGraphCreateSparseOpDescriptor.sparseStorageType
Added MPSGraphCreateSparseOpDescriptor.dataType
Added +[MPSGraphCreateSparseOpDescriptor descriptorWithStorageType:dataType:]
Added -[MPSGraph sparseTensorWithType:tensors:shape:dataType:name:]
Added -[MPSGraph sparseTensorWithDescriptor:tensors:shape:name:]
MPSGraphStencilOps.h
Added MPSGraphStencilOpDescriptor
Added MPSGraphStencilOpDescriptor.reductionMode
Added MPSGraphStencilOpDescriptor.offsets
Added MPSGraphStencilOpDescriptor.strides
Added MPSGraphStencilOpDescriptor.dilationRates
Added MPSGraphStencilOpDescriptor.explicitPadding
Added MPSGraphStencilOpDescriptor.boundaryMode
Added MPSGraphStencilOpDescriptor.paddingStyle
Added MPSGraphStencilOpDescriptor.paddingConstant
Added +[MPSGraphStencilOpDescriptor descriptorWithReductionMode:offsets:strides:dilationRates:explicitPadding:boundaryMode:paddingStyle:paddingConstant:]
Added +[MPSGraphStencilOpDescriptor descriptorWithOffsets:explicitPadding:]
Added +[MPSGraphStencilOpDescriptor descriptorWithExplicitPadding:]
Added +[MPSGraphStencilOpDescriptor descriptorWithPaddingStyle:]
Added -[MPSGraph stencilWithSourceTensor:weightsTensor:descriptor:name:]
MPSGraphTensorShapeOps.h
Added -[MPSGraph reshapeTensor:withShapeTensor:name:]
Added -[MPSGraph concatTensors:dimension:interleave:name:]
Added -[MPSGraph spaceToDepth2DTensor:widthAxisTensor:heightAxisTensor:depthAxisTensor:blockSize:usePixelShuffleOrder:name:]
Added -[MPSGraph depthToSpace2DTensor:widthAxisTensor:heightAxisTensor:depthAxisTensor:blockSize:usePixelShuffleOrder:name:]
Added -[MPSGraph spaceToDepth2DTensor:widthAxis:heightAxis:depthAxis:blockSize:usePixelShuffleOrder:name:]
Added -[MPSGraph depthToSpace2DTensor:widthAxis:heightAxis:depthAxis:blockSize:usePixelShuffleOrder:name:]
Added -[MPSGraph reverseTensor:axesTensor:name:]
Added -[MPSGraph reverseTensor:axes:name:]
Added -[MPSGraph reverseTensor:name:]
Added -[MPSGraph flatten2DTensor:axis:name:]
Added -[MPSGraph flatten2DTensor:axisTensor:name:]
Added -[MPSGraph broadcastTensor:toShape:name:]
Added -[MPSGraph broadcastTensor:toShapeTensor:name:]
Added -[MPSGraph shapeOfTensor:name:]
Added -[MPSGraph castTensor:toType:name:]
Modified -[MPSGraph concatTensor:withTensor:dimension:name:]
Declaration
From- (MPSGraphTensor *)concatTensor:(MPSGraphTensor *)tensor withTensor:(MPSGraphTensor *)tensor2 dimension:(NSUInteger)dimensionIndex name:(NSString *)name
To- (MPSGraphTensor *)concatTensor:(MPSGraphTensor *)tensor withTensor:(MPSGraphTensor *)tensor2 dimension:(NSInteger)dimensionIndex name:(NSString *)name

Modified -[MPSGraph concatTensors:dimension:name:]
Declaration
From- (MPSGraphTensor *)concatTensors:(NSArray<MPSGraphTensor *> *)tensors dimension:(NSUInteger)dimensionIndex name:(NSString *)name
To- (MPSGraphTensor *)concatTensors:(NSArray<MPSGraphTensor *> *)tensors dimension:(NSInteger)dimensionIndex name:(NSString *)name

MPSGraphTopKOps.h
Added -[MPSGraph topKWithSourceTensor:k:name:]
Added -[MPSGraph topKWithSourceTensor:kTensor:name:]
Added -[MPSGraph topKWithGradientTensor:source:k:name:]
Added -[MPSGraph topKWithGradientTensor:source:kTensor:name:]