Merged
feat: arg_max_v2/arg_max_with_value/arg_min/arg_min_with_value 适配 ascend960dt #5787
jzj007Add on Sep 18
feat: arg_max_v2/arg_max_with_value/arg_min/arg_min_with_value 适配 ascend960dt #5787
Merged
jzj007Add on Sep 18
Total: 18 files changed+3109-13
@@ -9,7 +9,7 @@
9# ----------------------------------------------------------------------------9# ----------------------------------------------------------------------------
10 10 
11# 设置算子定义时支持的芯片类型11# 设置算子定义时支持的芯片类型
12-set(SUPPORT_COMPUTE_UNIT "ascend950" "mc62" "ascend350")12+set(SUPPORT_COMPUTE_UNIT "ascend950" "mc62" "ascend350" "ascend960dt")
13# 设置每种芯片类型对应的tiling文件目录,即采用op_host目录下哪个文件夹下的tiling文件编译13# 设置每种芯片类型对应的tiling文件目录,即采用op_host目录下哪个文件夹下的tiling文件编译
14-set(SUPPORT_TILING_DIR "arch35" "arch35" "arch35")14+set(SUPPORT_TILING_DIR "arch35" "arch35" "arch35" "arch35")
15add_all_modules_sources(OPTYPE arg_max_v2 ACLNNTYPE aclnn_exclude COMPUTE_UNIT ${SUPPORT_COMPUTE_UNIT} TILING_DIR ${SUPPORT_TILING_DIR} DEPENDENCIES arg_max_with_value DISABLE_IN_OPP TRUE)15add_all_modules_sources(OPTYPE arg_max_v2 ACLNNTYPE aclnn_exclude COMPUTE_UNIT ${SUPPORT_COMPUTE_UNIT} TILING_DIR ${SUPPORT_TILING_DIR} DEPENDENCIES arg_max_with_value DISABLE_IN_OPP TRUE)
@@ -64,6 +64,7 @@ public:
64 64 
65 this->AICore().AddConfig("ascend950", aicore_config);65 this->AICore().AddConfig("ascend950", aicore_config);
66 this->AICore().AddConfig("ascend350", aicore_config);66 this->AICore().AddConfig("ascend350", aicore_config);
67+ this->AICore().AddConfig("ascend960dt", aicore_config);
67 }68 }
68};69};
69 70 
@@ -0,0 +1,13 @@
1+; 该文件主要影响 opc 工具 编译二进制kernel时, --simplified_key_mode 选项中填写的值,格式如下所示:
2+; [某算子]
3+; default=xx
4+; ascendxx=xx
5+; 其中,default为默认mode,ascnedxx为可选mode,如果不同芯片有差异化要求时,需要配置;
6+; 1)如果没有配置:非ascendC算子继续按空处理,即opc编译命令中不添加 --simplified_key_mode 选项,AscendC算子按照 simplified_key_mode=0 处理
7+; 2)如果仅有default配置:各个版本按default配置
8+; 3)如果仅有某些平台的配置,没有default配置:对应平台的按照配置的值传递,非对应平台的:非AscendC算子继续按空处理,AscendC算子按照 simplified_key_mode=0 处理
9+; 4)如果default配置和平台配置都有:对应平台的使用平台的配置,非对应的平台的以default值配置。
10+; 5)对于自定义simplified key的情况,需要在binary_simplified_key_mode.ini 文件中显式配置为None,不传入 --simplified_key_mode 选项,由opc工具和FE框架自行判断使用何种模式
11+; 6)是否是AscendC算子,由 ops/built-in/tbe/op_info_cfg/parser/ascendc_config.json 中配置的算子名字和对于的平台决定
12+[ArgMaxV2]
13+default=0
@@ -8,7 +8,7 @@
8# See LICENSE in the root of the software repository for the full text of the License.8# See LICENSE in the root of the software repository for the full text of the License.
9# ----------------------------------------------------------------------------9# ----------------------------------------------------------------------------
10# 设置算子定义时支持的芯片类型10# 设置算子定义时支持的芯片类型
11-set(SUPPORT_COMPUTE_UNIT "ascend950" "mc62" "ascend350")11+set(SUPPORT_COMPUTE_UNIT "ascend950" "mc62" "ascend350" "ascend960dt")
12# 设置每种芯片类型对应的tiling文件目录,即采用op_host目录下哪个文件夹下的tiling文件编译12# 设置每种芯片类型对应的tiling文件目录,即采用op_host目录下哪个文件夹下的tiling文件编译
13-set(SUPPORT_TILING_DIR "arch35" "arch35" "arch35")13+set(SUPPORT_TILING_DIR "arch35" "arch35" "arch35" "arch35")
14add_all_modules_sources(OPTYPE arg_max_with_value ACLNNTYPE aclnn_exclude COMPUTE_UNIT ${SUPPORT_COMPUTE_UNIT} TILING_DIR ${SUPPORT_TILING_DIR} DISABLE_IN_OPP TRUE)14add_all_modules_sources(OPTYPE arg_max_with_value ACLNNTYPE aclnn_exclude COMPUTE_UNIT ${SUPPORT_COMPUTE_UNIT} TILING_DIR ${SUPPORT_TILING_DIR} DISABLE_IN_OPP TRUE)
@@ -57,6 +57,7 @@ public:
57 57 
58 this->AICore().AddConfig("ascend950", aicore_config);58 this->AICore().AddConfig("ascend950", aicore_config);
59 this->AICore().AddConfig("ascend350", aicore_config);59 this->AICore().AddConfig("ascend350", aicore_config);
60+ this->AICore().AddConfig("ascend960dt", aicore_config);
60 }61 }
61};62};
62 63 
@@ -0,0 +1,575 @@
1+{
2+ "op_type": "ArgMaxWithValue",
3+ "op_list": [
4+ {
5+ "bin_filename": "ArgMaxWithValue_093a9c399321376b38a75cfb730e3bd5",
6+ "inputs": [
7+ {
8+ "name": "x",
9+ "index": 0,
10+ "dtype": "bfloat16",
11+ "format": "ND",
12+ "paramType": "required",
13+ "shape": [
14+ -2
15+ ],
16+ "format_match_mode": "FormatAgnostic"
17+ }
18+ ],
19+ "outputs": [
20+ {
21+ "name": "indice",
22+ "index": 0,
23+ "dtype": "int32",
24+ "format": "ND",
25+ "paramType": "required",
26+ "shape": [
27+ -2
28+ ],
29+ "format_match_mode": "FormatAgnostic"
30+ },
31+ {
32+ "name": "values",
33+ "index": 1,
34+ "dtype": "bfloat16",
35+ "format": "ND",
36+ "paramType": "required",
37+ "shape": [
38+ -2
39+ ],
40+ "format_match_mode": "FormatAgnostic"
41+ }
42+ ],
43+ "attrs": [
44+ {
45+ "name": "dimension",
46+ "dtype": "int",
47+ "value": 0
48+ },
49+ {
50+ "name": "keep_dims",
51+ "dtype": "bool",
52+ "value": null
53+ },
54+ {
55+ "name": "indice_dtype",
56+ "dtype": "int",
57+ "value": 3
58+ }
59+ ]
60+ },
61+ {
62+ "bin_filename": "ArgMaxWithValue_c956995141babe6b46a07ca335faa2f6",
63+ "inputs": [
64+ {
65+ "name": "x",
66+ "index": 0,
67+ "dtype": "bfloat16",
68+ "format": "ND",
69+ "paramType": "required",
70+ "shape": [
71+ -2
72+ ],
73+ "format_match_mode": "FormatAgnostic"
74+ }
75+ ],
76+ "outputs": [
77+ {
78+ "name": "indice",
79+ "index": 0,
80+ "dtype": "int64",
81+ "format": "ND",
82+ "paramType": "required",
83+ "shape": [
84+ -2
85+ ],
86+ "format_match_mode": "FormatAgnostic"
87+ },
88+ {
89+ "name": "values",
90+ "index": 1,
91+ "dtype": "bfloat16",
92+ "format": "ND",
93+ "paramType": "required",
94+ "shape": [
95+ -2
96+ ],
97+ "format_match_mode": "FormatAgnostic"
98+ }
99+ ],
100+ "attrs": [
@@ -0,0 +1,13 @@
1+; 该文件主要影响 opc 工具 编译二进制kernel时, --simplified_key_mode 选项中填写的值,格式如下所示:
2+; [某算子]
3+; default=xx
4+; ascendxx=xx
5+; 其中,default为默认mode,ascnedxx为可选mode,如果不同芯片有差异化要求时,需要配置;
6+; 1)如果没有配置:非ascendC算子继续按空处理,即opc编译命令中不添加 --simplified_key_mode 选项,AscendC算子按照 simplified_key_mode=0 处理
7+; 2)如果仅有default配置:各个版本按default配置
8+; 3)如果仅有某些平台的配置,没有default配置:对应平台的按照配置的值传递,非对应平台的:非AscendC算子继续按空处理,AscendC算子按照 simplified_key_mode=0 处理
9+; 4)如果default配置和平台配置都有:对应平台的使用平台的配置,非对应的平台的以default值配置。
10+; 5)对于自定义simplified key的情况,需要在binary_simplified_key_mode.ini 文件中显式配置为None,不传入 --simplified_key_mode 选项,由opc工具和FE框架自行判断使用何种模式
11+; 6)是否是AscendC算子,由 ops/built-in/tbe/op_info_cfg/parser/ascendc_config.json 中配置的算子名字和对于的平台决定
12+[ArgMaxWithValue]
13+default=0
@@ -9,7 +9,7 @@
9# ----------------------------------------------------------------------------9# ----------------------------------------------------------------------------
10 10 
11# 设置算子定义时支持的芯片类型11# 设置算子定义时支持的芯片类型
12-set(SUPPORT_COMPUTE_UNIT "ascend950" "mc62" "ascend350")12+set(SUPPORT_COMPUTE_UNIT "ascend950" "mc62" "ascend350" "ascend960dt")
13# 设置每种芯片类型对应的tiling文件目录,即采用op_host目录下哪个文件夹下的tiling文件编译13# 设置每种芯片类型对应的tiling文件目录,即采用op_host目录下哪个文件夹下的tiling文件编译
14-set(SUPPORT_TILING_DIR "arch35" "arch35" "arch35")14+set(SUPPORT_TILING_DIR "arch35" "arch35" "arch35" "arch35")
15add_all_modules_sources(OPTYPE arg_min ACLNNTYPE aclnn_exclude COMPUTE_UNIT ${SUPPORT_COMPUTE_UNIT} TILING_DIR ${SUPPORT_TILING_DIR} DEPENDENCIES arg_max_with_value DISABLE_IN_OPP TRUE)15add_all_modules_sources(OPTYPE arg_min ACLNNTYPE aclnn_exclude COMPUTE_UNIT ${SUPPORT_COMPUTE_UNIT} TILING_DIR ${SUPPORT_TILING_DIR} DEPENDENCIES arg_max_with_value DISABLE_IN_OPP TRUE)
@@ -31,7 +31,7 @@ static bool IsRegBasePlatform()
31 return false;31 return false;
32 }32 }
33 auto curArch = static_cast<NpuArch>(std::strtol(archStr, nullptr, 10));33 auto curArch = static_cast<NpuArch>(std::strtol(archStr, nullptr, 10));
34- const static std::set<NpuArch> regbaseArch = {NpuArch::DAV_3510, NpuArch::DAV_5102};34+ const static std::set<NpuArch> regbaseArch = {NpuArch::DAV_3510, NpuArch::DAV_5102, NpuArch::DAV_9201};
35 bool isRegbase = (regbaseArch.find(curArch) != regbaseArch.end());35 bool isRegbase = (regbaseArch.find(curArch) != regbaseArch.end());
36 OP_LOGD("ArgMin", "IsRegBasePlatform: curArch=%u, is_regbase=%d.", static_cast<uint32_t>(curArch), isRegbase);36 OP_LOGD("ArgMin", "IsRegBasePlatform: curArch=%u, is_regbase=%d.", static_cast<uint32_t>(curArch), isRegbase);
37 return isRegbase;37 return isRegbase;
@@ -64,6 +64,7 @@ public:
64 64 
65 this->AICore().AddConfig("ascend950", aicore_config);65 this->AICore().AddConfig("ascend950", aicore_config);
66 this->AICore().AddConfig("ascend350", aicore_config);66 this->AICore().AddConfig("ascend350", aicore_config);
67+ this->AICore().AddConfig("ascend960dt", aicore_config);
67 }68 }
68};69};
69 70 
@@ -0,0 +1,13 @@
1+; 该文件主要影响 opc 工具 编译二进制kernel时, --simplified_key_mode 选项中填写的值,格式如下所示:
2+; [某算子]
3+; default=xx
4+; ascendxx=xx
5+; 其中,default为默认mode,ascnedxx为可选mode,如果不同芯片有差异化要求时,需要配置;
6+; 1)如果没有配置:非ascendC算子继续按空处理,即opc编译命令中不添加 --simplified_key_mode 选项,AscendC算子按照 simplified_key_mode=0 处理
7+; 2)如果仅有default配置:各个版本按default配置
8+; 3)如果仅有某些平台的配置,没有default配置:对应平台的按照配置的值传递,非对应平台的:非AscendC算子继续按空处理,AscendC算子按照 simplified_key_mode=0 处理
9+; 4)如果default配置和平台配置都有:对应平台的使用平台的配置,非对应的平台的以default值配置。
10+; 5)对于自定义simplified key的情况,需要在binary_simplified_key_mode.ini 文件中显式配置为None,不传入 --simplified_key_mode 选项,由opc工具和FE框架自行判断使用何种模式
11+; 6)是否是AscendC算子,由 ops/built-in/tbe/op_info_cfg/parser/ascendc_config.json 中配置的算子名字和对于的平台决定
12+[ArgMin]
13+default=0
@@ -9,7 +9,7 @@
9# ----------------------------------------------------------------------------9# ----------------------------------------------------------------------------
10 10 
11# 设置算子定义时支持的芯片类型11# 设置算子定义时支持的芯片类型
12-set(SUPPORT_COMPUTE_UNIT "ascend950" "mc62" "ascend350")12+set(SUPPORT_COMPUTE_UNIT "ascend950" "mc62" "ascend350" "ascend960dt")
13# 设置每种芯片类型对应的tiling文件目录,即采用op_host目录下哪个文件夹下的tiling文件编译13# 设置每种芯片类型对应的tiling文件目录,即采用op_host目录下哪个文件夹下的tiling文件编译
14-set(SUPPORT_TILING_DIR "arch35" "arch35" "arch35")14+set(SUPPORT_TILING_DIR "arch35" "arch35" "arch35" "arch35")
15add_all_modules_sources(OPTYPE arg_min_with_value ACLNNTYPE aclnn_exclude COMPUTE_UNIT ${SUPPORT_COMPUTE_UNIT} TILING_DIR ${SUPPORT_TILING_DIR} DEPENDENCIES arg_max_with_value DISABLE_IN_OPP TRUE)15add_all_modules_sources(OPTYPE arg_min_with_value ACLNNTYPE aclnn_exclude COMPUTE_UNIT ${SUPPORT_COMPUTE_UNIT} TILING_DIR ${SUPPORT_TILING_DIR} DEPENDENCIES arg_max_with_value DISABLE_IN_OPP TRUE)
@@ -57,6 +57,7 @@ public:
57 57 
58 this->AICore().AddConfig("ascend950", aicore_config);58 this->AICore().AddConfig("ascend950", aicore_config);
59 this->AICore().AddConfig("ascend350", aicore_config);59 this->AICore().AddConfig("ascend350", aicore_config);
60+ this->AICore().AddConfig("ascend960dt", aicore_config);
60 }61 }
61};62};
62 63 
@@ -0,0 +1,575 @@
1+{
2+ "op_type": "ArgMinWithValue",
3+ "op_list": [
4+ {
5+ "bin_filename": "ArgMinWithValue_093a9c399321376b38a75cfb730e3bd5",
6+ "inputs": [
7+ {
8+ "name": "x",
9+ "index": 0,
10+ "dtype": "bfloat16",
11+ "format": "ND",
12+ "paramType": "required",
13+ "shape": [
14+ -2
15+ ],
16+ "format_match_mode": "FormatAgnostic"
17+ }
18+ ],
19+ "outputs": [
20+ {
21+ "name": "indice",
22+ "index": 0,
23+ "dtype": "int32",
24+ "format": "ND",
25+ "paramType": "required",
26+ "shape": [
27+ -2
28+ ],
29+ "format_match_mode": "FormatAgnostic"
30+ },
31+ {
32+ "name": "values",
33+ "index": 1,
34+ "dtype": "bfloat16",
35+ "format": "ND",
36+ "paramType": "required",
37+ "shape": [
38+ -2
39+ ],
40+ "format_match_mode": "FormatAgnostic"
41+ }
42+ ],
43+ "attrs": [
44+ {
45+ "name": "dimension",
46+ "dtype": "int",
47+ "value": 0
48+ },
49+ {
50+ "name": "keep_dims",
51+ "dtype": "bool",
52+ "value": null
53+ },
54+ {
55+ "name": "indice_dtype",
56+ "dtype": "int",
57+ "value": 3
58+ }
59+ ]
60+ },
61+ {
62+ "bin_filename": "ArgMinWithValue_c956995141babe6b46a07ca335faa2f6",
63+ "inputs": [
64+ {
65+ "name": "x",
66+ "index": 0,
67+ "dtype": "bfloat16",
68+ "format": "ND",
69+ "paramType": "required",
70+ "shape": [
71+ -2
72+ ],
73+ "format_match_mode": "FormatAgnostic"
74+ }
75+ ],
76+ "outputs": [
77+ {
78+ "name": "indice",
79+ "index": 0,
80+ "dtype": "int64",
81+ "format": "ND",
82+ "paramType": "required",
83+ "shape": [
84+ -2
85+ ],
86+ "format_match_mode": "FormatAgnostic"
87+ },
88+ {
89+ "name": "values",
90+ "index": 1,
91+ "dtype": "bfloat16",
92+ "format": "ND",
93+ "paramType": "required",
94+ "shape": [
95+ -2
96+ ],
97+ "format_match_mode": "FormatAgnostic"
98+ }
99+ ],
100+ "attrs": [
@@ -0,0 +1,13 @@
1+; 该文件主要影响 opc 工具 编译二进制kernel时, --simplified_key_mode 选项中填写的值,格式如下所示:
2+; [某算子]
3+; default=xx
4+; ascendxx=xx
5+; 其中,default为默认mode,ascnedxx为可选mode,如果不同芯片有差异化要求时,需要配置;
6+; 1)如果没有配置:非ascendC算子继续按空处理,即opc编译命令中不添加 --simplified_key_mode 选项,AscendC算子按照 simplified_key_mode=0 处理
7+; 2)如果仅有default配置:各个版本按default配置
8+; 3)如果仅有某些平台的配置,没有default配置:对应平台的按照配置的值传递,非对应平台的:非AscendC算子继续按空处理,AscendC算子按照 simplified_key_mode=0 处理
9+; 4)如果default配置和平台配置都有:对应平台的使用平台的配置,非对应的平台的以default值配置。
10+; 5)对于自定义simplified key的情况,需要在binary_simplified_key_mode.ini 文件中显式配置为None,不传入 --simplified_key_mode 选项,由opc工具和FE框架自行判断使用何种模式
11+; 6)是否是AscendC算子,由 ops/built-in/tbe/op_info_cfg/parser/ascendc_config.json 中配置的算子名字和对于的平台决定
12+[ArgMinWithValue]
13+default=0
@@ -598,11 +598,11 @@
598 {"name":"GetPaddingOffset", "compute_units": ["ascend910b", "ascend910_93", "ascend310p"], "auto_sync": true},598 {"name":"GetPaddingOffset", "compute_units": ["ascend910b", "ascend910_93", "ascend310p"], "auto_sync": true},
599 {"name":"MemSetV2", "compute_units": ["ascend950", "mc62"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "mc62": ["--cce-no-dcache-flush"]}},599 {"name":"MemSetV2", "compute_units": ["ascend950", "mc62"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "mc62": ["--cce-no-dcache-flush"]}},
600 {"name":"MemSet", "compute_units": ["ascend950", "ascend350"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "ascend350": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"]}},600 {"name":"MemSet", "compute_units": ["ascend950", "ascend350"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "ascend350": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"]}},
601- {"name":"ArgMaxWithValue", "compute_units": ["ascend950", "mc62", "ascend350"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "mc62": ["--cce-no-dcache-flush"], "ascend350": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"]}},601+ {"name":"ArgMaxWithValue", "compute_units": ["ascend950", "mc62", "ascend350", "ascend960dt"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "mc62": ["--cce-no-dcache-flush"], "ascend350": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "ascend960dt": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"]}},
602- {"name":"ArgMaxV2", "compute_units": ["ascend950", "mc62", "ascend350"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "mc62": ["--cce-no-dcache-flush"], "ascend350": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"]}},602+ {"name":"ArgMaxV2", "compute_units": ["ascend950", "mc62", "ascend350", "ascend960dt"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "mc62": ["--cce-no-dcache-flush"], "ascend350": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "ascend960dt": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"]}},
603- {"name":"ArgMinWithValue", "compute_units": ["ascend950", "mc62", "ascend350"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "mc62": ["--cce-no-dcache-flush"], "ascend350": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"]}},603+ {"name":"ArgMinWithValue", "compute_units": ["ascend950", "mc62", "ascend350", "ascend960dt"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "mc62": ["--cce-no-dcache-flush"], "ascend350": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "ascend960dt": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"]}},
604 {"name":"NonZero", "compute_units": ["ascend950"], "auto_sync" : false},604 {"name":"NonZero", "compute_units": ["ascend950"], "auto_sync" : false},
605- {"name":"ArgMin", "compute_units": ["ascend950", "mc62", "ascend350"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "mc62": ["--cce-no-dcache-flush"], "ascend350": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"]}},605+ {"name":"ArgMin", "compute_units": ["ascend950", "mc62", "ascend350", "ascend960dt"], "auto_sync" : false, "impl_mode" : "", "compile_options": {"ascend950": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "mc62": ["--cce-no-dcache-flush"], "ascend350": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"], "ascend960dt": ["-mllvm -cce-aicore-dcci-before-kernel-end=false"]}},
606 {"name":"FusedMulAddN", "compute_units": ["ascend950", "ascend350", "ascend960dt"], "auto_sync" : false},606 {"name":"FusedMulAddN", "compute_units": ["ascend950", "ascend350", "ascend960dt"], "auto_sync" : false},
607 {"name": "Cdist", "compute_units": ["ascend950", "ascend350"], "auto_sync": false},607 {"name": "Cdist", "compute_units": ["ascend950", "ascend350"], "auto_sync": false},
608 {"name":"QuantizedBatchNorm", "compute_units": ["ascend910b", "ascend910_93"], "auto_sync" : false},608 {"name":"QuantizedBatchNorm", "compute_units": ["ascend910b", "ascend910_93"], "auto_sync" : false},