1. EDA原理和對IO吞吐需求
EDA是芯片設計行業的基石,作為芯片設計的最重要軟件工具,主要的EDA廠商有三家:Synopsys,Cadence,Mentor。
各EDA公司在大多數芯片設計領域實現了高度集成的全流程工具,各個結點的工具可無縫切換和資源共享。
EDA 主要分為前端仿真和后端仿真兩個不同階段:
在數據準備方面,前端的芯片設計經過綜合后生成的門級網表,具有時序約束和時鐘定義的腳本文件和由此產生的 .gcf 約束文件以及定義電源 Pad 的 DEF(Design Exchange Format)文件
后端設計所需數據主要由 Foundry 廠提供的標準單元、宏單元和 I/O Pad 的庫文件,包括物理庫、時序庫及網表庫,分別以 .lef、.tlf 和 .v 的形式給出。
不同階段IO模型特點
前端邏輯設計:產生大量仿真工作,不斷改進設計需多次循環迭代。創建、調度和執行仿真作業的效率決定了芯片推向市場時間。
前端驗證階段,大量作業并行訪問,生產海量隨機 IO 小文件,存儲的 IO 特點是 KB 小文件讀寫為主的 OPS 型業務,伴有大量的元數據操作,對文件的元數據與數據讀寫速度要求極為苛刻,存儲的緩存大小、讀寫策略及性能對驗證結果產生重要影響。
以下是前端邏輯數據特征
高并發:大量作業并行訪問,計算節點規模數百至上千臺節點。
隨機 IO:作業生產大量隨機訪問 IO,元數據操作密集型。
海量小文件:讀取編譯百萬個小的源文件構建模擬芯片設計,文件大小在 1K-16K 范圍。
Read/Write 占比:15% ;Metadata 占比:85%。
作業運行周期:幾小時-幾天。
后端物理設計:將網表轉換成版圖和版圖優化的仿真,處理大量物理版圖制作文件。隨著芯片規格增加,轉化版圖非常耗時。
后端驗證階段,工作負載是順序 IO 大文件,IO 特點是以 GB 級別的大文件大 IO 寫為主,帶寬型業務,對帶寬要求較高。
以下是后端物理數據特征:
共享存儲:管理芯片設計目錄和文件,如 Library 、tool、user space、tmp、home 目錄。
用戶權限管理:不同的目錄、腳本和應用程序可以訪問數據。
順序 IO大文件:芯片設計 Tape-out 階段輸出文件,作業生產大量的順序 IO。
大文件讀寫:GB 級別大文件,< 1GB 占比 50%,,< 5GB 占比 50%。
Read/Write占比:45% ;Metadata 占比:55%。
作業運行周期:幾天-幾周。
EDA對于數據挑戰包括
性能瓶頸:EDA 工作流程仿真、設計、驗證、生產過程中,前端仿真需要小文件高并發低時延的讀寫和巨量元數據處理能力,后端仿真存儲需要提供很大的讀寫帶寬滿足大量數據的實時寫入要求。
周期長:EDA 整個芯片設計流程非常長,一顆芯片的時間從數月到數年不止,仿真、設計流程耗時,芯片的上市周期是贏得市場的關鍵,需要更快的算力和高效的存儲換時間。
交付難:資源無法短期到位,EDA 工作負載的數據容量快速增長,容量每兩年翻一倍,面臨數據業務突增,計算和存儲資源無法短期到位。彈性開箱即用的云端資源即將成為新的趨勢。
資源規劃難:EDA 工作負載按照傳統經驗對于未來所需的 IT 資源預估越來越困難,計算/存儲負載不可預知,彈性的算力和存儲資源逐漸成為迫切需求。
流程復雜:EDA 設計流程復雜,計算精準度要求高,EDA 設計包含的環節多,涉及到多個流程,每個流程有多次驗證,流程與流程之間可能多次返工,大量計算單元并發,多人多部門協同工作處理復雜的數據流程,亟待提高效率。
成本高昂:一次流片的成本高昂,流片設計、仿真各個環節,確保零失誤非常關鍵,需要提高數據分析和計算精準。
2. CPFS與EDA場景優化
阿里云CPFS是為HPC高性能計算和AI機器學習設計的并行文件系統,輸出形態上可以支持公共云和混合云,云上、云下都可以具備一致的使用體驗,最大可以支持TB級別吞吐能力。CPFS具備彈性擴展能力,存儲容量可以無縫擴容,性能隨著容量彈性增加。CPFS是高可用性架構設計,采用全冗余架構,任一后端節點故障都可以自動切換,無單點故障。
高性能文件處理能力,縮短芯片上市周期:CPFS 提供每TB 200 MB/s和每 TB 30000 高 IOPS,采用分布式元數據,支持客戶端緩存、高可用寫緩存、本地只讀緩存、自定義的可變數據塊條帶化技術等,加速元數據處理,提高并發訪問性能。滿足 EDA 工作負載前端仿真百萬隨機 IO 小文件,后端仿真海量順序讀寫大文件的高并發訪問需求,簡化 EDA 的工作流程,降低了仿真作業的時間。
彈性擴展,支撐業務快速上線:CPFS 可以按需在線擴容 ,應用無任何感知,隨著容量的提升,性能(吞吐和 IOPS)線性同步增長 。彈性擴展完美應對 EDA 工作負載的彈性資源需求。 CPFS 開箱即用,確保資源快速供應到位,業務快速上線。
并行訪問共享存儲,讓數據訪問更為高效:支持近萬個客戶端并行訪問,海量計算實例同時高并發處理相同的處理集,CPFS 提供設計流程數據的共享訪問,這些數據集無需反復拷貝和傳輸,極大提升了EDA 工作負載復雜的工作流的數據共享訪問能力,加速 EDA 工作流效率。
針對EDA場景,CPFS對元數據和小文件有以下優化:
條帶化:文件以條帶化的方式散列在所有的存儲空間上,所有的存儲節點同時對所有的客戶端提供數據 I/O 服務,單個文件跨節點和存儲系統分布,提高并發訪問性能。
數據塊的大小可自定義:64K, 128K,256K, 512K, 1M,2M,4M,8M,16M。
智能預取機制:通過對文件訪問模式的預測來進行預取,降低讀寫延遲。
分布式的塊級鎖管理,包括文件和目錄兩個級別,支持上萬個客戶端的并發訪問。
沒有專用的中央控制元數據服務器,采用分布式元數據架構, 元數據處理無任何性能瓶頸。
閃存加速元數據,元數據包括目錄、inode、indirect blocks。
支持客戶端數據緩存,不同節點可以根據需要設置不同的緩存大小,緩存優化。
3. CPFS方案架構與項目實踐

此方案是CPFS在EDA場景的整體解決方案,CPFS靈活支持線下與公共云不同部署模式。存儲在CPFS數據可以在公共云和混合云流動,使數據管理更為簡單。
在實際項目中,通過與資源調度管理平臺和高性能計算集群結合使用。CPFS能夠提供統一的命名空間,讓計算集群可以通過共享方式訪問數據,簡化數據訪問和管理難度。
CPFS極致性能,可以滿足 EDA 高性能計算集群的可靠、穩定、高性能需求,包括前端與后端設計。
在云端可以進一步與云原生計算能力結合,獲得更多的靈活性,這是傳統廠商無法提供的能力。
已經在使用此方案的某個客戶是國內最大的通信基帶芯片提供商,長期在線下使用NetApp高端產品線,對于存儲系統性能和企業級管理能力有極高要求。
CPFS在客戶應用場景中,與EHPC結合使用,達到客戶EDA場景對于高吞吐能力的要求,做到計算任務運算速度不慢于線下的NetApp集群。
除了需要吞吐和IOPS能力需要能夠匹敵NetApp,客戶在整個運維管理模式上,同樣需要CPFS能夠提供支持此功能,能夠讓現有運維管理系統能夠更加容易的完成遷移。
客戶關注的管理功能集中在配額和快照能力,客戶在NetApp產品通過Volume實現以上兩種功能。CPFS在企業管理上,通過Fileset和Quota去實現對標NetApp提供能力,在此案例中,通過與客戶LDAP服務器對接,將當前客戶用戶管理體系能夠在CPFS應用。在經過一個月的實際任務驗證,客戶充分認可了公共云CPFS可以支持現有業務,并且認同公共云的優勢。
