from msconfig.meta_config import MetaConfig
class ProfConditionConfig(MetaConfig):
DATA = [
{
"id": "condition_common_1",
"type": "formula",
"left": ["channel"],
"right": 0,
"formula": "{0}%16",
"cmp": "!="
},
{
"id": "condition_common_2",
"type": "formula",
"left": ["channel"],
"right": 0,
"formula": "{0}%32",
"cmp": "!="
},
{
"id": "condition_common_3",
"type": "formula",
"left": ["height", "width"],
"right": 0,
"formula": "({0}*{1})%16",
"cmp": "!="
},
{
"id": "condition_common_6",
"type": "formula",
"left": ["batch"],
"right": 0,
"formula": "{0}%16",
"cmp": "!="
},
{
"id": "condition_block_dim_1",
"type": "formula",
"left": ["block_dim", "core_num"],
"right": 1,
"formula": "{0}/{1}",
"cmp": "<"
},
{
"id": "condition_block_dim_2",
"type": "formula",
"left": ["block_dim"],
"right": 0,
"formula": "{0}&({0}-1)",
"cmp": "!="
},
{
"id": "condition_block_dim_3",
"type": "formula",
"left": ["block_dim", "core_num"],
"right": 0,
"formula": "{0}%{1}",
"cmp": "!="
},
{
"id": "condition_transData_1",
"type": "normal",
"left": "op_type",
"right": "TransData",
"cmp": "=="
},
{
"id": "condition_transData_2",
"dependency": "condition_transData_1",
"type": "count",
"threshold": 2,
"cmp": ">"
},
{
"id": "condition_memory_workspace_1",
"type": "normal",
"left": "memory_workspace",
"right": 0,
"cmp": ">"
},
{
"id": "condition_wait_time_1",
"type": "normal",
"left": "task_wait_time",
"right": 10,
"cmp": ">"
},
{
"id": "condition_wait_time_2",
"dependency": "condition_wait_time_1",
"type": "accumulate",
"accumulate": ["task_wait_time"],
"compare": ["task_duration", "task_wait_time"],
"threshold": 0.03,
"cmp": ">"
},
{
"id": "condition_aicpu_1",
"type": "normal",
"left": "task_type",
"right": "AI_CPU",
"cmp": "=="
},
{
"id": "condition_memory_bound_1",
"type": "normal",
"left": "memory_bound",
"right": 1,
"cmp": ">"
},
{
"id": "condition_memory_bound_2",
"dependency": "condition_memory_bound_1",
"type": "accumulate",
"accumulate": ["task_duration"],
"compare": ["task_duration"],
"threshold": 0.5,
"cmp": ">"
},
{
"id": "condition_vector_bound_1",
"type": "normal",
"left": "vector_bound",
"right": 1,
"cmp": ">"
},
{
"id": "condition_vector_ratio_1",
"type": "normal",
"left": "vec_ratio",
"right": 0.8,
"cmp": "<"
},
{
"id": "condition_vector_ratio_2",
"type": "normal",
"left": "vec_ratio",
"right": 0.8,
"cmp": ">"
},
{
"id": "condition_cube_ratio_1",
"type": "normal",
"left": "mac_ratio",
"right": 0.8,
"cmp": "<"
},
{
"id": "condition_cube_ratio_2",
"type": "normal",
"left": "mac_ratio",
"right": 0,
"cmp": ">"
},
{
"id": "condition_scalar_ratio_1",
"type": "normal",
"left": "scalar_ratio",
"right": 0.8,
"cmp": ">"
},
{
"id": "condition_vec_bankgroup_cflt_ratio_1",
"type": "normal",
"left": "vec_bankgroup_cflt_ratio",
"right": 0.04,
"cmp": ">"
},
{
"id": "condition_vec_bank_cflt_ratio_1",
"type": "normal",
"left": "vec_bank_cflt_ratio",
"right": 0.04,
"cmp": ">"
},
{
"id": "condition_task_duration_1",
"type": "normal",
"left": "task_duration",
"right": 20,
"cmp": ">"
},
{
"id": "condition_int64_1",
"type": "normal",
"left": "input_data_types",
"right": "INT64",
"cmp": "contain"
},
{
"id": "condition_strided_slice_grad_1",
"type": "normal",
"left": "op_name",
"right": "StridedSliceGrad",
"cmp": "contain"
},
{
"id": "condition_ai_cpu_parallelism_1",
"type": "formula",
"left": ["AI CPU Execution Time(us)", "AI Core Execution Time(us)",
"Concurrent AI Core and AI CPU Execution Time(us)"],
"right": 0.05,
"formula": "{0}/({0}+{1}+{2})",
"cmp": ">"
},
{
"id": "condition_cube_affinity_1",
"type": "formula",
"left": ["Cube Utilization", "Vector Utilization", "Scalar Utilization", "MTE Utilization"],
"right": 0.5,
"formula": "{0}/({0}+{1}+{2}+{3})",
"cmp": ">="
},
{
"id": "condition_cube_affinity_2",
"type": "formula",
"left": ["Cube Utilization", "Vector Utilization", "Scalar Utilization", "MTE Utilization"],
"right": 0.5,
"formula": "{0}/({0}+{1}+{2}+{3})",
"cmp": "<"
}
]
def __init__(self):
self.support_parser = False