# AI Model on FPGA 這裡說明了我的設計理念以及想法。 ## 緣起 在剛接觸 FPGA 時,當時 AI 剛起步,當時在大學也有學習 AI 相關的課程,大致了解裡面的數學公式,有個想法就在我腦中形成,就是用 RTL 構建出 AI model,但對我來說難度太高,需要花很多時間,AI model 的選擇也很多,一直沒有一個定案或是動機讓我決定去做。直到碩士畢業來到第一家公司,提出使用 FPGA 實現 AI model,又再度喚醒曾經的想法,於是開始開發這個天馬行空的工程。 ## AI 前面有提到說大學期間不知道要選擇甚麼 AI model,到了公司之後,公司需要做影像深度的預測的 AI,光是用想的就是充滿挑戰以及困難的項目。 ### AI Model 公司所使用的 AI model 是 MiDaS-samll,[MiDaS](https://github.com/isl-org/MiDaS) 是基於 VIT (transformer 的架構),這是一個非常大的問題,因為 transform 會使用到大量的複雜運算,包含不限於自然常數(e)的指數計算,這對於 RTL 的實現有非常大的難度,我原先想要找全 CNN 架構的影像深度,但公司不吃我這套,而且聽說其他公司有做出來,真想取經看看到底怎麼做的,但我現在也不得不硬著頭皮去上。 在我要到 MiDaS-small 的架構後,我才發現他是基於 CNN 架構的,原先詢問 ChatGPT 很明顯地有重大的失誤。難怪其他公司有辦法做出來,我應該也有辦法做出來,但會面臨到幾個問題,在下面會再詳細說明。 #### development step * midas-small 的底層架構 * 整體架構規劃 * coding * testing ### FPGA Board FPGA 的選擇有很多,選擇最方便的就是選擇已經有 DPU 的 FPGA board,可以直接架設 AI Model 連RTL都不用寫,以下是他的優缺點: #### 優點 * 能夠快速搭建出模型,省下很多開發時間。 #### 缺點 * 搭載 DPU 的 FPGA Board 的成本很高,一張就快接近 10 萬,以學術上來說可能可以承擔這個金額,但對業界成本太高。 * 裡面所搭建出來是 Xilinx 的 IP,等於未來要開成 IC 時沒有辦法直接使用,或是需要支付大量的金額購買 IP 的價格。 * 最重要的,這樣的設計失去了 FPGA 工程師的靈魂,這是假的。因此我選擇從底層開始架構 AI model。 ### 問題 * memory * img input * img resize ![image](https://hackmd.io/_uploads/rJL6V_BQgx.png)