* Copyright (c) 2025 Huawei Technologies Co., Ltd.
* This program is free software, you can redistribute it and/or modify it under the terms and conditions of
* CANN Open Software License Agreement Version 2.0 (the "License").
* Please refer to the License for details. You may not use this file except in compliance with the License.
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
* See LICENSE in the root of the software repository for the full text of the License.
*/
#include "option_supportion_checker.h"
#include "external/ge_common/ge_api_types.h"
#include "common/ge_common/ge_types.h"
#include "framework/common/debug/ge_log.h"
#include "graph/tuning_utils.h"
#include "graph_metadef/graph/ge_context.h"
namespace ge {
const std::string LLM_OPTION_CLUSTER_INFO = "llm.ClusterInfo";
const std::string LLM_OPTION_ROLE = "llm.Role";
const std::string LLM_OPTION_SYNC_KV_CACHE_WAIT_TIME = "llm.SyncKvCacheWaitTime";
const std::string LLM_OPTION_OUTPUT_MAX_SIZE = "llm.OutputMaxSize";
namespace ir_option {
const std::set<std::string> ir_builder_global_options = {CORE_TYPE,
SOC_VERSION,
VIRTUAL_TYPE,
BUFFER_OPTIMIZE,
ENABLE_COMPRESS_WEIGHT,
COMPRESS_WEIGHT_CONF,
SPARSITY,
PRECISION_MODE,
PRECISION_MODE_V2,
ALLOW_HF32,
TUNE_DEVICE_IDS,
EXEC_DISABLE_REUSED_MEMORY,
AUTO_TUNE_MODE,
ENABLE_SINGLE_STREAM,
AC_PARALLEL_ENABLE,
AICORE_NUM,
FUSION_SWITCH_FILE,
ENABLE_SMALL_CHANNEL,
OP_SELECT_IMPL_MODE,
OPTYPELIST_FOR_IMPLMODE,
OP_DEBUG_LEVEL,
DEBUG_DIR,
OP_COMPILER_CACHE_DIR,
OP_COMPILER_CACHE_MODE,
MODIFY_MIXLIST,
COMPRESSION_OPTIMIZE_CONF,
OP_DEBUG_CONFIG,
"op_debug_option",
DETERMINISTIC,
"ge.deterministicLevel",
CLUSTER_CONFIG,
OPTION_HOST_ENV_OS,
OPTION_HOST_ENV_CPU,
OPTION_SCREEN_PRINT_MODE,
TILING_SCHEDULE_OPTIMIZE,
GRAPH_MAX_PARALLEL_MODEL_NUM,
OPTION_BUILD_GRAPH_MODE,
OPTION_EXEC_HCCL_FLAG,
JIT_COMPILE,
OP_PRECISION_MODE,
VARIABLE_MEMORY_MAX_SIZE,
OPTION_EXEC_IS_USEHCOM,
OPTION_EXEC_IS_USEHVD,
OPTION_EXEC_POD_NAME,
OPTION_EXEC_DEPLOY_MODE,
GE_AICPU_FLAG,
OPTION_EXEC_EXTERN_PLUGIN_PATH,
OPTION_EXEC_ENABLE_INCRE_BUILD,
OPTION_EXEC_PROFILING_FPPONIT_OPTIONS,
OPTION_EXEC_PROFILING_BPPONIT_OPTIONS,
OPTION_EXEC_ATOMIC_FLAG,
OPTION_EXEC_OPTIMIZE_SHAPE,
OPTION_EXEC_REUSE_ZERO_COPY_MEMORY,
OPTION_EXEC_CM_CHIEF_IP,
OPTION_EXEC_CM_CHIEF_PORT,
OPTION_EXEC_CM_CHIEF_DEVICE,
OPTION_EXEC_CM_WORKER_IP,
OPTION_EXEC_CM_WORKER_SIZE,
OPTION_NAME_MAP,
OPTION_EXEC_PS_ID,
OPTION_EXEC_CLUSTER_SPEC,
OPTION_EXEC_RANK_TABLE_ADDR,
OPTION_EXEC_ROLE_TABLE_ADDR,
OPTION_EXEC_RANK_TABLE_LEN,
OPTION_EXEC_ROLE_TABLE_LEN,
OPTION_EXEC_WORKER_NUM,
OPTION_EXECUTE_TIMES,
OPTION_ES_MAX_REMOTEOP_NUM_PER_STREAM,
OPTION_EXEC_RANK_MAP,
OPTION_HCCL_COMPILER_OFFLINE,
STREAM_NUM,
HEAD_STREAM,
PERF_LEVEL,
ENCRYPT_MODE,
EK_FILE,
CERT_FILE,
HW_KEY_FILE,
PRIVATE_KEY_FILE,
FRAMEWORK_TYPE,
CALIBRATION_CONF_FILE,
COMPRESS_FLAG,
SINGLE_OP_FLAG,
TRAIN_FLAG,
RUN_FLAG,
LOCAL_FMKOP_FLAG,
TBE_PLUGIN_PATH_FLAG,
DDK_VERSION_FLAG,
GE_FE_FLAG,
FUSION_TENSOR_SIZE,
L1_FUSION,
SAVE_ORIGINAL_MODEL,
ORIGINAL_MODEL_FILE,
OPTION_GE_MAX_DUMP_FILE_NUM,
OPTION_GE_MAX_DUMP_FILE_SIZE,
OPTION_GE_MAX_DUMP_OP_NUM,
ENABLE_PRINT_OP_PASS,
STATUS_CHECK,
DISPLAY_MODEL_INFO,
FILE_CONSTANT_PATH,
EVENT,
"ge.exec.isInShardGraph",
BUILD_STEP,
"ge.opsProtoLibPath",
"ge.exec.static_model_addr_fixed",
"ge.fpCeilingMode",
"ge.func_bin_path",
"ge.swapSpaceNodes",
"ge.shape_generalized",
"ge.satuateMode",
"ge.hardwareInfo",
"opt_module.fe",
"ge.exec.float_overflow_mode",
"saturation",
"inf_nan",
"ge.exec.hccl_tailing_optimize",
RESOURCE_CONFIG_PATH,
RECOMPUTE,
GRAPH_SLICE_MODE,
OPTION_EXEC_RANK_TABLE,
OPTION_EXEC_HCOM_GROUPLIST,
OPTION_EXEC_HCOM_RANK_MAPPING,
OPTION_NUMA_CONFIG,
OPTION_EXEC_FORMAT_MODEL,
OPTION_STATIC_MODEL_OPS_LOWER_LIMIT,
OPTION_EXEC_INPUT_FUSION_SIZE,
OO_LEVEL,
OO_CONSTANT_FOLDING,
OO_DEAD_CODE_ELIMINATION,
OPTION_EXPORT_COMPILE_STAT,
OPTION_VARIABLE_USE_1G_HUGE_PAGE,
configure_option::INPUT_BATCH_CPY,
OPTIMIZATION_SWITCH,
OPTION_OUTPUT_REUSE_INPUT_MEM_INDEXES
};
}
const std::set<std::string> ge_init_global_options = {OPTION_GRAPH_RUN_MODE,
OPTION_EXEC_DEVICE_ID,
PRECISION_MODE,
PRECISION_MODE_V2,
MODIFY_MIXLIST,
SOC_VERSION,
OPTION_EXEC_PROFILING_MODE,
OPTION_EXEC_PROFILING_OPTIONS,
OPTION_EXEC_JOB_ID,
AUTO_TUNE_MODE,
OPTION_EXEC_ENABLE_DUMP,
OPTION_EXEC_DUMP_PATH,
OPTION_EXEC_DUMP_STEP,
OPTION_EXEC_DUMP_MODE,
OPTION_EXEC_DUMP_DATA,
OPTION_EXEC_DUMP_LAYER,
OPTION_EXEC_ENABLE_DUMP_DEBUG,
OPTION_EXEC_DUMP_DEBUG_MODE,
OPTION_EXEC_DISABLE_REUSED_MEMORY,
GRAPH_MEMORY_MAX_SIZE,
VARIABLE_MEMORY_MAX_SIZE,
OPTION_EXEC_VARIABLE_ACC,
OPTION_EXEC_RANK_TABLE_FILE,
OPTION_EXEC_RANK_ID,
OP_DEBUG_LEVEL,
OPTION_EXEC_OP_DEBUG_CONFIG,
OP_COMPILER_CACHE_MODE,
OP_COMPILER_CACHE_DIR,
DEBUG_DIR,
MDL_BANK_PATH_FLAG,
OP_BANK_PATH_FLAG,
OP_PRECISION_MODE,
OP_SELECT_IMPL_MODE,
OPTYPELIST_FOR_IMPLMODE,
ENABLE_SPARSE_MATRIX_WEIGHT,
JIT_COMPILE,
OPTION_EXEC_STREAM_SYNC_TIMEOUT,
OPTION_EXEC_EVENT_SYNC_TIMEOUT,
OPTION_EXECUTE_TIMES,
STATIC_MEMORY_POLICY,
OPTION_FEATURE_BASE_REFRESHABLE,
OPTION_CONST_LIFECYCLE,
OPTION_DISABLE_OPTIMIZATIONS,
AC_PARALLEL_ENABLE,
TILING_SCHEDULE_OPTIMIZE,
GRAPH_MAX_PARALLEL_MODEL_NUM,
ENABLE_SINGLE_STREAM,
OPTION_HOST_SCHEDULING_MAX_THRESHOLD,
OPTION_EXEC_GRAPH_EXEC_TIMEOUT,
OP_WAIT_TIMEOUT,
OP_EXECUTE_TIMEOUT,
OPTION_EXEC_ENABLE_ENGINE_PARALLEL,
"ge.exec.engineParallelConfigPath",
OPTION_MOMORY_POOL_THRESHOLD,
ALLOW_HF32,
DETERMINISTIC,
"ge.deterministicLevel",
ATOMIC_CLEAN_POLICY,
OP_DEBUG_CONFIG,
"op_debug_option",
OPTION_EXEC_ENABLE_EXCEPTION_DUMP,
CUSTOMIZE_DTYPES,
FUSION_SWITCH_FILE,
HCOM_PARALLEL,
ENABLE_SMALL_CHANNEL,
STREAM_MAX_PARALLEL_NUM,
OPTION_EXEC_ENABLE_TAILING_OPTIMIZATION,
"enable_scope_fusion_passes",
OPTION_JOB_TYPE,
OPTION_TUNINGPATH,
OPTION_AOE_CONFIG_FILE,
OPTION_EXEC_CM_CHIEF_IP,
OPTION_EXEC_CM_CHIEF_PORT,
OPTION_EXEC_CM_CHIEF_DEVICE,
OPTION_EXEC_CM_WORKER_IP,
OPTION_EXEC_CM_WORKER_SIZE,
INSERT_OP_FILE,
DYNAMIC_NODE_TYPE,
kDynamicDims,
INPUT_SHAPE_RANGE,
JIT_COMPILE,
EXTERNAL_WEIGHT,
OPTION_EXEC_OVERFLOW,
GRAPH_SLICE_MODE,
"ge.evaluateGraphResourceMode",
OPTION_DEVICE_TYPE,
OPTION_DISTRIBUTE_CONFIG,
OPTION_EXEC_ENABLE_SCOPE_FUSION_PASSES,
OPTION_EXEC_HCCL_EXECUTE_TIMEOUT,
OP_WAIT_TIMEOUT,
OP_EXECUTE_TIMEOUT,
OPTION_EXEC_LOGICAL_DEVICE_CLUSTER_DEPLOY_MODE,
OPTION_EXEC_LOGICAL_DEVICE_ID,
OPTION_EXEC_MODEL_DEPLOY_MODE,
HCOM_MULTI_MODE,
OPTION_HCCL_ALGORITHM,
OPTION_EXEC_MODEL_DEPLOY_DEVICELIST,
OPTION_ES_CLUSTER_CONFIG,
OPTION_HOST_ENV_OS,
OPTION_HOST_ENV_CPU,
OPTION_EXEC_DEPLOY_MODE,
OUTPUT_NODE_NAME,
OPTION_EXEC_IS_USEHCOM,
RUN_FLAG,
OPTION_EXEC_IS_USEHVD,
OPTION_EXEC_POD_NAME,
"dump_data",
"static_memory_policy",
"ge.exec.customizeDdtypes",
"aoe_config_file",
OPTION_EXEC_SESSION_ID,
"op_debug_level",
"precision_mode",
"precision_mode_v2",
"profiling_mode",
"profiling_options",
"graph_run_mode",
"enable_exception_dump",
"aoe_mode",
"work_path",
"op_compiler_cache_mode",
"op_compiler_cache_dir",
"debug_dir",
"device_type",
"soc_config",
"op_wait_timeout",
"op_execute_timeout",
"customize_dtypes",
"op_debug_config",
"graph_exec_timeout",
"logical_device_cluster_deploy_mode",
"logical_device_id",
"model_deploy_mode",
"model_deploy_devicelist",
"es_cluster_config",
BUILD_MODE,
MEMORY_OPTIMIZATION_POLICY,
OPTION_TOPOSORTING_MODE,
"rank_table_file",
"graphType",
"device_id",
LLM_OPTION_CLUSTER_INFO,
LLM_OPTION_ROLE,
LLM_OPTION_SYNC_KV_CACHE_WAIT_TIME,
LLM_OPTION_OUTPUT_MAX_SIZE,
GE_AICPU_FLAG,
OPTION_EXEC_EXTERN_PLUGIN_PATH,
OPTION_EXEC_ENABLE_INCRE_BUILD,
OPTION_EXEC_PROFILING_FPPONIT_OPTIONS,
OPTION_EXEC_PROFILING_BPPONIT_OPTIONS,
OPTION_EXEC_HCCL_FLAG,
OPTION_EXEC_ATOMIC_FLAG,
OPTION_EXEC_OPTIMIZE_SHAPE,
OPTION_EXEC_REUSE_ZERO_COPY_MEMORY,
OPTION_NAME_MAP,
OPTION_EXEC_PS_ID,
OPTION_EXEC_CLUSTER_SPEC,
OPTION_EXEC_RANK_TABLE_ADDR,
OPTION_EXEC_ROLE_TABLE_ADDR,
OPTION_EXEC_RANK_TABLE_LEN,
OPTION_EXEC_ROLE_TABLE_LEN,
OPTION_EXEC_WORKER_NUM,
OPTION_EXECUTE_TIMES,
OPTION_ES_MAX_REMOTEOP_NUM_PER_STREAM,
OPTION_EXEC_RANK_MAP,
OPTION_HCCL_COMPILER_OFFLINE,
STREAM_NUM,
HEAD_STREAM,
PERF_LEVEL,
ENCRYPT_MODE,
EK_FILE,
CERT_FILE,
HW_KEY_FILE,
PRIVATE_KEY_FILE,
FRAMEWORK_TYPE,
CALIBRATION_CONF_FILE,
COMPRESS_FLAG,
SINGLE_OP_FLAG,
TRAIN_FLAG,
LOCAL_FMKOP_FLAG,
TBE_PLUGIN_PATH_FLAG,
DDK_VERSION_FLAG,
GE_FE_FLAG,
FUSION_TENSOR_SIZE,
L1_FUSION,
SAVE_ORIGINAL_MODEL,
ORIGINAL_MODEL_FILE,
OPTION_GE_MAX_DUMP_FILE_NUM,
OPTION_GE_MAX_DUMP_FILE_SIZE,
OPTION_GE_MAX_DUMP_OP_NUM,
ENABLE_PRINT_OP_PASS,
STATUS_CHECK,
DISPLAY_MODEL_INFO,
FILE_CONSTANT_PATH,
EVENT,
"ge.exec.isInShardGraph",
BUILD_STEP,
"ge.opsProtoLibPath",
"ge.exec.static_model_addr_fixed",
"ge.fpCeilingMode",
"ge.func_bin_path",
"ge.swapSpaceNodes",
"ge.shape_generalized",
"ge.satuateMode",
"ge.hardwareInfo",
"opt_module.fe",
"ge.exec.float_overflow_mode",
"saturation",
"inf_nan",
"ge.exec.hccl_tailing_optimize",
RESOURCE_CONFIG_PATH,
RECOMPUTE,
OPTION_EXEC_RANK_TABLE,
OPTION_EXEC_HCOM_GROUPLIST,
OPTION_EXEC_HCOM_RANK_MAPPING,
OPTION_NUMA_CONFIG,
OPTION_EXEC_FORMAT_MODEL,
OPTION_BUILD_GRAPH_MODE,
OPTION_STATIC_MODEL_OPS_LOWER_LIMIT,
AICORE_NUM,
OPTION_EXEC_INPUT_FUSION_SIZE,
OPTION_EXEC_DYNAMIC_GRAPH_PARALLEL_MODE,
OO_LEVEL,
OO_CONSTANT_FOLDING,
OO_DEAD_CODE_ELIMINATION,
OPTION_EXPORT_COMPILE_STAT,
OPTION_VARIABLE_USE_1G_HUGE_PAGE,
configure_option::INPUT_BATCH_CPY,
OPTION_ALLOW_MULTI_GRAPH_PARALLEL_COMPILE,
OPTIMIZATION_SWITCH
};
const std::set<std::string> session_options = {OPTION_GRAPH_RUN_MODE,
OPTION_EXEC_DEVICE_ID,
INPUT_SHAPE,
kDynamicDims,
DYNAMIC_NODE_TYPE,
PRECISION_MODE,
PRECISION_MODE_V2,
MODIFY_MIXLIST,
SOC_VERSION,
OPTION_EXEC_PROFILING_MODE,
OPTION_EXEC_PROFILING_OPTIONS,
OPTION_EXEC_JOB_ID,
AUTO_TUNE_MODE,
OPTION_EXEC_DISABLE_REUSED_MEMORY,
GRAPH_MEMORY_MAX_SIZE,
VARIABLE_MEMORY_MAX_SIZE,
OPTION_EXEC_VARIABLE_ACC,
OPTION_EXEC_RANK_TABLE_FILE,
OPTION_EXEC_RANK_ID,
OP_DEBUG_LEVEL,
"op_debug_option",
OP_COMPILER_CACHE_MODE,
OP_COMPILER_CACHE_DIR,
DEBUG_DIR,
MDL_BANK_PATH_FLAG,
OP_BANK_PATH_FLAG,
ENABLE_SPARSE_MATRIX_WEIGHT,
CUSTOMIZE_DTYPES,
ATOMIC_CLEAN_POLICY,
JIT_COMPILE,
EXTERNAL_WEIGHT,
OPTION_EXEC_STREAM_SYNC_TIMEOUT,
OPTION_EXEC_EVENT_SYNC_TIMEOUT,
OPTION_EXECUTE_TIMES,
OPTION_GRAPH_COMPILER_CACHE_DIR,
OPTION_FEATURE_BASE_REFRESHABLE,
OPTION_CONST_LIFECYCLE,
OPTION_DISABLE_OPTIMIZATIONS,
OPTION_HOST_SCHEDULING_MAX_THRESHOLD,
OP_WAIT_TIMEOUT,
OP_EXECUTE_TIMEOUT,
OPTION_FLOW_GRAPH_MEMORY_MAX_SIZE,
OPTION_EXEC_ENABLE_ENGINE_PARALLEL,
"ge.exec.engineParallelConfigPath",
"ge.compile_dynamic_mode",
GRAPH_MAX_PARALLEL_MODEL_NUM,
OPTION_SESSION_DEVICE_ID,
FUSION_SWITCH_FILE,
BUFFER_OPTIMIZE,
HCOM_PARALLEL,
OP_PRECISION_MODE,
STREAM_MAX_PARALLEL_NUM,
OPTION_EXEC_ENABLE_TAILING_OPTIMIZATION,
ENABLE_SMALL_CHANNEL,
OPTION_EXEC_HCCL_EXECUTE_TIMEOUT,
ENABLE_COMPRESS_WEIGHT,
COMPRESS_WEIGHT_CONF,
OPTION_EXEC_VARIABLE_ACC,
OP_SELECT_IMPL_MODE,
OPTYPELIST_FOR_IMPLMODE,
MEMORY_OPTIMIZATION_POLICY,
AC_PARALLEL_ENABLE,
INSERT_OP_FILE,
GRAPH_SLICE_MODE,
OPTION_HCCL_ALGORITHM,
"ge.evaluateGraphResourceMode",
OPTION_TOPOSORTING_MODE,
"dump_layer",
"atomic_clean_policy",
"memory_optimization_policy",
"insert_op_file",
"jit_compile",
"external_weight",
"topo_sorting_mode",
OPTION_EXEC_DEPLOY_MODE,
OPTION_EXEC_GRAPH_EXEC_TIMEOUT,
OPTION_EXEC_MODEL_DEPLOY_MODE,
OPTION_EXEC_MODEL_DEPLOY_DEVICELIST,
RECOMPUTE,
BUILD_MODE,
BUILD_STEP,
"ge.hardwareInfo",
OPTION_EXEC_ENABLE_FUSION,
OPTION_EXEC_CLUSTER_SPEC,
RESOURCE_CONFIG_PATH,
ENABLE_SINGLE_STREAM,
RUN_FLAG,
FILE_CONSTANT_PATH,
OPTION_EXEC_LOGICAL_DEVICE_CLUSTER_DEPLOY_MODE,
OPTION_EXEC_PLACEMENT,
OPTION_EXEC_LOGICAL_DEVICE_ID,
OUTPUT_MAX_SIZE,
EVENT,
"ge.swapSpaceNodes",
OPTION_GRAPH_KEY,
OPTION_INPUT_REUSE_MEM_INDEXES,
OPTION_OUTPUT_REUSE_MEM_INDEXES,
OPTION_GRAPH_IO_MEM_ALLOC_MODE,
OPTION_EXEC_IS_USEHCOM,
OPTION_EXEC_IS_USEHVD,
OPTION_EXEC_POD_NAME,
OPTION_EXEC_SESSION_ID,
ENABLE_PRINT_OP_PASS,
STATIC_MEMORY_POLICY,
LLM_OPTION_CLUSTER_INFO,
LLM_OPTION_ROLE,
LLM_OPTION_SYNC_KV_CACHE_WAIT_TIME,
LLM_OPTION_OUTPUT_MAX_SIZE,
GE_AICPU_FLAG,
OPTION_EXEC_EXTERN_PLUGIN_PATH,
OPTION_EXEC_ENABLE_INCRE_BUILD,
OPTION_EXEC_PROFILING_FPPONIT_OPTIONS,
OPTION_EXEC_PROFILING_BPPONIT_OPTIONS,
OPTION_EXEC_HCCL_FLAG,
OPTION_EXEC_ATOMIC_FLAG,
OPTION_EXEC_OPTIMIZE_SHAPE,
OPTION_EXEC_REUSE_ZERO_COPY_MEMORY,
OPTION_EXEC_CM_CHIEF_IP,
OPTION_EXEC_CM_CHIEF_PORT,
OPTION_EXEC_CM_CHIEF_DEVICE,
OPTION_EXEC_CM_WORKER_IP,
OPTION_EXEC_CM_WORKER_SIZE,
OPTION_NAME_MAP,
OPTION_EXEC_PS_ID,
OPTION_EXEC_RANK_TABLE_ADDR,
OPTION_EXEC_ROLE_TABLE_ADDR,
OPTION_EXEC_RANK_TABLE_LEN,
OPTION_EXEC_ROLE_TABLE_LEN,
OPTION_EXEC_WORKER_NUM,
OPTION_EXECUTE_TIMES,
OPTION_ES_MAX_REMOTEOP_NUM_PER_STREAM,
OPTION_EXEC_RANK_MAP,
OPTION_HCCL_COMPILER_OFFLINE,
STREAM_NUM,
HEAD_STREAM,
PERF_LEVEL,
ENCRYPT_MODE,
EK_FILE,
CERT_FILE,
HW_KEY_FILE,
PRIVATE_KEY_FILE,
FRAMEWORK_TYPE,
CALIBRATION_CONF_FILE,
COMPRESS_FLAG,
SINGLE_OP_FLAG,
TRAIN_FLAG,
LOCAL_FMKOP_FLAG,
TBE_PLUGIN_PATH_FLAG,
DDK_VERSION_FLAG,
GE_FE_FLAG,
FUSION_TENSOR_SIZE,
L1_FUSION,
SAVE_ORIGINAL_MODEL,
ORIGINAL_MODEL_FILE,
OPTION_GE_MAX_DUMP_FILE_NUM,
OPTION_GE_MAX_DUMP_FILE_SIZE,
OPTION_GE_MAX_DUMP_OP_NUM,
STATUS_CHECK,
DISPLAY_MODEL_INFO,
FILE_CONSTANT_PATH,
"ge.exec.isInShardGraph",
"ge.opsProtoLibPath",
"ge.exec.static_model_addr_fixed",
"ge.fpCeilingMode",
"ge.func_bin_path",
"ge.shape_generalized",
"ge.satuateMode",
"opt_module.fe",
"ge.exec.float_overflow_mode",
"saturation",
"inf_nan",
"ge.exec.hccl_tailing_optimize",
"ge.autoMultistreamParallelMode",
"ge.inputPlacement",
OPTION_EXEC_RANK_TABLE,
OPTION_EXEC_HCOM_GROUPLIST,
OPTION_EXEC_HCOM_RANK_MAPPING,
OPTION_NUMA_CONFIG,
OPTION_EXEC_FORMAT_MODEL,
OPTION_BUILD_GRAPH_MODE,
OPTION_STATIC_MODEL_OPS_LOWER_LIMIT,
AICORE_NUM,
OPTION_EXEC_INPUT_FUSION_SIZE,
OPTION_EXEC_DYNAMIC_GRAPH_PARALLEL_MODE,
OPTION_ALL_TENSOR_NOT_EMPTY,
OO_LEVEL,
OO_CONSTANT_FOLDING,
OO_DEAD_CODE_ELIMINATION,
OPTION_EXPORT_COMPILE_STAT,
OPTION_VARIABLE_USE_1G_HUGE_PAGE,
configure_option::INPUT_BATCH_CPY,
OPTION_ALLOW_MULTI_GRAPH_PARALLEL_COMPILE,
OPTIMIZATION_SWITCH,
OUTPUT_DATATYPE,
TILING_SCHEDULE_OPTIMIZE
};
const std::set<std::string> graph_options = {OPTION_EXEC_DEVICE_ID,
INPUT_SHAPE,
kDynamicDims,
DYNAMIC_NODE_TYPE,
PRECISION_MODE,
PRECISION_MODE_V2,
MODIFY_MIXLIST,
SOC_VERSION,
OPTION_EXEC_PROFILING_MODE,
OPTION_EXEC_PROFILING_OPTIONS,
OPTION_EXEC_JOB_ID,
AUTO_TUNE_MODE,
OPTION_EXEC_DISABLE_REUSED_MEMORY,
GRAPH_MEMORY_MAX_SIZE,
VARIABLE_MEMORY_MAX_SIZE,
OPTION_EXEC_VARIABLE_ACC,
OPTION_EXEC_RANK_TABLE_FILE,
OPTION_EXEC_RANK_ID,
OP_DEBUG_LEVEL,
"op_debug_option",
OP_COMPILER_CACHE_MODE,
OP_COMPILER_CACHE_DIR,
DEBUG_DIR,
MDL_BANK_PATH_FLAG,
OP_BANK_PATH_FLAG,
OPTION_EXEC_DYNAMIC_EXECUTE_MODE,
OPTION_EXEC_DATA_INPUTS_SHAPE_RANGE,
SHAPE_GENERALIZED_BUILD_MODE,
ENABLE_SPARSE_MATRIX_WEIGHT,
OPTION_GRAPH_KEY,
OPTION_FEATURE_BASE_REFRESHABLE,
OPTION_CONST_LIFECYCLE,
OPTION_INPUT_REUSE_MEM_INDEXES,
OPTION_OUTPUT_REUSE_MEM_INDEXES,
OPTION_DISABLE_OPTIMIZATIONS,
OPTION_HOST_SCHEDULING_MAX_THRESHOLD,
OPTION_EXEC_MODEL_DEPLOY_MODE,
OPTION_EXEC_MODEL_DEPLOY_DEVICELIST,
OPTION_EXEC_GRAPH_EXEC_TIMEOUT,
OP_WAIT_TIMEOUT,
OP_EXECUTE_TIMEOUT,
OPTION_EXEC_LOGICAL_DEVICE_CLUSTER_DEPLOY_MODE,
OPTION_EXEC_LOGICAL_DEVICE_ID,
OPTION_EXEC_ENABLE_FUSION,
OPTION_DATAFLOW_DEPLOY_INFO_PATH,
OUTPUT_MAX_SIZE,
GRAPH_MAX_PARALLEL_MODEL_NUM,
"ge.graphLevelSat",
"iterations_per_loop",
JIT_COMPILE,
OPTION_EXEC_DYNAMIC_INPUT,
OPTION_EXEC_PLACEMENT,
RECOMPUTE,
OPTION_MAX_KEY_NUM,
OPTION_EMBEDDING_DIM,
"ge.use_counter_filter",
OPTION_IS_VAR_INIT_GRAPH,
OPTION_EXEC_OVERFLOW,
OPTION_EXEC_ENABLE_COPY_OUTPUT_ADDR,
INPUT_FORMAT,
OPTION_GRAPH_IO_MEM_ALLOC_MODE,
BUILD_MODE,
"jit_compile",
OPTION_GRAPH_RUN_MODE,
OUTPUT_NODE_NAME,
ATOMIC_CLEAN_POLICY,
BUFFER_OPTIMIZE,
CORE_TYPE,
OPTION_EXEC_ENABLE_TAILING_OPTIMIZATION,
RUN_FLAG,
MEMORY_OPTIMIZATION_POLICY,
EXCLUDE_ENGINES,
OPTION_TUNINGPATH,
"ge.hardwareInfo",
OPTION_TOPOSORTING_MODE,
STREAM_MAX_PARALLEL_NUM,
BUILD_STEP,
OPTION_EXEC_CLUSTER_SPEC,
ENABLE_SINGLE_STREAM,
HCOM_PARALLEL,
RESOURCE_CONFIG_PATH,
EVENT,
FILE_CONSTANT_PATH,
"ge.swapSpaceNodes",
OPTION_STATIC_MODEL_OPS_LOWER_LIMIT,
AC_PARALLEL_ENABLE,
LLM_OPTION_CLUSTER_INFO,
LLM_OPTION_ROLE,
LLM_OPTION_SYNC_KV_CACHE_WAIT_TIME,
LLM_OPTION_OUTPUT_MAX_SIZE,
OPTION_EXEC_IS_USEHCOM,
OPTION_EXEC_IS_USEHVD,
OPTION_EXEC_POD_NAME,
OPTION_EXEC_DEPLOY_MODE,
GE_AICPU_FLAG,
OPTION_EXEC_EXTERN_PLUGIN_PATH,
OPTION_EXEC_ENABLE_INCRE_BUILD,
OPTION_EXEC_PROFILING_FPPONIT_OPTIONS,
OPTION_EXEC_PROFILING_BPPONIT_OPTIONS,
OPTION_EXEC_HCCL_FLAG,
OPTION_EXEC_ATOMIC_FLAG,
OPTION_EXEC_OPTIMIZE_SHAPE,
OPTION_EXEC_REUSE_ZERO_COPY_MEMORY,
OPTION_EXEC_CM_CHIEF_IP,
OPTION_EXEC_CM_CHIEF_PORT,
OPTION_EXEC_CM_CHIEF_DEVICE,
OPTION_EXEC_CM_WORKER_IP,
OPTION_EXEC_CM_WORKER_SIZE,
OPTION_NAME_MAP,
OPTION_EXEC_PS_ID,
OPTION_EXEC_RANK_TABLE_ADDR,
OPTION_EXEC_ROLE_TABLE_ADDR,
OPTION_EXEC_RANK_TABLE_LEN,
OPTION_EXEC_ROLE_TABLE_LEN,
OPTION_EXEC_WORKER_NUM,
OPTION_EXECUTE_TIMES,
OPTION_ES_MAX_REMOTEOP_NUM_PER_STREAM,
OPTION_EXEC_RANK_MAP,
OPTION_HCCL_COMPILER_OFFLINE,
STREAM_NUM,
HEAD_STREAM,
PERF_LEVEL,
ENCRYPT_MODE,
EK_FILE,
CERT_FILE,
HW_KEY_FILE,
PRIVATE_KEY_FILE,
FRAMEWORK_TYPE,
CALIBRATION_CONF_FILE,
COMPRESS_FLAG,
SINGLE_OP_FLAG,
TRAIN_FLAG,
LOCAL_FMKOP_FLAG,
TBE_PLUGIN_PATH_FLAG,
DDK_VERSION_FLAG,
GE_FE_FLAG,
FUSION_TENSOR_SIZE,
L1_FUSION,
SAVE_ORIGINAL_MODEL,
ORIGINAL_MODEL_FILE,
OPTION_GE_MAX_DUMP_FILE_NUM,
OPTION_GE_MAX_DUMP_FILE_SIZE,
OPTION_GE_MAX_DUMP_OP_NUM,
ENABLE_PRINT_OP_PASS,
STATUS_CHECK,
DISPLAY_MODEL_INFO,
FILE_CONSTANT_PATH,
"ge.exec.isInShardGraph",
"ge.opsProtoLibPath",
"ge.exec.static_model_addr_fixed",
"ge.fpCeilingMode",
"ge.func_bin_path",
"ge.shape_generalized",
"ge.satuateMode",
"opt_module.fe",
"ge.exec.float_overflow_mode",
"saturation",
"inf_nan",
"ge.exec.hccl_tailing_optimize",
"ge.autoMultistreamParallelMode",
GRAPH_SLICE_MODE,
OPTION_EXEC_RANK_TABLE,
OPTION_EXEC_HCOM_GROUPLIST,
OPTION_EXEC_HCOM_RANK_MAPPING,
OPTION_NUMA_CONFIG,
OPTION_BUILD_GRAPH_MODE,
OPTION_EXEC_FORMAT_MODEL,
AICORE_NUM,
OPTION_EXEC_INPUT_FUSION_SIZE,
OPTION_EXEC_DYNAMIC_GRAPH_PARALLEL_MODE,
OO_LEVEL,
OO_CONSTANT_FOLDING,
OO_DEAD_CODE_ELIMINATION,
OPTION_EXPORT_COMPILE_STAT,
OPTION_ALL_TENSOR_NOT_EMPTY,
OPTION_EXEC_HOST_INPUT_INDEXES,
"ge.inputHintShape",
configure_option::INPUT_BATCH_CPY,
OPTIMIZATION_SWITCH,
OUTPUT_DATATYPE,
OPTION_OUTPUT_REUSE_INPUT_MEM_INDEXES,
TILING_SCHEDULE_OPTIMIZE
};
static Status CheckSupportedOptions(const std::map<std::string, std::string> &input_options,
const std::set<std::string> &supported_options, const std::string &level) {
bool find = false;
for (const auto &element : input_options) {
if (supported_options.count(element.first) <= 0) {
GELOGW("[Check][Options] unsupported option(%s) by %s level, Please check!",
element.first.c_str(), level.c_str());
find = true;
}
}
return find ? FAILED : SUCCESS;
}
Status IrbuildCheckSupportedGlobalOptions(const std::map<std::string, std::string> &input_options) {
return CheckSupportedOptions(input_options, ir_option::ir_builder_global_options, "global");
}
Status GEAPICheckSupportedGlobalOptions(const std::map<std::string, std::string> &input_options) {
return CheckSupportedOptions(input_options, ge_init_global_options, "global");
}
Status GEAPICheckSupportedSessionOptions(const std::map<std::string, std::string> &input_options) {
return CheckSupportedOptions(input_options, session_options, "session");
}
Status GEAPICheckSupportedGraphOptions(const std::map<std::string, std::string> &input_options) {
return CheckSupportedOptions(input_options, graph_options, "graph");
}
const std::unordered_set<std::string> &GetAllGeOptionNames() {
static const std::unordered_set<std::string> ge_option_set = []{
std::unordered_set<std::string> tmp_set(graph_options.cbegin(), graph_options.cend());
tmp_set.insert(session_options.cbegin(), session_options.cend());
tmp_set.insert(ge_init_global_options.cbegin(), ge_init_global_options.cend());
tmp_set.insert(ir_option::ir_builder_global_options.cbegin(),
ir_option::ir_builder_global_options.cend());
return tmp_set;
}();
return ge_option_set;
}
Status CheckAllowParallelCompile(const std::map<std::string, std::string> &options) {
const auto &value_iter = options.find(OPTION_ALLOW_MULTI_GRAPH_PARALLEL_COMPILE);
std::string parallel_option;
(void)ge::GetContext().GetOption(OPTION_ALLOW_MULTI_GRAPH_PARALLEL_COMPILE, parallel_option);
const bool parallel_compile = ((value_iter != options.end()) && (value_iter->second == "1")) ||
(parallel_option == "1");
const auto &var_iter = options.find(ge::OPTION_EXEC_VARIABLE_ACC);
std::string var_acc_option;
(void)ge::GetContext().GetOption(ge::OPTION_EXEC_VARIABLE_ACC, var_acc_option);
const bool variable_acc = (((var_iter != options.end()) && (var_iter->second == "True"))) ||
(var_acc_option == "True");
if (parallel_compile && variable_acc) {
(void)REPORT_PREDEFINED_ERR_MSG(
"E10001", std::vector<const char *>({"parameter", "value", "reason"}),
std::vector<const char *>({ge::OPTION_EXEC_VARIABLE_ACC, "True",
"The options ge.AllowMultiGraphParallelCompile and ge.exec.variable_acc cannot both enabled simultaneously."}));
GELOGE(UNSUPPORTED, "The options ge.AllowMultiGraphParallelCompile and ge.exec.variable_acc cannot both enabled"
" simultaneously.");
return ge::UNSUPPORTED;
}
return ge::SUCCESS;
}
}