Theo's Forum

IT-Consultant: Charles Pegge => Assembler => Assembly Programming => Topic started by: Kent Sarikaya on October 25, 2007, 09:57:33 AM

Title: SIMD
Post by: Kent Sarikaya on October 25, 2007, 09:57:33 AM
I read this post tonight and thought you guys might find it interesting. I didn't know this kind of stuff could be done with current cpus.
It is a c++ and ASM post, but very well written and describes this cool feature.

http://www.3dbuzz.com/vbforum/showthread.php?t=104753
Title: Re: SIMD
Post by: Charles Pegge on October 25, 2007, 12:47:38 PM
The SIMD extensions are primarily aimed at graphics vector processing and as the article points out, do not support square roots and the like directly, so these have to be approximated. They do the barebones minimum operations in parallel very efficiently, which is ideal for pixels, but can also be useful in other areas such as audio or simulation. Unfortunately, because the FPU shares much of the register and pipeline hardware as the MMX and SIMD extensions, you cant intermix FPU instructions with SSE instructions.

Current versions of PB go as far as supporting MMX but no further, so you will have to use opcodes to invoke the SIMD instructions.
Title: Re: SIMD
Post by: Kent Sarikaya on October 25, 2007, 09:57:21 PM
Thanks Charles. Your examples with ASM are so nice to look at that it doesn't scare someone from studying it. Now I understand how opcodes work too, so slowly grasping things :)