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

How to multiply each row of matrix by a single column in CBLAS

Pinkerton__James
Beginner
235 Views


I'd like to do the following in CBLAS:

static float a[max_i][max_j];
static float b[max_i][max_j];
static float vec[max_i];

for (size_t i = 0; i < max_i; i++) {
  for (size_t j = 0; j < max_j; j++) {
    b += vec * a;
  }
}

Is there a single performant function that I can use to do this whole thing (assuming I alter the 2d arrays to be 1d arrays)? I know I can do this with a for loop of cblas_saxpy's.

Thanks!

0 Kudos
1 Reply
Ying_H_Intel
Employee
235 Views

Hi James,
​It seems no one blas function can do this.  Maybe you can take vec as diagonal element of one matrix, other as 0, then call gemm. B=A*V+B 
Best Regards,
​Ying

0 Kudos
Reply