Speedups

Because it uses SIMD instructions Vector Pascal provides considerable speedups on vector loop based applications:

Table 1: Comparative Compiler Performances on Convolution using 1 Ghz Athlon

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

 

Delphi 4

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

 

Table 2: Pascal Compiler Performances in Million Ops per Second on vector kernels

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.