11#ifndef TLAPACK_STARPU_TASKS_HH
12#define TLAPACK_STARPU_TASKS_HH
18 constexpr double gemm(
double m,
double n,
double k)
22 constexpr double trsm(
double m,
double n) {
return m * m * n; }
23 constexpr double herk(
double n,
double k) {
return (n + 1) * n *
k; }
24 constexpr double chol(
double n) {
return (n / 3) * n * n; }
31 template <
class TA,
class TB,
class TC,
class alpha_t,
class beta_t>
40 using args_t = std::tuple<Op, Op, alpha_t, beta_t>;
60 C.create_compatible_inout_handles(handle,
A,
B);
65 task->handles[0] = handle[1];
66 task->handles[1] = handle[2];
67 task->handles[2] = handle[0];
80 C.clean_compatible_inout_handles(handle,
A,
B);
83 template <
class TA,
class TC,
class alpha_t,
class beta_t>
91 using args_t = std::tuple<Uplo, Op, alpha_t, beta_t>;
115 task->handles[0] = handle[0];
116 task->handles[1] = handle[1];
131 template <
class TA,
class TB,
class alpha_t>
140 using args_t = std::tuple<Side, Uplo, Op, Diag, alpha_t>;
165 task->handles[0] = handle[0];
166 task->handles[1] = handle[1];
181 template <
class uplo_t,
class T>
186 using args_t = std::tuple<uplo_t>;
207 task->handles[0] =
A.handle;
213 task->flops = flops::chol(
A.m);
218#ifdef STARPU_HAVE_LIBCUSOLVER
247 static_assert(
sizeof(T) == 0,
248 "Type not supported in cuSolver");
Codelets for StarPU tasks.
#define tlapack_check(cond)
Throw an error if cond is false.
Definition exceptionHandling.hpp:98
Concept for types that represent tlapack::Diag.
Concept for types that represent tlapack::Op.
Concept for types that represent tlapack::Side.
Concept for types that represent tlapack::Uplo.
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
constexpr auto diag(T &A, int diagIdx=0) noexcept
Get the Diagonal of an Eigen Matrix.
Definition eigen.hpp:576
static void clean_compatible_handles(starpu_data_handle_t handles[2], const Tile &A, const Tile &B) noexcept
Clean the partition created by create_compatible_handles()
Definition Tile.hpp:132
static void create_compatible_handles(starpu_data_handle_t handles[2], const Tile &A, const Tile &B) noexcept
Create a compatible handles between two tiles.
Definition Tile.hpp:97