Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Documentation typo for mkl_?omatcopy

Ikuma__Takeshi
Beginner
799 Views

I'm reporting documentation inaccuracy for mkl_?omatcopy

https://software.intel.com/en-us/mkl-developer-reference-c-mkl-omatcopy

Definitions of `rows` and `cols` seem to be incorrect (at least for column-major calls)

`rows` and `cols` are documented to be the size of "matrix B (the destination matrix)" but they should be for the matrix A (the source matrix).

`lda` is correctly specified as the rows of A (for column major)

`ldb` is said to "must be at least equal to cols" for ordering = 'C' and trans = 'T'" which is only correct if `rows` and `cols` are defined for A.

I'm only speaking from my debugging experience for the case (ordering = 'C', trans = 'T'") so please validate this is true for all possible combinations.

Thanks,

Kesh Ikuma

0 Kudos
2 Replies
John_Young
New Contributor I
799 Views

This documentation error wasted a lot of my time today.  It would really help to have this fixed. 

My understanding from reading the OpenBlas implementation at

     https://github.com/xianyi/OpenBLAS/blob/develop/kernel/arm/omatcopy_ct.c

indicates that (at least for column-major ordering), ROWS and COLS should reference the A matrix size and not the B matrix size.

Could someone please confirm this?

Thanks,

John

 

 

0 Kudos
charles_s_4
Beginner
799 Views

There is a similar error for mkl_sparse_?_create_csc. The documentation is correct online:
https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-create-csc

sparse_status_t mkl_sparse_s_create_csc (sparse_matrix_t *A, sparse_index_base_tindexing, MKL_INT rows, MKL_INT cols, MKL_INT *cols_start, MKL_INT *cols_end, MKL_INT*row_indx, float *values);

The same function per mkl_spblas.h (2019)

sparse_status_t mkl_sparse_s_create_csc( sparse_matrix_t        *A,
                                             sparse_index_base_t    indexing, /* indexing: C-style or Fortran-style */
                                             MKL_INT    rows,
                                             MKL_INT    cols,
                                             MKL_INT    *rows_start,
                                             MKL_INT    *rows_end,
                                             MKL_INT    *col_indx,

                                             float      *values );

 

Not a big deal, but it was confusing for a while. It would be worthwhile to check if there are similar errors whenever the CSC format is used.

 

Thanks.

0 Kudos
Reply