WFU

2019年5月20日 星期一

NVIDIA 利用高階合成克服複雜設計

Tegra SoC 用在視覺計算,從智慧手機、平板、到個人娛樂系統 (Infotainment)、輔助駕駛和遊戲應用。本案例的 Tegra X1 是 Android 系統上的超級計算機,NVIDIA Shield電視盒上使用以外,Google 也應用在其自家的平板電腦 Pixel C上。司任天堂的遊戲主機 Switch 上也使用了客製化的 X1。Tegra X1 就含有高階合成設計出的模塊。

X1 包含 :
  • CPU:ARMv8 的ARM Cortex-A57四核+ ARM的Cortex-A53四核(64位元)
  • GPU:Maxwell 架構為主的256核GPU
  • 4K視訊編碼/解碼




Catapult High Level Synthesis 應用結果


Catapult HLS 被應用在多媒體模塊設計,視訊解碼,JPEG 編碼解碼功能。幾個數字:

  • 5 倍簡化的程式碼
  • 1000 倍的 CPU 精簡,在回歸測試 (regression test) 時
  • 1000 倍增加的驗證測試可能
  • 50% 的開發時程降低
  • 40% 的驗證時程精簡
  • 40% 的功率消耗節省,在應用 PowerPro 之後達成


RTL 方法的危機


設計複雜度增加,舉例來說,H.265 的 50% 壓縮比改善,但是設計複雜度卻成數倍增加,需要數以千計的 CPU 做回歸測試,百萬或是億級的驗證週期。很少有公司可以負擔大量的 CPU 和電力消耗。



High Level Synthesis 的好處


High Level Synthesis 的最終目標,是讓開發人員使用高階語言,例如 System C、C、C++,來實現所需要的硬體功能。



主要有兩大好處:
  • 高生產力
  • 1000x 計算機資源的精簡

開發者利用 micro-architecture exploration 架構,可以執行:
  • what-if 分析
  • 面積、功耗、性能的權衡分析 (trade-off)

一般來說, RTL 開發必須耗上三個月的時間完成設計,並且才知道時序和面積是不是符合設計規範。而 HLS 設計以 C-model 開發,將時序和面積設定成設計規範,持續最佳化高階的硬體功能,還符合時序和面積的規範。

驗證方便,可先建立純粹全功能的 C-model,和 HLS C-model 相互比較,可以快速驗證,完成功能性的驗證。

Catapult HLS C-model 可以支援 System C、C、C++ model 以及混合設計,非常方便。



參考資料:


  1. NVIDIA Case Study on High-Level Synthesis (HLS)
  2. RTL Low Power