gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:48 24 4
gpt4 key购买 nike

我目前正在 JNI 和 OpenCV 的帮助下使用 C++ 编写一个简单的 Android 程序。输入是存储为 Mat 的图像。我不想使用 OpenCV 的规范化函数,而是希望用 C++ 编写自己的规范化函数。据我所知,有对 NEON 的支持。然而,查看 NDK 文件夹中的 HelloNeon 示例,我意识到代码是用 NEON intrinsics 编写的。

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

谢谢。

最佳答案

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

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

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

如果您真的需要获得良好的矢量化结果,您可能最终需要使用 Neon 内在函数。

关于Android 将 C++ 转换/编译为 Neon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23236919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com