执行速度
提高生成的代码的执行速度
代码生成器通过以下途径尽可能提高生成的代码的执行速度:用局部变量替换全局变量,删除数据副本,使用 memset
和 memcpy
函数,以及减少用于存储数据的内存量。您可以实施特定于编译器和处理器的优化,指定缓冲区重用以及删除可能不需要的代码,以此提高生成的代码的执行速度。
主题
特定于处理器的优化
- Control Data and Function Placement in Memory by Inserting Pragmas
Increase code efficiency on your hardware by inserting pragmas in the generated code. Pragmas specify locations in memory to store data and functions. - Replace boolean with Specific Integer Data Type
Improve the execution speed of the generated code by replacing theboolean
built-in data type with a specific integer data type. - Subnormal Number Execution Speed
Minimize the possibility of execution slowdowns or overruns due to subnormal number calculation latency. - Floating-Point Multiplication to Handle a Net Slope Correction
For processors that support efficient multiplication, improve code efficiency by using floating-point multiplication to handle a net slope correction. - Optimize Generated Code Using Fixed-Point Data with Simulink, Stateflow, and MATLAB
Generate fixed-point code in Simulink®, Stateflow®, and MATLAB®. - Generate Target Optimizations Within Algorithm Code
Customize generated algorithm code with target-specific optimizations. - Generate SIMD Code from Simulink Blocks for Intel Platforms
Improve the execution speed of the generated code using Intel® SSE and Intel AVX technology. - Optimize SIMD Code by Performing Fused Multiply Add Operations
For processors that support FMA instructions, improve execution efficiency by performing fused multiply-add operations. - Optimize Code for Reduction Operations by Using SIMD
Generate optimized code for reduction operations using SIMD instruction sets. - Set Hardware Implementation Parameters
Specify target hardware device characteristics that can be critical in embedded systems development (such as word sizes forchar
,short
,int
, andlong
data types, or desired rounding behaviors in integer operations).
用于提高执行效率的优化
- Optimize Generated Code Using Minimum and Maximum Values
To optimize the generated code for your model, you can choose an option to use input range information, also known as design minimum and maximum, that you specify on signals and parameters. - 优化全局变量使用
选择全局变量引用优化来满足您的内存使用量和执行速度要求。 - Improve Execution Efficiency by Reordering Block Operations in the Generated Code
The code generator can change the block execution order to improve execution efficiency. - Optimize Generated Code by Combining Multiple for Constructs
The code generator uses data dependency analysis to combinefor
constructs to reduce static code size and runtime branching. - Optimize Generated Code for Complex Signals
The code generator performs various optimizations on the structures that represent signals in the generated code. - Configure Loop Unrolling Threshold
Starting at a default value of 5, the code generator begins to use afor
loop instead of separate statements to assign values to the elements of a signal or parameter array. - Simplify Multiply Operations in Array Indexing
The code generator reduces the number of times a multiply operation executes in an array index by replacing the multiply operation with a temporary variable. - Optimize Generated Code Using memset Function
Thememset
function clears internal storage, regardless of type, to the integer bit pattern 0 (that is, all bits are off). - Use memcpy Function to Optimize Generated Code for Vector Assignments
The code generator optimizes the generated code for vector assignments by replacingfor
loops withmemcpy
function calls. - Use Conditional Input Branch Execution
For Switch and Multiport Switch blocks, Simulink executes only blocks that compute the control input and the data input that the control input selects. - Optimize Generated Code for Fixed-Point Data Operations
The code generator optimizes fixed-point operations by replacing expensive division operations with highly efficient product operations. - 控制 MATLAB Function 模块中可变大小数组的内存分配
禁用动态内存分配或为 MATLAB Function 模块指定动态内存分配阈值。 - Speed Up Linear Algebra in Code Generated from a MATLAB Function Block
Generate LAPACK calls for certain linear algebra functions in a MATLAB function block. Specify LAPACK library to use. - Speed Up Matrix Operations in Code Generated from a MATLAB Function Block
Generate BLAS calls for certain low-level matrix operations. Specify BLAS library to use. - Speed Up Fast Fourier Transforms in Code Generated from a MATLAB Function Block
Generate FFTW library calls for fast Fourier transforms in a MATLAB Function block. Specify the FFTW library. - Speed Up Generated Code Execution with Halide Code
Generate Halide code from Simulink models for faster array computation. - Synchronize Multithreaded FFTW Planning in Code Generated from a MATLAB Function Block
Implement FFT library callback class methods and provide supporting C code to prevent concurrent access to FFTW planning. - Unroll Parallel for-Loop That Has Small Number of Iterations
Unrollparfor
-loops that have small number of iterations.