SIMDoperasjoner
SIMD står for Single Instruction, Multiple Data og beskriver en teknikk der en enkelt instruksjon opererer på flere datapunkter samtidig. Ved å behandle flere datapunkter i parallell kan prosessorer oppnå betydelige ytelsesforbedringer i dataintensive oppgaver som bilde- og lydbehandling, vitenskapelige beregninger og spillgrafikk. Grunnprinsippet er at data legges i vektorregistre og operasjoner utføres på hele vektorens lengde i én syklus. Vektorbredden varierer mellom arkitekturer, typisk 128, 256 eller 512 biter. Eksempler på implementeringer inkluderer SSE og AVX fra Intel/AMD, NEON fra ARM og Altivec fra eldre PowerPC-arkitekturer. Moderne systemer kan også støtte SIMD i andre miljøer, som WebAssembly SIMD eller ulike tilpassede varianter.
Programmering med SIMD skjer vanligvis på to måter. Lavnivå intrinsics gir direkte tilgang til vektorregistre og
Ytelsene avhenger av minneadgang og datalokalitet. SIMD gir størst gevinst når dataene ligger fortløpende i minnet