50 #define MATRIX_AROWS 10
51 #define MATRIX_ACOLUMNS 20
52 #define MATRIX_BCOLUMNS 10
61 int main(
int argc,
char *argv[]){
74 #ifdef OPTIMIZE_PRODUCT
75 double *datas[3] = { C.data, A.data, B.data };
76 int rowSizes[3] ={ C.origAcumCard[1],A.origAcumCard[1],B.origAcumCard[1] };
77 # ifdef OPTIMIZE_LOOPS
79 for (i=0; i<loopLimits[0]; i++) {
80 for (j=0; j<loopLimits[1]; j++) {
81 for (k=0; k<loopLimits[2]; k++) {
92 for (i=0; i<minsize1; i++) {
94 for (j=0; j<minsize2; j++) {
96 for (k=0; k<minsize3; k++) {
99 #ifdef OPTIMIZE_PRODUCT
100 datas[0][i*rowSizes[0]+j] =
101 datas[0][i*rowSizes[0]+j] + datas[1][i*rowSizes[1]+k] * datas[2][k*rowSizes[2]+j] ;
115 HitTile_double tileA, HitTile_double tileB, HitTile_double tileC,
123 #if defined(READ_AB) || defined(WRITE_AB)
124 HitTile_double realTileA, realTileB;
154 for (i=0; i<
m; i++) {
155 for (j=0; j<p; j++) {
169 #ifdef WRITE_TILE_FILES
194 HitTile_double
A,
B,
C;
200 #define LAYOUT_BALANCED
201 #ifdef LAYOUT_BALANCED
214 HitTile_double tileA, tileB, tileC, copyTileA, copyTileB;
225 HitCom commRow, commColumn;
241 HitTile_double tileA_2, tileB_2, tileC_2;
244 sely = hit_sig( 0, 1535, 1);
265 for (loopIndex = 0; loopIndex < loopLimit-1; loopIndex++) {
void hit_patternEndAsync(HitPattern pattern)
#define hit_shape(nd,...)
#define hit_layShape(lay)
#define hit_comTagSet(...)
#define hit_tileNewType(baseType)
#define hit_tileFileWrite(var, file, coord)
#define hit_clockSynchronizeAll()
#define hit_tileFill(var, value)
void initMatrices(int m, int p, HitTile_double tileA, HitTile_double tileB, HitTile_double tileC, HitLayout layA, HitLayout layB)
void hit_comFree(HitCom issue)
void hit_comDo(HitCom *issue)
HitShape hit_layMaxShape(HitLayout lay)
#define hit_clockContinue(c)
#define hit_tileAlloc(var)
#define hit_topology(name,...)
#define hit_laySelfRanksDim(lay, dim)
#define hit_tileSelect(newVar, oldVar, shape)
#define HIT_PAT_UNORDERED
void hit_patternAdd(HitPattern *pattern, HitCom comm)
#define hit_clockPrintMax(c)
#define hit_tileDimCard(var, dim)
#define hit_tileFileRead(var, file, coord)
#define hit_tileUpdateFromAncestor(shadow)
#define hit_clockReset(c)
#define hit_tileClone(newVar, oldVar)
#define hit_tileTextFileWrite(var, file, coord, datatype, s1, s2)
void hit_topFree(HitTopology topo)
void hit_layWrapNeighbors(HitLayout *lay)
void hit_patternFree(HitPattern *pattern)
void hit_comInit(int *pargc, char **pargv[])
#define hit_tileTextFileRead(var, file, coord, datatype, s1, s2)
void cannonsMM(int n, int m, int p)
#define hit_comShiftDim(lay, dim, shift, tileP, baseType)
#define hit_tileDomain(newVarP, baseType, numDims,...)
#define hit_tileElemAtNoStride(var, ndims,...)
void hit_layFree(HitLayout lay)
int main(int argc, char *argv[])
#define hit_layDimEnd(lay, dim)
#define hit_tileSelectArrayCoords(newVar, oldVar, shape)
void matrixBlockProduct(HitTile_double A, HitTile_double B, HitTile_double C)
#define hit_tileElemAtArrayCoords(var, ndims,...)
#define hit_tileUpdateToAncestor(shadow)
#define hit_layDimBegin(lay, dim)
#define hit_comShiftDimAsync(lay, dim, shift, tileSend, tileRecv, baseType, tag)
#define hit_tileSelectNoBoundary(newVar, oldVar, shape)
void hit_patternStartAsync(HitPattern pattern)
#define hit_layout(name, topo,...)
#define hit_layForDimDomain(lay, dim, index)
int numActives[HIT_MAXDIMS]
#define hit_tileFree(var)
#define hit_tileShape(var)
#define hit_clockReduce(lay, c)
#define hit_clockStart(c)