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

Processor Types vs. Library Codes?

dug1
Beginner
592 Views
Hi there,

We are getting a bit confused about which ProcessorType goes with which Library Identification code, mainly with the latest processors.

Specifically, we got a new machine with a Core 2 Duo CPU E8200 2.67 GHz. When we used the ippGetCpuType() function, it returned '44' which is
ippCpuSSSE3 and not ippCpuCore2Duo as we would have expected.

Could someone please clarify which Library Identification Code should go with which Processor ID when returned from ippGetCpuType()? Please correct me if my assumptions are wrong.

Processor ID - Library ID Code
ippCpuUnknown - n/a
ippCpuPP - pX
ippCpuPMX - pX
ippCpuPPR - pX
ippCpuPII - pX
ippCpuPIII - a6
ippCpuP4 - w7
ippCpuP4HT - w7
ippCpuP4HT2 - t7
ippCpuCentrino - w7
ippCpuCoreSolo - v8
ippCpuCoreDuo - v8
ippCpuITP - a6
ippCpuITP2 - a6
ippCpuEM64T - t7
ippCpuC2D - p8
ippCpuC2Q - p8
ippCpuNehalem - ?
ippCpuBonnell - ?
ippCpuNext - ?
ippCpuSSE - ?
ippCpuSSE2 - ?
ippCpuSSE3 - ?
ippCpuSSSE3 - ?
ippCpuSSE41 - ?
ippCpuSSE42 - ?
ippCpuX8664 - ?

Many Thanks,
dug.
0 Kudos
5 Replies
dug1
Beginner
592 Views
I found a table on a previous post that gave the library for each processor type for most of the older processors, which has helped me fill out the list somehwat:

case: ippCpuUnknown: return CPU_PX;
case: ippCpuPP: return CPU_PX;
case: ippCpuPMX: return CPU_PX;
case: ippCpuPPR: return CPU_PX;
case: ippCpuPII: return CPU_PX;
case: ippCpuPIII: return CPU_A6;
case: ippCpuP4: return CPU_W7;
case: ippCpuP4HT: return CPU_W7;
case: ippCpuP4HT2: return CPU_T7;
case: ippCpuCentrino: return CPU_W7;
case: ippCpuCoreSolo: return CPU_V8;
case: ippCpuCoreDuo: return CPU_V8;
case: ippCpuITP: return CPU_I7;
case: ippCpuITP2: return CPU_I7;
case: ippCpuEM64T: return CPU_M7;
case: ippCpuC2D: return;
case: ippCpuC2Q: return;
case: ippCpuNehalem: return;
case: ippCpuBonnell: return;

case: ippCpuNext: return CPU_V8;
case: ippCpuSSE: return CPU_A6;
case: ippCpuSSE2: return CPU_W7;
case: ippCpuSSE3: return CPU_T7;
&nb sp; case: ippCpuSSSE3: return;
case: ippCpuSSE41: return;
case: ippCpuSSE42: return;

case: ippCpuX8664: return CPU_M7;



I would still like to know what the coressponding library codes should be for the following processor types:

ippCpuC2D
ippCpuC2Q
ippCpuNehalem
ippCpuBonnell

ippCpuSSSE3
ippCpuSSE41
ippCpuSSE42

Thanks.
0 Kudos
Vladimir_Dudnik
Employee
592 Views

Hello,

IPP 5.3 update 2 dispatcher should select the following processor specific libraries:

case ippCpuC2D: V8
case ippCpuC2Q: V8
case ippCpuBonnell: V8
case ippCpuSSSE3: V8
case ippCpuSSE41: P8
case ippCpuSSE42: P8
case ippCpuNehalem: P8

Regards,
Vladimir

0 Kudos
dug1
Beginner
592 Views
Many thanks Vladimir.
0 Kudos
Miklós_Szeles
Beginner
592 Views
Hi Vladimir!

Can you write here the associations for the em64t libraries too? I saw that there are four of them MX, M7, U8, Y8, but unfortunatelly I don't know, when to use which. I think it would be nice to have a function which gives back the architecture for a given CPU type.
Best Regards,
Miklos
0 Kudos
dug
Beginner
592 Views
Quoting - dug
I found a table on a previous post that gave the library for each processor type for most of the older processors, which has helped me fill out the list somehwat:

case: ippCpuUnknown: return CPU_PX;
case: ippCpuPP: return CPU_PX;
case: ippCpuPMX: return CPU_PX;
case: ippCpuPPR: return CPU_PX;
case: ippCpuPII: return CPU_PX;
case: ippCpuPIII: return CPU_A6;
case: ippCpuP4: return CPU_W7;
case: ippCpuP4HT: return CPU_W7;
case: ippCpuP4HT2: return CPU_T7;
case: ippCpuCentrino: return CPU_W7;
case: ippCpuCoreSolo: return CPU_V8;
case: ippCpuCoreDuo: return CPU_V8;
case: ippCpuITP: return CPU_I7;
case: ippCpuITP2: return CPU_I7;
case: ippCpuEM64T: return CPU_M7;
case: ippCpuC2D: return;
case: ippCpuC2Q: return;
case: ippCpuNehalem: return;
case: ippCpuBonnell: return;

case: ippCpuNext: return CPU_V8;
case: ippCpuSSE: return CPU_A6;
case: ippCpuSSE2: return CPU_W7;
case: ippCpuSSE3: return CPU_T7;
&nb sp; case: ippCpuSSSE3: return;
case: ippCpuSSE41: return;
case: ippCpuSSE42: return;

case: ippCpuX8664: return CPU_M7;



I would still like to know what the coressponding library codes should be for the following processor types:

ippCpuC2D
ippCpuC2Q
ippCpuNehalem
ippCpuBonnell

ippCpuSSSE3
ippCpuSSE41
ippCpuSSE42

Thanks.


Note that:

case ippCpuCoreDuo: return CPU_V8;

is incorrect and that it should be:

case ippCpuCoreDuo: return CPU_T7;
0 Kudos
Reply