使用代码生成选项和优化来提高生成代码的执行速度。您可以修改或禁用动态内存分配,这可能会影响执行速度。并行化代码可以通过使用parfor
循环。在可用的情况下,利用预先存在的优化C代码和专门的库来加速执行。
有关如何针对特定条件优化代码的更多信息,请参阅优化策略.
parfor |
平行的为 循环 |
coder.varsize |
声明适应数据 |
编码常数 |
在生成的代码中,将表达式折叠为常量 |
coder.inline |
在生成的代码中控制内联 |
coder.unroll |
展开为 -通过为每个循环迭代制作循环体的副本来循环 |
塞瓦尔编码员 |
调用外部C/ c++函数 |
编码器。LAPACKCallback |
抽象类,用于在生成的代码中为LAPACK调用指定LAPACK库和LAPACKE头文件 |
编码器。BLASCallback |
抽象类,用于在生成的代码中为BLAS调用指定BLAS库、CBLAS头和数据类型信息 |
coder.fftw.StandaloneFFTW3Interface |
用于在生成的代码中为FFTW调用指定FFTW库的抽象类 |
通过最小化动态内存分配来缩短执行时间。
使用技术帮助代码生成器确定可变大小数组的上限。
在应用程序或命令行中禁用动态内存分配。
为小于一定大小的数组禁用动态内存分配。
生成一个在共享内存多核平台上并行运行的循环。
生成一个MEX函数,在特定数量的可用核上并行执行循环迭代。
治疗parfor
循环,parfor
-在单个线程上运行的循环。
安装OpenMP库来生成并行为
循环在马科斯站台。
如果可能的话,将操作移到循环之外。
控制循环展开。
生成通过引用传递输入参数的代码。
内联消除了函数调用的开销,但可以生成更大的C/C++代码并降低代码可读性。
通过在生成的代码中用常量替换表达式来减少执行时间。
通过集成您自己的优化代码来提高性能。
生成特定线性代数函数的LAPACK调用。指定LAPACK库要使用。
为某些低级矩阵操作生成BLAS调用。指定要使用的BLAS库。
生成用于快速傅里叶变换的FFTW库调用。指定FFTW库。
实现FFT库回调类方法,并提供支持C代码,以防止并发访问FFTW计划。金宝app
优化生成代码的执行速度或内存使用。
动态内存分配会降低执行速度。
为生成MEX函数parfor
循环。
内部变量parfor
循环分为循环、切片、广播、减少或临时。
reduce变量累积一个依赖于所有循环迭代的值。
为了提高所生成代码的性能,代码生成器使用了优化。
代码生成器通过使用memcpy
.
代码生成器通过使用清零
.
LAPACK函数调用提高了某些线性代数函数生成代码的执行速度。
BLAS函数调用提高了为某些低级向量和矩阵操作生成的代码的执行速度。
用连续存储在内存中的行元素生成C/ c++代码。
诊断代码生成的错误parfor
循环。
故障排除的问题,发生时的源代码MATLAB®代码包含全局变量或持久变量,这些变量可从parfor
循环。