在异构多处理模型中,CPU 或 SoC 的不同内核没有相同的性能配置文件。虽然 HMP 系统在不久前首次部署(wiki 提到三星早在 2013 年就开始使用该型号),但它们正在与苹果的 M 系列相提并论(从技术上讲,这已经是 HyperThreading 的问题,这可以被视为一种形式我猜是 HMP)。
并行化工具通常尝试通过计算系统上的内核数量来猜测他们应该创建的工作人员数量,但是在 HMP 模型中可能适得其反,尤其是对于个人设备:虽然“高效”内核在技术上是可用的,但它们性能低下,加载它们不会带来巨大的性能提升,并且会极大地影响与系统交互的交互性/愉悦性。这通常是可配置的(因此用户可以设置一些更合理的东西),但将这些工具仅隔离到“高性能”内核(至少假设它们受 CPU 限制)似乎更好的默认设置,让用户可以选择增加驻留如果他们这样选择。
那么是否有一种可移植的方式来列出“真实”和“高性能”核心并将其与“虚拟”和“高效”核心区分开来?
注意:我看过68444429 “how can I区分 high-and low-performance cores in C++”,虽然标题很相似,但问题和目标却大不相同,因为这里的目标是避免默认产生不必要和低效的工作.