1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| typename T::value_type*ad;
typename T::value_type*bd;
typename T::value_type*cd;
int m,n,k;
int lda,ldb,ldc;
double alpha(1.0), beta(1.0);
m =(int) T::ValueX;
n =(int) T::ValueY;
k =(int) T::ValueY;
lda = ldb = ldc = T::ValueX;
ad = new typename T::value_type[T::ValueX*T::ValueY];
bd = new typename T::value_type[T::ValueX*T::ValueY];
cd = new typename T::value_type[T::ValueX*T::ValueY];
memset((void*)cd,0,T::ValueX*T::ValueY*sizeof(typename T::value_type));
for(int i(0); i< T::ValueX*T::ValueY ; ++i){
ad[i] = Rd();
bd[i] = Rd();
}
TimerPTH t1("blas");
t1.begin();
dgemm("N","N", &m, &n, &k, &alpha, ad, &lda, bd, &ldb, &beta, cd, &ldc);
t1.end();
delete [] ad;
delete [] bd;
delete [] cd;
} |
Partager