Skip to content

Commit dcfc5cf

Browse files
authored
Handle OPENBLAS_LOOPS for more stable results
1 parent 06e3b07 commit dcfc5cf

1 file changed

Lines changed: 13 additions & 7 deletions

File tree

benchmark/linpack.c

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,21 @@ int main(int argc, char *argv[]){
7272
FLOAT *a, *b;
7373
blasint *ipiv;
7474

75-
blasint m, i, j, info;
75+
blasint m, i, j, l, info;
7676
blasint unit = 1;
7777

7878
int from = 1;
7979
int to = 200;
8080
int step = 1;
81+
int loops = 1;
8182

8283
FLOAT maxerr;
8384

84-
double time1, time2;
85+
double time1, time2, timeg1,timeg2;
8586

87+
char *p;
88+
if ((p = getenv("OPENBLAS_LOOPS"))) loops=*p;
89+
8690
argc--;argv++;
8791

8892
if (argc > 0) { from = atol(*argv); argc--; argv++;}
@@ -110,9 +114,9 @@ int main(int argc, char *argv[]){
110114
fprintf(stderr, " SIZE Residual Decompose Solve Total\n");
111115

112116
for(m = from; m <= to; m += step){
113-
117+
timeg1 = timeg2 = 0.;
114118
fprintf(stderr, " %6d : ", (int)m);
115-
119+
for (l = 0; l < loops; l++) {
116120
for(j = 0; j < m; j++){
117121
for(i = 0; i < m * COMPSIZE; i++){
118122
a[(long)i + (long)j * (long)m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
@@ -138,7 +142,7 @@ int main(int argc, char *argv[]){
138142
exit(1);
139143
}
140144

141-
time1 = getsec();
145+
timeg1 += getsec();
142146

143147
begin();
144148

@@ -151,8 +155,10 @@ int main(int argc, char *argv[]){
151155
exit(1);
152156
}
153157

154-
time2 = getsec();
155-
158+
timeg2 += getsec();
159+
} //loops
160+
time1=timeg1/(double)loops;
161+
time2=timeg2/(double)loops;
156162
maxerr = 0.;
157163

158164
for(i = 0; i < m; i++){

0 commit comments

Comments
 (0)