Skip to content

Commit 06e3b07

Browse files
authored
Handle OPENBLAS_LOOPS and OPENBLAS_TEST options
1 parent 623be66 commit 06e3b07

1 file changed

Lines changed: 24 additions & 8 deletions

File tree

benchmark/getri.c

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,27 @@ int main(int argc, char *argv[]){
7272
FLOAT *a,*work;
7373
FLOAT wkopt[4];
7474
blasint *ipiv;
75-
blasint m, i, j, info,lwork;
75+
blasint m, i, j, l, info,lwork;
7676

7777
int from = 1;
7878
int to = 200;
7979
int step = 1;
80+
int loops = 1;
8081

81-
double time1;
82+
double time1,timeg;
83+
84+
char *p;
85+
char btest = 'I';
8286

8387
argc--;argv++;
8488

8589
if (argc > 0) { from = atol(*argv); argc--; argv++;}
8690
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
8791
if (argc > 0) { step = atol(*argv); argc--; argv++;}
8892

93+
if ((p = getenv("OPENBLAS_TEST"))) btest=*p;
94+
95+
if ((p = getenv("OPENBLAS_LOOPS"))) loops=*p;
8996

9097
fprintf(stderr, "From : %3d To : %3d Step = %3d\n", from, to, step);
9198

@@ -124,32 +131,41 @@ int main(int argc, char *argv[]){
124131
fprintf(stderr, " SIZE FLops Time Lwork\n");
125132

126133
for(m = from; m <= to; m += step){
127-
134+
timeg = 0.;
128135
fprintf(stderr, " %6d : ", (int)m);
129136

130-
GETRF (&m, &m, a, &m, ipiv, &info);
137+
for (l = 0; l < loops; l++) {
131138

139+
if (btest == 'F') begin();
140+
GETRF (&m, &m, a, &m, ipiv, &info);
141+
if (btest == 'F') {
142+
end();
143+
timeg += getsec();
144+
}
132145
if (info) {
133146
fprintf(stderr, "Matrix is not singular .. %d\n", info);
134147
exit(1);
135148
}
136149

137-
begin();
150+
if (btest == 'I') begin();
138151

139152
lwork = -1;
140153
GETRI(&m, a, &m, ipiv, wkopt, &lwork, &info);
141154

142155
lwork = (blasint)wkopt[0];
143156
GETRI(&m, a, &m, ipiv, work, &lwork, &info);
144-
end();
157+
if (btest == 'I') end();
145158

146159
if (info) {
147160
fprintf(stderr, "failed compute inverse matrix .. %d\n", info);
148161
exit(1);
149162
}
150163

151-
time1 = getsec();
152-
164+
if (btest == 'I')
165+
timeg += getsec();
166+
167+
} // loops
168+
time1 = timeg/(double)loops;
153169
fprintf(stderr,
154170
" %10.2f MFlops : %10.2f Sec : %d\n",
155171
COMPSIZE * COMPSIZE * (4.0/3.0 * (double)m * (double)m *(double)m - (double)m *(double)m + 5.0/3.0* (double)m) / time1 * 1.e-6,time1,lwork);

0 commit comments

Comments
 (0)