TRIQS/nda 1.3.0
Multi-dimensional array library for C++
Loading...
Searching...
No Matches
gemm_batch.hpp File Reference
#include "./interface/cxx_interface.hpp"
#include "./tools.hpp"
#include "../concepts.hpp"
#include "../declarations.hpp"
#include "../layout_transforms.hpp"
#include "../macros.hpp"
#include "../mem/address_space.hpp"
#include "../traits.hpp"
#include "../device.hpp"
#include <algorithm>
#include <iterator>
#include <tuple>
#include <type_traits>
#include <vector>

Detailed Description

Provides a generic interface to batched versions of the BLAS gemm routine.

Definition in file gemm_batch.hpp.

Go to the source code of this file.

Functions

template<bool VBATCH = false, Matrix A, Matrix B, MemoryMatrix C>
requires ((MemoryMatrix<A> or is_conj_array_expr<A>) and (MemoryMatrix<B> or is_conj_array_expr<B>) and have_same_value_type_v<A, B, C> and is_blas_lapack_v<get_value_t<A>>)
void nda::blas::gemm_batch (get_value_t< A > alpha, std::vector< A > const &va, std::vector< B > const &vb, get_value_t< A > beta, std::vector< C > &vc)
 Implements a batched version of nda::blas::gemm taking vectors of matrices as arguments.
 
template<ArrayOfRank< 3 > A, ArrayOfRank< 3 > B, MemoryArrayOfRank< 3 > C>
requires ((MemoryArrayOfRank<A, 3> or (is_conj_array_expr<A>)) and (MemoryArrayOfRank<B, 3> or (is_conj_array_expr<B>)) and have_same_value_type_v<A, B, C> and is_blas_lapack_v<get_value_t<A>>)
void nda::blas::gemm_batch_strided (get_value_t< A > alpha, A const &a, B const &b, get_value_t< A > beta, C &&c)
 Implements a strided batched version of nda::blas::gemm taking 3-dimensional arrays as arguments.
 
template<Matrix A, Matrix B, MemoryMatrix C>
void nda::blas::gemm_vbatch (get_value_t< A > alpha, std::vector< A > const &va, std::vector< B > const &vb, get_value_t< A > beta, std::vector< C > &vc)
 Wrapper of nda::blas::gemm_batch that allows variable sized matrices.