某些DSP类型的工作负载在与英特尔IPP库链接时,似乎在英特尔x86 x86_64处理器上显示出非常显着的性能提升。
想知道ARM方面是否有类似的东西?特别是那可能适用于ARM9,ARM11和Cortex-A8 / A9(不一定具有相同的性能提升水平)。
最后,接下来的问题,这里可能不正确/可接受,所以mods应该留下评论,我可以编辑它。
我一直在尝试阅读IPP的许可协议,但目前尚不清楚Linux上的商业IPP许可证(售价为199美元以上的税)是否可以使用一份个人副本(但可能是商业用途)的图书馆,或者可以将他们的申请与该图书馆联系起来并出售以获取商业利益?或者这需要不同类型的许可证?无法找到英特尔网站上的一个地方来提出这个问题(没有像联系销售一样)!
答案 0 :(得分:8)
还有ARM sponsored开源项目Ne10,它最初涵盖了一小组浮点,向量算术和矩阵操作函数。
答案 1 :(得分:6)
您的问题有几个答案,具体取决于您如何看待它。
英特尔IPP是一个具有许多预先烹饪功能的库,可以执行快速傅里叶变换等常见任务。 开源社区中有一些特定的库也可以这样做,请看:
和其他许多人。 并非所有这些库都针对各种ARM内核进行了优化。
您问题的第二个角度是您希望在不同的ARM核心上运行的东西。在Cortex A系列处理器上,您有(可选!)ARM NEON SIMD指令(如MMX / SSE / AltiVec)可以一次获取一组数据并对其应用多个操作。这减少了处理大量数据所需的指令量。 ARM11xx系列有类似但更受限制的称为VFP3。 ARM9xx系列真的缺乏这种优化。 除此之外,ARM体系结构具有Thumb和Thumb2,可以生成更小更快的代码。
最终结果是,真正运行在众多ARM内核中的优化库需要针对不同的工作负载具有相同算法的多个实现。这将增加库大小。你愿意支付这个价格吗?
答案 2 :(得分:4)
在iOS上,有一个加速框架,针对ARM使用SIMD进行了优化。请参阅Apple的文档here。
答案 3 :(得分:0)
OpenMAX / OpenKode怎么样?
https://en.wikipedia.org/wiki/OpenMAX
https://www.khronos.org/openkode/
我想知道是否有人试图在OSS中重新实现IIPP(即使只是存根?)