Мегаобучалка Главная | О нас | Обратная связь


SIMD параллелизм. Основные классы SIMD компьютеров. Векторные команды в процессорах с архитектурой x86/x86_64.



2018-07-06 860 Обсуждений (0)
SIMD параллелизм. Основные классы SIMD компьютеров. Векторные команды в процессорах с архитектурой x86/x86_64. 0.00 из 5.00 0 оценок




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

Классификация Флинна ( SISD; SIMD: –векторные, матричные, –ассоциативные, систолические, –VLIW;MISD; MIMD)

Классы:

Симметричные мультипроцессорные системы (SMP),

Системы с неоднородным доступом к памяти (NUMA)

Параллельные векторные системы (PVP)

Массивно-параллельные системы (MPP)

Кластерные системы(COW)

NOW (Network of Workstation)

Техника использования графического процессора видеокарты(GPGPU)

Программируемая пользователем вентильная матрица (FPGA)

 
 

Векторные расширения включают:

– Векторные регистры – хранят множества скалярных значений

• Примеры: mm0-mm7, xmm0-xmm15, ymm0-ymm15

– Векторные команды – для работы с векторными регистрами

• paddb mm1,mm3; mulpd xmm0, xmm1

Особенности векторных команд работы с памятью:

– Существуют команды выровненного и невыровненного обращения к памяти

– Команды выровненного обращения требуют выровненного адреса и работают максимально быстро

– Команды невыровненного обращения могут обращаться по любому адресу, но могут работать медленнее

SIMD расширения на x86/x86_64

• MMX (Регистры: 8 64-битных регистров 57 инструкций. Арифметика с Насыщением.

Ограничения MMX: Нет чисел с плавающей запятой, регистры MMX совмещены с регистрами математического сопроцессора. Нельзя одновременно использовать MMX и сопроцессор)

• 3DNow ( Оно позволяет оперировать с новым типом данных – парой упакованных чисел в формате с плавающей точкой. Эти числа занимают по 2 * 32 бита в 64-х битовых регистрах ММХ. В систему команд добавлена 21 новая инструкция, большая часть которых предназначена для обработки упакованных чисел с плавающей точкой.)

 

• SSE (Pentium III, 8 128-битных регистров.

Операции над: 4 числами float (32), 2 числами llint(64)

Векторные и скалярные операции)

• SSE2 (Pentium 4 ,Возможна совместная работа с сопроцессором

128-битный регистр используется как:

Числа double

Числа float

Целых чисел)

 

• SSE3( Pentium 4 с ядром Prescott

Горизонтальная обработка (сложение и вычитание значений внутри одного регистра))

• SSE4 ( Регистры: 8 (16) × 16 байт • Типы данных: целочисленные, float, double • +Горизонтальные операции, специальные операции)

• AVX (Регистры: 16 × 32 байта • Типы данных: float, double • Команды с двумя источниками и приемником)

Программирование с использованием векторных расширений x86/x86_64 SSE.

Принцип – одновременная обработка нескольких элементов данных в одной команде.

Расширение SSE (Streaming SIMD Extension) С процессором IntelPentiumIII впервые появилось расширение SSE. Это расширение работает с независимым блоком из восьми 128-битных регистров XMM0-XMM7. Каждый регистр XMM представляет собой четыре упакованных 32-битных вещественных числа с одинарной точностью. Команды блока XMM позволяют выполнять как векторные (над всеми четырьмя значениями регистра), так и скалярные операции (только над одним самым младшим значением). Кроме команд для работы с блоком XMM в расширение SSE входят и дополнительные целочисленные команды для работы с регистрами MMX, а также команды управления кэшированием. В архитектуре x86-64 число регистров XMM было увеличено до 16-ти: XMM0-XMM15.

Функция выделения памяти .

#include <xmmintrin.h>

float *x; // массив для обработки с помощью SSE

x=(float)_mm_malloc(N*sizeof(float),16);

// : здесь обработка :

_mm_free(x);


Арифметические функции

_mm_add_ss

_mm_add_ps

_mm_sub_ss

_mm_sub_ps

_mm_mul_ps

_mm_div_ps

_mm_sqrt_ps

 

_mm_min_ps

_mm_max_ps

Логические функции

_mm_and_ps

_mm_or_ps

_mm_xor_ps

_mm_andnot_ps


 

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Добавил///////////////////////////////////////////////////////////////////////////

SSE состоит из:

SIMD расширение добавляет восемь (или 16, если процессор64-битный) 128-битных регистров XMM (XMM0-XMM7), разделённых на четыре 32-битных (одинарной точности)регистра с плавающей точкой. Также, в составе есть 32-битный (в x86-6464-битный) регистр управления и контроля, который также нужен для проверки состояния SSE инструкций.

Так как каждый регистр имеет 128-бит, может хранить всего 4из32-разрядных чисел с плавающей точкой (1бит знака,8-бит экспоненты, 23-х разрядная мантисса). На самом деле, за один такт могут выполняться любые данные помещающиеся в128 бит (буквы, целые числа, байты, с двойной точностью и т.д.) и всё зависит от оптимизации программы под определённую задачу.

 

Учитывая стандартную 32-разрядную машину таким образом, мы можем хранить и обрабатывать параллельно:

· 2 double

· 2 long

· 4 float

· 4 int

· 8 short

· 16 char

Благодаря SSE получается очень большой выигрыш в производительности, благодаря распараллеливанию вычислительных потоков данных (4 вычисления за такт). SSE может одновременно использовать свои инструкции вместе с инструкциями сопроцессора, так как регистры SSE и сопроцессора не являются общими. Это ещё одно неоспоримое преимущество, впрочем, как и возможность работать не с целыми числами.



2018-07-06 860 Обсуждений (0)
SIMD параллелизм. Основные классы SIMD компьютеров. Векторные команды в процессорах с архитектурой x86/x86_64. 0.00 из 5.00 0 оценок









Обсуждение в статье: SIMD параллелизм. Основные классы SIMD компьютеров. Векторные команды в процессорах с архитектурой x86/x86_64.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (860)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)