使用Python生成輸入文本文件,以提供AI引擎模擬器來測(cè)試FFT
在之前的博客文章中,我們已經(jīng)看到了如何使用AMD DSP庫在AMD Versal ae - ml架構(gòu)上快速實(shí)現(xiàn)FFT。與任何項(xiàng)目一樣,我們可能希望模擬生成的圖形,以確保我們獲得正確的行為。
在本文中,我們將展示如何使用Python生成輸入文本文件以提供給AI Engine模擬器。
創(chuàng)建一個(gè)Python輸入文本文件生成器腳本
在之前的文章中,我們已經(jīng)看到AI Engine模擬器可以從輸入文本文件中工作,以提供被測(cè)圖的plio。創(chuàng)建這些輸入文本文件的一種方便方法是使用Python。
在這個(gè)文件中,我基本上創(chuàng)建了一個(gè)輸入信號(hào)與2音調(diào):
然后我將輸入數(shù)據(jù)轉(zhuǎn)換為16位復(fù)雜的固定點(diǎn),以匹配我在AI引擎圖上的輸入:
然后我在輸出文本文件(input.txt)中編寫示例,每行有2個(gè)復(fù)數(shù)(即每行4個(gè)數(shù)字),因?yàn)槲业膒lio配置為64位:
最后,我使用scipy運(yùn)行FFT,并將數(shù)字作為整數(shù)寫入另一個(gè)文本文件(output_ref.txt)。
運(yùn)行模擬
一旦我們生成了包含輸入刺激和黃金結(jié)果的文本文件,我們就可以運(yùn)行AI引擎模擬了。
我們首先需要將input.txt文件導(dǎo)入到Vitis中的AI Engine組件中。
注意:您可以通過在AI_Engine_Basic/02_FFT_AIE-ML中運(yùn)行make all來重新創(chuàng)建上周的工作空間
要導(dǎo)入文件,右鍵單擊fft_1024 AI引擎組件下的Sources,然后單擊import > Folders…
然后選擇由前面的Python腳本創(chuàng)建的文件夾AI_Engine_Basic/02_FFT_AIE-ML/aie/data
現(xiàn)在我們可以運(yùn)行AI引擎模擬了。
模擬完成意味著我們至少生成了足夠的輸入樣本來運(yùn)行圖的一次迭代。
創(chuàng)建Python輸出檢查器
我們可以手動(dòng)將模擬器生成的文件與黃金引用進(jìn)行比較。但是你可以看到有一些我們可以忽略的微小差異(1 LSB)。
所以我創(chuàng)建了另一個(gè)Python腳本,它將讀取黃金和AI引擎模擬器輸出文本文件,并將比較值:
你可以給模擬器作為參數(shù):
或
當(dāng)運(yùn)行python腳本時(shí),您應(yīng)該看到消息“AI引擎FFT匹配1 LSB內(nèi)的python FFT”,這意味著在AI - ml內(nèi)實(shí)現(xiàn)的FFT匹配我們的黃金參考。
總結(jié)
在本教程中,我展示了如何使用Python生成輸入文本文件,以在模擬中為AI引擎提供并驗(yàn)證輸出。這需要多個(gè)步驟。AMD有一個(gè)特性允許直接從Python腳本調(diào)用AI引擎模擬器,該腳本稱為VitisFunctionalSimulation,這提供了更大的易用性。在下一篇教程中,我將展示如何將其用于圖形測(cè)試。
本文編譯自hackster.io





