What does the Streaming stand for in Streaming SIMD Extensions (SSE)?
Asked Answered
N

1

7

I've looked everywhere and I still can't figure it out. I know of two associations you can make with streams:

  • Wrappers for backing data stores meant as an abstraction layer between consumers and suppliers
  • Data becoming available with time, not all at once

SIMD stands for Single Instruction, Multiple Data; in the literature the instructions are often said to come from a stream of instructions. This corresponds to the second association.

I don't exactly understand why the Streaming in Streaming SIMD Extensions (or in Streaming Multiprocessor either), however. The instructions are coming from a stream, but can they come from anywhere else? Do we or could we have just SIMD extensions or just multiprocessors?

Tl;dr: can CPU instructions be non-streaming, i.e. not come from a stream?

Nonpros answered 4/11, 2019 at 20:17 Comment(0)
M
10

SSE was introduced as an instruction set to improve performance in multimedia applications. The aim for the instruction set was to quickly stream in some data (some bit of a DVD to decode for example), process it quickly (using SIMD), and then stream the result to an output (e.g. the graphics ram). (Almost) All SSE instructions have a variant that allows it to read 16bytes from memory. The instruction set also contains instructions to control the CPU cache and HW prefetcher. It's pretty much just a marketing term.

Melitta answered 4/11, 2019 at 23:5 Comment(1)
The cache-bypassing NT store instruction (movntps) in SSE1 is actually called _mm_stream_ps() in intrinsics. But I think that name follows from "Streaming SIMD Extensions", moreso than the other way around. 100% agreed on saying it's just marketing and not very meaningful or helpful in understanding what SSE is.Allocate

© 2022 - 2024 — McMap. All rights reserved.