Что означает Streaming в Streaming SIMD Extensions (SSE)?

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

  • Обертки для резервных хранилищ данных, предназначенных для использования в качестве уровня абстракции между потребителями и поставщиками.
  • Данные становятся доступными со временем, а не сразу

SIMD означает «Одна инструкция, несколько данных»; в литературе часто говорится, что инструкции исходят из потока инструкций. Это соответствует второй ассоциации.

Однако я не совсем понимаю, почему Streaming в Streaming SIMD Extensions (или в Streaming Multiprocessor). Инструкции приходят из потока, но могут ли они прийти откуда-то еще? Есть ли у нас или могут быть только расширения SIMD или только мультипроцессоры?

Tl;dr: могут ли инструкции ЦП быть непотоковыми, т. е. не исходить из потока?


person David Cian    schedule 04.11.2019    source источник


Ответы (1)


SSE был представлен как набор инструкций для повышения производительности мультимедийных приложений. Цель набора инструкций состояла в том, чтобы быстро передавать некоторые данные (например, какой-то фрагмент DVD для декодирования), быстро обрабатывать их (используя SIMD) и затем передавать результат на выход (например, графическая память). (Почти) Все инструкции SSE имеют вариант, позволяющий читать 16 байт из памяти. Набор инструкций также содержит инструкции для управления кешем ЦП и предварительной выборкой аппаратного обеспечения. Это просто маркетинговый термин.

person robthebloke    schedule 04.11.2019
comment
Инструкция сохранения NT с обходом кеша (movntps) в SSE1 на самом деле называется _mm_stream_ps() во встроенных функциях. Но я думаю, что это название следует из Streaming SIMD Extensions, а не наоборот. 100% согласились с тем, что это просто маркетинг, не очень значимый или полезный для понимания того, что такое SSE. - person Peter Cordes; 05.11.2019