00001 #ifndef MXM_2D_H_ 00002 #define MXM_2D_H_ 00003 00004 #include <mpi.h> 00005 #include "cblas_wrappers/fupermod_memory.h" 00006 #include "cblas_wrappers/fupermod_cblas.h" 00007 #include "datapart_2d/mm_col_distr.h" 00008 00010 typedef struct fupermod_dgemm_workspace { 00012 fupermod_gemm* gemm; 00014 fupermod_float *WA; 00016 fupermod_float *WB; 00018 mm_col_i_distrib* idist; 00019 } fupermod_dgemm_workspace; 00020 00022 fupermod_dgemm_workspace* fupermod_dgemm_alloc(MPI_Comm comm, FILE* stream, fupermod_process_conf* confs, fupermod_gemm* gemm); 00023 00025 void fupermod_dgemm_free(fupermod_dgemm_workspace* w, fupermod_process_conf* conf); 00026 00028 int fupermod_dgemm(fupermod_float *A, fupermod_float *B, fupermod_float *C, MPI_Comm comm, fupermod_dgemm_workspace* w); 00029 00030 #endif /* MXM_2D_H_ */