exponenta event banner

Скорость выполнения

Повышение скорости выполнения сгенерированного кода

Генератор кода увеличивает скорость выполнения сгенерированного кода, где это возможно, заменяя глобальные переменные локальными переменными, удаляя копии данных, используя memset и memcpy и уменьшение объема памяти для хранения данных. Скорость выполнения создаваемого кода можно увеличить, выполнив оптимизацию компилятора и процессора, указав повторное использование буфера и удалив код, который может вам не понадобиться.

Темы

Оптимизация для конкретного процессора

Управление данными и размещением функций в памяти путем вставки прагматиков

Повысьте эффективность кода на своем оборудовании, вставив прагматики в созданный код. Прагматики определяют места в памяти для хранения данных и функций.

Заменить логическое значение на конкретное целое значение типа данных

Повышение скорости выполнения сгенерированного кода путем замены boolean встроенный тип данных с определенным целочисленным типом данных.

Скорость выполнения субномера

Минимизируйте возможность замедления выполнения или переполнения из-за задержки вычисления субнормального числа.

Умножение с плавающей запятой для обработки коррекции чистого откоса

Для процессоров, поддерживающих эффективное умножение, повысьте эффективность кода, используя умножение с плавающей запятой для обработки коррекции чистого наклона.

Оптимизация сгенерированного кода с использованием данных с фиксированной точкой с помощью Simulink ®, Stateflow ® и MATLAB ®

Создание кода с фиксированной точкой в Simulink ®, Stateflow ® и MATLAB ®.

Создание целевых оптимизаций в рамках кода алгоритма

Настройка сгенерированного кода алгоритма с оптимизацией для конкретных целей.

Установка параметров реализации аппаратных средств

Укажите характеристики целевого аппаратного устройства, которые могут быть критическими при разработке встраиваемых систем (например, размеры слов для char, short, int, и long типы данных или желаемое поведение округления в целочисленных операциях).

Оптимизация компилятора

Оптимизация компилятора управления

Управление оптимизацией компилятора для make-файла на уровне интерфейса пользователя Simulink.

Оптимизация, повышающая эффективность выполнения

Оптимизация использования глобальных переменных

Выберите глобальную оптимизацию ссылок на переменные, чтобы удовлетворить требованиям к использованию памяти и скорости выполнения.

Повышение эффективности выполнения за счет переупорядочивания операций блока в сгенерированном коде

Генератор кода может изменять порядок выполнения блока для повышения эффективности выполнения.

Оптимизация сгенерированного кода путем объединения нескольких для конструкций

Генератор кода использует анализ зависимости данных для объединения for конструкции для уменьшения размера статического кода и ветвления среды выполнения.

Оптимизация генерируемого кода для сложных сигналов

Генератор кода выполняет различные оптимизации структур, которые представляют сигналы в сгенерированном коде.

Настройка порога разбиения на шлейфы

Начиная со значения по умолчанию 5, генератор кода начинает использовать for цикл вместо отдельных операторов для назначения значений элементам массива сигналов или параметров.

Упрощение операций умножения при индексировании массивов

Генератор кода уменьшает число операций умножения в индексе массива, заменяя операцию умножения временной переменной.

Оптимизация сгенерированного кода с помощью функции memset

memset функция очищает внутреннее хранилище, независимо от типа, до целочисленной битовой комбинации 0 (то есть все биты выключены).

Использование функции memcpy для оптимизации сгенерированного кода для векторных назначений

Генератор кода оптимизирует сгенерированный код для векторных назначений путем замены for петли с memcpy вызовы функций.

Использовать выполнение ветви условного ввода

Для блоков Switch и Multiport Switch Simulink выполняет только те блоки, которые вычисляют управляющий вход и ввод данных, которые выбирает управляющий вход.

Оптимизация сгенерированного кода для операций с данными с фиксированной точкой

Генератор кода оптимизирует операции с фиксированной точкой, заменяя дорогостоящие операции разделения высокоэффективными операциями с продуктом.

Управление распределением памяти для массивов переменного размера в функциональном блоке MATLAB

Отключите динамическое выделение памяти или укажите порог динамического выделения памяти для функциональных блоков MATLAB.

Ускорение линейной алгебры в коде, сгенерированном из функционального блока MATLAB

Создание вызовов LAPACK для определенных функций линейной алгебры в блоке функции MATLAB. Укажите библиотеку LAPACK для использования.

Ускорение операций матрицы в коде, сгенерированном из функционального блока MATLAB

Создание вызовов BLAS для определенных операций матрицы низкого уровня. Укажите библиотеку BLAS для использования.

Ускорение быстрых преобразований Фурье в коде, сгенерированном из функционального блока MATLAB

Создание вызовов библиотеки FFTW для быстрых преобразований Фурье в блоке функции MATLAB. Укажите библиотеку FFTW.

Синхронизация многопоточного планирования FFTW в коде, сгенерированном из функционального блока MATLAB

Реализуйте методы класса обратного вызова библиотеки FFT и предоставляйте поддерживающий код C для предотвращения параллельного доступа к планированию FFTW.

Ускорение реализации for-loop в коде, созданном с помощью parfor

Реализация параллельных циклов для в сгенерированном коде для блока MATLAB Function и MATLAB System с использованием parfor.

Создание SIMD-кода из блоков Simulink

Повысьте скорость выполнения генерируемого кода с помощью технологий Intel SSE и Intel AVX.

Характерные примеры