Brick Library 0.1
Performance-portable stencil datalayout & codegen
Macros | Functions | Variables
main.cpp File Reference
#include <iostream>
#include <memory>
#include <omp.h>
#include <random>
#include "brick.h"
#include "bricksetup.h"
#include "multiarray.h"
#include "brickcompare.h"
#include <immintrin.h>
Include dependency graph for main.cpp:

Macros

#define VSVEC   "AVX2"
 
#define VFOLD   2,2
 
#define N   256
 
#define TILE   8
 
#define GZ   TILE
 
#define PADDING   8
 
#define STRIDE   (N + 2 * (GZ + PADDING))
 
#define STRIDEG   (N + 2 * GZ)
 
#define NB   (N / TILE)
 
#define GB   (GZ / TILE)
 
#define STRIDEB   ((N + 2 * GZ) / TILE)
 
#define BDIM   TILE,TILE,TILE
 
#define TOT_TIME   5
 
#define _PARFOR   _Pragma("omp parallel for collapse(2)")
 
#define _TILEFOR
 
#define bIn(i, j, k)   arr_in[k][j][i]
 
#define bOut(i, j, k)   arr_out[k][j][i]
 

Functions

template<typename T >
double time_func (T func)
 
void d3pt7 ()
 
int main ()
 

Variables

bElemcoeff
 

Macro Definition Documentation

◆ _PARFOR

#define _PARFOR   _Pragma("omp parallel for collapse(2)")

◆ _TILEFOR

#define _TILEFOR
Value:
_Pragma("omp parallel for collapse(2)") \
for (long tk = PADDING; tk < PADDING + STRIDEG; tk += TILE) \
for (long tj = PADDING; tj < PADDING + STRIDEG; tj += TILE) \
for (long ti = PADDING; ti < PADDING + STRIDEG; ti += TILE) \
for (long k = tk; k < tk + TILE; ++k) \
for (long j = tj; j < tj + TILE; ++j) \
_Pragma("omp simd") \
for (long i = ti; i < ti + TILE; ++i)
#define TILE
Definition: main.cpp:17
#define STRIDEG
Definition: main.cpp:24
#define PADDING
Definition: main.cpp:20
k
Definition: 7pt.py:7
i
Definition: 7pt.py:5
tuple j
Definition: dag_opt.py:297

◆ BDIM

#define BDIM   TILE,TILE,TILE

◆ bIn

#define bIn (   i,
  j,
 
)    arr_in[k][j][i]

◆ bOut

#define bOut (   i,
  j,
 
)    arr_out[k][j][i]

◆ GB

#define GB   (GZ / TILE)

◆ GZ

#define GZ   TILE

◆ N

#define N   256

◆ NB

#define NB   (N / TILE)

◆ PADDING

#define PADDING   8

◆ STRIDE

#define STRIDE   (N + 2 * (GZ + PADDING))

◆ STRIDEB

#define STRIDEB   ((N + 2 * GZ) / TILE)

◆ STRIDEG

#define STRIDEG   (N + 2 * GZ)

◆ TILE

#define TILE   8

◆ TOT_TIME

#define TOT_TIME   5

◆ VFOLD

#define VFOLD   2,2

◆ VSVEC

#define VSVEC   "AVX2"

Function Documentation

◆ d3pt7()

void d3pt7 ( )
Here is the call graph for this function:

◆ main()

int main ( )
Here is the call graph for this function:

◆ time_func()

template<typename T >
double time_func ( func)

Variable Documentation

◆ coeff

bElem* coeff