隨著傳統硬件的規模逐漸走向低迷,未來的數據中心正趨向于不純一性、采用定制硬件加速器和越來越高的高性能互連。傳統上,以規模性的方式進行原型設計的新硬件要么非常昂貴,要么非常緩慢。在這篇文章中,本文原作者將為大家介紹FireSim平臺——這是一個在加州大學伯克利分校的計算機架構研究小組開發的新的硬件模擬平臺,它可以使用Amazon EC2 F1實例進行快速、可伸縮的硬件模擬。
▲將8個節點的FireSim集群模擬映射到Amazon EC2 F1
FireSim為致力于研究新的機架規模系統的硬件和軟件開發人員提供便利:軟件開發人員可以使用新的硬件特性的模擬節點,就像使用一臺真正的機器,而硬件開發人員完全控制硬件模擬,可以運行真實的軟件棧即便硬件仍處于開發階段。
為什么是FireSim + F1 ?
FPGA加速硬件模擬絕不是一個新概念。然而,之前使用FPGAs進行模擬的嘗試都有很多的可用性、可伸縮性和成本問題。FireSim利用EC2 F1和開源硬件來解決傳統的FPGA加速模擬問題如下:
問題1:基于FPGA的模擬一直都很昂貴,很難進行部署,而且很難復制。
FireSim使用像F1這樣的公共云基礎設施,不需要預先購買和部署FPGAs。開發人員和研究人員可以發布預先構建的AMI和AFI,就像在這次公開演示中所表現的一樣(稍后在本文中提供的更多細節),使實驗易于復制。FireSim還自動化了部署FPGA模擬的大部分工作,本質上是在FPGA集群上啟用一鍵轉換,從新的RTL轉換到部署。
問題2: 傳統基于FPGA的模擬很難擴展(而且昂貴)。
因為FireSim使用F1,用戶可以通過增加額外的EC2實例來擴展實驗,而不是花費數十萬美元在大型FPGA集群上。
問題3:尋找開放的硬件來模擬傳統上是很困難的,找到可以運行真正的軟件棧的開放硬件更加困難。
FireSim模擬了RocketChip,一個開放的、通過硅驗證的、基于RISC-V的處理器平臺,并添加了一些外圍設備,比如網卡和磁盤設備,以建立一個現實的系統。實現RISC-V的處理器會自動支持真正的操作系統(比如Linux),甚至支持Apache和Memcached等應用程序。研究團隊提供了一個自定義的基于構建的FireSim Linux發行版,它在其模擬節點上運行,并包含許多流行的開發工具。
問題4:在傳統的HDL中編寫硬件非常耗時。
FireSim和RocketChip都使用Chisel HDL,它將現代編程范式引入到硬件描述語言中。Chisel極大地簡化了構建大型、高度參數化的硬件組件的過程。
如何使用FireSim進行硬件/軟件協同設計
FireSim通過充當硬件開發人員和系統軟件開發人員之間協作的按鈕界面,極大地改進了硬件和軟件的共同設計過程。下圖描述了硬件和軟件開發人員在處理FireSim時使用的工作流程。
▲FireSim自定義硬件開發工作流程
硬件開發人員的角度——
·為你的加速器,外部設備,或處理器修改像Chisel這樣的生產語言編寫自定義RTL。
·在標準的門級模擬工具中運行硬件設計的軟件模擬,以進行早期調試。
·運行FireSim構建腳本,它會自動構建您的模擬,通過Vivado工具鏈/ AWS shell腳本運行它,并發布一個AFI。
·使用生成的模擬驅動程序和AFI,在EC2 F1上部署您的模擬
·運行由軟件開發人員發布的真實軟件,以評測您的硬件
軟件開發人員的角度——
·部署由硬件開發人員在F1實例上生成的AMI / AFI,以模擬一組節點(或者擴展到許多F1節點,用于更大的模擬核心計數)。
·將SSH連接到集群中的模擬節點并啟動包含FireSim的Linux發行版。這個分布很容易定制,并且已經支持許多標準軟件包。
·使用與軟件相同的接口來直接原型化你的軟件,當未來在真正的系統上部署時,會原型化的,與軟件的性能特征相同,即使是在規模上。
未來計劃
本文原作者表示,未來將繼續改進FireSim平臺,以便在未來的數據中心架構(如FireBox)中進行自己的研究。FireSim平臺最終將支持更復雜的處理器、自定義加速器(如Hwacha)、網絡模型和外圍設備,除此之外還可以擴展到更多的FPGA。在未來,研究團隊將開源整個平臺,包括Midas,用于將RTL轉換為FPGA模擬器的工具,允許用戶修改硬件/軟件堆棧的任何部分。
文章來源與AWS官方博客,了解詳細內容請查閱:https://aws.amazon.com/cn/blogs/compute/bringing-datacenter-scale-hardware-software-co-design-to-the-cloud-with-firesim-and-amazon-ec2-f1-instances/