Non Intel Performance

Non Intel Performance


I am extremely impressed with the performance and value for money of the IPP libs and am just about to purchase, my one nagging doubt is that of performance on non Intel pcs. Does anyone have any experience?



6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.


we can use IPP performance measurement tool to estimate if the performance is enough for your purposes. You can find this tool in folder IPP oolsperfsys after IPP installation.
We are interested in your feedback, how you find this tool, is these data do present IPP performance in clear manner. If you need some clarification about measurement units we are using in this tool - please ask, we will be glad to help.


We have triedrunning an AMD Opteron/AMD64 machine and generating our
own static dispatch, dynamic loading dlls. These dll's call the SSE2 intel
optimized code, and give good performance. The code is all in one cpp, like:

#define STRICT
#undef IPPAPI
#define IPPAPI(type,name,args)
type __stdcall w7_##name args;
__declspec(naked dllexport) type name args { __asm { jmp w7_##name } }

BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
return TRUE;

You link with ippcorel.lib,ippsmerged.lib,ippimerged.lib to get your
customized ipp20.dll.

We still don't know how to do this for 64 bit XP though, the problems are:

1. No inline assmebly, new calling convention
2. There are only two types of libraries mx and m7. I think the m7 are SSE3
libraries and not suitable for AMD64. I'm not sure what level of
optimization the mx libraries are.



you are right Intel Pentium 4 with EM64T supports SSE3 instruction set, so IPP M7 libraries can contain SSE3 instructions which are not supported on non-Intel platforms.


Letssuppose that there was a non-Intel machine that supported SSE3,
or perhaps you wanted static dispatch for Intel machine.

Do you know how we would be able to do the static dispatch call without
using inline assembly?


It is very easy to use static dispatcher. The only thing you need is to link your application with merged/emerged libraries and call ippStaticInit() before call of any IPP function.


Leave a Comment

Please sign in to add a comment. Not a member? Join today