加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 模塊化系統(tǒng)SoM:
    • 不用寫RTL的FPGA開發(fā)
    • KV260實例 – 踩坑總結(jié)
    • 小結(jié)
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

我在隔離酒店,“做了”一個AI視覺加速器

2021/11/01
349
閱讀需 10 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

之前文章說過我回國了,結(jié)果還在酒店隔離的時候,就收到了賽靈思寄來的一個小玩具。開箱視頻已經(jīng)發(fā)到B站了,看過的朋友應該知道,這里面其實是賽靈思的Kria KV260 Vision AI入門套件,從名字也可以看出來,這個東西是專門為視覺應用而設計的開發(fā)套件。今天這篇文章,一來是簡單介紹一下這個產(chǎn)品,更重要的,其實是聊聊我對這個小玩具的一些想法。一句話總結(jié),我從來也沒玩過這樣不用寫RTL就能開發(fā)的FPGA板卡。

先說開發(fā)板。我收到的其實有兩盒,一個是這個KV260的板卡,另外一個是一些必要的配件,比如HDMI線、SD卡、電源適配器、網(wǎng)線,以及一個攝像頭模塊。不過為了讓這個板子跑起來,最好還需要一個顯示器(帶HDMI或DP接口),也可以弄一個USB鍵盤、USB攝像頭等等。

但這兩個東西都不是必須的,我也看到過有人用網(wǎng)線、通過RTSP協(xié)議將視頻直接發(fā)到筆記本顯示器上,然后用支持RTSP的播放器打開就可以。我也沒有USB鍵盤,所以用串口UART進行簡單的命令傳輸,這里面有些坑,接下來會總結(jié)。有鍵盤的話,直接插到板子上輸命令就可以了。

模塊化系統(tǒng)SoM:

板卡設計的新思路

再說Kria KV260板卡,它其實有兩個部分,一個是FPGA卡本身,也就是由紅色風扇覆蓋的部分。還有另外一部分就是母板base board或者也叫做carrier board。這個和我們平時常用的開發(fā)板有點不太一樣。當然很多專業(yè)的FPGA開發(fā)板也有基于FMC接口的擴展卡,但是FMC卡主要還是用來做IO的擴展這些相對簡單的功能,而KV260這個板卡、上面的這部分其實就是FPGA的主體,其他所有的接口部分都在下面的這個大板子上。

這種設計方法叫做SoM,也就是System on Module。它的本質(zhì)其實也是一種模塊化的方法,我們可以分別設計這些核心板和母板,來滿足不同應用場景的需要。

比如對于開發(fā)板來說,肯定需要更多接口、更多的調(diào)試功能,所以就可以把母板的IO做的多一些,方便我們的開發(fā)。

另一方面,對于實際的應用和部署來說,就不需要這么多的接口和調(diào)試功能了。那就可以用最小化的母板,只保留必要的功能。而上面的FPGA板卡保持不變。

同理,我們可以使用相同的母板,來開發(fā)不同的FPGA器件,只需要更換上面的板卡就可以了。特別是當你用熟了底層這些資源之后,未來再有新的FPGA器件出來,就不用再買個新的板卡重新熟悉,直接換個FPGA板就行了,很方便。

具體到這個Kria KV260,上面的這個FPGA板卡叫做K26 SoM,它的主體就是一個Zynq UltraScale+的MPSoC。這是一個16納米的器件,包含4核ARM Cortex-A53處理器,以及圍繞它搭建的一系列SoC子系統(tǒng),包括嵌入式的GPU、內(nèi)存控制器,還有各種IO和總線控制單元等等。可編程邏輯部分,也就是PL,包含25.6萬個可編程邏輯單元,1000多個DSP單元,以及一個硬核視頻Codec,可以支持4K60幀的視頻編解碼。

另外這個K26 SoM有245個IO引腳,可以支持15個攝像頭、4個USB端口、以及40G以太網(wǎng),并且可以提供1.4Tflops的AI處理算力

從這些性能指標就能看出來,這個是特別針對視覺應用進行設計的SoM板卡。關于這個板子的所有具體的技術文檔我都會發(fā)到知識星球里,有興趣的朋友可以去看一下。

母板上有很多接口:以太網(wǎng)、4個USB3.0、HDMI、DP、JTAG、UART等等,應該也很方便我們來進行實際的開發(fā)和學習。

不過我覺得這個開發(fā)套件最大的特點,并不僅僅是這種模塊化的硬件設計方法,更重要的是它的開發(fā)方法。

不用寫RTL的FPGA開發(fā)

玩過FPGA的朋友應該都知道,F(xiàn)PGA開發(fā)起來非常麻煩,特別是和基于CPU或者GPU的這些軟件開發(fā)相比。比如我們要玩Raspberry Pi,直接接上電源連上外設,然后開始寫python去開發(fā)就好了。

相比之下,F(xiàn)PGA完全是兩個概念,傳統(tǒng)的開發(fā)方法要用特別的硬件設計語言Verilog、VHDL或者SystemVerilog,這個學起來就很麻煩了;還要用特別的開發(fā)軟件,比如賽靈思的Vivado或者Vitis,這個也需要大量的學習成本。

不僅如此,F(xiàn)PGA的編譯和調(diào)試時間很長,一個普通大小的工業(yè)級FPGA設計,編譯時間通常也需要幾個小時之久,這就勸退了很多開發(fā)者和應用廠商。除此之外,開發(fā)者還得學習掌握相應的仿真測試方法。在之前的文章里,我就專門總結(jié)了FPGA的學習路線,分成入門篇和進階篇,有興趣的朋友們可以看一下。

總而言之,一方面FPGA有各種各樣的好處,比如微軟的腦波項目就使用FPGA來有效的加速他們的實時AI推斷;但另一方面。FPGA的學習和開發(fā)方法非常的復雜和繁瑣,這個也是制約FPGA大規(guī)模發(fā)展的最主要因素。

但是,這個KV260的開發(fā)方法就有很大不同,我們不需要Vitis、不需要使用RTL語言,就能很快跑起來一個視覺應用。事實上,根據(jù)Xilinx的說法,第一次完整的配置可以在一個小時之內(nèi)完成。根據(jù)我的使用體驗,加上我的踩坑經(jīng)驗,一個小時的大概率可以完成系統(tǒng)完整配置。

KV260實例 – 踩坑總結(jié)

賽靈思有個專門的頁面,介紹配置KV260的全部操作,直到完成一個智能攝像頭應用的運行。令人欣喜的是,這個配置過程支持macOS,這在FPGA開發(fā)里還比較少見。具體的上手過程,可以看一下視頻。只不過這個運行和配置過程中,有不少小坑,這里簡單總結(jié)一下。

1、第4步:typo

這里有個typo,應該是

$ ls /dev/tty.*

2、第4步:COM端口數(shù)量、波特率設置

在賽靈思的網(wǎng)頁里,說會出現(xiàn)4個端口。但至少在我的實操里,看到了4個COM端口。其中編號第二低的端口是UART口。

另外,這里需要注意波特率的設置,否則會出現(xiàn)亂碼。正確的命令如下:

$ screen /dev/tty.usbserial 115200

其中115200是正確的波特率。

3、第5步:使用Mac終端時會崩潰

在運行這個命令的時候,使用Mac的默認終端app會崩潰,無法完成正常的安裝。我后來使用了名叫serial的應用,類似于putty。就可以正常走下去了。另外,只要安裝完一次之后,后續(xù)再使用Mac的終端就可以正常運行接下來的命令了。

小結(jié)

從這個小實驗可以看到,使用這個Kria KV260開發(fā)套件,可以很快的完成一個視覺加速應用的實現(xiàn)。然后我們可以在這個基礎上添加我們自己的應用,或者把這個作為參考,開發(fā)自己的加速設計。

在這個過程中,可以不接觸到FPGA的底層硬件內(nèi)容。如果你是個軟件開發(fā)者,可以利用這個平臺直接進行上層軟件和算法的開發(fā)和加速,這個就大大降低了使用FPGA的門檻。這個過程也很有趣,同時也能慢慢接觸到軟硬件協(xié)同開發(fā)的知識細節(jié),并且鍛煉這方面的技能。

關于Kria KV260的全部學習資料,我都上傳到了知識星球,想要學習的朋友可以從這里開始。賽靈思也有很多線上和線下的官方培訓課程,大家可以關注一下。也歡迎看看我之前寫的FPGA學習路線,應該也會對你有所幫助。

賽靈思

賽靈思

賽靈思(英語:Xilinx)是一家位于美國的可編程邏輯器件的生產(chǎn)商。該公司發(fā)明了現(xiàn)場可編程邏輯門陣列,并由此成名。賽靈思還是第一個無廠半導體公司(Fabless)。28nm時代,賽靈思提出All Programmable 的概念,從單一的FPGA企業(yè)戰(zhàn)略轉(zhuǎn)型為All Programmable FPGA、 SoC 和 3D IC 的全球領先提供商。且行業(yè)領先的器件與新一代設計環(huán)境以及 IP 完美地整合在一起,可滿足客戶對可編程邏輯乃至可編程系統(tǒng)集成的廣泛需求賽靈思于1984年創(chuàng)建于美國加利福尼亞州的硅谷,總部位于硅谷核心的圣何塞,并在科羅拉多州、愛爾蘭、新加坡 印度、中國、日本擁有分支機構(gòu)

賽靈思(英語:Xilinx)是一家位于美國的可編程邏輯器件的生產(chǎn)商。該公司發(fā)明了現(xiàn)場可編程邏輯門陣列,并由此成名。賽靈思還是第一個無廠半導體公司(Fabless)。28nm時代,賽靈思提出All Programmable 的概念,從單一的FPGA企業(yè)戰(zhàn)略轉(zhuǎn)型為All Programmable FPGA、 SoC 和 3D IC 的全球領先提供商。且行業(yè)領先的器件與新一代設計環(huán)境以及 IP 完美地整合在一起,可滿足客戶對可編程邏輯乃至可編程系統(tǒng)集成的廣泛需求賽靈思于1984年創(chuàng)建于美國加利福尼亞州的硅谷,總部位于硅谷核心的圣何塞,并在科羅拉多州、愛爾蘭、新加坡 印度、中國、日本擁有分支機構(gòu)收起

查看更多

相關推薦

電子產(chǎn)業(yè)圖譜

微信公眾號“老石談芯”主理人,博士畢業(yè)于倫敦帝國理工大學電子工程系,現(xiàn)任某知名半導體公司高級FPGA研發(fā)工程師,從事基于FPGA的數(shù)據(jù)中心網(wǎng)絡加速、網(wǎng)絡功能虛擬化、高速有線網(wǎng)絡通信等領域的研發(fā)和創(chuàng)新工作。曾經(jīng)針對FPGA、高性能與可重構(gòu)計算等技術在學術界頂級會議和期刊上發(fā)表過多篇研究論文。