OpenAtom  Version1.5a
CLA_Matrix.ci File Reference

Module: CLA_Matrix Purpose: dense matrix-matrix multiplication. More...

Go to the source code of this file.

Functions

entry void CLA_MM3D_multiplier (int m, int k, int n)
 
entry void initialize_reduction (CLA_MM3D_mult_init_msg *m)
 
entry void receiveA (CLA_Matrix_msg *msg)
 
entry void receiveB (CLA_Matrix_msg *msg)
 
entry void CLA_Matrix (int M, int K, int N, int m, int k, int n, int strideM, int strideK, int strideN, int part, CProxy_CLA_Matrix other1, CProxy_CLA_Matrix other2, CkCallback ready, int gemmSplit)
 
entry void CLA_Matrix (CProxy_CLA_MM3D_multiplier p, int M, int K, int N, int m, int k, int n, int strideM, int strideK, int strideN, int part, CkCallback cb, CkGroupID gid, int gemmSplit)
 
entry void ready (CkReductionMsg *m)
 
entry void readyC (CkReductionMsg *m)
 
entry void mult_done (CkReductionMsg *m)
 

Variables

module CLA_Matrix include
paircalc pcFwdDeclarations 
h
 
message CLA_Matrix_msg
 
message CLA_MM3D_mult_init_msg
 
group CLA_MM3D_Map
 
group int K_chunks
 
group int int N_chunks
 
array[3D] CLA_MM3D_multiplier
 
array[2D] CLA_Matrix
 

Detailed Description

Module: CLA_Matrix Purpose: dense matrix-matrix multiplication.

Usage:

  • To create the arrays, use the make_multiplier call detailed in CLA_Matrix.h.
  • To multiply once you have the CLA_Matrix_interface object o, do this: o.multiply(alpha, beta, data, fptr, usr_data, thisIndex.x, thisIndex.y)

    Note: When mentioning which parameters below are used, we refer only to the 2D algorithm. Notes for the 3D algorithm will be added later.

    Alpha and beta should be doubles. Only the alpha and beta passed to the C array will be used. Data should be a double* pointing to the data to be multiplied if we are at the chare array bound to the A or B arrays. Otherwise (we are at C), it should be the location where to store the result. We need to pass the index since we will use ckLocal calls. Once the multiplication has finished, the C array will call to function pointed to by fptr, passing it usr_data. These arguments will be ignored by A and B. fptr should take a void* as an argument are return void.

Definition in file CLA_Matrix.ci.

Variable Documentation

array [2D] CLA_Matrix
Initial value:
{
entry void CLA_Matrix()

Definition at line 48 of file CLA_Matrix.ci.

message CLA_Matrix_msg
Initial value:
{
internalType data[]

Definition at line 31 of file CLA_Matrix.ci.

array [3D] CLA_MM3D_multiplier
Initial value:

Definition at line 40 of file CLA_Matrix.ci.