---
# System prepended metadata

title: AI Model on FPGA

---

# 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)
