OpenCores
URL https://opencores.org/ocsvn/neorv32/neorv32/trunk

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [sw/] [example/] [dhrystone/] [README.md] - Blame information for rev 72

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 63 zero_gravi
# Dhrystone Benchmark
2
 
3
:copyright: Original sources from [https://github.com/sifive/benchmark-dhrystone](https://github.com/sifive/benchmark-dhrystone) (also, see `LICENSE`).
4
The source code has been modified for the NEORV32 processor.
5
 
6
To compile the NEORV32 executable:
7
```
8
neorv32/sw/example/dhrystone$ sh dhrystone.sh
9
```
10
 
11
The default number of iterations is 2000000. You can modify this by changing `USER_FLAGS+=-DDHRY_ITERS=2000000` in `dhrystone.sh`.
12
The default optimization level (EFFORT) is `O3`.
13
 
14
:warning: Dhrystone will require an IMEM size of 16kB and a DMEM size of 16kB. The MTIME machine timer is used for timing evaluation.
15
 
16
:construction: Porting Dhrystone is still work-in-progress. Performance results might be incorrect and not optimized.
17
All results only show the integer parts.
18
 
19
### Exemplary Output
20
 
21 72 zero_gravi
Output generated for processor HW version [v1.5.9.1](https://github.com/stnolting/neorv32/blob/main/CHANGELOG.md)
22 63 zero_gravi
using performance-optimized configuration options.
23
 
24
```
25
NEORV32: Processor running at 100000000 Hz
26
NEORV32: Executing Dhrystone (2000000 iterations). This may take some time...
27
 
28
 
29
Dhrystone Benchmark, Version 2.1 (Language: C)
30
 
31
Program compiled without 'register' attribute
32
 
33
Execution starts, 2000000 runs through Dhrystone
34
Execution ends
35
 
36
Final values of the variables used in the benchmark:
37
 
38
Int_Glob:            5
39
        should be:   5
40
Bool_Glob:           1
41
        should be:   1
42
Ch_1_Glob:           A
43
        should be:   A
44
Ch_2_Glob:           B
45
        should be:   B
46
Arr_1_Glob[8]:       7
47
        should be:   7
48
Arr_2_Glob[8][7]:    2000010
49
        should be:   Number_Of_Runs + 10
50
Ptr_Glob->
51
  Ptr_Comp:          -2147467428
52
        should be:   (implementation-dependent)
53
  Discr:             0
54
        should be:   0
55
  Enum_Comp:         2
56
        should be:   2
57
  Int_Comp:          17
58
        should be:   17
59
  Str_Comp:          DHRYSTONE PROGRAM, SOME STRING
60
        should be:   DHRYSTONE PROGRAM, SOME STRING
61
Next_Ptr_Glob->
62
  Ptr_Comp:          -2147467428
63
        should be:   (implementation-dependent), same as above
64
  Discr:             0
65
        should be:   0
66
  Enum_Comp:         1
67
        should be:   1
68
  Int_Comp:          18
69
        should be:   18
70
  Str_Comp:          DHRYSTONE PROGRAM, SOME STRING
71
        should be:   DHRYSTONE PROGRAM, SOME STRING
72
Int_1_Loc:           5
73
        should be:   5
74
Int_2_Loc:           13
75
        should be:   13
76
Int_3_Loc:           7
77
        should be:   7
78
Enum_Loc:            1
79
        should be:   1
80
Str_1_Loc:           DHRYSTONE PROGRAM, 1'ST STRING
81
        should be:   DHRYSTONE PROGRAM, 1'ST STRING
82
Str_2_Loc:           DHRYSTONE PROGRAM, 2'ND STRING
83
        should be:   DHRYSTONE PROGRAM, 2'ND STRING
84
 
85
Microseconds for one run through Dhrystone: 13
86
Dhrystones per Second:                      76923
87
 
88
NEORV32: << DETAILED RESULTS (integer parts only) >>
89
NEORV32: Total cycles:      2662000187
90
NEORV32: Cycles per second: 100000000
91
NEORV32: Total runs:        2000000
92
 
93
NEORV32: DMIPS/s:           76923
94
NEORV32: DMIPS/MHz:         769
95
 
96
NEORV32: VAX DMIPS/s:       43
97
NEORV32: VAX DMIPS/MHz:     43/100
98
```

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.