[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

simple question about ATL_mmJIK.c

the file: ATLAS/src/blas/gemm/ATL_mmJIK.c, around lines 87 or so, contains
the following code:

NBmm0(MB, NB, KB, ATL_rone, pA, KB, pB, KB, beta, pC, ldpc);
pA += NBNB;
pB += NBNB;

I assume that what's going on here is that pA and pB are pointers to some
starting offset within the matrices A and B.  When NBmm0 is
called, the kernel will be executed, and the sub region of size NBxNB of
matrices A and B will be in the L1 cache, which the kernel then operates
on at a higher speed than if the data weren't in cache.  After returning,
the pointers are advanced by NB*NB entries, and the process will repeat
with another chunk of a matrix.  So, my simple questions are:

1. NBNB I assume is the the number of *entries* in the sub matrix, so NB
squared.  If I wanted to get the number of bytes this takes up, then this
would be NB*NB*sizeof(TYPE).  Is this correct?

2. It seems like instead of processing the sub matrices like you normally
handle a 2D array, that ATLAS is mapping the 2D space into just a strictly
linear space.  Is this true?

thanks for your help, I know they're strange questions =)

Jeff W., jeff@dark-techno.org
ICQ# 17989474

"It's substance, not process"