I've started experimenting with the Media SDK and comparing results between an i7-860 and i7-2600, and while I'm getting a good speedup with the Sandy Bridge CPU (about 2x), I have some basic questions about what's going on under the hood.
1) Is there a difference between the AVX instruction set and the new enc/dec capability of Sandy Bridge? At first I thought they were the same thing, but after reading many discussions and watching some of the Intel intro videos, it sounds like the enc/dec which the Media SDK hooks into is a coprocessor (or SOC?) with a high-level interface, while AVX is a new instruction set. Is this correct?
2) At first I was not able to run the sample AVC encoder with the -hw flag on the i7-2600. After installing the latest graphics drivers the -hw flag worked. At this point where is the dividing line between the CPU and GPU? Is GPU functionality now embedded in the Sandy Bridge CPU, is the GPU using some functionality from the CPU, or is the enc/dec functionality in Sandy Bridge really part of a separate Intel GPU? Since the Media SDK is targeting Intel GPUs, I'm a bit confused as to how it really works with Sandy Bridge.
3) When I run the sample encoder application on the i7-2600 (without the -hw flag) it runs about twice as fast as on the i7-860. Is this software level using the AVX instruction set? When I run with the -hw flag (on the i7-2600), I see no timing difference (against non -hw on the i7-2600). Is this expected?
4) When the Media SDK is being run in SW mode, is it being redirected to IPP calls?
5) I guess it comes down to, what is SW vs. HW implementation in the Media SDK on Sandy Bridge? Is SW using IPP (and with it AVX instructions) while HW is using this new dedicated enc/dec "thing" which exists on the CPU/GPU?
I'm sure I will get some very useful links to diagrams and overviews about Sandy Bridge in response, but if I could also get answers to the specific questions I asked, I'd really appreciate it - I think it will also help me to better interpret the links I receive :).