-
Notifications
You must be signed in to change notification settings - Fork 516
MPSCore iOS xcode16.0 b1
Rolf Bjarne Kvinge edited this page Aug 30, 2024
·
3 revisions
#MPSCore.framework https://github.com/xamarin/xamarin-macios/pull/21155
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Headers/MPSCoreTypes.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Headers/MPSCoreTypes.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Headers/MPSCoreTypes.h 2024-04-13 20:24:00
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Headers/MPSCoreTypes.h 2024-05-30 04:02:02
@@ -275,12 +275,14 @@
// signed integers
MPSDataTypeSignedBit MPS_ENUM_AVAILABLE_STARTING( macos(10.13), ios(10.0), macCatalyst(13.0), tvos(10.0)) = 0x20000000,
MPSDataTypeIntBit DEPRECATED_ATTRIBUTE = MPSDataTypeSignedBit,
+ MPSDataTypeInt4 MPS_ENUM_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0)) = MPSDataTypeSignedBit | 4,
MPSDataTypeInt8 MPS_ENUM_AVAILABLE_STARTING( macos(10.13), ios(10.0), macCatalyst(13.0), tvos(10.0)) = MPSDataTypeSignedBit | 8,
MPSDataTypeInt16 MPS_ENUM_AVAILABLE_STARTING( macos(10.13), ios(10.0), macCatalyst(13.0), tvos(10.0)) = MPSDataTypeSignedBit | 16,
MPSDataTypeInt32 MPS_ENUM_AVAILABLE_STARTING( macos(10.13), ios(10.0), macCatalyst(13.0), tvos(10.0)) = MPSDataTypeSignedBit | 32,
MPSDataTypeInt64 MPS_ENUM_AVAILABLE_STARTING( macos(11.0), ios(14.1), macCatalyst(14.1), tvos(14.1)) = MPSDataTypeSignedBit | 64,
// unsigned integers. Range: [0, UTYPE_MAX]
+ MPSDataTypeUInt4 MPS_ENUM_AVAILABLE_STARTING( macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0)) = 4,
MPSDataTypeUInt8 MPS_ENUM_AVAILABLE_STARTING( macos(10.13), ios(10.0), macCatalyst(13.0), tvos(10.0)) = 8,
MPSDataTypeUInt16 MPS_ENUM_AVAILABLE_STARTING( macos(10.13), ios(10.0), macCatalyst(13.0), tvos(10.0)) = 16,
MPSDataTypeUInt32 MPS_ENUM_AVAILABLE_STARTING( macos(10.13), ios(10.0), macCatalyst(13.0), tvos(10.0)) = 32,
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Headers/MPSNDArray.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Headers/MPSNDArray.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Headers/MPSNDArray.h 2024-04-13 20:24:00
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Headers/MPSNDArray.h 2024-05-30 10:46:01
@@ -35,6 +35,12 @@
* Undefined dimensions are implicitly length 1. */
@property (readwrite, nonatomic) NSUInteger numberOfDimensions;
+/*! @property preferPackedRows
+ * @abstract If YES, then new NDArrays created with this descriptor will pack the rows. Default: NO.
+ */
+@property (readwrite, nonatomic) BOOL preferPackedRows
+MPS_AVAILABLE_STARTING(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0));
+
/*! @abstract The number of elements of type dataType in the indicated dimension.
* @discussion If dimensionIndex >= numberOfDimensions, 1 will be returned.
* @param dimensionIndex dimension the MPSNDArray for which to return the length
@@ -67,6 +73,18 @@
-(void) transposeDimension: (NSUInteger) dimensionIndex
withDimension: (NSUInteger) dimensionIndex2;
+/*! @abstract Permutes the dimensions of the current descriptor
+ * @param dimensionOrder A permutation of the dimensions of the NDArray.
+ * dimensionOrder[i] must contain the new postion of dimenson i.
+ * Size of the array must be equal to the original number of dimensions in the descriptor.
+ * Must have all the indices in [0, numberOfDimensions) present uniquely.
+ *
+ * @discussion This permutation is applied on top of whatever transpostions/permutations that may have been performed on the descriptor before.
+ *
+ */
+-(void) permuteWithDimensionOrder: (NSUInteger*__nonnull) dimensionOrder
+MPS_AVAILABLE_STARTING(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0));
+
/*! @abstract The new ordering of dimensions
* @discussion If a transpose is applied, it will change the order
* of dimensions in the MPSNDArray. The default ordering is
@@ -74,6 +92,11 @@
* of dimensions 0 and 1, it will be: {1,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15} */
-(vector_uchar16) dimensionOrder;
+/*! @abstract Returns the shape of the NDArray as MPSShape
+ * @discussion The length of the array is the number of dimensions and the size of the fastest running dimension is the last element in the array. */
+-(NSArray<NSNumber *> * _Nonnull) getShape
+MPS_AVAILABLE_STARTING(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0));
+
/*! @abstract Create an MPSNDArrayDescriptor object for a given size of dimensions.
* @discussion Sample code:
* @code
@@ -270,6 +293,24 @@
-(nonnull instancetype) initWithDevice:(id<MTLDevice> _Nonnull) device
scalar:(double) value;
+/*! @abstract Initialize an MPSNDArray object from a Metal Buffer with a given descriptor and offset in bytes.
+ *
+ * @param buffer The buffer used for initializing. The NDArray will alias to this buffer at the given offset.
+ * @param offset Offset in bytes to the buffer.
+ * @param descriptor The MPSNDArrayDescriptor used for initializing the the NDArray.
+ *
+ * @return A valid MPSNDArray object or nil, if failure. */
+
+-(nonnull instancetype) initWithBuffer:(id<MTLBuffer> _Nonnull) buffer
+ offset:(NSUInteger) offset
+ descriptor:(MPSNDArrayDescriptor * _Nonnull) descriptor
+MPS_AVAILABLE_STARTING(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0));
+
+/*! @abstract Returns the user buffer in case the NDArray was initialized with an MTLBuffer.
+ * @return The user-provided MTLBuffer that was used to initialize this MPSNDArray or nil, in case it was not.. */
+-(__nullable id <MTLBuffer>) userBuffer
+MPS_AVAILABLE_STARTING(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0));
+
/*! @abstract Get the number of bytes used to allocate underyling MTLResources
* @discussion This is the size of the backing store of underlying MTLResources.
* It does not include all storage used by the object, for example
@@ -303,6 +344,41 @@
-(MPSNDArray * __nullable) arrayViewWithCommandBuffer: (__nonnull id <MTLCommandBuffer>) cmdBuf
descriptor: (MPSNDArrayDescriptor * _Nonnull) descriptor
aliasing: (MPSAliasingStrategy) aliasing;
+
+/*! @abstract Make a new representation of a MPSNDArray with a slice, transpose or other change in property, trying to alias to result.
+ * @discussion The same as `arrayViewWithCommandBuffer`, except that tries to always alias, and therefore does not require a commanbuffer.
+ * If aliasing is not possible nil is returned.
+ * This method is useful in making aliasing transposes and slices, that are guaranteed to be able to alias. For reshapes it is recommended
+ * to use the `MPSNDArrayIdentity` methods.
+ * @param descriptor A MPSNDArrayDescriptor describing the shape of the new view of the data
+ * @return A new MPSNDArray, if it is possible to make one. Otherwise nil is returned. The MPSNDArray is autoreleased. */
+-(MPSNDArray * __nullable) arrayViewWithDescriptor: (MPSNDArrayDescriptor * _Nonnull) descriptor
+MPS_AVAILABLE_STARTING(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0));
+
+/*! @abstract Make a new representation of a MPSNDArray with given strides and a new shape.
+ * @discussion This operation always returns a new view of the same underlying MTLBuffer, but works only with contiguous buffers.
+ *
+ * @param shape The new shape for the NDArray. Fastest running dimension last. If nil then current shape is used.
+ * @param strides The strides for each dimension. Must be at least length of new shape. Last number must be one. Must be non-increasing.
+ *
+ * @return A new MPSNDArray, if it is possible to make one. Otherwise nil is returned. The MPSNDArray is autoreleased. */
+-(MPSNDArray * __nullable) arrayViewWithShape:(MPSShape * _Nullable) shape
+ strides:(MPSShape * _Nonnull) strides
+MPS_AVAILABLE_STARTING(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0));
+
+/*! @abstract Make a new representation of a MPSNDArray with given strides and a new shape.
+ * @discussion This operation always returns a new view of the same underlying MTLBuffer, but works only with contiguous buffers.
+ *
+ * @param numberOfDimensions Number of dimensions in the new view.
+ * @param dimensionSizes Size of each new dimension. Fastest running dimension first. Must be of length numberOfDimensions.
+ * @param dimStrides The strides for each dimension. First number must be one. Must be non-decreasing. Must be of length numberOfDimensions.
+ *
+ * @return A new MPSNDArray, if it is possible to make one. Otherwise nil is returned. The MPSNDArray is autoreleased. */
+-(MPSNDArray * __nullable) arrayViewWithDimensionCount:(NSUInteger) numberOfDimensions
+ dimensionSizes:(const NSUInteger * _Nonnull) dimensionSizes
+ strides:(const NSUInteger * _Nonnull) dimStrides
+MPS_AVAILABLE_STARTING(macos(15.0), ios(18.0), macCatalyst(18.0), tvos(18.0), xros(2.0));
+
/*! @abstract The parent MPSNDArray that this object aliases
* @discussion If the MPSNDArray was createrd as a array view of another MPSNDArray object, and aliases content
- 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
- xcode16.2 Binding Status