使用Python生成输入文本文件,以提供AI引擎模拟器来测试FFT
扫描二维码
随时随地手机看文章
在之前的博客文章中,我们已经看到了如何使用AMD DSP库在AMD Versal ae - ml架构上快速实现FFT。与任何项目一样,我们可能希望模拟生成的图形,以确保我们获得正确的行为。
在本文中,我们将展示如何使用Python生成输入文本文件以提供给AI Engine模拟器。
创建一个Python输入文本文件生成器脚本
在之前的文章中,我们已经看到AI Engine模拟器可以从输入文本文件中工作,以提供被测图的plio。创建这些输入文本文件的一种方便方法是使用Python。
在这个文件中,我基本上创建了一个输入信号与2音调:
然后我将输入数据转换为16位复杂的固定点,以匹配我在AI引擎图上的输入:
然后我在输出文本文件(input.txt)中编写示例,每行有2个复数(即每行4个数字),因为我的plio配置为64位:
最后,我使用scipy运行FFT,并将数字作为整数写入另一个文本文件(output_ref.txt)。
运行模拟
一旦我们生成了包含输入刺激和黄金结果的文本文件,我们就可以运行AI引擎模拟了。
我们首先需要将input.txt文件导入到Vitis中的AI Engine组件中。
注意:您可以通过在AI_Engine_Basic/02_FFT_AIE-ML中运行make all来重新创建上周的工作空间
要导入文件,右键单击fft_1024 AI引擎组件下的Sources,然后单击import > Folders…
然后选择由前面的Python脚本创建的文件夹AI_Engine_Basic/02_FFT_AIE-ML/aie/data
现在我们可以运行AI引擎模拟了。
模拟完成意味着我们至少生成了足够的输入样本来运行图的一次迭代。
创建Python输出检查器
我们可以手动将模拟器生成的文件与黄金引用进行比较。但是你可以看到有一些我们可以忽略的微小差异(1 LSB)。
所以我创建了另一个Python脚本,它将读取黄金和AI引擎模拟器输出文本文件,并将比较值:
你可以给模拟器作为参数:
或
当运行python脚本时,您应该看到消息“AI引擎FFT匹配1 LSB内的python FFT”,这意味着在AI - ml内实现的FFT匹配我们的黄金参考。
总结
在本教程中,我展示了如何使用Python生成输入文本文件,以在模拟中为AI引擎提供并验证输出。这需要多个步骤。AMD有一个特性允许直接从Python脚本调用AI引擎模拟器,该脚本称为VitisFunctionalSimulation,这提供了更大的易用性。在下一篇教程中,我将展示如何将其用于图形测试。
本文编译自hackster.io





