BC/NW 2007, №1, (10) :11.3

 

Исследование производительности SIMD-операций

процессора  Celeron-M

 

А.С. Черных, М.П. Коношенко

 

(Москва, Московский энергетический институт (технический университет), Россия)

 

          SIMD расшифровывается как "одна инструкция много данных". Фактически, это способ упаковки нескольких однотипных операций в одну инструкцию. Благодаря введению SIMD-операций в доступных процессорах таких фирм, как Intel, AMD, можно получить ускорение в выполнении алгоритмов, поддающихся векторизации.  Области применения SIMD-операций различны, это например 3-D графика (игры), обработка изображений (фильтры Photoshop), обработка видео (MPEG, MPEG2, MPEG4), обработка видео (Dolby AC-3, DTS, mp3), а также высокопроизводительные вычисления. 

          В работе было проведено тестирование SIMD операций на базе блока SSE процессора Intel Celeron-M с ядром Banias. Была написана и протестирована библиотека функций на языке ассемблера, использующая SIMD-инструкции для чисел integer, float, double, byte, которую можно использовать в проектах на языке С. Было показано, что наибольший выигрыш можно получить при использовании многотактных операций (например операции деления), а также, что при уменьшении разрядности типов данных скорость выполнения операций возрастает. В заключение была приведена реальная программа, использующая тип данных float, на примере скалярного произведения векторов, которая использует SIMD-команды, а также результаты ее тестирования, показавшие двухкратный прирост производительности.

         

Литература:

1. Professional Assembly Language, Richard Blum,Wrox, 2005

2. Data alignment: Straighten up and fly right.  http://www-128.ibm.com/developerworks/ library/pa-dalign/