update 调整cpu核绑定

dev_lsy
liusiyang 6 days ago
parent acb5a9d872
commit 4e6b88e825

@ -13,7 +13,12 @@
// 检测分析线程类数目 // 检测分析线程类数目
#define IMGCHECKANALYSISY_NUM 2 #define IMGCHECKANALYSISY_NUM 2
// 检测线程绑定的 CPU 核带(核带下沉到库内部,调用方传入的 nCpu_start_Idx / nCpu_num 不再生效)
// 分配规则:第 k 个检测线程绑定 核 = CHECK_CPU_BAND_START + (k % CHECK_CPU_BAND_NUM)
// 当前 4 个检测线程落在 15,16,17,18逻辑核 c 与 c+16 为超线程兄弟,故物理核为 15,0,1,2
// 注意CHECK_CPU_BAND_NUM 必须 >= 相机数 * IMGCHECKANALYSISY_NUM否则取模回绕会导致两个检测线程绑同一核
#define CHECK_CPU_BAND_START 15
#define CHECK_CPU_BAND_NUM 8
// 相机ID 的相关定义 // 相机ID 的相关定义
enum Camera_IDX enum Camera_IDX

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

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

Loading…
Cancel
Save