5 #ifndef FML_GPU_LINALG_DOT_H
6 #define FML_GPU_LINALG_DOT_H
12 #include "../../_internals/linalgutils.hh"
14 #include "../arch/arch.hh"
16 #include "../gpumat.hh"
18 #include "internals/err.hh"
38 template <
typename REAL>
41 err::check_card(x, y);
42 const len_t len = std::min(x.
size(), y.
size());
45 fml::linalgutils::matmult_params(
true,
false, len, 1, len, 1, &m, &n, &k);
49 gpublas_status_t check = gpublas::gemm(x.get_card()->blas_handle(),
50 GPUBLAS_OP_T, GPUBLAS_OP_N, m, n, k, (REAL)1, x.
data_ptr(), len,
51 y.
data_ptr(), len, (REAL)0, d_device.data_ptr(), 1);
52 gpublas::err::check_ret(check,
"gemm");
62 template <
typename REAL>