利用目标硬件指令集扩展
用于生成单指令多数据 (SIMD) 代码的指令集
自 R2021b 起
模型配置窗格: 代码生成 / 优化
描述
利用目标硬件指令集扩展参数指定用于为目标硬件生成单指令多数据 (SIMD) 代码的指令集。
依赖项
要使用此参数,您必须将设备供应商和设备类型设置为下表中的值的组合。如果您将硬件板设置为会产生下表中设备设置的板,也可以使用此参数。如果您使用 MATLAB Host Computer,则只能选择您的计算机支持的指令集。
| 设备供应商 | 设备类型 |
|---|---|
Intel | x86-64 (Windows 64) |
x86-64 (Linux 64) | |
Apple | ARM 64 |
AMD | Athlon 64 |
ARM Compatible | ARM Cortex-A (32-bit) |
ARM Cortex-A (64-bit) | |
Generic | MATLAB Host Computer |
设置
用于 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,代码生成器会加载 AVX、SSE4.1、SSE2 和 SSE。如果您为基于 GRT 的目标或基于 ERT 的目标选择 SSE2,代码生成器会加载 SSE2 和 SSE。
推荐的设置
| 应用情形 | 设置 |
|---|---|
| 调试 | 无影响 |
| 可追溯性 | 无影响 |
| 效率 | 目标硬件支持的指令集(执行速度) |
| 安全预警 | 对于 Intel 硬件:
对于 Apple 芯片和 ARM Cortex-A 硬件:
|
编程用法
参数:InstructionSetExtensions |
| 类型:字符向量 |
值:'None' | 'SSE' | 'SSE2' | 'SSE4.1' | 'AVX' | 'AVX2' | 'FMA' | 'AVX512F'| 'Neon v7' |
限制
对于某些自定义工具链,您必须将指令集扩展设置为无。如果您的自定义工具链不生成 SIMD 指令集所需的编译器标志,则会出现此限制,导致代码无法编译。
如果自定义工具链是从内置工具链派生的,或它默认插入指令集所需的编译器标志,则它可能支持 SIMD 指令集。
对于 DSP System Toolbox™ 中的某些模块,要生成 SIMD 代码,您必须将优化级别 > 优先级设置为平衡 RAM 和速度或最大化执行速度。
版本历史记录
在 R2021b 中推出