Intel® FPGA AI Suite簡介

Intel® FPGA AI Suite簡介

人工智慧(AI)是當今科技領域中最引人注目的領域之一,其發展速度和影響力令人驚嘆。AI應用廣泛應用於各個領域,從商業到醫療,從交通到娛樂,都能夠受益於AI技術的應用。FPGA具有可快速編程,在同一個元件上可以做出不同功能的硬體電路,用來做AI的相關產品,非常合適。有鑑於AI的市場高成長性發展,Intel® 推出利用FPGA實作AI Edge端的產品設計開發流程,名為FPGA AI Suite。Intel® FPGA AI Suite發展的理念是讓使用者可以很直覺地使用讓設計流程,加上FPGA具有快速編譯的特性,藉此縮短產品的開發時程,更快讓AI產品推入市場。

Intel® FPGA AI Suite開發流程

在整個Intel® FPGA AI Suite的開發流程中主要會使用到的軟體有

  • OpenVINOTM
  • intel FPGA AI Suite編譯器
  • intel® Quartus® Prime軟體

圖一顯示整個intel® FPGA AI Suite的開發流程。使用者可以把Tensorflow機器學習訓練軟體(如TensorFlow, Caffe, PyTorch, Keras, ONNX等軟體)所訓練出來的模型,利用OpenVINOTM的Model Optimizer轉出 intermediate representation 檔,其中包含二個檔案,分別為網路(network)的xml檔和權重與偏差(weights and biases)的bin檔。Intel® FPGA AI Suite中的編譯器會根據前述的IR檔,產生DLA(Intel® Deep Learning Accelerator IP )的數位電路IP,和一個network檔案(副檔名為.bin)。DLA的IP之後會實作在FPGA硬體中。而network檔(.bin)中則有包含FPGA和 CPU(或兩者)的網路(network)分割區,和其相對的權重(weight)與偏差(biases),然後該檔案會在使用者執行推論應用程式(inference application)時被使用到[3]。

Intel® FPGA AI Suite開發流程 圖一、 Intel® FPGA AI Suite開發流程[1]

系統架構應用

Intel® AI Suite所發展出來的系統可以有如下四種架構應用。第一種架構(圖二)是利用FPGA來對CPU AI運算負載做卸載(offload)的工作。其中FPGA和CPU之間利用PCIe介面做資料的傳輸,FPGA透過DDR控制器和外部的記憶體(External Memory)做大量資料的讀寫及存取。另外Intel® AI Suite所編譯出來的硬體電路IP主要是執行AI運算的功能,如此原本在CPU做的AI運算,就可交由硬體FPGA AI Suite IP來處理,如此即達到對CPU運算負載卸載的目的,提升整個系統的運算效率。

CPU Offload 圖二、CPU Offload[4]

圖三的架構是基於圖二的架構再做延申,即是在FPGA內增加其他的功能功能硬體。如此可以增加整個系統的功能性。

multi-function CPU offload 圖三、multi-function CPU offload [4]

圖四的系統架構為外部的資料直接和FPGA(ingress/Ngress)做溝通,然後也在FPGA裏做資料的運算處理(pre/post-process),處理完的資料送到FPGA AI Suite IP做運算,其運算的結果可透過PCIe介面送至CPU。

ingest / inline Processing + AI 圖四、ingest / inline Processing + AI [4]

圖五的架構是圖四架構的另一種選項,主要是使用Intel® SoC FPGA來實現整個系統架構。Intel® SoC FPGA即是指在FPGA的晶片內有包含Arm的硬體。這樣的架構即是Arm充當為Host的角色,其他的部份跟圖四的架構相同。這樣的好處是可以節省產品的面積及功率。

Embedded SoC FPGA + AI[4] 圖五、Embedded SoC FPGA + AI [4]

Intel® FPGA AI Suite讓AI推論(inference)運算的工作在FPGA和CPU上實現(異質計算)。並且整個流程由Tensorflow等機器學習訓練軟體的模型,到FPGA硬體電路及FPGA和CPU之間工作運算分工之間立一個完整的設計流程。讓軟體工程師,資料科學工程師和FPGA硬體工程師三者可以充份的合作。讓公司可以快速地在FPGA和CPU的架構上發展出符合規格需求的AI產品。

參考文獻

[1] Intel FPGA AI Suite Overview, intel, https://reurl.cc/q0zKr3

[2] Intel® FPGA AI Suite: PCIe-based Design Example User Guide, intel, https://reurl.cc/Wva8xO

[3] Intel AI Suite download page and Documentation Links, intel, https://reurl.cc/o5zKyQ

[4] Intel® FPGA AI for Edge White Paper, intel, https://reurl.cc/GKZGpv

You may also want to know