繁体   English   中英

Android将C ++转换/编译为Neon

[英]Android convert/compile C++ as Neon

我目前正在借助JNI和OpenCV使用C ++编写一个简单的Android程序。 输入是存储为Mat的图像。 我希望不使用OpenCV的规范化功能,而是希望使用C ++编写自己的规范化功能。 据我了解,NEON受到支持。 但是,通过查看NDK文件夹中的HelloNeon示例,我意识到该代码是用NEON内在函数编写的。

问题:有没有办法将我的C ++代码直接编译为NEON代码? 即我希望避免用NEON内部函数编写函数。

谢谢。

很大程度上取决于编译器。 在最近的版本中,gcc和clang都支持“自动矢量化”,但是生成的代码的质量变化很大-主要取决于实际的源代码。 与往常一样,编译器首先负责生成正确的代码,其次负责生成快速/高效的代码。 如有疑问,请选择“安全”选项。

但是,应该使用-mfpu=neon -ftree-vectorize

我确实希望您需要“按摩”代码以使其很好地向量化,但是-至少这是我在x86上的经验,编译器将在向量化时尝试构建SSE指令。 它在相当简单的情况下会成功,但是在代码更复杂时会退回到“常规代码”。 通常,更高版本的编译器比旧版本的性能更好。

如果确实需要获得良好的矢量化结果,则可能最终需要使用Neon内部函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM