int main() { int N = 8000; double *A = new double[N * N]; double *B = new double[N * N]; double *C = new double[N * N]; auto start = std::chrono::high_resolution_clock::now(); Dgemm(A, B, C, N); auto end = std::chrono::high_resolution_clock::now(); auto diff = std::chrono::duration_cast<std::chrono::milliseconds>(end - start); std::cout << diff.count() << " ms" << std::endl; }
void Dgemm(NekMatrix<double, StandardMatrixTag>& result, const NekMatrix<ADataType, AMatrixType>& A, const NekMatrix<BDataType, BMatrixType>& B, double alpha) { Dgemm(result, alpha, A, B); }
void Dgemm(NekMatrix<double, StandardMatrixTag>& result, const NekMatrix<ADataType, AMatrixType>& A, const NekMatrix<BDataType, BMatrixType>& B, double alpha, double beta, const NekMatrix<CDataType, CMatrixType>& C) { Dgemm(result, alpha, A, B, beta, C); }