我目前正在优化一段C代码,有很多循环,并添加/乘二维浮点向量。代码太慢了,我无法在ARM Cortex-M甚至ARM Cortex-A上以低CPU模式实时处理我的数据。我在Cortex-A上几乎够快了。但在皮质-M.我需要在许多不同的架构环境中运行这段代码。
这是我第一次需要对算法进行深入的优化,以达到实时的目的.我发现了很多关于循环优化和矢量化的论文/文章来帮助我完成这个任务。我还在探索作为库OpenBlas的多体系结构解决方案。
问题是我的双臂环境很痛苦。迭代、重建、部署代码和测量性能是一个非常缓慢的过程。
有什么建议可以帮我加速这个过程吗?
发布于 2022-11-04 15:05:42
发布于 2022-11-04 19:52:30
QEMU根本不是一个循环精确的模拟器.它甚至没有尝试模拟性能,只是为了尽可能快地模仿。
也许你最好读一些你关心的最慢的目标上的主要瓶颈。就像Cortex-M,特别是如果您使用的是没有缓存或SIMD的,尽管如果您需要做一些FP繁重的工作,这将是一个问题。如果您的工作负载需要更多的FP吞吐量,而不是目标芯片上的最大理论值,那么在进行基准测试之前,您需要对算法进行更改。或者你需要选择一个功能更强的微控制器;IIRC,一些高端的Cortex-M有霓虹灯和代码/数据缓存。
https://stackoverflow.com/questions/74318721
复制相似问题