PYNQ Overlay 發(fā)布工具 PyPI
作為Python的官方第三方軟件存儲(chǔ)庫(kù)PyPI,目前已將超過(guò)222,000個(gè)項(xiàng)目收納囊中,PYNQ作為一款將Python開(kāi)發(fā)語(yǔ)言與FPGA硬件設(shè)計(jì)完美銜接的產(chǎn)品,自然也是迫不及待地入住PyPI。點(diǎn)開(kāi)PyPI主頁(yè)面搜索PYNQ,可以看到已經(jīng)有邊緣PYNQ, Alveo板卡,resnet50等項(xiàng)目發(fā)布在其中,而你現(xiàn)在與所有這些FPGA工程之間只有一步之遙:pip install !!!
設(shè)計(jì)初衷--便捷與統(tǒng)一
PYNQ 應(yīng)用同時(shí)包含了硬件設(shè)計(jì)和軟件驅(qū)動(dòng),比如PL bitstreams和Python包,用戶必須要同時(shí)部署這兩部分內(nèi)容才能順利運(yùn)行起來(lái)。在GitHub環(huán)境中,軟件包的發(fā)布比較容易,而硬件設(shè)計(jì)的bitstream 有時(shí)大于10M,發(fā)布較為困難,導(dǎo)致了FPGA應(yīng)用的整體部署往往需要先配置硬件環(huán)境然后再裝軟件,顯得有些繁瑣。
特性介紹- pip install all
PyPI將打包硬件bitstreams和軟件程序,一并推送給用戶。用戶可以簡(jiǎn)單地在PYNQ平臺(tái)上用pipinstall pynq來(lái)完成整體環(huán)境的部署,包含了FPGA overlays、Python軟件驅(qū)動(dòng)以及Jupyter notebook。
案例介紹

構(gòu)建Repository
- boards 包含所有硬件projects。用戶可以在里面找到自己對(duì)應(yīng)的硬件平臺(tái),然后build
- pynq_helloworld 這是主要的python package,里面還包含了jupyter notebook
- MANIFEST.in 里面就是需要包含在分發(fā)包中的文件,也就是需要把要查找的分發(fā)的包的路徑寫(xiě)上
- pyproject.toml 這里指定了該項(xiàng)目build的最小系統(tǒng)需求
- setup.py 主要寫(xiě)需要安裝的包的一些配置信息,比如包的版本號(hào)、作者、需要處理的包目錄等等
鏈接overlay
在用戶安裝的時(shí)候再通過(guò)項(xiàng)目里的notebook(例子中是PYNQ-HelloWorld/pynq_helloworld/notebooks/*/)中對(duì)應(yīng)的*.link文件來(lái)下載,這是PYNQ Utils Module提供的一個(gè)工具(build_py,在setup.py中的cmd_class字段指定)自動(dòng)完成的。當(dāng)用戶安裝時(shí)會(huì)自動(dòng)讀取當(dāng)前平臺(tái)并找到對(duì)應(yīng)的*.link來(lái)下載。
提取notebook
很簡(jiǎn)單的一個(gè)小技巧,在setup.py中定義一個(gè)entry_points,該entry_points實(shí)際上就是在安裝時(shí)檢測(cè)一下當(dāng)前的硬件平臺(tái)(是edge還是pcie),然后當(dāng)用戶使用pynqget-notebooks pynq-helloworld -p .命令來(lái)提取對(duì)應(yīng)notebook時(shí)就會(huì)拿取對(duì)應(yīng)平臺(tái)的文件(命令中的pynq-helloworld實(shí)際上已經(jīng)被替換成了pynq_helloworld.notebook.edge/pcie即項(xiàng)目中的notebook路徑)
打包上傳
- python3setup.py sdist會(huì)將項(xiàng)目打包成*.tar.gz并放在dist目錄下,開(kāi)發(fā)者可以用python3-m pip install dist/*.tar.gz命令來(lái)嘗試安裝
- 打包安裝沒(méi)問(wèn)題后只需上傳到PyPI就行了,實(shí)際上關(guān)鍵步驟只要兩步:python3 -m pip install --upgrade twine(更新) & python3 -m twine uploaddist/*(上傳)
- 上傳成功后應(yīng)該能看到
- PyPI上的頁(yè)面
安裝PIP
只需要一條命令就可以愉快地安裝啦python3-m pip install pynq-helloworld
如果需要用jupyternotebook,進(jìn)入系統(tǒng)的jupyter notebook home目錄并運(yùn)行pynq get-notebooks pynq-helloworld -p .
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1660文章
22412瀏覽量
636309 -
python
+關(guān)注
關(guān)注
57文章
4876瀏覽量
90030
發(fā)布評(píng)論請(qǐng)先 登錄
如何利用FPGA部分可重配置特性實(shí)現(xiàn)PYNQ-PRIO經(jīng)典案例
基于IIoT-EDDP開(kāi)源平臺(tái)和PYNQ軟件框架的電機(jī)控制
PYNQ項(xiàng)目——Pynq開(kāi)發(fā)板啟動(dòng)實(shí)驗(yàn)
【PYNQ-Z2申請(qǐng)】基于PYNQ的神經(jīng)網(wǎng)絡(luò)自動(dòng)駕駛小車
【PYNQ-Z2試用體驗(yàn)】玩轉(zhuǎn)PYNQ系列:三、PYNQ數(shù)字圖像處理之圖像采集
【PYNQ-Z2試用體驗(yàn)】基于PYNQ的神經(jīng)網(wǎng)絡(luò)自動(dòng)駕駛小車 - 項(xiàng)目規(guī)劃
什么是PYNQ?
PYNQ開(kāi)源方案
【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】Zynq超強(qiáng)輔助-PYNQ配置,并使用XVC(Xilinx Virtual Cable)調(diào)試FPGA邏輯
【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】PYNQ初次上手體驗(yàn)
PYNQ中MicroBlaze程序文件的加載過(guò)程
PYNQ團(tuán)隊(duì)發(fā)布了全新的RFSoC-PYNQ開(kāi)源框架
探究DSP-PYNQ新增對(duì)ZCU111和Ultra96的支持!
Overlay如何與EUV圖案保持同步
為什么需要Overlay網(wǎng)絡(luò)?Overlay網(wǎng)絡(luò)是如何形成的?Overlay網(wǎng)絡(luò)的應(yīng)用有哪些?
如何使用PYNQ Overlay 發(fā)布工具PyPI
評(píng)論