update 调整cpu核绑定

dev_lsy
liusiyang 2 months ago
parent 464954b898
commit 68f59a7a77

@ -13,7 +13,13 @@
// 检测分析线程类数目
#define IMGCHECKANALYSISY_NUM 2
// 检测线程绑定的 CPU 核带(核带下沉到库内部,调用方传入的 nCpu_start_Idx / nCpu_num 不再生效)
// 分配规则:第 k 个检测线程绑定 核 = CHECK_CPU_BAND_START + (k % CHECK_CPU_BAND_NUM)
// 当前 24-27 = NUMA node1 的物理核 8-11(逻辑核同物理核映射:c 与 c+16 为超线程兄弟)
// 与 BOE_ZB_BACKPLATE(16-19 / node0)零重叠,两进程并行时互不干扰
// 注意:CHECK_CPU_BAND_NUM 必须 >= 相机数 * IMGCHECKANALYSISY_NUM,否则取模回绕会导致两个检测线程绑同一核
#define CHECK_CPU_BAND_START 24
#define CHECK_CPU_BAND_NUM 8
// 相机ID 的相关定义
enum Camera_IDX

@ -684,9 +684,9 @@ int CameraCheckAnalysisy::InitCheckAnalysisy()
RunInfoST RunConfig;
RunConfig.nThreadIdx = i;
{
int range = (m_RunConfig.nCpu_num > 0) ? m_RunConfig.nCpu_num : 1;
int offset = s_cpuOffset.fetch_add(1) % range;
RunConfig.nCpu_start_Idx = m_RunConfig.nCpu_start_Idx + offset;
// 核带下沉到库内部:不再依赖调用方传入的 nCpu_start_Idx / nCpu_num
int offset = s_cpuOffset.fetch_add(1) % CHECK_CPU_BAND_NUM;
RunConfig.nCpu_start_Idx = CHECK_CPU_BAND_START + offset;
}
RunConfig.nCpu_num = 1;

@ -1465,6 +1465,8 @@ int deal::InitCPUIDX()
start += READ_IMG_THREAD_NUM;
m_CPUInfo[THREAD_CPU_Main_saveImg].set(start, Save_IMG_THREAD_NUM);
start += Save_IMG_THREAD_NUM;
// 注意:检测线程的核带已下沉到库内部(AlgorithmModule/include/Define_Base.h 的
// CHECK_CPU_BAND_START / CHECK_CPU_BAND_NUM = 24 / 8),下面这项仅为兼容赋值,不再影响检测线程绑核。
m_CPUInfo[THREAD_CPU_CheckSo].set(start, 15);
return 0;
}

Loading…
Cancel
Save