exponenta event banner

Оптимизация таблицы подстановки

Таблица поиска функций - это метод, с помощью которого можно аппроксимировать функцию с помощью таблицы с конечным числом точек (X, Y). Значения X таблицы подстановки называются точками останова. Аппроксимация значения идеальной функции в точке осуществляется путем интерполяции между двумя точками останова, ближайшими к точке. Поскольку поиск в таблице и простые оценки могут быть быстрее, чем оценки математических функций, использование блоков таблиц поиска часто приводит к увеличению скорости при моделировании модели.

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

  • Ограничить неравномерность таблиц подстановки.

    Неравномерно разнесенные точки останова требуют алгоритма общего назначения, такого как двоичный поиск, чтобы определить, где находятся входные данные относительно точек останова. Это дополнительное вычисление увеличивает ПЗУ и время выполнения.

  • Предотвращение обработки равномерно разнесенных таблиц поиска как неравномерно разнесенных.

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

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

  • Используйте мощность двух точек останова с интервалом в таблицах поиска.

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

В следующей таблице суммированы эффекты интервала точек останова таблицы подстановки.

Параметр

Четная мощность 2 разнесенных данных

Равномерно разнесенные данные

Неравномерно разнесенные данные

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

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

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

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

Ошибка

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

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

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

Использование ПЗУ

Использует меньше ПЗУ команд, но больше ПЗУ данных.

Использует меньше ПЗУ команд, но больше ПЗУ данных.

Использует больше ПЗУ команд, но меньше ПЗУ данных.

Использование ОЗУ

Несущественно.

Несущественно.

Несущественно.

Используйте проверку «Определить сомнительные операции с фиксированной точкой» (Model Advisor Identify Questable Fixed-Point Operations), чтобы определить блоки таблиц поиска, в которых существует возможность повышения эффективности.

Связанные темы