我有一个简单的各向异性滤镜 c/c++ 代码,它将处理一个 .pgm 图像,这是一个包含每个像素灰度信息的文本文件,完成处理后,它将生成一个应用滤镜的输出图像。
此程序最多需要几秒钟才能在运行 Windows 的 x86 CPU 上执行大约 10 次迭代。
我和一位完成应用计算硕士学位的学者,我们需要在 FPGA (Altera DE2-115) 下运行代码,看看直接在处理器 (NIOS 2) 上运行代码是否有相当大的性能提升结果).
我们已经成功启动了FPGA下的S.O uClinux,但是设备硬件有一些错误,导致我们无法访问SD卡甚至以太网,所以我们无法将代码和图像导入FPGA 以测试其性能。
所以我在这里寻求一种替代方法来直接将我们的代码性能测试到带有文件系统的 CPU 中,以便代码可以读取图像并生成另一个图像。
备选方案可以是使用成本低且易于使用的产品(我想到的是树莓派 PI),或者如果我可以将代码上传到某个地方自动运行并给我报告。
提前致谢。
最佳答案
您想要做的是在多 GHz x86 处理器和运行 50MHz 的软核处理器上对某些软件进行基准测试? (据我所知,从 Altera 文档中可以看出) 我可以保证在FPGA上它会更慢!因为它也在运行一个操作系统(甚至是嵌入式 Linux),所以它也有线程开销等等。这不能被认为是在 CPU 上“直接”运行它(不管你的意思是什么)
如果您真的想利用 FPGA 的性能,您应该将 C 代码“转换”为 HDL 并直接在硬件中运行。访问数据应该是可能的。我不知道 Altera 板是如何完成的,但 Xilinx 有一些库可以使用 FAT 从 SD 卡访问数据。
关于c++ - 如何将代码直接运行到带有文件系统的处理器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16156242/