Windows Server 2022双物理CPU环境下OpenVINO核心使用权限问题咨询
问题分析与结论
核心原因判断
这个问题主要由Windows Server 2022的权限与CPU组限制导致,而非OpenVINO本身的问题。
具体分析
- Windows Server对多插槽CPU系统会划分CPU组,标准用户进程默认被限制在单个CPU组(对应你的CPU0所在组),无法跨组调度核心;而管理员身份拥有更高权限,能访问所有CPU组,因此OpenVINO可以利用全部核心。
- 你设置的OpenVINO
AUTO和CUMULATIVE_THROUGHPUT模式,本质是让OpenVINO尽可能利用系统提供的所有可用CPU资源,但如果操作系统通过权限限制了进程的CPU组访问范围,OpenVINO无法突破这个限制。
验证方法
- 分别以标准用户和管理员身份运行程序,打开任务管理器,右键进程选择“设置相关性”,查看允许使用的核心列表。
- 用命令行工具查询进程亲和掩码:
对比两种身份下的亲和掩码值,标准用户的掩码会仅对应CPU0的核心。wmic process where name="你的程序名.exe" get caption,processid,affinity
解决方向
- 给标准用户分配必要权限:在本地安全策略中,为该用户添加“调整进程内存配额”“更改进程优先级”权限(需谨慎操作,避免过度授权)。
- 程序中手动设置CPU亲和性:在C++代码中调用Windows API
SetProcessAffinityMask,指定使用所有核心的亲和掩码,但需要确保程序有足够权限执行该操作。 - 检查OpenVINO配置:确认是否有针对CPU组的显式配置项,当前版本OpenVINO默认会适配系统CPU组,前提是进程有权限访问。
内容的提问来源于stack exchange,提问作者Gerald
相关产品推荐
相关产品推荐

