void transposeBLAS(float *m, int n) { /* From mkl_trans.h: void MKL_Simatcopy( const char ordering, const char trans, size_t rows, size_t cols, const float alpha, float * AB, size_t lda, size_t ldb); Description of parameters at http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/mklxe/mkl_manual_win_mac/index.htm#bla/functn_mkl_imatcopy.htm */ MKL_Simatcopy ('R', 'T', n, n, 1, m, n, n); }
LIBXSTREAM_TARGET(mic) void mkl_imatcopy(size_t m, size_t n, float* matrix) { #if defined(LIBMICSMM_USE_MKLTRANS) && defined(__MKL) MKL_Simatcopy('R', 'T', m, n, 1.f, matrix, n, m); #endif }