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