Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Non Intel Performance

metalmickey
Beginner
569 Views
Hi
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?
Cheers
Chris
0 Kudos
5 Replies
Vladimir_Dudnik
Employee
569 Views
Hi,
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.
Regards,
Vladimir
0 Kudos
jolsson
Beginner
569 Views
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
#define WIN32_LEAN_AND_MEAN
#include
#undef IPPAPI
#define IPPAPI(type,name,args)
type __stdcall w7_##name args;
__declspec(naked dllexport) type name args { __asm { jmp w7_##name } }
#include

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.
Jonas
0 Kudos
Vladimir_Dudnik
Employee
569 Views
Hi,
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.
Regards,
Vladimir
0 Kudos
jolsson
Beginner
569 Views
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?
Jonas
0 Kudos
Vladimir_Dudnik
Employee
569 Views
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.
Vladimir
0 Kudos
Reply