FflasFfpack
test-fgemm.C File Reference
#include "fflas-ffpack/fflas-ffpack-config.h"
#include "fflas-ffpack/utils/fflas_io.h"
#include <iomanip>
#include <iostream>
#include <givaro/modular.h>
#include <recint/rint.h>
#include "fflas-ffpack/utils/timer.h"
#include "fflas-ffpack/fflas/fflas.h"
#include "fflas-ffpack/utils/args-parser.h"
#include "fflas-ffpack/utils/test-utils.h"
#include <random>

Macros

#define ENABLE_CHECKER_fgemm   1
 

Functions

template<class Field >
bool check_MM (const Field &F, const typename Field::Element_ptr Cd, enum FFLAS_TRANSPOSE &ta, enum FFLAS_TRANSPOSE &tb, const size_t m, const size_t n, const size_t k, const typename Field::Element &alpha, const typename Field::Element_ptr A, size_t lda, const typename Field::Element_ptr B, size_t ldb, const typename Field::Element &beta, const typename Field::Element_ptr C, size_t ldc)
 
template<class Field , class RandIter >
bool launch_MM (const Field &F, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, const typename Field::Element beta, const size_t ldc, const size_t lda, enum FFLAS_TRANSPOSE ta, const size_t ldb, enum FFLAS_TRANSPOSE tb, size_t iters, int nbw, bool par, RandIter &G)
 
template<class Field , class RandIter >
bool launch_MM_dispatch (const Field &F, const int mm, const int nn, const int kk, const typename Field::Element alpha, const typename Field::Element beta, const size_t iters, const int nbw, const bool par, RandIter &G)
 
template<class Field >
bool run_with_field (Givaro::Integer q, uint64_t b, int m, int n, int k, int nbw, size_t iters, bool par, size_t seed)
 
int main (int argc, char **argv)
 

Macro Definition Documentation

◆ ENABLE_CHECKER_fgemm

#define ENABLE_CHECKER_fgemm   1

Function Documentation

◆ check_MM()

template<class Field >
bool check_MM ( const Field & F,
const typename Field::Element_ptr Cd,
enum FFLAS_TRANSPOSE & ta,
enum FFLAS_TRANSPOSE & tb,
const size_t m,
const size_t n,
const size_t k,
const typename Field::Element & alpha,
const typename Field::Element_ptr A,
size_t lda,
const typename Field::Element_ptr B,
size_t ldb,
const typename Field::Element & beta,
const typename Field::Element_ptr C,
size_t ldc )

◆ launch_MM()

template<class Field , class RandIter >
bool launch_MM ( const Field & F,
const size_t m,
const size_t n,
const size_t k,
const typename Field::Element alpha,
const typename Field::Element beta,
const size_t ldc,
const size_t lda,
enum FFLAS_TRANSPOSE ta,
const size_t ldb,
enum FFLAS_TRANSPOSE tb,
size_t iters,
int nbw,
bool par,
RandIter & G )

◆ launch_MM_dispatch()

template<class Field , class RandIter >
bool launch_MM_dispatch ( const Field & F,
const int mm,
const int nn,
const int kk,
const typename Field::Element alpha,
const typename Field::Element beta,
const size_t iters,
const int nbw,
const bool par,
RandIter & G )
Bug
test for ldX equal
Bug
Bug
test for transpo
Bug
Todo
does nbw actually do nbw recursive calls and then call blas (check ?) ?

◆ run_with_field()

template<class Field >
bool run_with_field ( Givaro::Integer q,
uint64_t b,
int m,
int n,
int k,
int nbw,
size_t iters,
bool par,
size_t seed )

◆ main()

int main ( int argc,
char ** argv )