| 160 | } |
| 161 | |
| 162 | void csr_csr_mul(int m, int n, int k, const SyncArray<kernel_type> &ws_val, const SyncArray<int> &ws_col_ind, |
| 163 | const SyncArray<int> &ws_row_ptr, const SyncArray<kernel_type> &csr_val, |
| 164 | const SyncArray<int> &csr_row_ptr, const SyncArray<int> &csr_col_ind, int nnz, int nnz2, |
| 165 | SyncArray<kernel_type> &result) { |
| 166 | Eigen::Map<const Eigen::SparseMatrix<kernel_type, Eigen::RowMajor>> sparseMat1(m, k, nnz, csr_row_ptr.host_data(), |
| 167 | csr_col_ind.host_data(), |
| 168 | csr_val.host_data()); |
| 169 | Eigen::Map<const Eigen::SparseMatrix<kernel_type>> sparseMat2(k, n, nnz2, ws_row_ptr.host_data(), |
| 170 | ws_col_ind.host_data(), |
| 171 | ws_val.host_data()); |
| 172 | Eigen::Matrix<kernel_type, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor> retMat = sparseMat1 * sparseMat2; |
| 173 | Eigen::Map<Eigen::Matrix<kernel_type, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor> >(result.host_data(), |
| 174 | retMat.rows(), |
| 175 | retMat.cols()) = retMat; |
| 176 | } |
| 177 | |
| 178 | void dns_dns_mul(int m, int n, int k, const SyncArray<kernel_type> &dense_mat, |
| 179 | const SyncArray<kernel_type> &origin_dense, SyncArray<kernel_type> &result){ |
no test coverage detected