-
Notifications
You must be signed in to change notification settings - Fork 511
MetalPerformanceShadersGraph tvOS xcode13.2 b2
Alex Soto edited this page Nov 24, 2021
·
1 revision
#MetalPerformanceShadersGraph.framework
diff -ruN /Applications/Xcode_13.2.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/MetalPerformanceShadersGraph.framework/Headers/MPSGraphRandomOps.h /Applications/Xcode_13.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/MetalPerformanceShadersGraph.framework/Headers/MPSGraphRandomOps.h
--- /Applications/Xcode_13.2.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/MetalPerformanceShadersGraph.framework/Headers/MPSGraphRandomOps.h 2021-10-21 17:38:23.000000000 -0400
+++ /Applications/Xcode_13.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/MetalPerformanceShadersGraph.framework/Headers/MPSGraphRandomOps.h 2021-11-11 23:14:31.000000000 -0500
@@ -13,9 +13,280 @@
NS_ASSUME_NONNULL_BEGIN
+/*!
+ * @typedef MPSGraphRandomDistribution
+ * @abstract The distributions supported by MPSGraphRandom ops.
+ *
+ * @constant MPSGraphRandomDistributionUniform The uniform distribution, with samples drawn uniformly from [min, max) for float types, and [min, max] for integer types.
+ * @constant MPSGraphRandomDistributionNormal The normal distribution defined by mean and standardDeviation.
+ * @constant MPSGraphRandomDistributionTruncatedNormal The normal distribution defined by mean and standardDeviation, truncated to the range [min, max)
+ */
+typedef NS_ENUM(uint64_t, MPSGraphRandomDistribution)
+{
+ MPSGraphRandomDistributionUniform MPS_ENUM_AVAILABLE_STARTING(macos(12.4), ios(15.4), tvos(15.4)) MPS_SWIFT_NAME(uniform) = 0,
+ MPSGraphRandomDistributionNormal MPS_ENUM_AVAILABLE_STARTING(macos(12.4), ios(15.4), tvos(15.4)) = 1L,
+ MPSGraphRandomDistributionTruncatedNormal MPS_ENUM_AVAILABLE_STARTING(macos(12.4), ios(15.4), tvos(15.4)) = 2L,
+};
+
+/*!
+ * @typedef MPSGraphRandomNormalSamplingMethod
+ * @abstract Specify what sampling method to use when generating values in the normal distribution.
+ *
+ * @constant MPSGraphRandomNormalSamplingInvCDF Use inverse erf to convert uniform values to values in the normal distribution
+ * @constant MPSGraphRandomNormalSamplingBoxMuller Use Box Muller transform to convert uniform values to values in the normal distribution. For bounded distributions this is a rejection sampling method.
+ */
+typedef NS_ENUM(uint64_t, MPSGraphRandomNormalSamplingMethod)
+{
+ MPSGraphRandomNormalSamplingInvCDF MPS_ENUM_AVAILABLE_STARTING(macos(12.4), ios(15.4), tvos(15.4)) MPS_SWIFT_NAME(invCDF) = 0,
+ MPSGraphRandomNormalSamplingBoxMuller MPS_ENUM_AVAILABLE_STARTING(macos(12.4), ios(15.4), tvos(15.4)) = 1L,
+};
+
+@interface MPSGraphRandomOpDescriptor : NSObject<NSCopying>
+
+/*! @property distribution
+ * @discussion The type of distribution to draw samples from. See MPSGraphRandomDistribution.
+*/
+@property (readwrite, nonatomic) MPSGraphRandomDistribution distribution;
+
+/*! @property dataType
+ * @discussion The data type of the generated result values.
+ * When sampling from the uniform distribution, valid types are MPSDataTypeFloat16,
+ * MPSDataTypeFloat32, and MPSDataTypeInt32.
+ * When sampling from the normal or truncated normal distribution, valid types are
+ * MPSDataTypeFloat16 and MPSDataTypeFloat32.
+*/
+@property (readwrite, nonatomic) MPSDataType dataType;
+
+/*! @property min
+ * @discussion The lower range of the distribution. This value is used for Uniform distributions with float data types and Truncated Normal disributions.
+ * Defaults to 0 for uniform distributions and -2 for normal distributions.
+*/
+@property (readwrite, nonatomic) float min;
+
+/*! @property max
+ * @discussion The upper range of the distribution. This value is used for Uniform distributions with float data types and Truncated Normal disributions.
+ * Defaults to 1 for uniform distributions and 2 for normal distributions.
+*/
+@property (readwrite, nonatomic) float max;
+
+/*! @property minInteger
+ * @discussion The lower range of the distribution. This value is used for Uniform with integer data types
+ * Defaults to 0.
+*/
+@property (readwrite, nonatomic) NSInteger minInteger;
+
+/*! @property maxInteger
+ * @discussion The upper range of the distribution. This value is used for Uniform with integer data types
+ * Defaults to INT32_MAX for uniform distributions and 0 for normal distributions.
+*/
+@property (readwrite, nonatomic) NSInteger maxInteger;
+
+/*! @property mean
+ * @discussion The mean of the distribution. This value is used for Normal and Truncated Normal disributions.
+ * Defaults to 0.
+*/
+@property (readwrite, nonatomic) float mean;
+
+/*! @property standardDeviation
+ * @discussion The standardDeviation of the distribution. This value is used for Normal and Truncated Normal disributions.
+ * For Truncated Normal distribution this defines the standard deviation parameter of the underlying Normal distribution, that is the width
+ * of the Gaussian, not the true standard deviation of the truncated distribution which typically differs from the standard deviation of the
+ * original Normal distribution.
+ * Defaults to 0 for uniform distributions and 1 for normal distributions.
+*/
+@property (readwrite, nonatomic) float standardDeviation;
+
+/*! @property samplingMethod
+ * @discussion The sampling method of the distribution. This value is used for Normal and Truncated Normal disributions. See MPSGraphRandomNormalSamplingMethod.
+ * Defaults to MPSGraphRandomNormalSamplingInvCDF.
+*/
+@property (readwrite, nonatomic) MPSGraphRandomNormalSamplingMethod samplingMethod;
+
++(nullable instancetype) descriptorWithDistribution:(MPSGraphRandomDistribution) distribution
+ dataType:(MPSDataType) dataType;
+
+@end // MPSGraphRandomOpDescriptor
+
MPS_CLASS_AVAILABLE_STARTING(macos(11.0), ios(14.0), tvos(14.0))
@interface MPSGraph(MPSGraphRandomOps)
+/*!
+ * @abstract Creates an MPSGraphTensor representing state using the Philox algorithm with given counter and key values.
+ * @discussion Generates random numbers using the Philox counter-based algorithm, for further details see:
+ * John K. Salmon, Mark A. Moraes, Ron O. Dror, and David E. Shaw. Parallel Random Numbers: As Easy as 1, 2, 3.
+ *
+ * A stateTensor generated with this API can be used in MPSGraph Random APIs which accept a stateTensor. The
+ * updated stateTensor is returned alongside the random values, and can be fed to the following random layer. In
+ * most use cases, a stateTensor should only need to be initialized once at the start of the graph. A stateTensor can
+ * be set as a target tensor of an MPSGraph execution to obtain a stateTensor serialized as an NDArray. This can be
+ * used as input to a placeholder in the graph to avoid ever needing to have a state intilization layer in an MPSGraph.
+ * This can allow for a continued stream through multiple executions of a single MPSGraph by having the final
+ * stateTensor as a target tensor passed into the following MPSGraph execution as a placeholder input. This may be
+ * helpful for training graphs in particular.
+ *
+ * @code
+ * MPSGraph *graph = [MPSGraph new];
+ * MPSGraphTensor *stateTensor = [graph randomPhiloxStateTensorWithSeed: seed name: nil];
+ * NSArray<MPSGraphTensor*> *resultTensors0 = [graph randomUniformTensorWithShape:@[@10, @10]
+ * stateTensor:stateTensor
+ * name:nil];
+ * NSArray<MPSGraphTensor*> *resultTensors1 = [graph randomUniformTensorWithShape:@[@10, @10]
+ * stateTensor:resultTensors0[1]
+ * name:nil];
+ *
+ * @endcode
+ *
+ * @param seed Initial counter and key values will be generated using seed.
+ *
+ * @return An MPSGraphTensor representing a random state, to be passed as an input to a random op.
+ */
+-(MPSGraphTensor *) randomPhiloxStateTensorWithSeed:(NSUInteger) seed
+ name:(NSString * _Nullable) name;
+
+/*!
+ * @abstract Creates an MPSGraphTensor representing state using the Philox algorithm with given counter and key values.
+ * @discussion See randomPhiloxStateTensorWithSeed.
+ *
+ * @param counterLow The value to initilaize lower 64 bits of counter to. Philox utilizes a 128 bit counter
+ * @param counterHigh The value to initilaize upper 64 bits of counter to. Philox utilizes a 128 bit counter
+ * @param key The value to initialize the key to in Philox algorithm.
+ *
+ * @return An MPSGraphTensor representing a random state, to be passed as an input to a random op.
+ */
+-(MPSGraphTensor *) randomPhiloxStateTensorWithCounterLow:(NSUInteger) counterLow
+ counterHigh:(NSUInteger) counterHigh
+ key:(NSUInteger) key
+ name:(NSString * _Nullable) name;
+
+/*!
+ * @abstract Create Random op of type matching distribution in descriptor and return random values
+ * @discussion Returns a tensor of provided shape of random values in the distribution specified. A random seed value is used
+ * to initalize state. No state is preserved, and subsequent calls are not guaranteed to result in a unique stream of
+ * random values.
+ *
+ * @param shape The shape of the tensor generated
+ * @param descriptor The descriptor of the distribution. See MPSGraphRandomOpDescriptor.
+ * @param name The name for the operation
+ *
+ * @return An MPSGraphTensor of shape containing random values in the defined range.
+ */
+-(MPSGraphTensor *) randomTensorWithShape:(MPSShape *) shape
+ descriptor:(MPSGraphRandomOpDescriptor *) descriptor
+ name:(NSString * _Nullable) name;
+-(MPSGraphTensor *) randomTensorWithShapeTensor:(MPSGraphTensor *) shapeTensor
+ descriptor:(MPSGraphRandomOpDescriptor *) descriptor
+ name:(NSString * _Nullable) name;
+
+/*!
+ * @abstract Create Random op of type matching distribution in descriptor and return random values
+ * @discussion Returns a tensor of provided shape of random values in the distribution specified. The provided seed value is
+ * used to initalize state. No state is preserved, and all calls with equal seed yield an identical stream of random values.
+ *
+ * @param shape The shape of the tensor generated
+ * @param descriptor The descriptor of the distribution. See MPSGraphRandomOpDescriptor.
+ * @param seed The seed to use to initialize state. All calls with equal seed yield an identical stream of random values.
+ * @param name The name for the operation
+ *
+ * @return An MPSGraphTensor of shape containing random values in the defined range.
+ */
+-(MPSGraphTensor *) randomTensorWithShape:(MPSShape *) shape
+ descriptor:(MPSGraphRandomOpDescriptor *) descriptor
+ seed:(NSUInteger) seed
+ name:(NSString * _Nullable) name;
+-(MPSGraphTensor *) randomTensorWithShapeTensor:(MPSGraphTensor *) shapeTensor
+ descriptor:(MPSGraphRandomOpDescriptor *) descriptor
+ seed:(NSUInteger) seed
+ name:(NSString * _Nullable) name;
+
+/*!
+ * @abstract Create Random op of type matching distribution in descriptor, and return random values and updated state
+ * @discussion Returns an array of 2 tensors, where the first is of provided shape of random values in the distribution specified.
+ * The updated state tensor is returned as the second result tensor.
+ *
+ * The provided state is used to define a stream of random values. No state is preserved, and all calls with equal state
+ * yield an identical stream of random values. The initial stateTensor provided should be created using the MPSGraph
+ * randomPhiloxStateTensor APIs. The resulting stateTensor from this op can be passed as an argument to the following
+ * random calls to continue sampling from the stream.
+ *
+ * @param shape The shape of the tensor generated
+ * @param descriptor The descriptor of the distribution. See MPSGraphRandomOpDescriptor.
+ * @param state The state to define a stream of random values. All calls with equal state yield an identical stream of random values.
+ * @param name The name for the operation
+ *
+ * @return An array of MPSGraphTensor of size 2. The first MPSGraphTensor is of shape containing random values in the defined range.
+ * The second MPSGraphTensor is the updated state tensor.
+ */
+-(NSArray<MPSGraphTensor *> *) randomTensorWithShape:(MPSShape *) shape
+ descriptor:(MPSGraphRandomOpDescriptor *) descriptor
+ stateTensor:(MPSGraphTensor *) state
+ name:(NSString * _Nullable) name;
+-(NSArray<MPSGraphTensor *> *) randomTensorWithShapeTensor:(MPSGraphTensor *) shapeTensor
+ descriptor:(MPSGraphRandomOpDescriptor *) descriptor
+ stateTensor:(MPSGraphTensor *) state
+ name:(NSString * _Nullable) name;
+
+/*!
+ * @abstract Create RandomUniform op and return random uniform values
+ * @discussion Returns a tensor of provided shape of random uniform values in the range [0.0, 1.0). A random seed value is used
+ * to initalize state. No state is preserved, and subsequent calls are not guaranteed to result in a unique stream of
+ * random values.
+ *
+ * @param shape The shape of the tensor generated
+ * @param name The name for the operation
+ *
+ * @return An MPSGraphTensor of shape containing random values in the defined range.
+ */
+-(MPSGraphTensor *) randomUniformTensorWithShape:(MPSShape *) shape
+ name:(NSString * _Nullable) name;
+
+-(MPSGraphTensor *) randomUniformTensorWithShapeTensor:(MPSGraphTensor *) shapeTensor
+ name:(NSString * _Nullable) name;
+
+/*!
+ * @abstract Create RandomUniform op and return random uniform values
+ * @discussion Returns a tensor of provided shape of random uniform values in the range [0.0, 1.0). The provided seed value is
+ * used to initalize state. No state is preserved, and all calls with equal seed yield an identical stream of random values.
+ *
+ * @param shape The shape of the tensor generated
+ * @param seed The seed to use to initialize state. All calls with equal seed yield an identical stream of random values.
+ * @param name The name for the operation
+ *
+ * @return An MPSGraphTensor of shape containing random values in the defined range.
+ */
+-(MPSGraphTensor *) randomUniformTensorWithShape:(MPSShape *) shape
+ seed:(NSUInteger) seed
+ name:(NSString * _Nullable) name;
+
+-(MPSGraphTensor *) randomUniformTensorWithShapeTensor:(MPSGraphTensor *) shapeTensor
+ seed:(NSUInteger) seed
+ name:(NSString * _Nullable) name;
+
+/*!
+ * @abstract Create RandomUniform op and return random uniform values and updated state
+ * @discussion Returns an array of 2 tensors, where the first is a tensor of provided shape of random uniform values in the range
+ * [0.0, 1.0). The updated state tensor is returned as the second result tensor.
+ *
+ * The provided state is used to define a stream of random values. No state is preserved, and all calls with equal state
+ * yield an identical stream of random values. The initial stateTensor provided should be created using the MPSGraph
+ * randomPhiloxStateTensor APIs. The resulting stateTensor from this op can be passed as an argument to the following
+ * random calls to continue sampling from the stream.
+ *
+ * @param shape The shape of the tensor generated
+ * @param state The state to define a stream of random values. All calls with equal state yield an identical stream of random values.
+ * @param name The name for the operation
+ *
+ * @return An array of MPSGraphTensor of size 2. The first MPSGraphTensor is of shape containing random values in the defined range.
+ * The second MPSGraphTensor is the updated state tensor.
+ */
+-(NSArray<MPSGraphTensor *> *) randomUniformTensorWithShape:(MPSShape *) shape
+ stateTensor:(MPSGraphTensor *) state
+ name:(NSString * _Nullable) name;
+
+-(NSArray<MPSGraphTensor *> *) randomUniformTensorWithShapeTensor:(MPSGraphTensor *) shapeTensor
+ stateTensor:(MPSGraphTensor *) state
+ name:(NSString * _Nullable) name;
+
+
-(MPSGraphTensor *) dropoutTensor:(MPSGraphTensor *) tensor
rate:(double) rate
name:(NSString * _Nullable) name
diff -ruN /Applications/Xcode_13.2.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/MetalPerformanceShadersGraph.framework/Headers/MPSGraphReductionOps.h /Applications/Xcode_13.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/MetalPerformanceShadersGraph.framework/Headers/MPSGraphReductionOps.h
--- /Applications/Xcode_13.2.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/MetalPerformanceShadersGraph.framework/Headers/MPSGraphReductionOps.h 2021-10-21 17:38:23.000000000 -0400
+++ /Applications/Xcode_13.2.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/MetalPerformanceShadersGraph.framework/Headers/MPSGraphReductionOps.h 2021-11-11 14:20:05.000000000 -0500
@@ -95,6 +95,58 @@
name:(NSString *_Nullable)name;
/*!
+ * @abstract Create reduction max propagate NaN op and return the result tensor.
+ *
+ * @param tensor input tensor
+ * @param axis axis of reduction
+ * @param name name for the operation
+ *
+ * @return A valid MPSGraphTensor object.
+ */
+-(MPSGraphTensor *) reductionMaximumPropagateNaNWithTensor:(MPSGraphTensor *) tensor
+ axis:(NSInteger) axis
+ name:(NSString * _Nullable) name;
+
+/*!
+ * @abstract Create reduction max propagate NaN op and return the result tensor.
+ *
+ * @param tensor input tensor
+ * @param axes axes of reduction
+ * @param name name for the operation
+ *
+ * @return A valid MPSGraphTensor object.
+ */
+-(MPSGraphTensor *) reductionMaximumPropagateNaNWithTensor:(MPSGraphTensor *)tensor
+ axes:(NSArray<NSNumber *> *_Nullable)axes
+ name:(NSString *_Nullable)name;
+
+/*!
+ * @abstract Create reduction min propagate NaN op and return the result tensor.
+ *
+ * @param tensor input tensor
+ * @param axis axis of reduction
+ * @param name name for the operation
+ *
+ * @return A valid MPSGraphTensor object.
+ */
+-(MPSGraphTensor *) reductionMinimumPropagateNaNWithTensor:(MPSGraphTensor *) tensor
+ axis:(NSInteger) axis
+ name:(NSString * _Nullable) name;
+
+/*!
+ * @abstract Create reduction min propagate NaN op and return the result tensor.
+ *
+ * @param tensor input tensor
+ * @param axes axes of reduction
+ * @param name name for the operation
+ *
+ * @return A valid MPSGraphTensor object.
+ */
+-(MPSGraphTensor *) reductionMinimumPropagateNaNWithTensor:(MPSGraphTensor *)tensor
+ axes:(NSArray<NSNumber *> *_Nullable)axes
+ name:(NSString *_Nullable)name;
+
+/*!
* @abstract Create reduction product op and return the result tensor.
*
* @param tensor input tensor
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status