ARM based PC 的嘗試


自從蘋果發布了自家的第一款 ARM based Mac[1] 以來,讓我覺得多年來一直在討論的 ARM 與 x86 架構 PC 分庭抗禮的時機終於到來。但老實說,真正讓我驚訝的並不是蘋果推出了 ARM based Mac,而是 AWS 推出了 Graviton2 ec2 instance[2],其號稱比起相同規格的 x86 效能要快上 20%,而使用敝公司的串流伺服器實測的結果也證實了這個說法。


[1]: Apple M1-Based MacBook Pro, MacBook Air, Mac mini Announced

[2]: EC2 M6g Instances, powered by AWS Graviton2


原本我一直以為,ARM 做低耗能的處理器在嵌入式系統市場非常強勢,但在資料中心或是高效能運算上,要追上 Intel 不太可能是短時間內 (至少十年) 會發生的事。沒想到事情這麼快就發生,ARM 處理器竟然能發展到這樣的地步,著實令人訝異。


在評估完 Graviton2 的效能與價錢後,我們 team 很快就決定要將串流伺服器搬移到 ARM instance。身為嵌入式軟體工程師,這自然不是一個很困難的事情。原本的底層程式碼 (以 C++ 撰寫) 從一開始就已將跨平台的需求考慮進去,我們的 CI 系統對每次 commit 的程式碼都會進行 cross build 以驗證相容性,是故移植的工作相當順利,大部分時間都花在調整 CI 到 CD 的流程上 (畢竟要支援二種架構的伺服器)。


除此之外,我也開始尋找除了 Mac 以外的 ARM based PC (當然要能跑 Linux)。雖說 Mac 算是開了第一槍,然而市場可以買的到的 ARM PC 依舊非常稀少,且又只能跑 Windows,目前有找到符合條件的只有 Pinebook Pro[3] 了。看著 220 美金的挺香的價格,然後手一滑就下訂了。最近因為電子料件吃緊,五月初訂的貨,到了五月底才通知出貨,令人滿心期待究竟效能如何?且看下回分曉。


[3]: https://www.pine64.org/pinebook-pro/


後話


雖然敝公司的串流服務已開始分批搬移到了 ARM instance,但其他服務卻仍停留在 x86 架構上。究其原因,除了某些服務非得用 x86 之外,可能是由於其他 team 成員對於跨平台移植這件事缺乏經驗,故仍有疑慮所致。當然單就我個人而言,我已很習慣在各個平台間遊走,對於 porting 時會發生些什麼鳥事,我個人算是相當有經驗的 (畢竟是做嵌入式軟體的)。然而對其他從來就只用 x86 系統的後端工程師,要讓他們開始習慣,也許還要一段時間吧。



/gemlog/