Template for for translations between unpacked and packed matrix storage.
More...
#include <mm_kernel_outer_A.h>
|
template<template< typename T_ordering > class T_assign, typename T_ordering_matrix > |
static void | exec (typename T_assign< T_ordering_matrix >::PtrType X, typename T_assign< T_ordering_matrix >::PtrTypePacked X_packed, int const rows_total_matrix, int const cols_total_matrix) |
| Elaborate function that can be called either to assign to or extract from packed format. More...
|
|
template<typename T_ordering_matrix > |
static void | pack (real const *const X, real *X_packed, int const rows_total_matrix, int const cols_total_matrix) |
| Convenience function for assignments to packed matrix. More...
|
|
template<typename T_ordering_matrix > |
static void | unpack (real *X, real const *const X_packed, int const rows_total_matrix, int const cols_total_matrix) |
| Convenience function for extracting matrix from packed matrix. More...
|
|
|
static int const | rows = rows_kernel * T_rows_block |
| Number of rows in the matrix. More...
|
|
static int const | cols = cols_kernel * T_cols_block |
| Number of columns in the matrix. More...
|
|
static unsigned int const | size_packed = T_rows_block * T_cols_block * T_pack_type_kernel::size_packed |
| Memory needed to store the matrix in packed form. More...
|
|
template<typename T_gemm_kernel, int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block, typename T_pack_type_kernel>
class MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >
Template for for translations between unpacked and packed matrix storage.
Template arguments:
- T_rows_block : number of rows (blocks)
- T_cols_block : number of columns (blocks)
- T_ordering_block : Type that specifies how the matrix blocks are stored
- T_pack_type_kernel : Type specifying how each matrix block should be packed
◆ exec()
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
template<template< typename T_ordering > class T_assign, typename T_ordering_matrix >
static void MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::exec |
( |
typename T_assign< T_ordering_matrix >::PtrType |
X, |
|
|
typename T_assign< T_ordering_matrix >::PtrTypePacked |
X_packed, |
|
|
int const |
rows_total_matrix, |
|
|
int const |
cols_total_matrix |
|
) |
| |
|
inlinestatic |
Elaborate function that can be called either to assign to or extract from packed format.
Use of types in T_assign automatically sets the const qualifier on the desired argument.
◆ pack()
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
template<typename T_ordering_matrix >
static void MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::pack |
( |
real const *const |
X, |
|
|
real * |
X_packed, |
|
|
int const |
rows_total_matrix, |
|
|
int const |
cols_total_matrix |
|
) |
| |
|
inlinestatic |
Convenience function for assignments to packed matrix.
The template argument specifies how the original (unpacked) matrix is stored (e.g. column or row wise)
◆ unpack()
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
template<typename T_ordering_matrix >
static void MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::unpack |
( |
real * |
X, |
|
|
real const *const |
X_packed, |
|
|
int const |
rows_total_matrix, |
|
|
int const |
cols_total_matrix |
|
) |
| |
|
inlinestatic |
Convenience function for extracting matrix from packed matrix.
The template argument specifies how the unpacked matrix is stored (e.g. column or row wise)
◆ cols
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
int const MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::cols = cols_kernel * T_cols_block |
|
static |
Number of columns in the matrix.
◆ cols_kernel
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
◆ rows
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
int const MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::rows = rows_kernel * T_rows_block |
|
static |
Number of rows in the matrix.
◆ rows_kernel
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
◆ size_packed
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
unsigned int const MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::size_packed = T_rows_block * T_cols_block * T_pack_type_kernel::size_packed |
|
static |
Memory needed to store the matrix in packed form.
(Can be used in the allocation of memory for the packed matrix.)
The documentation for this class was generated from the following file: