|  3DSoftware.com > Programming > SIMD |
|
SIMD
Single Instruction Multiple Data SIMD is Single Instruction Multiple Data. This refers to each machine instruction operating on more than one piece of data at once. The data are transformed in parallel, instead of sequentially. This parallel processing requires that the data be in vectors. A vector is a set of things. A single thing is a scalar. A single number is a scalar. A set of numbers is a vector. For example, here is a single number: 5 That is a scalar. |
|
|
References:
|
|||||||||||||||||||||||||
|
Getting Started with SIMD Advanced Micro Devices supports on-chip SIMD processing in all processor modes, including |
|
| http://developer.Amd.com/devguides.jsp#Manuals | |
|
Read those manuals even if you are not using an AMD-based system. Of particular interest is the Architecture Programmer's Manual Volume 4: 128-Bit Media Instructions. Also of interest are volumes 1 Volume 1 gives an overview of SIMD programming in Volume 3 covers general purpose programming. The following is an example program for C/C++: |
|
|
|
|
You could also use intrinsics instead of assembler. Do not proceed to write other SIMD programs until you get a program like this sample program to display the correct answer. The correct answer for this example is |
|
Microsoft Packet Order In assembly language, AMD uses Microsoft (backwards) packet ordering to be compatible with Microsoft Windows. The following example shows how digit packets can be shifted in assembly language: |
|
|
|
Copyright © 2008 by 3D Software. All rights reserved. 3D Software, P.O. Box 221190, Sacramento CA 95822 USA www.3DSoftware.com Contact us |
| Sunday, 06-Jul-2008 15:30:45 GMT |