編者按
跟很多朋友交流,當提到軟硬件融合的時候,他們會這么說:“軟硬件融合,難道不是顯而易見嗎?我感覺在二三十年前就已經有這個概念了。”在他們的想法里,其實:軟硬件融合等同于軟硬件協同,甚至等同于軟硬件結合。他們混淆了軟硬件結合、軟硬件協同和軟硬件融合的概念。
今天這篇文章,就跟大家詳細介紹一下軟硬件融合的概念和內涵,以及軟硬件融合和軟硬件協同、軟硬件結合之間的區別和聯系。
1 背景知識:軟硬件協同的發展
傳統的系統設計,軟硬件劃分不夠仔細,軟硬件是緊耦合的,相互掣肘。這即是我們經常說的“軟硬件結合”的設計思路。在系統規模較小的時候,遇到的問題不多,即使遇到問題,調整的代價也不高,可以承受。
但隨著系統的規模逐漸擴大,軟硬件結合的設計方法開始暴露問題:
硬件/軟件劃分在還未充分理解系統的情況下進行,很容易產生設計錯誤;
軟硬件劃分的設計錯誤,會對系統產生巨大的負面影響;
而受開發周期和糾正代價的影響,難以糾正在軟硬件劃分階段的錯誤。
系統規模逐步擴大,量變引起質變,傳統的軟硬件結合設計的問題逐漸凸顯。需要升級設計方法論,需要從軟硬件結合,走向軟硬件協同。
軟硬件協同是1990s提出的概念,強調在系統劃分之前,需要深刻的理解系統,并且經過非常仔細的系統分析和架構映射,慎重而準確的進行系統的軟硬件劃分。
軟硬件劃分是為了軟硬件協同,因此軟硬件協同設計的關鍵是在劃分之前,而不是在劃分之后。劃分之前,深度思考軟硬件工作劃分的準確,確保“接口”清晰、高效,確保軟硬件充分地協同。劃分(解耦)之后,沒有了相互掣肘,軟硬件都可以充分創新,實現更加強大的功能/性能。
傳統的軟硬件結合設計,適合于小系統;而軟硬件協同設計,適合于大系統。軟硬件協同,是用于大系統的、統一的設計方法論。軟硬件協同可以充分利用已有軟硬件資源,使得效率最大化,縮短產品上市時間。
2 軟硬件融合的根基
2.1 軟硬件劃分,暨處理器類型劃分
世間萬物由基本粒子組成,復雜處理由基本計算組成。軟硬件劃分指的是,軟件和硬件通過一定的“接口”解耦,而指令(集)則是軟件和硬件的“接口”。指令的復雜度(計算粒度或密度)決定了系統的軟硬件解耦程度。
ISA(指令集架構)之下,CPU、GPU等各種處理器是硬件;ISA之上,各種程序、數據集、文件等是軟件。
按照指令的復雜度,典型的處理器平臺大致分為CPU、協處理器、GPU、FPGA、DSA、ASIC。從左往右,單位計算越來越復雜。性能越來越好,而靈活性越來越低。
CPU、GPU、DSA等各種類型的處理器,本質上是在不同層次的軟硬件解耦基礎上的軟硬件協同。
2.2 分層分塊的系統
系統由分層分塊的各個組件,即工作任務(Workloads),有機組成。整個系統,是一個分層的體系:每一層都建立在下面一層的基礎之上,每一層再通過特定的接口向上一層提供服務;同一層中,模塊也可以通過接口向其他模塊提供服務。
多個小系統組成大系統,多個大系統再組成宏系統;反過來,宏系統可以分解成多個大系統,每個大系統還可以再分解成多個小系統。
3 軟硬件融合
3.1 首先,軟硬件融合是一種設計理念
CPU、GPU等標準化的處理器已經成為我們主流的計算平臺,也已經擁有了非常龐大的生態。在這些軟硬件標準化解耦的平臺上,芯片工程師僅需要關注芯片的設計實現,軟件工程師僅需要關注軟件開發。大家并行不悖的各種努力工作,平臺“長年不變”,是一種非常舒服但又不可能的理想的狀態。
事物發展不會停滯。CPU已經存在了50多年,性能早已見頂;GPU也有20多年的歷史,性能增長也相當緩慢。大模型應用通常需要上萬張GPU加速卡,據說GPT5需要5萬張GPU卡。上層業務應用日新月異,已有的硬件平臺已經無法滿足我們的需要。
是時候打破已有的軟硬件界限了!
沒有條條框框的限制,回到系統的本源,重新思考系統的設計,重新構建新的更復雜的軟硬件協同。這就是我們所強調的軟硬件融合!
3.2 從軟硬件結合、軟硬件協同到軟硬件融合
軟硬件協同是上世紀90年代的產物,到現在已經有了30年左右的時間。上層的業務系統早已經翻天地覆,系統規模增加了成百上千倍,很難對如此復雜的系統進行準確的軟硬件劃分。
于是,軟硬件融合應運而生。
我們把軟硬件結合面向的系統稱之為小系統,把軟硬件協同面向的系統稱之為大系統,那么軟硬件融合則面向宏系統。
宏系統可以拆分成系統,每個系統需要軟硬件協同,并且各個系統間還需要再協同,眾多的軟硬件協同組成的新的軟硬件交互機制,即為軟硬件融合。
軟硬件協同,面向單個系統的計算場景;軟硬件融合,面向多個系統混合的復雜計算場景。因此,軟硬件融合面向的系統規模,通常是軟硬件協同面向的系統規模的10+倍。
從軟硬件協同到軟硬件融合:軟硬件協同,是單系統軟硬件設計的方法學;軟硬件融合,是多系統復雜計算軟硬件設計的方法學。
3.3 軟硬件融合的內涵
如果我們把工作任務映射到一個或多個處理引擎:
定義一個一維的坐標系:在這個坐標系里,CPU是100%的軟件,ASIC是100%的硬件。其他處理器引擎介于兩者之間,是不同比例軟硬件的混合態。
動態均衡+極限拉扯:根據任務的特點,把之映射到最合適的處理器引擎。類似拔河一樣動態的、極限的拉扯到極致,而不是簡單的天平一般的平衡。
工作任務處理器引擎的動態性:工作任務最合適的處理引擎,并非一成不變,而是隨著系統發展有可能下沉(Offload)/上浮(Onload)。
需要注意的是,這里的基于軟硬件引擎的工作任務分層,跟系統工作任務的分層是不同的概念。
軟硬件融合不改變系統層次結構和組件間交互關系,但打破傳統軟硬件的界限,系統的、動態的重構軟硬件劃分/協同,達到整體最優。
在傳統軟硬件的系統里,分層是非常清晰的:下層硬件上層軟件。軟硬件融合的分層分塊,每個任務都是不同層次軟硬件解耦基礎上的再協同;并且,在不同工作任務的軟硬件協同基礎上,再實現工作任務之間的協同。
從全局看,整個系統呈現出:軟件中有硬件,硬件中有軟件,軟硬件融合成一個有機的整體。
3.4 軟硬件融合的趨勢
受限于目前:
一方面,業務對算力的強勁需求;
另一方面,CPU、GPU等傳統的靈活型的處理器性能逐漸瓶頸;
此外,量子等顛覆性新技術進展緩慢,短期內芯片底層工藝不太可能顛覆式創新。
因此,在未來一定時期內,軟硬件融合的主要趨勢,是工作任務逐漸從軟件向硬件卸載。
哪些工作任務適合卸載?“無規模,不卸載(Offload) ”,超大的規模是工作任務卸載的前提。因此,我們可以總結適合卸載的工作任務的兩個基本特征:(1)性能敏感,占據較多CPU資源;(2)廣泛部署,運行于眾多計算設備。
宏觀的看,分層的系統,越上層越靈活軟件成分越多,越下層越固定硬件成分越多;與此同時,隨著系統規模越來越大,復雜分層的系統,其“二八定律”的特征越發明顯。于是,許多底層的工作任務逐漸穩定并且逐步卸載到硬件(被動趨勢)。
此外,通過軟硬件融合的架構設計,可以使得“硬件”更加靈活,功能也更加強大,從而更多的層次功能加速向“硬件”卸載(主動搶占)。
4 軟硬件融合總結
軟硬件融合,既是理論和理念,也是方法和解決方案。
軟硬件融合系統中的每一個工作任務,都是在軟硬件均衡/解耦基礎上的再協同。軟硬件融合系統的每個工作任務之間的連接(軟件之間、軟硬件之間以及硬件之間的連接)和調用均具有極致的性能和靈活性。軟硬件融合系統,能夠兼顧軟件的靈活性和硬件的高性能,實現既要又要。
軟硬件融合落地為CPU、GPU、DSA等多種處理引擎充分協同的異構融合計算。
軟硬件融合承上啟下,從產品定義和系統架構開始,逐步拓展到整個系統棧。
軟硬件融合的必要性和必然性:
理論根基:①CPU到ASIC的不同層次的軟硬件劃分,②系統的分層分塊。
落地條件:③“二八規律”廣泛存在;④超大規模的計算。
驅動力量:⑤算力需求數量級提升,⑥先進工藝和封裝支撐超大規模的芯片。
軟硬件融合的意義:
讓硬件更加靈活、彈性、可擴展,彌補硬件和軟件之間的鴻溝;
應對人工智能、云/邊緣計算及超級終端等復雜場景的挑戰;
解決芯片一次性成本過高導致的設計風險;
等等。
審核編輯:湯梓紅
-
處理器
+關注
關注
68文章
19159瀏覽量
229113 -
芯片
+關注
關注
453文章
50387瀏覽量
421783 -
cpu
+關注
關注
68文章
10824瀏覽量
211133 -
軟硬件
+關注
關注
1文章
289瀏覽量
19182
原文標題:什么是軟硬件融合?
文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論