簡體   English   中英

使用MATLAB編碼器將MATLAB轉換為C ++

[英]Convert MATLAB to C++ using MATLAB coder

我打算將“矩陣上的全部操作”的MATLAB代碼轉換為C ++,我不確定MATLAB編碼器是否會生成高效的C ++代碼。盡管如此,還是要手動轉換它,這樣更好嗎?

正如其他人所說的那樣,使用MATLAB Coder生成代碼,然后使用編譯器的優化功能對其進行編譯,然后進行測量是知道是否可以滿足您的需求的唯一方法。

MATLAB Coder無需使用外部庫即可直接為大多數算法生成代碼。 在某些情況下,庫可以被用戶使用或被用戶請求。 您特別感興趣的可能是BLAS和LAPACK集成。

如果將線性代數作為矩陣運算的一部分,請考慮配置MATLAB Coder以調用您選擇的高性能BLAS和LAPACK庫:

https://www.mathworks.com/help/coder/ug/speed-up-matrix-operations-in-generated-standalone-code-by-using-blas-calls.html

https://www.mathworks.com/help/coder/ug/generate-code-that-c​​alls-lapack-functions.html

這將導致MATLAB Coder將其算法替換為您為線性代數運算指定的庫的調用,例如*, \\, linsolve, lu, svd, eig等。

MATLAB Coder提供了有關改善所生成代碼性能的建議:

https://www.mathworks.com/help/coder/optimize-speed-of-generated-code.html

在這種情況下,一種可能的方法是生成代碼並使用探查器(例如prof,VTune,AMD Codeanalyst,Visual Studio性能工具等)對它進行探查。如果發現一些昂貴的內核,其中所生成的代碼可能無法滿足您的性能需要時,可以使用類似C的界面手寫替換這些零件,並使用coder.ceval將它們與生成的代碼集成在一起。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM