硬件和軟件正在并行發(fā)展,將最好的現(xiàn)代軟件開發(fā)與最新的Arm硬件相結(jié)合可以產(chǎn)生令人印象深刻的性能、成本和效率結(jié)果。
為什么是Arm?
Arm是精簡指令集計算機(jī)(RISC)架構(gòu)家族的成員,這是一種基于小型、高度優(yōu)化的指令集的微處理器架構(gòu)。該家族的其他已知代表是RISC-V、SPARC和MIPS。最初,RISC家族的目標(biāo)是嵌入式和相關(guān)市場,但很快就發(fā)展到了新的潛力,Arm成為迄今為止最受歡迎的產(chǎn)品。
如今,Arm在云計算領(lǐng)域與x86(基于CISC方法)競爭,你需要知道CISC和RISC之間的兩個關(guān)鍵區(qū)別。
首先是指令的執(zhí)行方式。這兩種方法都試圖提高CPU性能,但方式不同:
l RISC以犧牲每個程序的指令數(shù)量為代價減少了每條指令的周期數(shù)。
l CISC使每個程序的指令數(shù)最小化,但這是以每條指令的周期數(shù)增加為代價的。
第二個區(qū)別是許可方式。x86和Arm都是開源架構(gòu),可以通過許可證進(jìn)行生產(chǎn)。然而,x86在歷史上是由英特爾開發(fā)的:“x86”這個名字來源于該公司發(fā)布的早期處理器8086。如今,只有三家公司持有使用這種架構(gòu)類型構(gòu)建硬件的許可證,而英特爾仍然是該市場的最大股東。
Arm許可證更容易獲得,因此Arm制造業(yè)極具競爭力。在某些方面,Arm許可方法使這種硬件得以蓬勃發(fā)展并迅速發(fā)展。Arm最初被設(shè)想為嵌入式和相關(guān)應(yīng)用的解決方案,經(jīng)過多次擴(kuò)展,現(xiàn)在可以在M3和M4芯片、手機(jī)、汽車等臺式機(jī)處理器、幾乎所有其他地方找到它。
Arm的現(xiàn)代Java增強(qiáng)功能
Java社區(qū)不久前就認(rèn)識到了Arm的潛力,并成功完成了多項優(yōu)化Java以用于Arm的計劃。
第一個AArch64項目作為OpenJDK的一部分實現(xiàn),為JDK 9提供了Linux/AArch64端口。這對今天Java的使用方式產(chǎn)生了重大影響。
以下Java 11為JEP 315中啟動的端口帶來了許多優(yōu)化:改進(jìn)Aarch64內(nèi)部函數(shù)。此JEP的改進(jìn)是特定于CPU的,有助于改進(jìn)所有操作系統(tǒng)。在Java 16和Java 17的后續(xù)OpenJDK版本中,建立了兩個重要的端口:Windows/AArch64(JEP 388)和macOS/AArch64(JEP 391),為你提供了幾乎所有流行操作系統(tǒng)上的完整Java選項。
如今,作為一名開發(fā)人員,你可以在成熟和現(xiàn)代的Java版本中找到Java on Arm。除了Arm上的Java之外,你還可以在Arm上選擇小型基礎(chǔ)Linux容器映像,以進(jìn)一步從這種架構(gòu)中受益。
Java on Arm對企業(yè)開發(fā)和DevOps特別感興趣,希望實現(xiàn)更高的效率和更低的成本。使用x86仿真或Arm原生JDK遷移到Aarch64很容易。
同云中的Arm硬件回顧
由于軟件端設(shè)置為在Arm上工作,并且大多數(shù)Linux發(fā)行版和其他關(guān)鍵項目(用于web)已經(jīng)可用并得到支持,因此你可以自由選擇Arm硬件。讓我們仔細(xì)看看基于Arm的服務(wù)器可以為我們做些什么,這些服務(wù)器現(xiàn)在正在云服務(wù)領(lǐng)域取得進(jìn)展。
基于Arm的服務(wù)器是使用基于Arm架構(gòu)的處理器的服務(wù)器機(jī)器,在數(shù)據(jù)中心、云計算和各種企業(yè)應(yīng)用程序中越來越受歡迎。
基于Arm的服務(wù)器越來越多地被采用是由幾個因素驅(qū)動的,包括它們的能效、成本效益和可擴(kuò)展性。此外,操作系統(tǒng)供應(yīng)商、開源項目和云服務(wù)提供商的支持越來越多,這有助于使Arm服務(wù)器解決方案更易于企業(yè)應(yīng)用程序訪問和實用。
Arm在服務(wù)器端的主要參與者由GCP、AWS、Azure和OCI代表。
AWS Graviton
與所有其他AWS Graviton處理器一樣,最新的AWS Graviton4使用64位Arm指令集架構(gòu)?;?/span>AWS Graviton4的Amazon EC2 R8g實例的性能比基于AWS Gravaton3的Amazon EC2 R7g實例高出30%。該處理器非常適合高性能數(shù)據(jù)庫、內(nèi)存緩存和實時大數(shù)據(jù)分析等要求苛刻的工作負(fù)載。AWS Graviton是Neoverse架構(gòu)的一個例子,旨在以世界級的性能、效率和計算密度處理各種云原生工作負(fù)載。這種架構(gòu)非常適合云計算。2024年,Arm宣布推出高達(dá)128核的Neoverse V3,目標(biāo)是最高性能的應(yīng)用程序。
谷歌Axion處理器
2024年4月,谷歌宣布了其新的基于Arm的Axion處理器,承諾其性能比云中可用的最快的通用Arm實例提高30%,性能提高50%,能效提高60%。Axion處理器,就像AWS Graviton4一樣,是使用Arm Neoverse構(gòu)建的:Neoverse V2 CPU。
正如許多人所指出的那樣,此次產(chǎn)品發(fā)布使谷歌與亞馬遜直接競爭,以亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)引領(lǐng)市場,以基于Arm的服務(wù)器引領(lǐng)其他現(xiàn)有參與者。
Azure Cobalt 100 Arm處理器
2024年5月,微軟宣布預(yù)覽新的基于Azure Cobalt 100 Arm的處理器。Cobalt 100處理器是Arm Neoverse的另一個代表。它使用N系列(N2)Arm CPU設(shè)計,實現(xiàn)了基于云的橫向擴(kuò)展應(yīng)用程序的優(yōu)化性能。
總的來說,微軟非常關(guān)注Arm,同時投資于開發(fā)人員平臺和Linux和Windows上的Arm語言優(yōu)化。這包括在Visual Studio 17.10 SQL Server數(shù)據(jù)工具(SSDT)中為Arm本機(jī)Visual Studio引入的Arm和C++的NET 8眾多增強(qiáng)功能。
Oracle Ampere A1計算
2021年5月,Oracle發(fā)布了其首款基于Arm的計算產(chǎn)品:OCI Ampere A1 Compute。該產(chǎn)品在Oracle云基礎(chǔ)架構(gòu)(OCI)上運行。主要模型是VM。標(biāo)準(zhǔn)。A1.Flex(OCI A1),其CPU核心和內(nèi)存可以靈活配置,VM形狀從1到156個核心和每個核心1到64GB的內(nèi)存。靈活的方法允許為你自己的項目需求進(jìn)行獨特的設(shè)置,匹配你的工作負(fù)載要求,并節(jié)省不必要的成本。對廣泛的人工智能干擾的測試表明,AmpereOne A2是一款極具競爭力和吸引力的產(chǎn)品。
Oracle還通過Arm開發(fā)者生態(tài)系統(tǒng)以及與Ampere Computing、Arm、GitLab、Jenkins等公司的合作伙伴關(guān)系來推廣Arm技術(shù)。
Arm招股說明書
隨著目前所有大型技術(shù)公司都參與基于Arm的硬件生產(chǎn),再加上Arm在軟件方面的持續(xù)改進(jìn),Arm的受歡迎程度可能很快就會超過x86。ARM首席執(zhí)行官Rene Haas表示,ARM將在五年內(nèi)占據(jù)50%的市場份額。
這里展示的基于Arm的服務(wù)器為云原生工作負(fù)載提供了令人印象深刻的性能和效率,與大數(shù)據(jù)和人工智能行業(yè)尤其相關(guān)。將工作負(fù)載遷移到基于Arm的架構(gòu)相對容易,并保證大幅削減預(yù)算。
Neoverse是旨在處理云中大量信息的服務(wù)器的一種選擇,微軟、谷歌和AWS的最新例子就是這樣。
隨著Arm的崛起,Java生態(tài)系統(tǒng)繼續(xù)得到進(jìn)一步的增強(qiáng)。為Arm準(zhǔn)備的不斷擴(kuò)展的生態(tài)系統(tǒng)包括Linux發(fā)行版、Java和OpenJDK運行時、框架和主要基礎(chǔ)設(shè)施系統(tǒng)(web服務(wù)器、Spark、Kafka、Cassandra、Elastic等)。Java社區(qū)對加強(qiáng)與Arm合作的生態(tài)系統(tǒng)的善意表明,Arm正在成為一個一級硬件平臺。
容器——因其隔離性、安全性、可移植性和可重復(fù)性而受到高度重視——已適應(yīng)Arm,因此你可以免費獲得針對Java進(jìn)行調(diào)優(yōu)的小型Linux容器。Docker正在投資Arm領(lǐng)域,確保Docker桌面在Windows on Arm上本機(jī)運行。
最新的Arm技術(shù)非常適合現(xiàn)代Java工作負(fù)載。將OpenJDK應(yīng)用程序移動到基于Arm的服務(wù)器是提高Java性能和減少資源消耗的明智方法。將基于Arm優(yōu)化的Linux容器添加到你的Java應(yīng)用程序中更進(jìn)一步,為你提供最完整的Java on Arm解決方案,以獲得可持續(xù)和強(qiáng)大的Java體驗。因此,企業(yè)越來越多地轉(zhuǎn)向Arm架構(gòu)以降低成本和功耗。未來的路線圖/招股說明書可能包括更加關(guān)注Arm硬件,以獲得更好的效率結(jié)果。