主要内容

利用目标硬件指令集扩展

用于生成单指令多数据 (SIMD) 代码的指令集

自 R2021b 起

模型配置窗格: 代码生成 / 优化

描述

利用目标硬件指令集扩展参数指定用于为目标硬件生成单指令多数据 (SIMD) 代码的指令集。

依赖项

要使用此参数,您必须将设备供应商设备类型设置为下表中的值的组合。如果您将硬件板设置为会产生下表中设备设置的板,也可以使用此参数。如果您使用 MATLAB Host Computer,则只能选择您的计算机支持的指令集。

设备供应商设备类型
Intelx86-64 (Windows 64)
x86-64 (Linux 64)
AppleARM 64
AMDAthlon 64
ARM CompatibleARM Cortex-A (32-bit)
ARM Cortex-A (64-bit)
GenericMATLAB Host Computer

设置

SSE2 | SSE | SSE4.1 | AVX | AVX2 | FMA | AVX512F | Neon v7 |

用于 Intel® 硬件的基于 GRT 的目标的指令集:

  • SSE2(默认值)

  • - 不生成 SIMD 代码。

用于 Intel 硬件的基于 ERT 的目标的指令集:

  • SSE(默认值)

  • SSE2

  • SSE4.1

  • AVX

  • AVX2

  • FMA

  • AVX512F

  • - 不生成 SIMD 代码。

用于 Apple 芯片ARM® Cortex®-A 硬件的基于 ERT 的目标的指令集:

  • (默认值)- 不生成 SIMD 代码。

  • Neon v7

基于 ERT 的目标的指令集列表显示指令集的依赖关系,其中每个指令集依赖其前面的指令集。代码生成器加载选定指令集及其依赖的指令集。例如,如果您选择 AVX,代码生成器会加载 AVXSSE4.1SSE2SSE。如果您为基于 GRT 的目标或基于 ERT 的目标选择 SSE2,代码生成器会加载 SSE2SSE

推荐的设置

应用情形设置
调试无影响
可追溯性无影响
效率目标硬件支持的指令集(执行速度)
安全预警

对于 Intel 硬件:

  • SSE

  • SSE2

  • SSE4.1

  • AVX

  • AVX2

对于 Apple 芯片ARM Cortex-A 硬件:

  • Neon v7,并且 FMA 设置为 Off

编程用法

参数:InstructionSetExtensions
类型:字符向量
值:'None' | 'SSE' | 'SSE2' | 'SSE4.1' | 'AVX' | 'AVX2' | 'FMA' | 'AVX512F'| 'Neon v7'

限制

  • 对于某些自定义工具链,您必须将指令集扩展设置为。如果您的自定义工具链不生成 SIMD 指令集所需的编译器标志,则会出现此限制,导致代码无法编译。

    如果自定义工具链是从内置工具链派生的,或它默认插入指令集所需的编译器标志,则它可能支持 SIMD 指令集。

  • 对于 DSP System Toolbox™ 中的某些模块,要生成 SIMD 代码,您必须将优化级别 > 优先级设置为平衡 RAM 和速度最大化执行速度

版本历史记录

在 R2021b 中推出