10#ifndef TLAPACK_STARPU_GEMM_HH
11#define TLAPACK_STARPU_GEMM_HH
20template <
class TA,
class TB,
class TC,
class alpha_t,
class beta_t>
34 const idx_t m =
C.nrows();
35 const idx_t n =
C.ncols();
37 const idx_t nx =
C.get_nx();
38 const idx_t ny =
C.get_ny();
42 if (m == 0 || n == 0)
return;
61 for (idx_t ix = 0; ix < nx; ++ix) {
62 for (idx_t iy = 0; iy < ny; ++iy) {
65 starpu::insert_task_gemm<TA, TB, TC>(
67 beta,
C.tile(ix, iy));
69 starpu::insert_task_gemm<TA, TB, TC>(
71 B_.tile(
iz, iy),
one,
C.tile(ix, iy));
74 starpu::insert_task_gemm<TA, TB, TC>(
76 beta,
C.tile(ix, iy));
78 starpu::insert_task_gemm<TA, TB, TC>(
80 B_.tile(iy,
iz),
one,
C.tile(ix, iy));
85 starpu::insert_task_gemm<TA, TB, TC>(
87 beta,
C.tile(ix, iy));
89 starpu::insert_task_gemm<TA, TB, TC>(
91 B_.tile(
iz, iy),
one,
C.tile(ix, iy));
94 starpu::insert_task_gemm<TA, TB, TC>(
96 beta,
C.tile(ix, iy));
98 starpu::insert_task_gemm<TA, TB, TC>(
100 B_.tile(iy,
iz),
one,
C.tile(ix, iy));
Class for representing a matrix in StarPU that is split into tiles.
Definition Matrix.hpp:134
void gemm(Op transA, Op transB, const alpha_t &alpha, const matrixA_t &A, const matrixB_t &B, const beta_t &beta, matrixC_t &C)
General matrix-matrix multiply:
Definition gemm.hpp:61
#define tlapack_check(cond)
Throw an error if cond is false.
Definition exceptionHandling.hpp:98
Sort the numbers in D in increasing order (if ID = 'I') or in decreasing order (if ID = 'D' ).
Definition arrayTraits.hpp:15
typename traits::real_type_traits< Types..., int >::type real_type
The common real type of the list of types.
Definition scalar_type_traits.hpp:113
Op
Definition types.hpp:227
@ ConjTrans
conjugate transpose
Task insertion functions.