onnxruntime

Форк
0
/
ort_coreml_execution_provider.mm 
47 строк · 1.5 Кб
1
// Copyright (c) Microsoft Corporation. All rights reserved.
2
// Licensed under the MIT License.
3

4
#import "ort_coreml_execution_provider.h"
5

6
#import "cxx_api.h"
7
#import "error_utils.h"
8
#import "ort_session_internal.h"
9

10
NS_ASSUME_NONNULL_BEGIN
11

12
BOOL ORTIsCoreMLExecutionProviderAvailable() {
13
  return ORT_OBJC_API_COREML_EP_AVAILABLE ? YES : NO;
14
}
15

16
@implementation ORTCoreMLExecutionProviderOptions
17

18
@end
19

20
@implementation ORTSessionOptions (ORTSessionOptionsCoreMLEP)
21

22
- (BOOL)appendCoreMLExecutionProviderWithOptions:(ORTCoreMLExecutionProviderOptions*)options
23
                                           error:(NSError**)error {
24
#if ORT_OBJC_API_COREML_EP_AVAILABLE
25
  try {
26
    const uint32_t flags =
27
        (options.useCPUOnly ? COREML_FLAG_USE_CPU_ONLY : 0) |
28
        (options.enableOnSubgraphs ? COREML_FLAG_ENABLE_ON_SUBGRAPH : 0) |
29
        (options.onlyEnableForDevicesWithANE ? COREML_FLAG_ONLY_ENABLE_DEVICE_WITH_ANE : 0) |
30
        (options.onlyAllowStaticInputShapes ? COREML_FLAG_ONLY_ALLOW_STATIC_INPUT_SHAPES : 0) |
31
        (options.createMLProgram ? COREML_FLAG_CREATE_MLPROGRAM : 0);
32

33
    Ort::ThrowOnError(OrtSessionOptionsAppendExecutionProvider_CoreML(
34
        [self CXXAPIOrtSessionOptions], flags));
35
    return YES;
36
  }
37
  ORT_OBJC_API_IMPL_CATCH_RETURNING_BOOL(error);
38
#else  // !ORT_OBJC_API_COREML_EP_AVAILABLE
39
  static_cast<void>(options);
40
  ORTSaveCodeAndDescriptionToError(ORT_FAIL, "CoreML execution provider is not enabled.", error);
41
  return NO;
42
#endif
43
}
44

45
@end
46

47
NS_ASSUME_NONNULL_END
48

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.