簡體   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