BLAS functions used in Blaze

Issue #177 wontfix
Shahrzad Shirzad created an issue

Hi,

I'm trying to find out which BLAS functions are being utilized for what operations in blaze.
Could you please help me with that? And also, how does building blaze with BLAZE_BLAS_MODE=On affect those?

I've seen this page: https://bitbucket.org/blaze-lib/blaze/wiki/BLAS%20Functions, does this mean that when I'm multiplying two large matrices in blaze these BLAS functions are called?

Thanks.

Comments (5)

  1. Klaus Iglberger

    Hi Shahrzad!

    The only BLAS functions that are utilized by Blaze are the gemm() functions for the dense matrix multiplication (i.e. sgemm(), dgemm(), cgemm(), and zgemm()).

    The BLAZE_BLAS_MODE config switch determines whether Blaze is allowed to use BLAS kernels. If BLAZE_BLAS_MODE is set to 1 then depending on the size of the dense matrix, Blaze either uses BLAS kernels (for large matrices) or its own custom kernels (for small matrices). The threshold for this decision can be configured via the BLAZE_DMATDMATMULT_THRESHOLD, BLAZE_DMATTDMATMULT_THRESHOLD, BLAZE_TDMATDMATMULT_THRESHOLD and BLAZE_TDMATTDMATMULT_THRESHOLD config switches (see <blaze/config/Thresholds.h>). If BLAZE_BLAS_MODE is set to 0 then Blaze does not utilize the BLAS kernels and unconditionally uses its own custom kernels.

    The wiki lists all BLAS functions that Blaze provides a wrapper for. These functions mainly exist for benchmarking purposes.

    I hope this answers your question.

    Best regards,

    Klaus!

  2. Shahrzad Shirzad reporter

    May I ask the same the question about lapack functions? based on the wiki page for lapack functions the blaze operations which use lapack functions are only decomposition, inversion and determinant of dense matrices, right?

  3. Log in to comment