Генератор кода увеличивает скорость выполнения сгенерированного кода там, где это возможно, заменяя глобальные переменные локальными переменными, удаляя копии данных, используя memset
и memcpy
функции и уменьшение объема памяти для хранения данных. Можно увеличить скорость выполнения сгенерированного кода путем реализации оптимизации компилятора и процессора, определения повторного использования буфера и удаления кода, который может вам не понадобиться.
Управление размещением данных и функций в памяти путем вставки прагм
Увеличьте эффективность кода на вашем оборудовании, вставив прагмы в сгенерированный код. Прагмы задают местоположения в памяти для хранения данных и функций.
Замените логическое на определенный целочисленный тип данных
Улучшите скорость выполнения сгенерированного кода путем замены boolean
встроенный тип данных с определенным целочисленным типом данных.
Субнормальная скорость выполнения числа
Минимизируйте возможность замедления или переполнения выполнения из-за задержки вычисления субнормального числа.
Умножение с плавающей точкой для обработки коррекции сетевого наклона
Для процессоров, которые поддерживают эффективное умножение, улучшите эффективность кода с помощью умножения с плавающей точкой, чтобы обработать коррекцию наклона сети.
Сгенерируйте код с фиксированной точкой в Simulink®, Stateflow®, и MATLAB®.
Сгенерируйте целевые оптимизации в коде алгоритма
Настройте сгенерированный код алгоритма с целевой оптимизацией.
Установите параметры аппаратной реализации
Задайте характеристики целевого аппаратного устройства, которые могут быть критическими при разработке встраиваемых систем (такие как размеры слов для char
, short
, int
, и long
типы данных или желаемое округление поведения в целочисленных операциях).
Оптимизация компилятора управления
Управляйте оптимизацией компилятора для вашего make-файла на уровне пользовательского интерфейса Simulink.
Оптимизация использования глобальных переменных
Выберите глобальную оптимизацию ссылок переменной, чтобы удовлетворить требования к использованию памяти и скорости выполнения.
Повышение эффективности выполнения путем переупорядочивания блочных операций в сгенерированном коде
Генератор кода может изменить порядок выполнения блока, чтобы улучшить эффективность выполнения.
Оптимизируйте сгенерированный код путем объединения нескольких конструкций
Генератор кода использует анализ зависимостей данных для объединения for
Конструкции для уменьшения размера статического кода и ответвления во время выполнения.
Оптимизируйте сгенерированный код для сложных сигналов
Генератор кода выполняет различные оптимизации структур, которые представляют сигналы в сгенерированном коде.
Сконфигурируйте порог размотки цикла
Начиная со значения по умолчанию 5, генератор кода начинает использовать for
цикл вместо отдельных операторов для назначения значений элементам массива сигналов или параметров.
Упрощение операций умножения при индексации массивов
Генератор кода уменьшает количество раз, которое операция умножения выполняет в индексе массива путем замены операции умножения временной переменной.
Оптимизируйте сгенерированный код, используя функцию memset
The memset
функция очищает внутреннее запоминающее устройство, независимо от типа, до целочисленного битового шаблона 0 (то есть все биты отключены).
Используйте функцию memcpy для оптимизации сгенерированного кода для назначений векторов
Генератор кода оптимизирует сгенерированный код для назначений векторов путем замены for
циклы с memcpy
вызовы функций.
Использование условного входа ветви
Для блоков Switch и Multiport Switch Simulink выполняет только блоки, которые вычисляют вход управления и данные, которые выбирает вход управления.
Оптимизируйте сгенерированный код для операций с данными с фиксированной точкой
Генератор кода оптимизирует операции с фиксированной точкой путем замены дорогостоящих операций деления высокоэффективными операциями продукта.
Управляйте выделением памяти для массивов переменного размера в блоке MATLAB function
Отключите динамическое выделение памяти или задайте порог динамического выделения памяти для блоков MATLAB Function.
Ускорение увеличения линейной алгебры в коде, сгенерированном из блока MATLAB function
Сгенерируйте вызовы LAPACK для определенных линейных алгебр-функций в блоке MATLAB function. Укажите библиотеку LAPACK для использования.
Ускорение матричных операций в коде, сгенерированном из блока MATLAB function
Сгенерируйте вызовы BLAS для определенных низкоуровневых матричных операций. Укажите библиотеку BLAS для использования.
Ускорение быстрых преобразований Фурье в коде, сгенерированном из блока MATLAB function
Сгенерируйте вызовы библиотеки FFTW для быстрых преобразований Фурье в блоке MATLAB Function. Укажите библиотеку FFTW.
Синхронизация многопоточного планирования FFTW в коде, сгенерированном из блока MATLAB function
Реализуйте методы класса коллбэка библиотеки FFT и предоставьте поддерживающий код С, чтобы предотвратить параллельный доступ к планированию FFTW.
Ускорение реализации в цикле в коде, сгенерированном использованием parfor
Реализуйте параллельные циклы for-loops в сгенерированном коде для MATLAB Function и MATLAB System блока с помощью parfor.
Сгенерируйте код SIMD из блоков Simulink
Улучшите скорость выполнения сгенерированного кода с помощью технологий Intel SSE и Intel AVX.