|
|
## SIMD
|
|
|
|
|
|
|
|
|
SIMD means Single Instruction Multiple Data.
|
|
|
SIMD means "Single Instruction, Multiple Data".
|
|
|
This is the typical processing model of todays GPUs (graphic processing units).
|
|
|
The main difference between SIMD and [Vector computing](vector-computing) is,
|
|
|
that vector units support permutation of vector elements.
|
|
|
This is a significant difference that makes vector computing much more powerful than SIMD processing,
|
|
|
at least if you compare n-element vectors with n-processing units in an SIMD architecture,
|
|
|
which is not quite fair, since today GPUs can process, say, 32 data elements in parallel (and have multiple cores),
|
|
|
but the CPUs have only vectors of size 4.
|
|
|
at least if you compare n-element vectors with n-processing units in an SIMD architecture.
|
|
|
This comparison is not quite fair, since today GPUs can process, say, 32 data elements in parallel (and have multiple cores),
|
|
|
but the CPUs have only floating point vectors of size 4.
|
|
|
|
|
|
|
|
|
GHC does not support GPUs so far.
|
|
|
GHC does not support GPUs (and thus SIMD) so far,
|
|
|
however support for vectors is planned.
|
|
|
|
|
|
## See also
|
|
|
|
|
|
- [ The Perils of parallel: Larrabee vs. Nvidia, MIMD vs. SIMD](http://perilsofparallel.blogspot.com/2008/09/larrabee-vs-nvidia-mimd-vs-simd.html)
|
|
|
|
|
|
- [ VectorComputing](http://hackage.haskell.org/trac/ghc/wiki/VectorComputing) The page for discussion of the SIMD feature addition to GHC. |
|
|
- [VectorComputing](vector-computing) The page for discussion of the Vector unit support in GHC. |