forked from microsoft/onnxruntime
-
Notifications
You must be signed in to change notification settings - Fork 0
/
nuphar_settings.h
55 lines (40 loc) · 2.77 KB
/
nuphar_settings.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#pragma once
#include "core/codegen/common/settings.h"
namespace onnxruntime {
// forward declaration
struct NupharExecutionProviderInfo;
namespace nuphar {
constexpr static const char* kNupharDumpPartition = "nuphar_dump_partition";
constexpr static const char* kNupharDumpFusedNodes = "nuphar_dump_fused_nodes";
constexpr static const char* kNupharMatmulExec = "nuphar_matmul_exec";
constexpr static const char* kNupharCachePath = "nuphar_cache_path";
constexpr static const char* kNupharCacheSoName = "nuphar_cache_so_name";
constexpr static const char* kNupharCacheModelChecksum = "nuphar_cache_model_checksum";
constexpr static const char* kNupharCacheForceNoJIT = "nuphar_cache_force_no_jit";
// force to use IMatMulExternMKL/IMatMul16ExternMKL
constexpr static const char* kNupharIMatMulForceMkl = "nuphar_imatmul_force_mkl";
constexpr static const char* kNupharMatMulExec_ExternCpu = "extern_cpu";
constexpr static const char* kNupharForceNoTensorize = "nuphar_force_no_tensorize";
constexpr static const char* kNupharTensorize_IGEMM_Tile_M = "nuphar_igemm_tile_m";
constexpr static const char* kNupharTensorize_IGEMM_Tile_N = "nuphar_igemm_tile_n";
constexpr static const char* kNupharTensorize_IGEMM_Tile_K = "nuphar_igemm_tile_k";
constexpr static const char* kNupharTensorize_IGEMM_Permute = "nuphar_igemm_permute";
constexpr static const char* kNupharTensorize_IGEMM_Permute_Inner = "inner";
constexpr static const char* kNupharTensorize_IGEMM_Permute_Outer = "outer";
constexpr static const char* kNupharTensorize_IGEMM_Permute_All = "all";
constexpr static const char* kNupharTensorize_IGEMM_Split_Last_Tile = "nuphar_igemm_split_last_tile";
constexpr static const char* kNupharFastMath = "nuphar_fast_math"; // fast math
constexpr static const char* kNupharFastMath_Polynormial = "polynormial_math"; // generic polynormial fast math for exp and log
constexpr static const char* kNupharFastMath_ShortPolynormial = "short_polynormial_math"; // generic shorter polynormial fast math for exp and log
constexpr static const char* kNupharFastActivation = "nuphar_fast_activation"; // fast activation
constexpr static const char* kNupharActivations_DeepCpu = "deep_cpu_activation";
// Option to control nuphar code generation target (avx / avx2 / avx512)
constexpr static const char* kNupharCodeGenTarget = "nuphar_codegen_target";
// Option to control nuphar code to run with parallel schedule
constexpr static const char* kNupharParallelMinWorkloads = "nuphar_parallel_min_workloads";
constexpr static const char* kNupharCacheSoName_Default = "jit.so";
void CreateNupharCodeGenSettings(const NupharExecutionProviderInfo& info);
} // namespace nuphar
} // namespace onnxruntime