<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 業界動態 > 是的,你可能擁有太多的CPU核心 - Ampere的192核芯片在ARM64 Linux內核中引發問題,公司請求提高核心數量支持

          是的,你可能擁有太多的CPU核心 - Ampere的192核芯片在ARM64 Linux內核中引發問題,公司請求提高核心數量支持

          作者:EEPW時間:2023-12-01來源:EEPW收藏

          Ampere公司推出的新型AmpereOne數據中心擁有高達192個核心,但這么心引發了與Linux支持相關的一些困擾。據Phoronix報道,Ampere的新核心數量太多,以至于當在單個服務器中安裝了兩個Ampere的192核芯片(總共384個核心)時,Linux不支持這些系統。目前,ARM64 Linux內核僅支持256個核心或更少的系統。為了解決這個問題,Ampere提交了一個補丁,建議將Linux內核核心限制提高到512,使用一種稱為“MASK_OFFSTACK”的方法。

          本文引用地址:http://www.ex-cimer.com/article/202312/453490.htm

          這種方法允許Linux通過從內存中分配用于CPU掩碼的空位圖來覆蓋當前Linux內核的默認256核心限制。這意味著可以提高Linux核心限制,而不會增加內核鏡像的內存占用,因為每個核心都會向內核鏡像大小添加8KB。

          Ampere的新CPU擁有迄今為止我們見過的最多的CPU核心數量。即使是AMD最新的Zen 4c EPYC CPU也無法達到這一點,最高核心數的芯片也只有128個 ——兩個芯片將達到限制,但不會超過限制。這解釋了為什么Ampere是第一家在ARM64 Linux的256核心限制方面遇到嚴重問題的CPU制造商。值得慶幸的是,這不會影響只配備單個192核AmpereOne芯片的系統,但對于配備兩個這些芯片的雙插槽配置的數據中心服務器來說,這是一個嚴重的問題(然而,在各種系統上,SMT邏輯核心,即線程,也遠遠超過256)。

          AmpereOne是Ampere推出的新CPU系列,擁有136、144、160、176和192核心型號,核心數量之多令人瞠目。這些芯片采用ARMv8.6+指令集和TSMC的5納米制程,具有雙128位矢量單元、每核2MB的L2緩存、3 GHz時鐘速度、八通道DDR5內存控制器、128條PCIe Gen 5通道,以及200-350W的熱設計功耗(TDP)。這些芯片專為能夠利用龐大核心數量的高性能數據中心工作負載而設計。

          據Phoronix稱,在將核心數限制提高到512之前可能需要一段時間。早在2021年,曾提交了一個補丁,建議將ARM64 CPU核心限制增加到512,但當時Linux維護人員拒絕了這個提議,因為當時還沒有可用于超過256個核心的CPU硬件。最樂觀的估計是,512核心支持將在2024年Linux內核版本6.8發布時才可用。

          然而,這個時間表只考慮了以正常方式添加512核心支持,而沒有利用CPU掩碼堆棧外方法。從技術上講,即將過時的Linux內核已經支持通過CPU掩碼堆棧外方法增加CPU核心計數限制,因此只是由Linux維護人員默認啟用這個功能。



          關鍵詞: CPU 多核

          評論


          相關推薦

          技術專區

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();