PandA-2024.02
examples
MachSuite
MachSuite
gemm
blocked
gemm.h
Go to the documentation of this file.
1
/*
2
Implementation based on algorithm described in:
3
The cache performance and optimizations of blocked algorithms
4
M. D. Lam, E. E. Rothberg, and M. E. Wolf
5
ASPLOS 1991
6
*/
7
8
#include <stdio.h>
9
#include <stdlib.h>
10
#include "support.h"
11
12
//Data Type
13
#define TYPE double
14
15
//Algorithm Parameters
16
#define row_size 64
17
#define col_size 64
18
#define N row_size*col_size
19
#define block_size 8
20
#define NUMOFBLOCKS N/block_size/block_size
21
22
//Define the input range to operate over
23
#define MIN 0.
24
#define MAX 1.0
25
26
//Set number of iterations to execute
27
#define MAX_ITERATION 1
28
29
void
bbgemm
(
TYPE
m1
[
N
],
TYPE
m2
[N],
TYPE
prod[N]);
31
// Test harness interface code.
32
33
struct
bench_args_t
{
34
TYPE
m1
[
N
];
35
TYPE
m2
[
N
];
36
TYPE
prod
[
N
];
37
};
TYPE
#define TYPE
Definition:
gemm.h:13
bench_args_t::prod
TYPE prod[N]
Definition:
gemm.h:36
bench_args_t::m1
TYPE m1[N]
Definition:
gemm.h:34
bbgemm
void bbgemm(TYPE m1[N], TYPE m2[N], TYPE prod[N])
Definition:
gemm.c:10
m2
const unsigned long long m2
Definition:
digitrec_sw.c:13
bench_args_t::m2
TYPE m2[N]
Definition:
gemm.h:35
N
#define N
Definition:
gemm.h:18
m1
const unsigned long long m1
Definition:
digitrec_sw.c:12
bench_args_t
Definition:
aes.h:18
Generated on Mon Feb 12 2024 13:02:50 for PandA-2024.02 by
1.8.13