已合并
add dcmiv interface: dcmiv2_get_affinity_cpu_info_by_dev_id #33983
zhaoyu65创建于 4月20日
add dcmiv interface: dcmiv2_get_affinity_cpu_info_by_dev_id #33983
已合并
zhaoyu65创建于 4月20日
2 个文件变更+22-5
Mthird_party/dcmi/inc/dcmi_interface_api.h+2-0
@@ -29,4 +29,6 @@ DCMIDLLEXPORT int dcmiv2_init(void);
29 29 
30DCMIDLLEXPORT int dcmiv2_get_affinity_cpu_info_by_device_id(int dev_id, char *affinity_cpu, int *length);30DCMIDLLEXPORT int dcmiv2_get_affinity_cpu_info_by_device_id(int dev_id, char *affinity_cpu, int *length);
31 31 
32+DCMIDLLEXPORT int dcmiv2_get_affinity_cpu_info_by_dev_id(int dev_id, char *affinity_cpu, int *length);
33+ 
32DCMIDLLEXPORT int dcmiv2_get_device_list(int* device_list, int* device_cnt, int list_len);34DCMIDLLEXPORT int dcmiv2_get_device_list(int* device_list, int* device_cnt, int list_len);
Mtorch_npu/csrc/core/npu/interface/DcmiInterface.cpp+20-5
@@ -22,6 +22,7 @@ LOAD_FUNCTION(dcmi_get_card_num_list)
22// dcmiv2 functions22// dcmiv2 functions
23LOAD_FUNCTION(dcmiv2_init)23LOAD_FUNCTION(dcmiv2_init)
24LOAD_FUNCTION(dcmiv2_get_affinity_cpu_info_by_device_id)24LOAD_FUNCTION(dcmiv2_get_affinity_cpu_info_by_device_id)
25+LOAD_FUNCTION(dcmiv2_get_affinity_cpu_info_by_dev_id)
25LOAD_FUNCTION(dcmiv2_get_device_list)26LOAD_FUNCTION(dcmiv2_get_device_list)
26 27 
27int DcmiInit(void)28int DcmiInit(void)
@@ -61,20 +62,34 @@ int DcmiGetCardNumList(int *card_num, int *card_list, int list_len)
61 62 
62int DcmiGetAffinityCpuInfoByDeviceId(int card_id, int device_id, char *affinity_cpu, int *length)63int DcmiGetAffinityCpuInfoByDeviceId(int card_id, int device_id, char *affinity_cpu, int *length)
63{64{
65+ // Use dcmiv2_get_affinity_cpu_info_by_dev_id first
66+ using dcmiv2GetAffinityCpuInfoByDevIdFunc = int(*)(int, char *, int *);
67+ static dcmiv2GetAffinityCpuInfoByDevIdFunc func_v2_1 = nullptr;
68+ if (func_v2_1 == nullptr) {
69+ func_v2_1 = (dcmiv2GetAffinityCpuInfoByDevIdFunc)GET_FUNC(dcmiv2_get_affinity_cpu_info_by_dev_id);
70+ }
71+ if (func_v2_1 != nullptr) {
72+ return func_v2_1(card_id, affinity_cpu, length);
73+ }
74+ 
64 using dcmiv2GetAffinityCpuInfoByDeviceIdFunc = int(*)(int, char *, int *);75 using dcmiv2GetAffinityCpuInfoByDeviceIdFunc = int(*)(int, char *, int *);
65 static dcmiv2GetAffinityCpuInfoByDeviceIdFunc func_v2 = nullptr;76 static dcmiv2GetAffinityCpuInfoByDeviceIdFunc func_v2 = nullptr;
66- func_v2 = (dcmiv2GetAffinityCpuInfoByDeviceIdFunc)GET_FUNC(dcmiv2_get_affinity_cpu_info_by_device_id);77+ if (func_v2 == nullptr) {
78+ func_v2 = (dcmiv2GetAffinityCpuInfoByDeviceIdFunc)GET_FUNC(dcmiv2_get_affinity_cpu_info_by_device_id);
79+ }
67 if (func_v2 != nullptr) {80 if (func_v2 != nullptr) {
68 return func_v2(card_id, affinity_cpu, length);81 return func_v2(card_id, affinity_cpu, length);
69 }82 }
83+ 
70 using dcmiGetAffinityCpuInfoByDeviceIdFunc = int(*)(int, int, char *, int *);84 using dcmiGetAffinityCpuInfoByDeviceIdFunc = int(*)(int, int, char *, int *);
71 static dcmiGetAffinityCpuInfoByDeviceIdFunc func = nullptr;85 static dcmiGetAffinityCpuInfoByDeviceIdFunc func = nullptr;
72- func = (dcmiGetAffinityCpuInfoByDeviceIdFunc)GET_FUNC(dcmi_get_affinity_cpu_info_by_device_id);
73 if (func == nullptr) {86 if (func == nullptr) {
74- TORCH_CHECK(false, "Failed to find function dcmi_get_affinity_cpu_info_by_device_id, "87+ func = (dcmiGetAffinityCpuInfoByDeviceIdFunc)GET_FUNC(dcmi_get_affinity_cpu_info_by_device_id);
75- " maybe your hdk version is too low, please upgrade it", PTA_ERROR(ErrCode::NOT_FOUND));
76 }88 }
77- return func(card_id, device_id, affinity_cpu, length);89+ if (func != nullptr) {
90+ return func(card_id, device_id, affinity_cpu, length);
91+ }
92+ TORCH_CHECK(false, "Failed to get affinity cpu info, maybe your hdk version is too low, please upgrade it", PTA_ERROR(ErrCode::NOT_FOUND));
78}93}
79 94 
80int DcmiGetDeviceIdInCard(int card_id, int *device_id_max, int *mcu_id, int *cpu_id)95int DcmiGetDeviceIdInCard(int card_id, int *device_id_max, int *mcu_id, int *cpu_id)