Because
it uses SIMD instructions Vector Pascal provides considerable speedups on
vector loop based applications:
Program |
Implementation |
Target Processor |
Million Ops Per Second |
Cpu |
conv |
Vector Pascal |
Pentium + MMX |
61 |
1 Ghz Athlon |
|
Borland Pascal |
286 + 287 |
5.5 |
1 Ghz Athlon |
|
|
486 |
86 |
1 Ghz Athlon |
|
DevPascal |
486 |
62 |
1 Ghz Athlon |
|
Free Pascal |
386 |
138 |
1.6Ghz Centrino |
pconv |
Vector Pascal |
486 |
80 |
1 Ghz Athlon |
|
Vector Pascal |
Pentium + MMX |
817 |
1 Ghz Athlon |
|
Vector Pascal |
Intel SSE1 |
1240 |
1.6Ghz Centrino |
TEST |
DevP |
TMT |
BP 286 |
DP 4 |
VP 486 |
VP K6 |
VP P4 |
CPU USED |
1 Ghz Athlon |
1 Ghz Athlon |
1 Ghz Athlon |
1 Ghz Athlon |
1 Ghz Athlon |
1 Ghz Athlon |
1.6 Ghz Centrino |
unsigned
byte additions |
71 |
80 |
46 |
166 |
333 |
2329 |
7220 |
saturated
unsigned byte additions |
55 |
57 |
38 |
110 |
225 |
2329 |
9142 |
32 bit
integer additions |
85 |
59 |
47 |
285 |
349 |
635 |
1210 |
16 bit
integer additions |
66 |
74 |
39 |
124 |
367 |
1165 |
5120 |
real
additions |
47 |
10 |
33 |
250 |
367 |
582 |
1174 |
pixel
additions |
49 |
46 |
23 |
98 |
188 |
2330 |
11907 |
pixel
multiplications |
67 |
14 |
39 |
99 |
158 |
998 |
12487 |
real dot
product |
47 |
10 |
32 |
161 |
164 |
665 |
395 |
integer
dot product |
79 |
58 |
33 |
440 |
517 |
465 |
516 |
Abbreviations
DevP - Dev Pascal version 1.9, TMT - TMT Pascal
version 3, BP 286 - Borland Pascal compiler with 287 instructions enabled range
checks off., DP 4 - Delphiversion 4, VP 486 - Vector
Pascal targeted at a 486 , VP K6 - Vector Pascal
targeted at an AMD K6 VP P4 – Vector Pascal
targeted at Intel SSE2 instructionset.