Skip to content

Commit 1d4ffdd

Browse files
committed
added conf option for number of loops
1 parent b0e7810 commit 1d4ffdd

1 file changed

Lines changed: 28 additions & 16 deletions

File tree

benchmark/gemm.c

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -123,17 +123,18 @@ int MAIN__(int argc, char *argv[]){
123123
FLOAT *a, *b, *c;
124124
FLOAT alpha[] = {1.0, 1.0};
125125
FLOAT beta [] = {1.0, 1.0};
126-
127126
char trans='N';
128-
129127
blasint m, i, j;
128+
int loops = 1;
129+
int l;
130+
char *p;
130131

131132
int from = 1;
132133
int to = 200;
133134
int step = 1;
134135

135136
struct timeval start, stop;
136-
double time1;
137+
double time1,timeg;
137138

138139
argc--;argv++;
139140

@@ -155,6 +156,9 @@ int MAIN__(int argc, char *argv[]){
155156
fprintf(stderr,"Out of Memory!!\n");exit(1);
156157
}
157158

159+
p = getenv("OPENBLAS_LOOPS");
160+
if ( p != NULL )
161+
loops = atoi(p);
158162

159163

160164
#ifdef linux
@@ -166,29 +170,37 @@ int MAIN__(int argc, char *argv[]){
166170
for(m = from; m <= to; m += step)
167171
{
168172

173+
timeg=0;
174+
169175
fprintf(stderr, " %6d : ", (int)m);
170176

171-
for(j = 0; j < m; j++){
172-
for(i = 0; i < m * COMPSIZE; i++){
173-
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
174-
b[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
175-
c[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
176-
}
177-
}
177+
for (l=0; l<loops; l++)
178+
{
179+
180+
for(j = 0; j < m; j++){
181+
for(i = 0; i < m * COMPSIZE; i++){
182+
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
183+
b[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
184+
c[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
185+
}
186+
}
187+
188+
gettimeofday( &start, (struct timezone *)0);
178189

179-
gettimeofday( &start, (struct timezone *)0);
190+
GEMM (&trans, &trans, &m, &m, &m, alpha, a, &m, b, &m, beta, c, &m );
180191

181-
GEMM (&trans, &trans, &m, &m, &m, alpha, a, &m, b, &m, beta, c, &m );
192+
gettimeofday( &stop, (struct timezone *)0);
182193

183-
gettimeofday( &stop, (struct timezone *)0);
194+
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
184195

185-
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
196+
timeg += time1;
186197

187-
gettimeofday( &start, (struct timezone *)0);
198+
}
188199

200+
timeg /= loops;
189201
fprintf(stderr,
190202
" %10.2f MFlops\n",
191-
COMPSIZE * COMPSIZE * 2. * (double)m * (double)m * (double)m / time1 * 1.e-6);
203+
COMPSIZE * COMPSIZE * 2. * (double)m * (double)m * (double)m / timeg * 1.e-6);
192204

193205
}
194206

0 commit comments

Comments
 (0)