Оптимизация оперативной памяти

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

Эти следующие функции в DSP System Toolbox™ поддерживают оптимизацию оперативной памяти.

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

Three Discrete FIR Filter blocks are connected to each other in a sequence. Each block is labelled. The first block is named Discrete FIR Filter, second block is named Discrete FIR Filter1, and the last block is named Discrete FIR Filter2. The input port of the first block is connected to an Inport block. The output port of the last block is connected to an Outport block.

Когда вы генерируете код из такой модели, вы можете увидеть локальную оптимизацию в сгенерированном коде.

В этом разделе показан оптимизированный по месту сгенерированный код. Три for циклы с индексом итерации n соответствовать соответствующему блоку Discrete FIR Filter в Simulink® модель. В каждом из этих трех for циклы, выходы фильтра вычисляются и сохраняются в буфере m3fir_Y.Output[]. Буфер m3fir_Y.Output[] перезаписывает свое значение каждый раз, когда блок Discrete FIR Filter имеет обновленный выход.

This image shows a sequence of for loops in the in-place optimized generated code. The first two for loops control the iteration over the number of input channels and the samples in each channel. The first for loop with the iteration index n corresponds to the first Discrete FIR Filter block.

This image contains two for loops with the iteration index n. These loops correspond to the last two Discrete FIR Filter blocks.

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

Когда вы генерируете код из MATLAB® алгоритм, содержащий последовательность dsp.FIRFilter объекты, вы видите подобную оптимизацию в сгенерированном коде.

См. также

Функции

Похожие темы

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