2015-05-17 2 views
1

Я в замешательстве, в чем разница между SIMD и SSE, SSE2, SSE3, AVX и т. Д.?В чем разница между SIMD и SSE?

Согласно моим знаниям и исследованиям, SIMD - это архитектура, которая позволяет Single Instruction работать с несколькими данными и SSE, AVX - это наборы инструкций, которые реализуют архитектуру SIMD.

А также существует ли разница между размерами векторов каждой архитектуры, например SSE, 128 бит, а AVX имеет 256 бит? Если базовая архитектура SIMD одинакова (я думаю), то как разные ISA имеют разные размеры вектора?

Я не уверен, что это правда, может кто-нибудь объяснить мне подробно, что на самом деле происходит?

+0

Я не уверен, что этот вопрос полностью посвящен теме, поскольку вы, кажется, ссылаетесь на сами понятия, а не на вопрос программирования. –

+1

Точно так же, как «серый цвет», «SSE является SIMD». –

+1

SIMD - это парадигма программирования, в которой несколько элементов данных обрабатываются одной и той же инструкцией. SSE и AVX являются как расширениями набора команд x86, так и являются реализациями этой концепции SIMD. В определении SIMD нет ничего, что требует обработки 128 бит или 256 бит одновременно и не более того. Более того, SSE и AVX могут сосуществовать. –

ответ

2

Страница Википедии (http://en.m.wikipedia.org/wiki/SIMD) хорошо описывает объяснение SIMD и наборы инструкций, которые его реализуют.

Одиночная инструкция, несколько данных (SIMD), является классом параллельных компьютеров в таксономии Флинна. Он описывает компьютеры с несколькими элементами обработки, которые выполняют одну и ту же операцию на нескольких точках данных одновременно.

SIMD - это понятие, SSE/AVX - это реализация концепции. Все наборы инструкций SIMD - это всего лишь набор инструкций, которые процессор может выполнять на нескольких точках данных. Пока ЦПУ поддерживает выполнение инструкций, возможно, что несколько наборов команд SIMD будут сосуществовать независимо от размера данных.

+0

Является ли архитектура процессора отличной для разных процессоров, поддерживающих различные ISA, такие как архитектура процессора x86, поддерживающего SSE2, отличается от процессора на базе x86, поддерживающего AVX или MIC? –

+0

Трудно ответить, что в целом (и вроде бы от темы для SO), и зависит от того, какое определение архитектуры процессора. SIMD может быть просто дополнительным сопроцессором, что означает, что базовый процессор может быть идентичным, например, с ARM-корой A8 и Neon (что необязательно). Обратитесь к конкретной документации на чипы – MuertoExcobito

Смежные вопросы