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





