A question on syntax of ?gemm.

A question on syntax of ?gemm.

Hi, eveyone. I have a simple question on the syntax of ?gemm.

In Intel MKL Reference Manual, the syntax of dgemm is

dgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)

The parameter description of beta is "When beta is equal to zero, then c need not be set on input". I just don't quite understand the meaning of "c need not be set on input". If I merely want to do a matrix multiplication, say c=matmul(a,b). According to the description of ?gemm, c:=alpha*op(a)*op(b)+beta*c, I set beta equal zero. I expect the result should be c:=alpha*op(a)*op(b), however, what I get is c equals zero! So, what's the problem? What's the meaning of "c need not be set on input"?

Thanks in advance!

CPU: Intel Core 2 Duo 2.4 GHz
OS: Mac OS X 10.5.8
Linux: Debian 5.0 x86_64
Compiler: Intel Fortran Compiler 11.1 & Intel C++ Compiler 11.1 (with Intel MKL included)
2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.


In case if beta is equal to zero matrix c will not be as input matrix and therefore c:=alpha*op(a)*op(b).

But if c matrix is set with all rezos on input and beta is not equal to zero then the result will be the samebut withjust worseperformance.

-- Victor

Leave a Comment

Please sign in to add a comment. Not a member? Join today