Использование SIMD-расширений при написании программ 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Использование SIMD-расширений при написании программ

 

Использование векторных расширений может дать значительный прирост производительности, поэтому стремление их использовать является вполне оправданным. Существует несколько способов, позволяющих реализовать возможности имеющихся SIMD-расширений в программах языках высокого уровня:

1) Воспользоваться знаниями компилятора.

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

2) Использовать вставки на ассемблере.

 

При этом подходе мы полностью контролируем эффективность программы, исключая возможность компилятора помочь нам при создании эффективного кода. Недостатки этого подхода очевидны:

ñ необходимо знать основы программирования на языке ассемблера,

ñ ухудшается переносимость программ.

 

3) Использовать специальные встроенные функции (intrinsics), отображаемые в соответствующие команды SIMD-расширений. Конечно, эти команды должны поддерживаться компилятором. Преимуществами данного подхода, по сравнению с остальными, являются:

ñ возможность использовать SIMD-инструкции там, где это необходимо (а не надеяться на компилятор),

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

ñ возможность использования знаний компилятора при генерации кода (например, при отображении переменных на регистры и выбора порядка следования команд).

 



Поделиться:


Последнее изменение этой страницы: 2024-07-06; просмотров: 43; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.156 (0.005 с.)