Локальная оптимизация является методом оптимизации памяти, который использует один буфер, то есть ту же память для хранения входных и выходных данных. Каждый раз, когда в алгоритме существует промежуточное выходное значение, один и тот же буфер перезаписывается, чтобы хранить это значение. Этот метод оптимизирует использование памяти и генерирует код, который использует очень меньше памяти.
Эти следующие функции в DSP System Toolbox™ поддерживают оптимизацию оперативной памяти.
Чтобы проиллюстрировать метод оптимизации по месту, рассмотрим эту модель, которая содержит последовательность из трех, связанных Discrete FIR Filter блоков. Каждый блок фильтрует вход, который он получает, и генерирует выход того же размера, что и вход.
Когда вы генерируете код из такой модели, вы можете увидеть локальную оптимизацию в сгенерированном коде.
В этом разделе показан оптимизированный по месту сгенерированный код. Три for
циклы с индексом итерации n соответствовать соответствующему блоку Discrete FIR Filter в Simulink® модель. В каждом из этих трех for
циклы, выходы фильтра вычисляются и сохраняются в буфере m3fir_Y.Output[]. Буфер m3fir_Y.Output[] перезаписывает свое значение каждый раз, когда блок Discrete FIR Filter имеет обновленный выход.
Сгенерированный код повторно использует выходной буфер и, следовательно, эффективен и использует меньше памяти.
Когда вы генерируете код из MATLAB® алгоритм, содержащий последовательность dsp.FIRFilter
объекты, вы видите подобную оптимизацию в сгенерированном коде.
codegen
(MATLAB Coder)