首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AMD处理器的意外处理器/核心计数

AMD处理器的意外处理器/核心计数
EN

Unix & Linux用户
提问于 2014-10-30 19:44:19
回答 1查看 1.4K关注 0票数 4

我想确定机器是否启用了超线程。为了确定这一点,我使用了我在网上找到的建议,其操作如下:

代码语言:javascript
复制
physical_proc_count = `grep "physical id" /proc/cpuinfo | sort -u  | wc -l`
logical_proc_count = `grep "processor" /proc/cpuinfo | wc -l`
core_count = `grep "core id" /proc/cpuinfo | sort -u | wc -l`

这样做的想法是,如果逻辑处理器的数量是核心数量的两倍,则启用超线程。

在我当时的天真中,我忽略了AMD处理器没有超线程的事实。我知道他们没有被称为“超线程”的精确技术,但我错误地认为他们的功能相当。所以我在一台有四个AMD Opteron处理器6276的机器上运行了脚本,输出是:

  • 4个物理CPU
  • 64个逻辑CPU
  • 每个物理CPU 8个核心

每物理CPU 8核,== 32核。然而,有64个逻辑CPU。因此,我得出结论,机器启用了超线程。更复杂的是,/proc/cpuinfo中的处理器标志包含"ht“标志。从那时起,我就学会了"HyperTransport“在AMD芯片中的代表-哦!

一位同事注意到了我的错误,并且礼貌地告诉我AMD处理器没有超线程。我还是不明白为什么我得到了上面的数字。

检查处理器的技术规格,它说每个物理CPU实际上有16个核心:http://products.amd.com/en-us/OpteronCPUDetail.aspx?id=759

基本上,在我看来,输出就像是超线程。我哪里出错了?如何解析/proc/cpuinfo来获得所有AMD和Intel (HT和非HT)芯片的真实计数?

EN

回答 1

Unix & Linux用户

发布于 2015-03-24 15:50:35

AMD的推土机/Piledriver/Steamroller/挖掘机微结构,在其目前和最近的处理器中使用,包括你的6276,有“模块”是一对共享某些组件的“核心”。这些模块介于单个超线程内核和一对真正的独立核心之间,根据应用程序的不同,性能在一个内核和两个核心之间存在差异。

AMD将每一个这样的模块作为两个核心来销售,称Opteron 6276为16核.相反,有些软件将每个模块视为一个具有两个逻辑核的物理核心,而Linux似乎就是这样做的。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/165088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档