--- title: "Xamarin.Mac SDK API diff: 8.10.0 vs 8.11.0" description: List of API changes between Xamarin.Mac versions 8.10.0 and 8.11.0. author: spouliot ms.author: sepoulio ms.date: 7/20/2022 ms.topic: article ms.assetid: 615f43db-017f-cc2a-4c5c-69d2e258bfca ms.prod: xamarin --- # Xamarin.Mac SDK API diff: 8.10.0 vs 8.11.0 <a name="Xamarin.Mac.dll" /> ## Xamarin.Mac.dll ### Namespace AppKit #### Type Changed: AppKit.NSMenuToolbarItem Added constructor: ```csharp public NSMenuToolbarItem (string itemIdentifier); ``` #### Type Changed: AppKit.NSSharingServicePickerToolbarItem Added constructor: ```csharp public NSSharingServicePickerToolbarItem (string itemIdentifier); ``` #### Type Changed: AppKit.NSView Added method: ```csharp public nint AddToolTip (CoreGraphics.CGRect rect, Foundation.NSObject owner); ``` ### Namespace Foundation #### Type Changed: Foundation.NSObject Added methods: ```csharp public static NSObject Alloc (ObjCRuntime.Class kls); public void Init (); public static void InvokeInBackground (System.Action action); ``` ### Namespace MetalPerformanceShaders #### Type Changed: MetalPerformanceShaders.MPSNDArray Added methods: ```csharp public static MPSNDArray Create (Metal.IMTLDevice device, System.ReadOnlySpan<float> values, int[] shape); public void Read (System.Span<float> values); public void Write (System.ReadOnlySpan<float> values); ``` ### Namespace ObjCRuntime #### Type Changed: ObjCRuntime.Constants Modified fields: ```diff -public const string Version = "8.10.0"; +public const string Version = "8.11.0"; ``` Added field: ```csharp public static const string MetalPerformanceShadersGraphLibrary = "/System/Library/Frameworks/MetalPerformanceShadersGraph.framework/MetalPerformanceShadersGraph"; ``` #### Type Changed: ObjCRuntime.Dlfcn Added method: ```csharp public static IntPtr dlopen (string path, Dlfcn.Mode mode); ``` #### New Type: ObjCRuntime.Dlfcn.Mode ```csharp [Serializable] [Flags] public enum Mode { First = 256, Global = 8, Lazy = 1, Local = 4, NoDelete = 128, NoLoad = 16, None = 0, Now = 2, } ``` #### Type Changed: ObjCRuntime.ThrowHelper Added methods: ```csharp public static void ThrowArgumentNullException (string argumentName, string message); public static void ThrowArgumentOutOfRangeException (string argumentName, object actualValue, string message); ``` #### New Type: ObjCRuntime.NativeNameAttribute ```csharp public sealed class NativeNameAttribute : System.Attribute { // constructors public NativeNameAttribute (string name); // properties public string NativeName { get; set; } } ``` ### New Namespace MetalPerformanceShadersGraph #### New Type: MetalPerformanceShadersGraph.MPSGraph ```csharp public class MPSGraph : Foundation.NSObject { // constructors public MPSGraph (); protected MPSGraph (Foundation.NSObjectFlag t); protected MPSGraph (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MPSGraphOptions Options { get; set; } public virtual MPSGraphTensor[] PlaceholderTensors { get; } // methods public virtual MPSGraphExecutable Compile (MPSGraphDevice device, Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphShapedType> feeds, MPSGraphTensor[] targetTensors, MPSGraphOperation[] targetOperations, MPSGraphCompilationDescriptor compilationDescriptor); public static MPSGraph Create (); public virtual void Encode (MetalPerformanceShaders.MPSCommandBuffer commandBuffer, Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> feeds, MPSGraphOperation[] targetOperations, Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> resultsDictionary, MPSGraphExecutionDescriptor executionDescriptor); public virtual Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> Encode (MetalPerformanceShaders.MPSCommandBuffer commandBuffer, Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> feeds, MPSGraphTensor[] targetTensors, MPSGraphOperation[] targetOperations, MPSGraphExecutionDescriptor executionDescriptor); public virtual Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> Run (Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> feeds, MPSGraphTensor[] targetTensors, MPSGraphOperation[] targetOperations); public virtual void Run (Metal.IMTLCommandQueue commandQueue, Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> feeds, MPSGraphOperation[] targetOperations, Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> resultsDictionary); public virtual Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> Run (Metal.IMTLCommandQueue commandQueue, Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> feeds, MPSGraphTensor[] targetTensors, MPSGraphOperation[] targetOperations); public virtual Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> RunAsync (Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> feeds, MPSGraphTensor[] targetTensors, MPSGraphOperation[] targetOperations, MPSGraphExecutionDescriptor executionDescriptor); public virtual void RunAsync (Metal.IMTLCommandQueue commandQueue, Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> feeds, MPSGraphOperation[] targetOperations, Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> resultsDictionary, MPSGraphExecutionDescriptor executionDescriptor); public virtual Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> RunAsync (Metal.IMTLCommandQueue commandQueue, Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> feeds, MPSGraphTensor[] targetTensors, MPSGraphOperation[] targetOperations, MPSGraphExecutionDescriptor executionDescriptor); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphCompilationDescriptor ```csharp public class MPSGraphCompilationDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MPSGraphCompilationDescriptor (); protected MPSGraphCompilationDescriptor (Foundation.NSObjectFlag t); protected MPSGraphCompilationDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void DisableTypeInference (); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphCompletionHandler ```csharp public sealed delegate MPSGraphCompletionHandler : System.MulticastDelegate { // constructors public MPSGraphCompletionHandler (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> resultsDictionary, Foundation.NSError error, System.AsyncCallback callback, object object); public virtual void EndInvoke (System.IAsyncResult result); public virtual void Invoke (Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> resultsDictionary, Foundation.NSError error); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphControlFlowDependencyBlock ```csharp public sealed delegate MPSGraphControlFlowDependencyBlock : System.MulticastDelegate { // constructors public MPSGraphControlFlowDependencyBlock (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (System.AsyncCallback callback, object object); public virtual MPSGraphTensor[] EndInvoke (System.IAsyncResult result); public virtual MPSGraphTensor[] Invoke (); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphConvolution2DOpDescriptor ```csharp public class MPSGraphConvolution2DOpDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MPSGraphConvolution2DOpDescriptor (); protected MPSGraphConvolution2DOpDescriptor (Foundation.NSObjectFlag t); protected MPSGraphConvolution2DOpDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MPSGraphTensorNamedDataLayout DataLayout { get; set; } public virtual nuint DilationRateInX { get; set; } public virtual nuint DilationRateInY { get; set; } public virtual nuint Groups { get; set; } public virtual nuint PaddingBottom { get; set; } public virtual nuint PaddingLeft { get; set; } public virtual nuint PaddingRight { get; set; } public virtual MPSGraphPaddingStyle PaddingStyle { get; set; } public virtual nuint PaddingTop { get; set; } public virtual nuint StrideInX { get; set; } public virtual nuint StrideInY { get; set; } public virtual MPSGraphTensorNamedDataLayout WeightsLayout { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static MPSGraphConvolution2DOpDescriptor Create (nuint strideInX, nuint strideInY, nuint dilationRateInX, nuint dilationRateInY, nuint groups, MPSGraphPaddingStyle paddingStyle, MPSGraphTensorNamedDataLayout dataLayout, MPSGraphTensorNamedDataLayout weightsLayout); public static MPSGraphConvolution2DOpDescriptor Create (nuint strideInX, nuint strideInY, nuint dilationRateInX, nuint dilationRateInY, nuint groups, nuint paddingLeft, nuint paddingRight, nuint paddingTop, nuint paddingBottom, MPSGraphPaddingStyle paddingStyle, MPSGraphTensorNamedDataLayout dataLayout, MPSGraphTensorNamedDataLayout weightsLayout); public virtual void SetExplicitPadding (nuint paddingLeft, nuint paddingRight, nuint paddingTop, nuint paddingBottom); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphCreateSparseOpDescriptor ```csharp public class MPSGraphCreateSparseOpDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MPSGraphCreateSparseOpDescriptor (); protected MPSGraphCreateSparseOpDescriptor (Foundation.NSObjectFlag t); protected MPSGraphCreateSparseOpDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MetalPerformanceShaders.MPSDataType DataType { get; set; } public virtual MPSGraphSparseStorageType SparseStorageType { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static MPSGraphCreateSparseOpDescriptor Create (MPSGraphSparseStorageType sparseStorageType, MetalPerformanceShaders.MPSDataType dataType); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphDepthwiseConvolution2DOpDescriptor ```csharp public class MPSGraphDepthwiseConvolution2DOpDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MPSGraphDepthwiseConvolution2DOpDescriptor (); protected MPSGraphDepthwiseConvolution2DOpDescriptor (Foundation.NSObjectFlag t); protected MPSGraphDepthwiseConvolution2DOpDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MPSGraphTensorNamedDataLayout DataLayout { get; set; } public virtual nuint DilationRateInX { get; set; } public virtual nuint DilationRateInY { get; set; } public virtual nuint PaddingBottom { get; set; } public virtual nuint PaddingLeft { get; set; } public virtual nuint PaddingRight { get; set; } public virtual MPSGraphPaddingStyle PaddingStyle { get; set; } public virtual nuint PaddingTop { get; set; } public virtual nuint StrideInX { get; set; } public virtual nuint StrideInY { get; set; } public virtual MPSGraphTensorNamedDataLayout WeightsLayout { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static MPSGraphDepthwiseConvolution2DOpDescriptor Create (MPSGraphTensorNamedDataLayout dataLayout, MPSGraphTensorNamedDataLayout weightsLayout); public static MPSGraphDepthwiseConvolution2DOpDescriptor Create (nuint strideInX, nuint strideInY, nuint dilationRateInX, nuint dilationRateInY, nuint paddingLeft, nuint paddingRight, nuint paddingTop, nuint paddingBottom, MPSGraphPaddingStyle paddingStyle, MPSGraphTensorNamedDataLayout dataLayout, MPSGraphTensorNamedDataLayout weightsLayout); public virtual void SetExplicitPadding (nuint paddingLeft, nuint paddingRight, nuint paddingTop, nuint paddingBottom); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphDepthwiseConvolution3DOpDescriptor ```csharp public class MPSGraphDepthwiseConvolution3DOpDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MPSGraphDepthwiseConvolution3DOpDescriptor (); protected MPSGraphDepthwiseConvolution3DOpDescriptor (Foundation.NSObjectFlag t); protected MPSGraphDepthwiseConvolution3DOpDescriptor (IntPtr handle); // properties public virtual nint ChannelDimensionIndex { get; set; } public override IntPtr ClassHandle { get; } public virtual int[] DilationRates { get; set; } public virtual MPSGraphPaddingStyle PaddingStyle { get; set; } public virtual int[] PaddingValues { get; set; } public virtual int[] Strides { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static MPSGraphDepthwiseConvolution3DOpDescriptor Create (MPSGraphPaddingStyle paddingStyle); public static MPSGraphDepthwiseConvolution3DOpDescriptor Create (int[] strides, int[] dilationRates, int[] paddingValues, MPSGraphPaddingStyle paddingStyle); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphDevice ```csharp public class MPSGraphDevice : Foundation.NSObject { // constructors public MPSGraphDevice (); protected MPSGraphDevice (Foundation.NSObjectFlag t); protected MPSGraphDevice (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Metal.IMTLDevice MetalDevice { get; } public virtual MPSGraphDeviceType Type { get; } // methods public static MPSGraphDevice Create (Metal.IMTLDevice metalDevice); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphDeviceType ```csharp [Serializable] public enum MPSGraphDeviceType { Metal = 0, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphExecutable ```csharp public class MPSGraphExecutable : Foundation.NSObject { // constructors public MPSGraphExecutable (); protected MPSGraphExecutable (Foundation.NSObjectFlag t); protected MPSGraphExecutable (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MPSGraphTensor[] FeedTensors { get; } public virtual MPSGraphOptions Options { get; set; } public virtual MPSGraphTensor[] TargetTensors { get; } // methods public virtual MPSGraphTensorData[] Encode (MetalPerformanceShaders.MPSCommandBuffer commandBuffer, MPSGraphTensorData[] inputsArray, MPSGraphTensorData[] resultsArray, MPSGraphExecutableExecutionDescriptor executionDescriptor); public virtual MPSGraphTensorData[] Run (Metal.IMTLCommandQueue commandQueue, MPSGraphTensorData[] inputsArray, MPSGraphTensorData[] resultsArray, MPSGraphExecutableExecutionDescriptor executionDescriptor); public virtual MPSGraphTensorData[] RunAsync (Metal.IMTLCommandQueue commandQueue, MPSGraphTensorData[] inputsArray, MPSGraphTensorData[] resultsArray, MPSGraphExecutableExecutionDescriptor executionDescriptor); public virtual void Specialize (MPSGraphDevice device, MPSGraphType[] inputTypes, MPSGraphCompilationDescriptor compilationDescriptor); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphExecutableCompletionHandler ```csharp public sealed delegate MPSGraphExecutableCompletionHandler : System.MulticastDelegate { // constructors public MPSGraphExecutableCompletionHandler (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (MPSGraphTensorData[] results, Foundation.NSError error, System.AsyncCallback callback, object object); public virtual void EndInvoke (System.IAsyncResult result); public virtual void Invoke (MPSGraphTensorData[] results, Foundation.NSError error); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphExecutableExecutionDescriptor ```csharp public class MPSGraphExecutableExecutionDescriptor : Foundation.NSObject { // constructors public MPSGraphExecutableExecutionDescriptor (); protected MPSGraphExecutableExecutionDescriptor (Foundation.NSObjectFlag t); protected MPSGraphExecutableExecutionDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MPSGraphExecutableCompletionHandler CompletionHandler { get; set; } public virtual MPSGraphExecutableScheduledHandler ScheduledHandler { get; set; } public virtual bool WaitUntilCompleted { get; set; } } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphExecutableScheduledHandler ```csharp public sealed delegate MPSGraphExecutableScheduledHandler : System.MulticastDelegate { // constructors public MPSGraphExecutableScheduledHandler (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (MPSGraphTensorData[] results, Foundation.NSError error, System.AsyncCallback callback, object object); public virtual void EndInvoke (System.IAsyncResult result); public virtual void Invoke (MPSGraphTensorData[] results, Foundation.NSError error); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphExecutionDescriptor ```csharp public class MPSGraphExecutionDescriptor : Foundation.NSObject { // constructors public MPSGraphExecutionDescriptor (); protected MPSGraphExecutionDescriptor (Foundation.NSObjectFlag t); protected MPSGraphExecutionDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MPSGraphCompletionHandler CompletionHandler { get; set; } public virtual MPSGraphScheduledHandler ScheduledHandler { get; set; } public virtual bool WaitUntilCompleted { get; set; } } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphForLoopBodyBlock ```csharp public sealed delegate MPSGraphForLoopBodyBlock : System.MulticastDelegate { // constructors public MPSGraphForLoopBodyBlock (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (MPSGraphTensor index, MPSGraphTensor[] iterationArguments, System.AsyncCallback callback, object object); public virtual MPSGraphTensor[] EndInvoke (System.IAsyncResult result); public virtual MPSGraphTensor[] Invoke (MPSGraphTensor index, MPSGraphTensor[] iterationArguments); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphIfThenElseBlock ```csharp public sealed delegate MPSGraphIfThenElseBlock : System.MulticastDelegate { // constructors public MPSGraphIfThenElseBlock (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (System.AsyncCallback callback, object object); public virtual MPSGraphTensor[] EndInvoke (System.IAsyncResult result); public virtual MPSGraphTensor[] Invoke (); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphLossReductionType ```csharp [Serializable] public enum MPSGraphLossReductionType { Axis = 0, Mean = 2, Sum = 1, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphMemoryOps_Extensions ```csharp public static class MPSGraphMemoryOps_Extensions { // methods public static MPSGraphTensor Constant (this MPSGraph graph, float scalar); public static MPSGraphTensor Constant (this MPSGraph graph, System.ReadOnlySpan<float> values, int[] shape); public static MPSGraphTensor Variable (this MPSGraph graph, System.ReadOnlySpan<float> initialValues, int[] shape, string name); public static MPSGraphTensor Variable (this MPSGraph graph, float initialValue, int[] shape, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphOperation ```csharp public class MPSGraphOperation : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MPSGraphOperation (Foundation.NSObjectFlag t); protected MPSGraphOperation (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MPSGraphOperation[] ControlDependencies { get; } public virtual MPSGraph Graph { get; } public virtual MPSGraphTensor[] InputTensors { get; } public virtual string Name { get; } public virtual MPSGraphTensor[] OutputTensors { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphOptions ```csharp [Serializable] [Flags] public enum MPSGraphOptions { Default = 1, None = 0, SynchronizeResults = 1, Verbose = 2, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphPaddingMode ```csharp [Serializable] public enum MPSGraphPaddingMode { AntiPeriodic = 6, ClampToEdge = 3, Constant = 0, Periodic = 5, Reflect = 1, Symmetric = 2, Zero = 4, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphPaddingStyle ```csharp [Serializable] public enum MPSGraphPaddingStyle { Explicit = 0, ExplicitOffset = 3, Same = 2, Valid = 1, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphPooling2DOpDescriptor ```csharp public class MPSGraphPooling2DOpDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MPSGraphPooling2DOpDescriptor (); protected MPSGraphPooling2DOpDescriptor (Foundation.NSObjectFlag t); protected MPSGraphPooling2DOpDescriptor (IntPtr handle); // properties public virtual bool CeilMode { get; set; } public override IntPtr ClassHandle { get; } public virtual MPSGraphTensorNamedDataLayout DataLayout { get; set; } public virtual nuint DilationRateInX { get; set; } public virtual nuint DilationRateInY { get; set; } public virtual bool IncludeZeroPadToAverage { get; set; } public virtual nuint KernelHeight { get; set; } public virtual nuint KernelWidth { get; set; } public virtual nuint PaddingBottom { get; set; } public virtual nuint PaddingLeft { get; set; } public virtual nuint PaddingRight { get; set; } public virtual MPSGraphPaddingStyle PaddingStyle { get; set; } public virtual nuint PaddingTop { get; set; } public virtual nuint StrideInX { get; set; } public virtual nuint StrideInY { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static MPSGraphPooling2DOpDescriptor Create (nuint kernelWidth, nuint kernelHeight, nuint strideInX, nuint strideInY, MPSGraphPaddingStyle paddingStyle, MPSGraphTensorNamedDataLayout dataLayout); public static MPSGraphPooling2DOpDescriptor Create (nuint kernelWidth, nuint kernelHeight, nuint strideInX, nuint strideInY, nuint dilationRateInX, nuint dilationRateInY, nuint paddingLeft, nuint paddingRight, nuint paddingTop, nuint paddingBottom, MPSGraphPaddingStyle paddingStyle, MPSGraphTensorNamedDataLayout dataLayout); public virtual void SetExplicitPadding (nuint paddingLeft, nuint paddingRight, nuint paddingTop, nuint paddingBottom); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphPooling4DOpDescriptor ```csharp public class MPSGraphPooling4DOpDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MPSGraphPooling4DOpDescriptor (); protected MPSGraphPooling4DOpDescriptor (Foundation.NSObjectFlag t); protected MPSGraphPooling4DOpDescriptor (IntPtr handle); // properties public virtual bool CeilMode { get; set; } public override IntPtr ClassHandle { get; } public virtual int[] DilationRates { get; set; } public virtual bool IncludeZeroPadToAverage { get; set; } public virtual int[] KernelSizes { get; set; } public virtual MPSGraphPaddingStyle PaddingStyle { get; set; } public virtual int[] PaddingValues { get; set; } public virtual int[] Strides { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static MPSGraphPooling4DOpDescriptor Create (int[] kernelSizes, MPSGraphPaddingStyle paddingStyle); public static MPSGraphPooling4DOpDescriptor Create (int[] kernelSizes, int[] strides, int[] dilationRates, int[] paddingValues, MPSGraphPaddingStyle paddingStyle); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphRandomDistribution ```csharp [Serializable] public enum MPSGraphRandomDistribution { Normal = 1, TruncatedNormal = 2, Uniform = 0, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphRandomNormalSamplingMethod ```csharp [Serializable] public enum MPSGraphRandomNormalSamplingMethod { BoxMuller = 1, InvCdf = 0, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphRandomOpDescriptor ```csharp public class MPSGraphRandomOpDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MPSGraphRandomOpDescriptor (); protected MPSGraphRandomOpDescriptor (Foundation.NSObjectFlag t); protected MPSGraphRandomOpDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MetalPerformanceShaders.MPSDataType DataType { get; set; } public virtual MPSGraphRandomDistribution Distribution { get; set; } public virtual float Max { get; set; } public virtual nint MaxInteger { get; set; } public virtual float Mean { get; set; } public virtual float Min { get; set; } public virtual nint MinInteger { get; set; } public virtual MPSGraphRandomNormalSamplingMethod SamplingMethod { get; set; } public virtual float StandardDeviation { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static MPSGraphRandomOpDescriptor Create (MPSGraphRandomDistribution distribution, MetalPerformanceShaders.MPSDataType dataType); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphReductionMode ```csharp [Serializable] public enum MPSGraphReductionMode { ArgumentMax = 5, ArgumentMin = 4, Max = 1, Min = 0, Product = 3, Sum = 2, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphResizeMode ```csharp [Serializable] public enum MPSGraphResizeMode { Bilinear = 1, Nearest = 0, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphScatterMode ```csharp [Serializable] public enum MPSGraphScatterMode { Add = 0, Div = 3, Max = 5, Min = 4, Mul = 2, Set = 6, Sub = 1, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphScheduledHandler ```csharp public sealed delegate MPSGraphScheduledHandler : System.MulticastDelegate { // constructors public MPSGraphScheduledHandler (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> resultsDictionary, Foundation.NSError error, System.AsyncCallback callback, object object); public virtual void EndInvoke (System.IAsyncResult result); public virtual void Invoke (Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensorData> resultsDictionary, Foundation.NSError error); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphShapedType ```csharp public class MPSGraphShapedType : MetalPerformanceShadersGraph.MPSGraphType { // constructors public MPSGraphShapedType (); protected MPSGraphShapedType (Foundation.NSObjectFlag t); protected MPSGraphShapedType (IntPtr handle); public MPSGraphShapedType (int[] shape, MetalPerformanceShaders.MPSDataType dataType); // properties public override IntPtr ClassHandle { get; } public virtual MetalPerformanceShaders.MPSDataType DataType { get; set; } public virtual int[] Shape { get; set; } // methods public virtual bool IsEqualTo (MPSGraphShapedType object); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphSparseStorageType ```csharp [Serializable] public enum MPSGraphSparseStorageType { Coo = 0, Csc = 1, Csr = 2, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphStencilOpDescriptor ```csharp public class MPSGraphStencilOpDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MPSGraphStencilOpDescriptor (); protected MPSGraphStencilOpDescriptor (Foundation.NSObjectFlag t); protected MPSGraphStencilOpDescriptor (IntPtr handle); // properties public virtual MPSGraphPaddingMode BoundaryMode { get; set; } public override IntPtr ClassHandle { get; } public virtual int[] DilationRates { get; set; } public virtual int[] ExplicitPadding { get; set; } public virtual int[] Offsets { get; set; } public virtual float PaddingConstant { get; set; } public virtual MPSGraphPaddingStyle PaddingStyle { get; set; } public virtual MPSGraphReductionMode ReductionMode { get; set; } public virtual int[] Strides { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static MPSGraphStencilOpDescriptor Create (MPSGraphPaddingStyle paddingStyle); public static MPSGraphStencilOpDescriptor Create (int[] explicitPadding); public static MPSGraphStencilOpDescriptor Create (int[] offsets, int[] explicitPadding); public static MPSGraphStencilOpDescriptor Create (MPSGraphReductionMode reductionMode, int[] offsets, int[] strides, int[] dilationRates, int[] explicitPadding, MPSGraphPaddingMode boundaryMode, MPSGraphPaddingStyle paddingStyle, float paddingConstant); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphTensor ```csharp public class MPSGraphTensor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MPSGraphTensor (Foundation.NSObjectFlag t); protected MPSGraphTensor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MetalPerformanceShaders.MPSDataType DataType { get; } public virtual MPSGraphOperation Operation { get; } public virtual int[] Shape { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphTensorData ```csharp public class MPSGraphTensorData : Foundation.NSObject { // constructors public MPSGraphTensorData (); public MPSGraphTensorData (Foundation.NSArray<MetalPerformanceShaders.MPSImage> imageBatch); protected MPSGraphTensorData (Foundation.NSObjectFlag t); public MPSGraphTensorData (MetalPerformanceShaders.MPSMatrix matrix); public MPSGraphTensorData (MetalPerformanceShaders.MPSNDArray ndarray); public MPSGraphTensorData (MetalPerformanceShaders.MPSVector vector); protected MPSGraphTensorData (IntPtr handle); public MPSGraphTensorData (MetalPerformanceShaders.MPSMatrix matrix, nuint rank); public MPSGraphTensorData (MetalPerformanceShaders.MPSVector vector, nuint rank); public MPSGraphTensorData (Metal.IMTLBuffer buffer, int[] shape, MetalPerformanceShaders.MPSDataType dataType); public MPSGraphTensorData (MPSGraphDevice device, Foundation.NSData data, int[] shape, MetalPerformanceShaders.MPSDataType dataType); // properties public override IntPtr ClassHandle { get; } public virtual MetalPerformanceShaders.MPSDataType DataType { get; } public virtual MPSGraphDevice Device { get; } public virtual MetalPerformanceShaders.MPSNDArray MPSNDArray { get; } public virtual int[] Shape { get; } // methods public static MPSGraphTensorData Create (MetalPerformanceShaders.MPSImage[] imageBatch); public static MPSGraphTensorData Create (Metal.IMTLDevice device, System.ReadOnlySpan<float> values, int[] shape); public void Read (System.Span<float> values); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphTensorNamedDataLayout ```csharp [Serializable] public enum MPSGraphTensorNamedDataLayout { Chw = 4, Hw = 6, Hwc = 5, Hwio = 3, Nchw = 0, Nhwc = 1, Oihw = 2, } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphType ```csharp public class MPSGraphType : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MPSGraphType (); protected MPSGraphType (Foundation.NSObjectFlag t); protected MPSGraphType (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphVariableOp ```csharp public class MPSGraphVariableOp : MetalPerformanceShadersGraph.MPSGraphOperation { // constructors protected MPSGraphVariableOp (Foundation.NSObjectFlag t); protected MPSGraphVariableOp (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MetalPerformanceShaders.MPSDataType DataType { get; } public virtual int[] Shape { get; } } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphWhileAfterBlock ```csharp public sealed delegate MPSGraphWhileAfterBlock : System.MulticastDelegate { // constructors public MPSGraphWhileAfterBlock (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (MPSGraphTensor[] bodyBlockArguments, System.AsyncCallback callback, object object); public virtual MPSGraphTensor[] EndInvoke (System.IAsyncResult result); public virtual MPSGraphTensor[] Invoke (MPSGraphTensor[] bodyBlockArguments); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraphWhileBeforeBlock ```csharp public sealed delegate MPSGraphWhileBeforeBlock : System.MulticastDelegate { // constructors public MPSGraphWhileBeforeBlock (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (MPSGraphTensor[] inputTensors, Foundation.NSMutableArray<MPSGraphTensor> resultTensors, System.AsyncCallback callback, object object); public virtual MPSGraphTensor EndInvoke (System.IAsyncResult result); public virtual MPSGraphTensor Invoke (MPSGraphTensor[] inputTensors, Foundation.NSMutableArray<MPSGraphTensor> resultTensors); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_GatherNDOps ```csharp public static class MPSGraph_GatherNDOps { // methods public static MPSGraphTensor GatherND (this MPSGraph This, MPSGraphTensor updatesTensor, MPSGraphTensor indicesTensor, nuint batchDimensions, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_GatherOps ```csharp public static class MPSGraph_GatherOps { // methods public static MPSGraphTensor Gather (this MPSGraph This, MPSGraphTensor updatesTensor, MPSGraphTensor indicesTensor, nuint axis, nuint batchDimensions, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphActivationOps ```csharp public static class MPSGraph_MPSGraphActivationOps { // methods public static MPSGraphTensor LeakyReLU (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor alphaTensor, string name); public static MPSGraphTensor LeakyReLU (this MPSGraph This, MPSGraphTensor tensor, double alpha, string name); public static MPSGraphTensor LeakyReLUGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, MPSGraphTensor alphaTensor, string name); public static MPSGraphTensor ReLU (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor ReLUGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, string name); public static MPSGraphTensor Sigmoid (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor SigmoidGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, string name); public static MPSGraphTensor SoftMax (this MPSGraph This, MPSGraphTensor tensor, nint axis, string name); public static MPSGraphTensor SoftMaxGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, nint axis, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphArithmeticOps ```csharp public static class MPSGraph_MPSGraphArithmeticOps { // methods public static MPSGraphTensor Absolute (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Acos (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Acosh (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Addition (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Asin (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Asinh (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Atan (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Atan2 (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Atanh (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Ceil (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Clamp (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor minValueTensor, MPSGraphTensor maxValueTensor, string name); public static MPSGraphTensor Cos (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Cosh (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Division (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor DivisionNoNaN (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor EqualTo (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Erf (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Exponent (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor ExponentBase10 (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor ExponentBase2 (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Floor (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor FloorModulo (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor GreaterThan (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor GreaterThanOrEqualTo (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Identity (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor IsFinite (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor IsInfinite (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor IsNaN (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor LessThan (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor LessThanOrEqualTo (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Logarithm (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor LogarithmBase10 (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor LogarithmBase2 (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor LogicalAnd (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor LogicalNand (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor LogicalNor (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor LogicalOr (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor LogicalXnor (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor LogicalXor (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Maximum (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor MaximumWithNaNPropagation (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Minimum (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor MinimumWithNaNPropagation (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Modulo (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Multiplication (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Negative (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Not (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor NotEqualTo (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Power (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Reciprocal (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor ReverseSquareRoot (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Rint (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Round (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Select (this MPSGraph This, MPSGraphTensor predicateTensor, MPSGraphTensor truePredicateTensor, MPSGraphTensor falseSelectTensor, string name); public static MPSGraphTensor Sign (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Signbit (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Sin (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Sinh (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Square (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor SquareRoot (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Subtraction (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); public static MPSGraphTensor Tan (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Tanh (this MPSGraph This, MPSGraphTensor tensor, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphControlFlowOps ```csharp public static class MPSGraph_MPSGraphControlFlowOps { // methods public static MPSGraphTensor[] ControlDependency (this MPSGraph This, MPSGraphOperation[] operations, MPSGraphControlFlowDependencyBlock dependentBlock, string name); public static MPSGraphTensor[] For (this MPSGraph This, MPSGraphTensor numberOfIterations, MPSGraphTensor[] initialBodyArguments, MPSGraphForLoopBodyBlock body, string name); public static MPSGraphTensor[] For (this MPSGraph This, MPSGraphTensor lowerBound, MPSGraphTensor upperBound, MPSGraphTensor step, MPSGraphTensor[] initialBodyArguments, MPSGraphForLoopBodyBlock body, string name); public static MPSGraphTensor[] If (this MPSGraph This, MPSGraphTensor predicateTensor, MPSGraphIfThenElseBlock thenBlock, MPSGraphIfThenElseBlock elseBlock, string name); public static MPSGraphTensor[] While (this MPSGraph This, MPSGraphTensor[] initialInputs, MPSGraphWhileBeforeBlock before, MPSGraphWhileAfterBlock after, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphConvolutionOps ```csharp public static class MPSGraph_MPSGraphConvolutionOps { // methods public static MPSGraphTensor Convolution2D (this MPSGraph This, MPSGraphTensor source, MPSGraphTensor weights, MPSGraphConvolution2DOpDescriptor descriptor, string name); public static MPSGraphTensor Convolution2DDataGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor weights, MPSGraphTensor outputShapeTensor, MPSGraphConvolution2DOpDescriptor forwardConvolutionDescriptor, string name); public static MPSGraphTensor Convolution2DDataGradient (this MPSGraph This, MPSGraphTensor incomingGradient, MPSGraphTensor weights, int[] outputShape, MPSGraphConvolution2DOpDescriptor forwardConvolutionDescriptor, string name); public static MPSGraphTensor Convolution2DWeightsGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, MPSGraphTensor outputShapeTensor, MPSGraphConvolution2DOpDescriptor forwardConvolutionDescriptor, string name); public static MPSGraphTensor Convolution2DWeightsGradient (this MPSGraph This, MPSGraphTensor incomingGradient, MPSGraphTensor source, int[] outputShape, MPSGraphConvolution2DOpDescriptor forwardConvolutionDescriptor, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphConvolutionTransposeOps ```csharp public static class MPSGraph_MPSGraphConvolutionTransposeOps { // methods public static MPSGraphTensor ConvolutionTranspose2D (this MPSGraph This, MPSGraphTensor source, MPSGraphTensor weights, MPSGraphTensor outputShape, MPSGraphConvolution2DOpDescriptor descriptor, string name); public static MPSGraphTensor ConvolutionTranspose2D (this MPSGraph This, MPSGraphTensor source, MPSGraphTensor weights, int[] outputShape, MPSGraphConvolution2DOpDescriptor descriptor, string name); public static MPSGraphTensor ConvolutionTranspose2DDataGradient (this MPSGraph This, MPSGraphTensor incomingGradient, MPSGraphTensor weights, MPSGraphTensor outputShape, MPSGraphConvolution2DOpDescriptor forwardConvolutionDescriptor, string name); public static MPSGraphTensor ConvolutionTranspose2DDataGradient (this MPSGraph This, MPSGraphTensor incomingGradient, MPSGraphTensor weights, int[] outputShape, MPSGraphConvolution2DOpDescriptor forwardConvolutionDescriptor, string name); public static MPSGraphTensor ConvolutionTranspose2DWeightsGradient (this MPSGraph This, MPSGraphTensor incomingGradientTensor, MPSGraphTensor source, MPSGraphTensor outputShape, MPSGraphConvolution2DOpDescriptor forwardConvolutionDescriptor, string name); public static MPSGraphTensor ConvolutionTranspose2DWeightsGradient (this MPSGraph This, MPSGraphTensor incomingGradientTensor, MPSGraphTensor source, int[] outputShape, MPSGraphConvolution2DOpDescriptor forwardConvolutionDescriptor, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphDepthwiseConvolutionOps ```csharp public static class MPSGraph_MPSGraphDepthwiseConvolutionOps { // methods public static MPSGraphTensor DepthwiseConvolution2D (this MPSGraph This, MPSGraphTensor source, MPSGraphTensor weights, MPSGraphDepthwiseConvolution2DOpDescriptor descriptor, string name); public static MPSGraphTensor DepthwiseConvolution2DDataGradient (this MPSGraph This, MPSGraphTensor incomingGradient, MPSGraphTensor weights, int[] outputShape, MPSGraphDepthwiseConvolution2DOpDescriptor descriptor, string name); public static MPSGraphTensor DepthwiseConvolution2DWeightsGradient (this MPSGraph This, MPSGraphTensor incomingGradient, MPSGraphTensor source, int[] outputShape, MPSGraphDepthwiseConvolution2DOpDescriptor descriptor, string name); public static MPSGraphTensor DepthwiseConvolution3D (this MPSGraph This, MPSGraphTensor source, MPSGraphTensor weights, MPSGraphDepthwiseConvolution3DOpDescriptor descriptor, string name); public static MPSGraphTensor DepthwiseConvolution3DDataGradient (this MPSGraph This, MPSGraphTensor incomingGradient, MPSGraphTensor weights, int[] outputShape, MPSGraphDepthwiseConvolution3DOpDescriptor descriptor, string name); public static MPSGraphTensor DepthwiseConvolution3DWeightsGradient (this MPSGraph This, MPSGraphTensor incomingGradient, MPSGraphTensor source, int[] outputShape, MPSGraphDepthwiseConvolution3DOpDescriptor descriptor, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphGradientOps ```csharp public static class MPSGraph_MPSGraphGradientOps { // methods public static Foundation.NSDictionary<MPSGraphTensor,MetalPerformanceShadersGraph.MPSGraphTensor> Gradients (this MPSGraph This, MPSGraphTensor of, MPSGraphTensor[] with, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphLossOps ```csharp public static class MPSGraph_MPSGraphLossOps { // methods public static MPSGraphTensor SoftMaxCrossEntropy (this MPSGraph This, MPSGraphTensor source, MPSGraphTensor labels, nint axis, MPSGraphLossReductionType reductionType, string name); public static MPSGraphTensor SoftMaxCrossEntropyGradient (this MPSGraph This, MPSGraphTensor gradientTensor, MPSGraphTensor sourceTensor, MPSGraphTensor labelsTensor, nint axis, MPSGraphLossReductionType reductionType, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphMatrixMultiplicationOps ```csharp public static class MPSGraph_MPSGraphMatrixMultiplicationOps { // methods public static MPSGraphTensor MatrixMultiplication (this MPSGraph This, MPSGraphTensor primaryTensor, MPSGraphTensor secondaryTensor, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphNormalizationOps ```csharp public static class MPSGraph_MPSGraphNormalizationOps { // methods public static MPSGraphTensor Mean (this MPSGraph This, MPSGraphTensor tensor, int[] axes, string name); public static MPSGraphTensor Normalization (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor mean, MPSGraphTensor variance, MPSGraphTensor gamma, MPSGraphTensor beta, float epsilon, string name); public static MPSGraphTensor NormalizationBetaGradient (this MPSGraph This, MPSGraphTensor incomingGradientTensor, MPSGraphTensor sourceTensor, int[] axes, string name); public static MPSGraphTensor NormalizationGammaGradient (this MPSGraph This, MPSGraphTensor incomingGradientTensor, MPSGraphTensor sourceTensor, MPSGraphTensor meanTensor, MPSGraphTensor varianceTensor, int[] axes, float epsilon, string name); public static MPSGraphTensor NormalizationGradient (this MPSGraph This, MPSGraphTensor incomingGradientTensor, MPSGraphTensor sourceTensor, MPSGraphTensor meanTensor, MPSGraphTensor varianceTensor, MPSGraphTensor gamma, MPSGraphTensor gammaGradient, MPSGraphTensor betaGradient, int[] axes, float epsilon, string name); public static MPSGraphTensor Variance (this MPSGraph This, MPSGraphTensor tensor, int[] axes, string name); public static MPSGraphTensor Variance (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor meanTensor, int[] axes, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphOneHotOps ```csharp public static class MPSGraph_MPSGraphOneHotOps { // methods public static MPSGraphTensor OneHot (this MPSGraph This, MPSGraphTensor indicesTensor, nuint depth, string name); public static MPSGraphTensor OneHot (this MPSGraph This, MPSGraphTensor indicesTensor, nuint depth, MetalPerformanceShaders.MPSDataType dataType, string name); public static MPSGraphTensor OneHot (this MPSGraph This, MPSGraphTensor indicesTensor, nuint depth, nuint axis, string name); public static MPSGraphTensor OneHot (this MPSGraph This, MPSGraphTensor indicesTensor, nuint depth, nuint axis, MetalPerformanceShaders.MPSDataType dataType, string name); public static MPSGraphTensor OneHot (this MPSGraph This, MPSGraphTensor indicesTensor, nuint depth, MetalPerformanceShaders.MPSDataType dataType, double onValue, double offValue, string name); public static MPSGraphTensor OneHot (this MPSGraph This, MPSGraphTensor indicesTensor, nuint depth, nuint axis, MetalPerformanceShaders.MPSDataType dataType, double onValue, double offValue, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphOptimizerOps ```csharp public static class MPSGraph_MPSGraphOptimizerOps { // methods public static MPSGraphOperation ApplyStochasticGradientDescent (this MPSGraph This, MPSGraphTensor learningRate, MPSGraphVariableOp variable, MPSGraphTensor gradient, string name); public static MPSGraphTensor StochasticGradientDescent (this MPSGraph This, MPSGraphTensor learningRate, MPSGraphTensor values, MPSGraphTensor gradient, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphPoolingOps ```csharp public static class MPSGraph_MPSGraphPoolingOps { // methods public static MPSGraphTensor AvgPooling2D (this MPSGraph This, MPSGraphTensor source, MPSGraphPooling2DOpDescriptor descriptor, string name); public static MPSGraphTensor AvgPooling2DGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, MPSGraphPooling2DOpDescriptor descriptor, string name); public static MPSGraphTensor AvgPooling4D (this MPSGraph This, MPSGraphTensor source, MPSGraphPooling4DOpDescriptor descriptor, string name); public static MPSGraphTensor AvgPooling4DGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, MPSGraphPooling4DOpDescriptor descriptor, string name); public static MPSGraphTensor L2NormPooling4D (this MPSGraph This, MPSGraphTensor source, MPSGraphPooling4DOpDescriptor descriptor, string name); public static MPSGraphTensor L2NormPooling4DGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, MPSGraphPooling4DOpDescriptor descriptor, string name); public static MPSGraphTensor MaxPooling2D (this MPSGraph This, MPSGraphTensor source, MPSGraphPooling2DOpDescriptor descriptor, string name); public static MPSGraphTensor MaxPooling2DGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, MPSGraphPooling2DOpDescriptor descriptor, string name); public static MPSGraphTensor MaxPooling4D (this MPSGraph This, MPSGraphTensor source, MPSGraphPooling4DOpDescriptor descriptor, string name); public static MPSGraphTensor MaxPooling4DGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, MPSGraphPooling4DOpDescriptor descriptor, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphRandomOps ```csharp public static class MPSGraph_MPSGraphRandomOps { // methods public static MPSGraphTensor Dropout (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor rate, string name); public static MPSGraphTensor Dropout (this MPSGraph This, MPSGraphTensor tensor, double rate, string name); public static MPSGraphTensor Random (this MPSGraph This, MPSGraphTensor shapeTensor, MPSGraphRandomOpDescriptor descriptor, string name); public static MPSGraphTensor Random (this MPSGraph This, int[] shape, MPSGraphRandomOpDescriptor descriptor, string name); public static MPSGraphTensor[] Random (this MPSGraph This, MPSGraphTensor shapeTensor, MPSGraphRandomOpDescriptor descriptor, MPSGraphTensor state, string name); public static MPSGraphTensor Random (this MPSGraph This, MPSGraphTensor shapeTensor, MPSGraphRandomOpDescriptor descriptor, nuint seed, string name); public static MPSGraphTensor[] Random (this MPSGraph This, int[] shape, MPSGraphRandomOpDescriptor descriptor, MPSGraphTensor state, string name); public static MPSGraphTensor Random (this MPSGraph This, int[] shape, MPSGraphRandomOpDescriptor descriptor, nuint seed, string name); public static MPSGraphTensor RandomPhiloxState (this MPSGraph This, nuint seed, string name); public static MPSGraphTensor RandomPhiloxState (this MPSGraph This, nuint counterLow, nuint counterHigh, nuint key, string name); public static MPSGraphTensor RandomUniform (this MPSGraph This, MPSGraphTensor shapeTensor, string name); public static MPSGraphTensor RandomUniform (this MPSGraph This, int[] shape, string name); public static MPSGraphTensor[] RandomUniform (this MPSGraph This, MPSGraphTensor shapeTensor, MPSGraphTensor state, string name); public static MPSGraphTensor RandomUniform (this MPSGraph This, MPSGraphTensor shapeTensor, nuint seed, string name); public static MPSGraphTensor[] RandomUniform (this MPSGraph This, int[] shape, MPSGraphTensor state, string name); public static MPSGraphTensor RandomUniform (this MPSGraph This, int[] shape, nuint seed, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphReductionOps ```csharp public static class MPSGraph_MPSGraphReductionOps { // methods public static MPSGraphTensor ReductionArgMaximum (this MPSGraph This, MPSGraphTensor tensor, nint axis, string name); public static MPSGraphTensor ReductionArgMinimum (this MPSGraph This, MPSGraphTensor tensor, nint axis, string name); public static MPSGraphTensor ReductionMaximum (this MPSGraph This, MPSGraphTensor tensor, int[] axes, string name); public static MPSGraphTensor ReductionMaximum (this MPSGraph This, MPSGraphTensor tensor, nint axis, string name); public static MPSGraphTensor ReductionMaximumPropagateNaN (this MPSGraph This, MPSGraphTensor tensor, int[] axes, string name); public static MPSGraphTensor ReductionMaximumPropagateNaN (this MPSGraph This, MPSGraphTensor tensor, nint axis, string name); public static MPSGraphTensor ReductionMinimum (this MPSGraph This, MPSGraphTensor tensor, int[] axes, string name); public static MPSGraphTensor ReductionMinimum (this MPSGraph This, MPSGraphTensor tensor, nint axis, string name); public static MPSGraphTensor ReductionMinimumPropagateNaN (this MPSGraph This, MPSGraphTensor tensor, int[] axes, string name); public static MPSGraphTensor ReductionMinimumPropagateNaN (this MPSGraph This, MPSGraphTensor tensor, nint axis, string name); public static MPSGraphTensor ReductionProduct (this MPSGraph This, MPSGraphTensor tensor, int[] axes, string name); public static MPSGraphTensor ReductionProduct (this MPSGraph This, MPSGraphTensor tensor, nint axis, string name); public static MPSGraphTensor ReductionSum (this MPSGraph This, MPSGraphTensor tensor, int[] axes, string name); public static MPSGraphTensor ReductionSum (this MPSGraph This, MPSGraphTensor tensor, nint axis, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphResizeOps ```csharp public static class MPSGraph_MPSGraphResizeOps { // methods public static MPSGraphTensor Resize (this MPSGraph This, MPSGraphTensor imagesTensor, MPSGraphTensor size, MPSGraphResizeMode mode, bool centerResult, bool alignCorners, MPSGraphTensorNamedDataLayout layout, string name); public static MPSGraphTensor Resize (this MPSGraph This, MPSGraphTensor imagesTensor, int[] size, MPSGraphResizeMode mode, bool centerResult, bool alignCorners, MPSGraphTensorNamedDataLayout layout, string name); public static MPSGraphTensor ResizeGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor input, MPSGraphResizeMode mode, bool centerResult, bool alignCorners, MPSGraphTensorNamedDataLayout layout, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphScatterOps ```csharp public static class MPSGraph_MPSGraphScatterOps { // methods public static MPSGraphTensor Scatter (this MPSGraph This, MPSGraphTensor dataTensor, MPSGraphTensor updatesTensor, MPSGraphTensor indicesTensor, nint axis, MPSGraphScatterMode mode, string name); public static MPSGraphTensor Scatter (this MPSGraph This, MPSGraphTensor updatesTensor, MPSGraphTensor indicesTensor, int[] shape, nint axis, MPSGraphScatterMode mode, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphSparseOps ```csharp public static class MPSGraph_MPSGraphSparseOps { // methods public static MPSGraphTensor Sparse (this MPSGraph This, MPSGraphCreateSparseOpDescriptor sparseDescriptor, MPSGraphTensor[] inputTensorArray, int[] shape, string name); public static MPSGraphTensor Sparse (this MPSGraph This, MPSGraphSparseStorageType sparseStorageType, MPSGraphTensor[] inputTensorArray, int[] shape, MetalPerformanceShaders.MPSDataType dataType, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphStencilOps ```csharp public static class MPSGraph_MPSGraphStencilOps { // methods public static MPSGraphTensor Stencil (this MPSGraph This, MPSGraphTensor source, MPSGraphTensor weights, MPSGraphStencilOpDescriptor descriptor, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphTensorShapeOps ```csharp public static class MPSGraph_MPSGraphTensorShapeOps { // methods public static MPSGraphTensor Broadcast (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor shapeTensor, string name); public static MPSGraphTensor Broadcast (this MPSGraph This, MPSGraphTensor tensor, int[] shape, string name); public static MPSGraphTensor Cast (this MPSGraph This, MPSGraphTensor tensor, MetalPerformanceShaders.MPSDataType type, string name); public static MPSGraphTensor Concat (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor tensor2, nint dimensionIndex, string name); public static MPSGraphTensor ConcatTensors (this MPSGraph This, MPSGraphTensor[] tensors, nint dimensionIndex, string name); public static MPSGraphTensor ConcatTensors (this MPSGraph This, MPSGraphTensor[] tensors, nint dimensionIndex, bool interleave, string name); public static MPSGraphTensor DepthToSpace2D (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor widthAxisTensor, MPSGraphTensor heightAxisTensor, MPSGraphTensor depthAxisTensor, nuint blockSize, bool usePixelShuffleOrder, string name); public static MPSGraphTensor DepthToSpace2D (this MPSGraph This, MPSGraphTensor tensor, nuint widthAxis, nuint heightAxis, nuint depthAxis, nuint blockSize, bool usePixelShuffleOrder, string name); public static MPSGraphTensor Flatten2D (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor axisTensor, string name); public static MPSGraphTensor Flatten2D (this MPSGraph This, MPSGraphTensor tensor, nint axis, string name); public static MPSGraphTensor Pad (this MPSGraph This, MPSGraphTensor tensor, MPSGraphPaddingMode paddingMode, int[] leftPadding, int[] rightPadding, double constantValue, string name); public static MPSGraphTensor PadGradient (this MPSGraph This, MPSGraphTensor incomingGradientTensor, MPSGraphTensor sourceTensor, MPSGraphPaddingMode paddingMode, int[] leftPadding, int[] rightPadding, string name); public static MPSGraphTensor Reshape (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor shapeTensor, string name); public static MPSGraphTensor Reshape (this MPSGraph This, MPSGraphTensor tensor, int[] shape, string name); public static MPSGraphTensor Reverse (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Reverse (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor axesTensor, string name); public static MPSGraphTensor Reverse (this MPSGraph This, MPSGraphTensor tensor, int[] axes, string name); public static MPSGraphTensor Shape (this MPSGraph This, MPSGraphTensor tensor, string name); public static MPSGraphTensor Slice (this MPSGraph This, MPSGraphTensor tensor, int[] starts, int[] ends, int[] strides, string name); public static MPSGraphTensor Slice (this MPSGraph This, MPSGraphTensor tensor, nuint dimensionIndex, nint start, nint length, string name); public static MPSGraphTensor Slice (this MPSGraph This, MPSGraphTensor tensor, int[] starts, int[] ends, int[] strides, uint startMask, uint endMask, uint squeezeMask, string name); public static MPSGraphTensor SliceGradient (this MPSGraph This, MPSGraphTensor inputGradientTensor, MPSGraphTensor fwdInShapeTensor, int[] starts, int[] ends, int[] strides, string name); public static MPSGraphTensor SliceGradient (this MPSGraph This, MPSGraphTensor inputGradientTensor, MPSGraphTensor fwdInShapeTensor, int[] starts, int[] ends, int[] strides, uint startMask, uint endMask, uint squeezeMask, string name); public static MPSGraphTensor SpaceToDepth2D (this MPSGraph This, MPSGraphTensor tensor, MPSGraphTensor widthAxisTensor, MPSGraphTensor heightAxisTensor, MPSGraphTensor depthAxisTensor, nuint blockSize, bool usePixelShuffleOrder, string name); public static MPSGraphTensor SpaceToDepth2D (this MPSGraph This, MPSGraphTensor tensor, nuint widthAxis, nuint heightAxis, nuint depthAxis, nuint blockSize, bool usePixelShuffleOrder, string name); public static MPSGraphTensor Tile (this MPSGraph This, MPSGraphTensor tensor, int[] multiplier, string name); public static MPSGraphTensor TileGradient (this MPSGraph This, MPSGraphTensor incomingGradientTensor, MPSGraphTensor sourceTensor, int[] multiplier, string name); public static MPSGraphTensor Transpose (this MPSGraph This, MPSGraphTensor tensor, nuint dimensionIndex, nuint dimensionIndex2, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphTopKGradientOps ```csharp public static class MPSGraph_MPSGraphTopKGradientOps { // methods public static MPSGraphTensor TopKGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, MPSGraphTensor kTensor, string name); public static MPSGraphTensor TopKGradient (this MPSGraph This, MPSGraphTensor gradient, MPSGraphTensor source, nuint k, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MPSGraphTopKOps ```csharp public static class MPSGraph_MPSGraphTopKOps { // methods public static MPSGraphTensor[] TopK (this MPSGraph This, MPSGraphTensor source, MPSGraphTensor kTensor, string name); public static MPSGraphTensor[] TopK (this MPSGraph This, MPSGraphTensor source, nuint k, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_MemoryOps ```csharp public static class MPSGraph_MemoryOps { // methods public static MPSGraphOperation Assign (this MPSGraph This, MPSGraphTensor variable, MPSGraphTensor tensor, string name); public static MPSGraphTensor Constant (this MPSGraph This, double scalar, MetalPerformanceShaders.MPSDataType dataType); public static MPSGraphTensor Constant (this MPSGraph This, Foundation.NSData data, int[] shape, MetalPerformanceShaders.MPSDataType dataType); public static MPSGraphTensor Constant (this MPSGraph This, double scalar, int[] shape, MetalPerformanceShaders.MPSDataType dataType); public static MPSGraphTensor Placeholder (this MPSGraph This, int[] shape, string name); public static MPSGraphTensor Placeholder (this MPSGraph This, int[] shape, MetalPerformanceShaders.MPSDataType dataType, string name); public static MPSGraphTensor Read (this MPSGraph This, MPSGraphTensor variable, string name); public static MPSGraphTensor Variable (this MPSGraph This, Foundation.NSData data, int[] shape, MetalPerformanceShaders.MPSDataType dataType, string name); } ``` #### New Type: MetalPerformanceShadersGraph.MPSGraph_ScatterNDOps ```csharp public static class MPSGraph_ScatterNDOps { // methods public static MPSGraphTensor ScatterND (this MPSGraph This, MPSGraphTensor updatesTensor, MPSGraphTensor indicesTensor, int[] shape, nuint batchDimensions, string name); public static MPSGraphTensor ScatterND (this MPSGraph This, MPSGraphTensor dataTensor, MPSGraphTensor updatesTensor, MPSGraphTensor indicesTensor, nuint batchDimensions, MPSGraphScatterMode mode, string name); public static MPSGraphTensor ScatterND (this MPSGraph This, MPSGraphTensor updatesTensor, MPSGraphTensor indicesTensor, int[] shape, nuint batchDimensions, MPSGraphScatterMode mode, string name); } ```