update objectivec directory from onnxruntime/objectivec
This commit is contained in:
@@ -11,7 +11,7 @@ void ORTSaveCodeAndDescriptionToError(int code, const char* descriptionCstr, NSE
|
||||
if (!error) return;
|
||||
|
||||
NSString* description = [NSString stringWithCString:descriptionCstr
|
||||
encoding:NSASCIIStringEncoding];
|
||||
encoding:NSUTF8StringEncoding];
|
||||
|
||||
*error = [NSError errorWithDomain:kOrtErrorDomain
|
||||
code:code
|
||||
|
||||
@@ -70,7 +70,22 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
*/
|
||||
- (BOOL)appendCoreMLExecutionProviderWithOptions:(ORTCoreMLExecutionProviderOptions*)options
|
||||
error:(NSError**)error;
|
||||
|
||||
/**
|
||||
* Enables the CoreML execution provider in the session configuration options.
|
||||
* It is appended to the execution provider list which is ordered by
|
||||
* decreasing priority.
|
||||
*
|
||||
* @param provider_options The CoreML execution provider options in dict.
|
||||
* available keys-values: more detail in core/providers/coreml/coreml_execution_provider.h
|
||||
* kCoremlProviderOption_MLComputeUnits: one of "CPUAndNeuralEngine", "CPUAndGPU", "CPUOnly", "All"
|
||||
* kCoremlProviderOption_ModelFormat: one of "MLProgram", "NeuralNetwork"
|
||||
* kCoremlProviderOption_RequireStaticInputShapes: "1" or "0"
|
||||
* kCoremlProviderOption_EnableOnSubgraphs: "1" or "0"
|
||||
* @param error Optional error information set if an error occurs.
|
||||
* @return Whether the provider was enabled successfully.
|
||||
*/
|
||||
- (BOOL)appendCoreMLExecutionProviderWithOptionsV2:(NSDictionary*)provider_options
|
||||
error:(NSError**)error;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@@ -50,6 +50,7 @@ typedef NS_ENUM(int32_t, ORTGraphOptimizationLevel) {
|
||||
ORTGraphOptimizationLevelNone,
|
||||
ORTGraphOptimizationLevelBasic,
|
||||
ORTGraphOptimizationLevelExtended,
|
||||
ORTGraphOptimizationLevelLayout,
|
||||
ORTGraphOptimizationLevelAll,
|
||||
};
|
||||
|
||||
|
||||
@@ -43,6 +43,21 @@ BOOL ORTIsCoreMLExecutionProviderAvailable() {
|
||||
#endif
|
||||
}
|
||||
|
||||
- (BOOL)appendCoreMLExecutionProviderWithOptionsV2:(NSDictionary*)provider_options
|
||||
error:(NSError**)error {
|
||||
#if ORT_OBJC_API_COREML_EP_AVAILABLE
|
||||
try {
|
||||
return [self appendExecutionProvider:@"CoreML" providerOptions:provider_options error:error];
|
||||
}
|
||||
ORT_OBJC_API_IMPL_CATCH_RETURNING_BOOL(error);
|
||||
|
||||
#else // !ORT_OBJC_API_COREML_EP_AVAILABLE
|
||||
static_cast<void>(provider_options);
|
||||
ORTSaveCodeAndDescriptionToError(ORT_FAIL, "CoreML execution provider is not enabled.", error);
|
||||
return NO;
|
||||
#endif
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@@ -68,6 +68,7 @@ constexpr GraphOptimizationLevelInfo kGraphOptimizationLevelInfos[]{
|
||||
{ORTGraphOptimizationLevelNone, ORT_DISABLE_ALL},
|
||||
{ORTGraphOptimizationLevelBasic, ORT_ENABLE_BASIC},
|
||||
{ORTGraphOptimizationLevelExtended, ORT_ENABLE_EXTENDED},
|
||||
{ORTGraphOptimizationLevelLayout, ORT_ENABLE_LAYOUT},
|
||||
{ORTGraphOptimizationLevelAll, ORT_ENABLE_ALL},
|
||||
};
|
||||
|
||||
|
||||
@@ -223,6 +223,28 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
ORTAssertNullableResultSuccessful(session, err);
|
||||
}
|
||||
|
||||
- (void)testAppendCoreMLEP_v2 {
|
||||
NSError* err = nil;
|
||||
ORTSessionOptions* sessionOptions = [ORTSessionTest makeSessionOptions];
|
||||
NSDictionary* provider_options = @{@"EnableOnSubgraphs" : @"1"}; // set an arbitrary option
|
||||
|
||||
BOOL appendResult = [sessionOptions appendCoreMLExecutionProviderWithOptionsV2:provider_options
|
||||
error:&err];
|
||||
|
||||
if (!ORTIsCoreMLExecutionProviderAvailable()) {
|
||||
ORTAssertBoolResultUnsuccessful(appendResult, err);
|
||||
return;
|
||||
}
|
||||
|
||||
ORTAssertBoolResultSuccessful(appendResult, err);
|
||||
|
||||
ORTSession* session = [[ORTSession alloc] initWithEnv:self.ortEnv
|
||||
modelPath:[ORTSessionTest getAddModelPath]
|
||||
sessionOptions:sessionOptions
|
||||
error:&err];
|
||||
ORTAssertNullableResultSuccessful(session, err);
|
||||
}
|
||||
|
||||
- (void)testAppendXnnpackEP {
|
||||
NSError* err = nil;
|
||||
ORTSessionOptions* sessionOptions = [ORTSessionTest makeSessionOptions];
|
||||
|
||||
Reference in New Issue
Block a user