mkl_sparse_d_mm 函数的原型为:

sparse_status_t mkl_sparse_d_mm(sparse_operation_t operation, double alpha, const sparse_matrix_t A,
                                const struct matrix_descr descr, sparse_layout_t layout, const double *x,
                                MKL_INT columns, MKL_INT ldx, double beta, double *y, MKL_INT ldy);

其中,y 参数是输出参数,表示结果矩阵。beta 参数表示结果矩阵的初始值。如果将 beta 设置为 0,则结果矩阵会被清空。如果将 beta 设置为 1,则结果矩阵会被保留,并将新的结果与原有结果相加。

如果要将结果存放在第二个矩阵中,可以将 beta 设置为 0,然后将第二个矩阵 y 作为输出参数传入函数即可。例如:

double *y = /* 第二个矩阵 */; 
mkl_sparse_d_mm(SPARSE_OPERATION_NON_TRANSPOSE, 1.0, A, descr, SPARSE_LAYOUT_ROW_MAJOR, 
                x, n, n, 0.0, y, n);

这样,函数会将结果存放在 y 矩阵中。注意,y 矩阵必须有足够的空间来存放结果。

使用 MKL 函数 mkl_sparse_d_mm 实现稀疏矩阵乘法并存储结果到第二个矩阵

原文地址: https://www.cveoy.top/t/topic/onNO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录