Align packed panel strides with system alignment.

Details:
- Pass panel strides through bli_align_dim_to_sys() to ensure that each
  subsequent packed panel of A and B begins at an aligned address. (The
  first panel is presumably aligned to system alignment because it is
  aligned to a page boundary, which is typically much larger.)
- Rearranged code in packm_init_pack() to prevent additional conditional
  blocks as a result of the aforementioned change.
- Adjusted contiguous memory allocator so that the system memory alignment
  is used to allocate enough space for each block no matter what kind of
  register blocking is used (even if register blocksize is unit and every
  row/column needs maximal padding).
- Adjusted default blocksizes in reference configuration so that MC*KC
  and KC*NC result in identical footprints for all datatypes.
This commit is contained in:
Field G. Van Zee
2013-03-26 12:43:14 -05:00
parent 40a0654ada
commit 37308f9a50
5 changed files with 112 additions and 64 deletions

View File

@@ -61,21 +61,21 @@
// and thus it would be constraint (2b) that would be needed instead of (1b).
//
#define BLIS_DEFAULT_MC_S 128
#define BLIS_DEFAULT_MC_S 256
#define BLIS_DEFAULT_KC_S 256
#define BLIS_DEFAULT_NC_S 8192
#define BLIS_DEFAULT_MC_D 128
#define BLIS_DEFAULT_KC_D 256
#define BLIS_DEFAULT_NC_D 8192
#define BLIS_DEFAULT_NC_D 4096
#define BLIS_DEFAULT_MC_C 128
#define BLIS_DEFAULT_KC_C 256
#define BLIS_DEFAULT_NC_C 8192
#define BLIS_DEFAULT_NC_C 4096
#define BLIS_DEFAULT_MC_Z 128
#define BLIS_DEFAULT_MC_Z 64
#define BLIS_DEFAULT_KC_Z 256
#define BLIS_DEFAULT_NC_Z 8192
#define BLIS_DEFAULT_NC_Z 2048
// -- Default register blocksizes for inner kernel --