@class NSString, NSMutableArray, NSArray; @interface MLCDeviceGPU : NSObject <MLCLayerOperations, MLCEngineDispatch, NSCopying, MLComputeEngineControl> @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (nonatomic) struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } l; @property (retain, nonatomic) NSMutableArray *gpuHeapTemporaryResourceAllocator; @property (readonly, nonatomic) double *executionTimeInterval; @property (retain, nonatomic) NSArray *gpuLocalEventList; @property (retain, nonatomic) NSArray *gpuSharedEventList; @property (readonly, nonatomic) unsigned long long *currentEventValue; @property (nonatomic) unsigned long long numDevicesToUse; @property (nonatomic) unsigned long long numDevicesUsedWithFirstBatch; @property (readonly, nonatomic) NSArray *deviceList; @property (readonly, nonatomic) int deviceType; @property (readonly, nonatomic) BOOL isAppleSoCGPU; @property (readonly, nonatomic) NSMutableArray *gpuCommandQueueList; @property (readonly, nonatomic) NSMutableArray *gpuCommandBufferList; @property (readonly, nonatomic) NSMutableArray *gpuMPSCommandBufferList; @property (readonly, nonatomic) NSMutableArray *gpuWriteTensorKernelList; @property (readonly, nonatomic) NSMutableArray *gpuReadTensorKernelList; @property (readonly, nonatomic) NSMutableArray *gpuLibrary; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesForwardConcat2DArray; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesForwardConcat2D; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesConcatFloat; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesConcatBool; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesPad2DArray; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesPad2D; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesReduceAcrossBatch; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesReduceAcrossChannel; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesArithmeticUnaryForward; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesArithmeticUnaryGradient; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesArithmeticBinaryForward; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesArithmeticBinaryGradient; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesArithmeticReduceGradientAny; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesArithmeticReduceGradientAll; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesEmbeddingRenormalizeWeights; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesEmbeddingForward; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesEmbeddingGradient; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesCompareRelationalOpForward; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesCompareLogicalOpForward; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesMemFillFloat; @property (retain, nonatomic) NSMutableArray *gpuPipelineStatesMemCopy; @property (retain, nonatomic) NSMutableArray *gpuConcurrentEncoderFence; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (unsigned long long)calculateImageSizeForTensor:(id)a0; + (id)filteredGPUListIncludingLowPoweredBuiltin:(BOOL)a0; + (BOOL)multiGPUNotSupportedInFilteredGPUList:(id)a0; - (void)dealloc; - (void).cxx_destruct; - (BOOL)isEqual:(id)a0; - (id)copyWithZone:(struct _NSZone { } *)a0; - (unsigned long long)numDevices; - (void)dispatchForwardEmbeddingLayer:(id)a0 weight:(id)a1 sourceTensor:(id)a2 resultTensor:(id)a3; - (id)gammaGradients:(id)a0; - (id)gramMatrixLayerWithScaleFactor:(float)a0; - (id)mhaBiasGradient:(id)a0 withSize:(unsigned long long)a1 index:(unsigned long long)a2; - (void)signalNextEvent; - (void)dispatchFillTensor:(id)a0 deviceIndex:(unsigned long long)a1; - (void)dispatchForwardSplitLayer:(id)a0 sourceTensor:(id)a1 resultTensors:(id)a2 forConcat:(BOOL)a3; - (void)allReduceOverXGMI:(id)a0 deviceIndex:(unsigned long long)a1 stateBuffers:(id)a2; - (void)allocateCommandBufferForDeviceAtIndex:(unsigned long long)a0; - (void)allocateDeviceDataForGlobalNormClippingWithOptimizer:(id)a0 updatableParameterCount:(unsigned long long)a1; - (void)allocateDeviceHeapForGraph:(id)a0 forInference:(BOOL)a1; - (void)allocateDeviceMemoryForTensor:(id)a0; - (void)allocateDeviceMemoryForTensor:(id)a0 batchSize:(unsigned long long)a1; - (id)allocateDeviceMemoryForTensor:(id)a0 device:(id)a1 count:(unsigned long long)a2; - (void)allocateParameterGradientsForDeviceOps:(id)a0 parameters:(id)a1; - (void)allocateResultTensor:(id)a0; - (unsigned long long)allocatedDeviceDataSizeForTraining:(BOOL)a0 layer:(id)a1; - (id)arithmeticLayerWithOperation:(int)a0 activationDescriptor:(id)a1; - (id)batchNormalizationLayerWithChannelCount:(unsigned long long)a0 mean:(id)a1 variance:(id)a2 beta:(id)a3 gamma:(id)a4 varianceEpsilon:(float)a5 momentum:(float)a6; - (id)betaGradients:(id)a0; - (id)biasesGradients:(id)a0; - (void)broadcastTensor:(id)a0; - (void)broadcastTensor:(id)a0 batchSize:(unsigned long long)a1; - (BOOL)canFuseConvolutionLayerForInference:(id)a0; - (BOOL)canFuseFullyConnectedLayerForInference:(id)a0; - (BOOL)checkToConvertTensor:(id)a0 inLayer:(id)a1; - (void)commitAndWaitForCompletion:(id /* block */)a0; - (void)commitAndWaitForCompletion:(id /* block */)a0 enableProfiling:(BOOL)a1 graphExecutionTime:(id)a2 graphResultTensor:(id)a3; - (void)commitDeviceAtIndex:(unsigned long long)a0; - (void)commitWithCompletionHandler:(id /* block */)a0 enableProfiling:(BOOL)a1 graphExecutionTime:(id)a2 graphResultTensor:(id)a3; - (void)commitWithProfiling:(BOOL)a0 graphExecutionTime:(id)a1; - (id)compareLayerWithOperation:(int)a0; - (BOOL)compileLayerDeviceOps:(id)a0 sourceTensors:(id)a1 resultTensor:(id)a2; - (BOOL)compileLayerDeviceOps:(id)a0 sourceTensors:(id)a1 resultTensors:(id)a2; - (void)convertUpdatesToTensorDataForLayer:(id)a0; - (void)convertUpdatesToTensorDataForTensorParameters:(id)a0; - (id)convolutionLayerWithDescriptor:(id)a0 weights:(id)a1 biasTerms:(id)a2; - (id)convolutionTransposeLayerWithDescriptor:(id)a0 weights:(id)a1 biasTerms:(id)a2; - (void)copyMTLBuffer:(id)a0 toBytes:(void *)a1 length:(unsigned long long)a2; - (void)copyMTLBuffer:(id)a0 toNSData:(id)a1; - (id)createOptimizerDeviceDataForTensor:(id)a0 optimizer:(id)a1 optimizerData:(id)a2 isVector:(BOOL)a3; - (BOOL)createPipelineStatesForMissingActivationFunctions; - (void)deallocateDeviceMemoryForTensor:(id)a0; - (unsigned long long)deviceMemorySizeForTensor:(id)a0; - (void)dispatchBroadcastTensor:(id)a0; - (void)dispatchBroadcastTensor:(id)a0 batchSize:(unsigned long long)a1; - (void)dispatchForwardActivationsKernel:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchForwardAndGradientLossLayer:(id)a0 sourceTensor:(id)a1 labelsTensor:(id)a2 labelsTensorStride:(unsigned long long)a3 weightsTensor:(id)a4 resultTensor:(id)a5 resultGradientTensor:(id)a6; - (void)dispatchForwardArithmeticBinaryKernel:(id)a0 sourceTensor:(id)a1 sourceSecondaryTensor:(id)a2 resultTensor:(id)a3 deviceIndex:(unsigned long long)a4; - (void)dispatchForwardArithmeticTertiaryKernel:(id)a0 sourceTensor:(id)a1 sourceSecondaryTensor:(id)a2 sourceTertiaryTensor:(id)a3 resultTensor:(id)a4 deviceIndex:(unsigned long long)a5; - (void)dispatchForwardArithmeticUnaryKernel:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchForwardBatchNormalizationKernel:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3 forTraining:(BOOL)a4; - (void)dispatchForwardCompareLayer:(id)a0 sourceTensor:(id)a1 secondaryTensor:(id)a2 resultTensor:(id)a3 compareOp:(int)a4 forTraining:(BOOL)a5; - (void)dispatchForwardConcatLayer:(id)a0 sourceTensors:(id)a1 resultTensor:(id)a2; - (void)dispatchForwardFullyConnectedLayer:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 forTraining:(BOOL)a3; - (void)dispatchForwardFusedArithmeticLayerNormalizationLayer:(id)a0 sourceTensors:(id)a1 resultTensor:(id)a2 forTraining:(BOOL)a3; - (void)dispatchForwardGatherLayer:(id)a0 sourceTensors:(id)a1 resultTensor:(id)a2 forTraining:(BOOL)a3; - (void)dispatchForwardGramMatrixKernel:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3 forTraining:(BOOL)a4; - (void)dispatchForwardGroupNormalizationKernel:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3 forTraining:(BOOL)a4; - (void)dispatchForwardInstanceNormalizationKernel:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3 forTraining:(BOOL)a4; - (void)dispatchForwardLayer:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 resultStateIsTemporary:(BOOL)a3 forTraining:(BOOL)a4; - (void)dispatchForwardLayer:(id)a0 sourceTensor:(id)a1 secondaryTensor:(id)a2 tertiaryTensor:(id)a3 resultTensor:(id)a4 resultStateIsTemporary:(BOOL)a5 forTraining:(BOOL)a6; - (void)dispatchForwardLayerNormalizationKernel:(id)a0 sourceTensors:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3 forTraining:(BOOL)a4; - (void)dispatchForwardLossLayer:(id)a0 sourceTensor:(id)a1 labelsTensor:(id)a2 labelsTensorStride:(unsigned long long)a3 weightsTensor:(id)a4 resultTensor:(id)a5 resultStateIsTemporary:(BOOL)a6 forTraining:(BOOL)a7; - (void)dispatchForwardMHALayer:(id)a0 sourceTensors:(id)a1 resultTensor:(id)a2 resultStateIsTemporary:(BOOL)a3 forTraining:(BOOL)a4; - (void)dispatchForwardMPSGraphWithDeviceOps:(id)a0 sourceBuffer:(id)a1 resultBuffer:(id)a2 deviceIndex:(unsigned long long)a3 dataType:(unsigned int)a4; - (void)dispatchForwardMatMulLayer:(id)a0 sourceTensors:(id)a1 resultTensor:(id)a2; - (void)dispatchForwardPaddingKernel:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchForwardPoolingKernel:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3 forTraining:(BOOL)a4; - (void)dispatchForwardReduceLayer:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 reductionType:(int)a3 reduceDimensions:(id)a4 forTraining:(BOOL)a5; - (void)dispatchForwardReshapeLayer:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 resultStateIsTemporary:(BOOL)a3 forTraining:(BOOL)a4; - (void)dispatchForwardResizeKernel:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchForwardScatterLayer:(id)a0 sourceTensors:(id)a1 resultTensor:(id)a2 forTraining:(BOOL)a3; - (void)dispatchForwardSelectLayer:(id)a0 conditionTensor:(id)a1 sourceTensors:(id)a2 resultTensor:(id)a3 forTraining:(BOOL)a4; - (void)dispatchForwardSliceLayer:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 forTraining:(BOOL)a3; - (void)dispatchForwardSoftmaxKernel:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchForwardSplitLayer:(id)a0 sourceTensor:(id)a1 resultTensors:(id)a2; - (void)dispatchGradientActivationsKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchGradientArithmeticBinaryKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 secondaryResultGradientTensor:(id)a3 deviceIndex:(unsigned long long)a4; - (void)dispatchGradientArithmeticUnaryKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchGradientBatchNormalizationKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchGradientConcatLayer:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensors:(id)a2; - (void)dispatchGradientEmbeddingLayer:(id)a0 sourceGradientTensor:(id)a1; - (void)dispatchGradientFullyConnectedLayer:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 resultStateIsTemporary:(BOOL)a3; - (void)dispatchGradientGramMatrixKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchGradientGroupNormalizationKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchGradientInstanceNormalizationKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchGradientLayer:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2; - (void)dispatchGradientLayer:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 secondaryResultGradientTensor:(id)a3; - (void)dispatchGradientLayerNormalizationKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchGradientLossLayer:(id)a0 sourceGradientTensor:(id)a1 labelsTensor:(id)a2 labelsTensorStride:(unsigned long long)a3 weightsTensor:(id)a4 resultGradientTensor:(id)a5; - (void)dispatchGradientMHALayer:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensors:(id)a2 resultStateIsTemporary:(BOOL)a3; - (void)dispatchGradientMPSGraphWithDeviceOps:(id)a0 sourceBuffer:(id)a1 souceGradientBuffer:(id)a2 resultGradientBuffer:(id)a3 deviceIndex:(unsigned long long)a4 dataType:(unsigned int)a5; - (void)dispatchGradientMatMulLayer:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensors:(id)a2; - (void)dispatchGradientPaddingKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchGradientPoolingKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchGradientReduceLayer:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 reductionType:(int)a3 reduceDimensions:(id)a4; - (void)dispatchGradientReshapeLayer:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2; - (void)dispatchGradientResizeKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchGradientSelectLayer:(id)a0 conditionTensor:(id)a1 sourceGradientTensor:(id)a2 resultGradientTensors:(id)a3; - (void)dispatchGradientSliceLayer:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2; - (void)dispatchGradientSoftmaxKernel:(id)a0 sourceGradientTensor:(id)a1 resultGradientTensor:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchGradientSplitLayer:(id)a0 sourceGradientTensors:(id)a1 resultGradientTensor:(id)a2; - (void)dispatchGradientSplitLayer:(id)a0 sourceGradientTensors:(id)a1 resultGradientTensor:(id)a2 forConcat:(BOOL)a3; - (void)dispatchPadChannelsKernel:(id)a0 sourceImageBatch:(id)a1 resultImageBatch:(id)a2 deviceIndex:(unsigned long long)a3; - (void)dispatchRNNForwardLayer:(id)a0 sourceTensors:(id)a1 resultTensors:(id)a2; - (void)dispatchRNNForwardLayer:(id)a0 sourceTensors:(id)a1 resultTensors:(id)a2 resultStateIsTemporary:(BOOL)a3 forTraining:(BOOL)a4; - (void)dispatchRNNGradientLayer:(id)a0 sourceGradientTensors:(id)a1 resultGradientTensors:(id)a2; - (void)dispatchReadTensor:(id)a0 targetBuffer:(void *)a1 batchSize:(unsigned long long)a2; - (void)dispatchReadTensorFromAllDevices:(id)a0 targetBuffer:(void *)a1 batchSize:(unsigned long long)a2; - (void)dispatchTransposeKernel:(id)a0 sourceTensor:(id)a1 resultTensor:(id)a2 deviceIndex:(unsigned long long)a3 forward:(BOOL)a4; - (id)dropoutLayerWithRate:(float)a0 seed:(unsigned long long)a1; - (id)embeddingLayerWithDescriptor:(id)a0 weights:(id)a1 inferenceOnly:(BOOL)a2; - (id)embeddingWeightsGradients:(id)a0 embeddingCount:(unsigned long long)a1 embeddingDimension:(unsigned long long)a2; - (void)encodePrimitiveToCommandBuffer:(id)a0 gpuDeviceOps:(id)a1 sourceTensor:(id)a2 secondaryTensor:(id)a3 tertiaryTensor:(id)a4 resultTensor:(id)a5 params:(struct CompareParams { int x0; struct { int x0; int x1; int x2; int x3; } x1[4]; struct { unsigned short x0; short x1; } x2; int x3; } *)a6 sizeOfParams:(unsigned long long)a7 pipelineState:(id)a8 deviceIndex:(unsigned long long)a9; - (id)fullyConnectedLayerWithDescriptor:(id)a0 weights:(id)a1 biasTerms:(id)a2; - (void)fuseLayersForGraph:(id)a0 stopGradientTensorList:(id)a1 startAtLayerIndex:(unsigned long long)a2 forInference:(BOOL)a3; - (void)fuseLayersForInferenceGraph:(id)a0 startAtLayerIndex:(unsigned long long)a1; - (void)fuseLayersForTrainingGraph:(id)a0 stopGradientTensorList:(id)a1; - (id)fusedBatchNormalizationAndNeuronLayerWithDescriptor:(id)a0 numOfFeatureChannels:(unsigned long long)a1 mean:(id)a2 variance:(id)a3 beta:(id)a4 gamma:(id)a5 varianceEpsilon:(float)a6 momentum:(float)a7; - (id)fusedConvolutionAndNeuronLayerWithDescriptor:(id)a0 convolutionDescriptor:(id)a1 weights:(id)a2 biasTerms:(id)a3; - (id)fusedFullyConnectedAndNeuronLayerWithDescriptor:(id)a0 convolutionDescriptor:(id)a1 weights:(id)a2 biasTerms:(id)a3; - (id)fusedInstanceNormalizationAndNeuronLayerWithDescriptor:(id)a0 numOfFeatureChannels:(unsigned long long)a1 mean:(id)a2 variance:(id)a3 beta:(id)a4 gamma:(id)a5 varianceEpsilon:(float)a6 momentum:(float)a7; - (id)gatherLayerWithDimension:(unsigned long long)a0; - (id)getGradientBufferForNormalizationState:(id)a0 layer:(id)a1 isBetaTensor:(BOOL)a2; - (id)getHostPointerIfUnifiedDeviceMemory:(id)a0; - (id)groupNormalizationLayerWithFeatureChannelCount:(unsigned long long)a0 groupCount:(unsigned long long)a1 beta:(id)a2 gamma:(id)a3 varianceEpsilon:(float)a4; - (void)incrementReadCountForGradientState:(id)a0 increment:(long long)a1; - (void)incrementReadCountForTensorDeviceMemory:(id)a0 increment:(long long)a1; - (id)initWithDeviceList:(id)a0; - (id)initWithType:(int)a0 gpuDeviceList:(id)a1 gpuLocalEventList:(id)a2 gpuSharedEventList:(id)a3 currentEventValue:(unsigned long long *)a4 gpuCommandQueueList:(id)a5 gpuCommandBufferList:(id)a6 gpuMPSCommandBufferList:(id)a7; - (id)initWithType:(int)a0 selectsMultipleComputeDevices:(BOOL)a1; - (id)instanceNormalizationLayerWithChannelCount:(unsigned long long)a0 mean:(id)a1 variance:(id)a2 beta:(id)a3 gamma:(id)a4 varianceEpsilon:(float)a5 momentum:(float)a6; - (BOOL)isResultTensorUsedForGradientComputationByLayer:(id)a0; - (id)layerNormalizationLayerWithNormalizedShape:(id)a0 beta:(id)a1 gamma:(id)a2 varianceEpsilon:(float)a3 isFusedWithArithmeticLayer:(BOOL)a4; - (id)lossLayerWithDescriptor:(id)a0; - (id)lossYOLOLayerWithDescriptor:(id)a0; - (id)lstmBiasGradient:(id)a0 mlcBiasIndex:(unsigned long long)a1; - (id)lstmHiddenWeightGradient:(id)a0 mlcWeightIndex:(unsigned long long)a1; - (id)lstmInputWeightGradient:(id)a0 mlcWeightIndex:(unsigned long long)a1; - (id)lstmLayerWithDescriptor:(id)a0 inputWeights:(id)a1 hiddenWeights:(id)a2 peepholeWeights:(id)a3 biasTerms:(id)a4 gateActivations:(id)a5 outputResultActivation:(id)a6 inferenceOnly:(BOOL)a7; - (id)matMulLayerWithDescriptor:(id)a0 sourceTensors:(id)a1 resultTensor:(id)a2 inferenceOnly:(BOOL)a3; - (id)mhaAttnBiasGradient:(id)a0 withSize:(unsigned long long)a1 index:(unsigned long long)a2; - (id)mhaWeightGradient:(id)a0 withSize:(unsigned long long)a1 index:(unsigned long long)a2; - (void)multiDeviceTensorReduction:(id)a0 sourceBuffer:(void *)a1 targetBuffer:(void *)a2; - (id)multiheadAttentionLayerWithDescriptor:(id)a0 weights:(id)a1 bias:(id)a2 attnBias:(id)a3 inferenceOnly:(BOOL)a4; - (BOOL)needToAllocateDeviceMemoryForTensor:(id)a0; - (BOOL)needToAllocateDeviceMemoryForTensor:(id)a0 batchSize:(unsigned long long)a1; - (id)neuronLayerWithDescriptor:(id)a0; - (void)optimizeComputationForTrainingGraph:(id)a0; - (id)optimizerAdamWithDescriptor:(id)a0 beta1:(float)a1 beta2:(float)a2 epsilon:(float)a3 amsgrad:(BOOL)a4 timeStep:(unsigned long long)a5 isAdamW:(BOOL)a6; - (id)optimizerRMSPropWithDescriptor:(id)a0 momentumScale:(float)a1 alpha:(float)a2 epsilon:(float)a3 centered:(BOOL)a4; - (id)optimizerSGDWithDescriptor:(id)a0 momentunScale:(float)a1 useNesterovMomentum:(BOOL)a2; - (id)paddingLayerWithPaddingType:(int)a0 paddingLeft:(unsigned long long)a1 paddingRight:(unsigned long long)a2 paddingTop:(unsigned long long)a3 paddingBottom:(unsigned long long)a4 constantValue:(float)a5 dataType:(int)a6; - (id)poolingLayerWithDescriptor:(id)a0 paddingSizes:(unsigned long long *)a1; - (id)readTensor:(id)a0; - (id)readTensor:(id)a0 fromDeviceIndex:(unsigned long long)a1; - (id)readTensor:(id)a0 fromDeviceIndex:(unsigned long long)a1 batchSize:(unsigned long long)a2; - (void)readTensor:(id)a0 fromDeviceIndex:(unsigned long long)a1 targetBuffer:(void *)a2 batchSize:(unsigned long long)a3; - (void)readTensor:(id)a0 fromDeviceIndex:(unsigned long long)a1 targetBuffer:(void *)a2 batchSize:(unsigned long long)a3 reduceOverBatch:(BOOL)a4; - (void)readTensor:(id)a0 targetBuffer:(void *)a1; - (void)reduceAcrossBatchForSource:(id)a0 result:(id)a1 batchSize:(unsigned long long)a2 batchStride:(unsigned long long)a3 numEntries:(unsigned long long)a4 deviceIndex:(unsigned long long)a5 commandBuffer:(id)a6; - (id)reductionLayerWithReduceType:(int)a0 dimensions:(id)a1 sourceShapeCount:(unsigned long long)a2; - (void)reloadLSTMParameters:(id)a0 rnnGPUDeviceOps:(id)a1 mlcParameterIndex:(unsigned long long)a2 tensor:(id)a3 isInputWeight:(BOOL)a4 isHiddenWeight:(BOOL)a5 isBias:(BOOL)a6 deviceNumber:(unsigned long long)a7; - (void)reloadParameterDataFromHostToDeviceMemoryForTensor:(id)a0; - (id)reshapeLayerWithShape:(id)a0; - (void)restoreConvolutionParamsWithDeviceOps:(id)a0; - (void)restoreRNNParamsWithDeviceOps:(id)a0 optimizer:(id)a1 inputWeightsParameter:(id)a2 hiddenWeightsParameter:(id)a3 biasesParameter:(id)a4 arrayOfParams:(id)a5; - (void)rotateAndCopyMTLBuffer:(id)a0 toNSData:(id)a1 withTensorDescriptor:(id)a2; - (void)saveOrRestoreTempMatrixDisableUpdates:(id)a0 commandBuffer:(id)a1 auxiliaryWeightsMemory:(id)a2 auxiliaryMomentumMemory:(id)a3 auxiliaryVelocityMemory:(id)a4 auxiliaryCenterWeightMemory:(id)a5 deviceNumber:(unsigned long long)a6 kernelNumber:(unsigned long long)a7 mlcIndex:(unsigned long long)a8 auxIndex:(unsigned long long)a9 numOptimizerData:(unsigned long long)a10 saveToAux:(BOOL)a11 isInputWeight:(BOOL)a12 isHiddenWeight:(BOOL)a13 isBias:(BOOL)a14; - (id)scatterLayerWithDimension:(unsigned long long)a0 reduceType:(int)a1; - (void)selectDevicesWithBatchSize:(unsigned long long)a0; - (void)selectDevicesWithBatchSize:(unsigned long long)a0 calledfromBindAndWrite:(BOOL)a1; - (id)selectLayer; - (void)setConvolutionGradientComputeWeightsAndBiasOnly:(id)a0; - (BOOL)setConvolutionLayerOptimizerDataForDeviceOps:(id)a0 weights:(id)a1 bias:(id)a2; - (void)setDeviceMemoryForTensor:(id)a0 data:(id)a1; - (void)setFullyConnectedGradientComputeWeightsAndBiasOnly:(id)a0; - (BOOL)setLSTMLayerOptimizerDataForDeviceOps:(id)a0 inputWeights:(id)a1 hiddenWeights:(id)a2 biasTerms:(id)a3; - (BOOL)setMHALayerOptimizerDataForDeviceOps:(id)a0 optimizerDataForWeights:(id)a1 optimizerDataForBias:(id)a2; - (BOOL)setNormalizationLayerOptimizerDataForDeviceOps:(id)a0 beta:(id)a1 gamma:(id)a2; - (void)setOptimizerLearningRate:(id)a0 learningRate:(float)a1; - (void)setOptimizerTimeStep:(id)a0 timeStep:(unsigned long long)a1; - (BOOL)shareDeviceMemoryWithResultTensor:(id)a0 sourceTensor:(id)a1; - (void)signalAllDevicesExcludingDevice:(unsigned long long)a0 eventValue:(unsigned long long)a1; - (id)sliceLayerWithbegin:(id)a0 end:(id)a1 stride:(id)a2 inferenceOnly:(BOOL)a3; - (id)softmaxLayerWithOperation:(int)a0 dimension:(unsigned long long)a1 sourceShapeCount:(unsigned long long)a2; - (id)splitLayerWithDimension:(unsigned long long)a0; - (void)sumSharedGradientsForConvolutionLayerTensorParameter:(id)a0 layerIndexForSummedGradients:(unsigned long long)a1; - (void)sumSharedGradientsForNormalizationLayerTensorParameter:(id)a0 layerIndexForSummedGradients:(unsigned long long)a1 isBetaTensor:(BOOL)a2; - (void)synchronizeOptimizerBuffers:(id)a0 commandBuffer:(id)a1; - (void)synchronizeOptimizerUpdatesForTensor:(id)a0; - (BOOL)synchronizeTensor:(id)a0; - (BOOL)synchronizeTensorOnHost:(id)a0; - (void)synchronizeUpdatesForLayer:(id)a0; - (void)synchronizeWeightMatrixForRNNLayer:(id)a0 matrixId:(unsigned long long)a1 parameterType:(unsigned long long)a2 accumulatorIndex:(unsigned long long)a3 forLSTMNum:(unsigned long long)a4 forDeviceNum:(unsigned long long)a5 forGate:(unsigned long long)a6; - (BOOL)transferTensor:(id)a0 fromDevice:(id)a1; - (id)transposeLayerWithShape:(id)a0; - (void)unsafe_signalAllDevicesExcludingDevice:(unsigned long long)a0 eventValue:(unsigned long long)a1; - (void)updateAllParametersWithOptimizer:(id)a0 arrayOfParameters:(id)a1; - (void)updateBatchNormalizationLayer:(id)a0 optimizer:(id)a1 betaParameter:(id)a2 gammaParameter:(id)a3 meanTensor:(id)a4 varianceTensor:(id)a5 arrayOfParams:(id)a6; - (void)updateConvolutionLayer:(id)a0 optimizer:(id)a1 weightsParameter:(id)a2 biasesParameter:(id)a3 arrayOfParams:(id)a4; - (BOOL)updateDeviceMemoryForTensor:(id)a0; - (void)updateEmbeddingLayer:(id)a0 weightsParameter:(id)a1 optimizer:(id)a2 arrayOfParams:(id)a3; - (void)updateFullyConnectedLayer:(id)a0 optimizer:(id)a1 weightsParameter:(id)a2 biasesParameter:(id)a3 arrayOfParams:(id)a4; - (void)updateGraphExecutionTime:(id)a0 atIndex:(int)a1 gpuTime:(double)a2; - (void)updateGroupNormalizationLayer:(id)a0 optimizer:(id)a1 betaParameter:(id)a2 gammaParameter:(id)a3 arrayOfParams:(id)a4; - (void)updateInstanceNormalizationLayer:(id)a0 optimizer:(id)a1 betaParameter:(id)a2 gammaParameter:(id)a3 arrayOfParams:(id)a4; - (void)updateLayerNormalizationLayer:(id)a0 optimizer:(id)a1 betaParameter:(id)a2 gammaParameter:(id)a3 arrayOfParams:(id)a4; - (void)updateMultiheadAttentionLayer:(id)a0 optimizer:(id)a1 weightsParameter:(id)a2 biasesParameter:(id)a3 arrayOfParams:(id)a4; - (void)updateRNNLayer:(id)a0 optimizer:(id)a1 inputWeightsParameter:(id)a2 hiddenWeightsParameter:(id)a3 biasesParameter:(id)a4 arrayOfParams:(id)a5; - (void)updateTensorParameter:(id)a0 optimizer:(id)a1 gradient:(id)a2 arrayOfParams:(id)a3; - (void)updateTensorsForFMAFusedLayers:(id)a0 layerNext:(id)a1; - (void)updateTensorsForFusedArithmeticAndLayerNormalizationLayer:(id)a0 layerNext:(id)a1; - (void)updateWithAdamOptimizer:(id)a0 encoder:(id)a1 deviceParameter:(id)a2 source:(id)a3 gradient:(id)a4 result:(id)a5 momentumIndex:(unsigned long long)a6; - (void)updateWithOptimizer:(id)a0 arrayOfParams:(id)a1 commandBuffer:(id)a2 deviceParameter:(id)a3 source:(id)a4 gradient:(id)a5 result:(id)a6 momentumIndex:(unsigned long long)a7; - (void)updateWithRMSPropOptimizer:(id)a0 encoder:(id)a1 deviceParameter:(id)a2 source:(id)a3 gradient:(id)a4 result:(id)a5 momentumIndex:(unsigned long long)a6; - (void)updateWithSGDOptimizer:(id)a0 encoder:(id)a1 deviceParameter:(id)a2 source:(id)a3 gradient:(id)a4 result:(id)a5 momentumIndex:(unsigned long long)a6; - (id)upsampleLayerWithScaleFactorX:(float)a0 scaleFactorY:(float)a1 sampleMode:(int)a2 alignCorners:(BOOL)a3; - (void)waitForAllDevicesExcludingDevice:(unsigned long long)a0 eventValue:(unsigned long long)a1; - (void)waitForOthers; - (id)weightsGradients:(id)a0; @end