Commit Graph

12 Commits

Author SHA1 Message Date
Devin Matthews
ae10d94954 Simplify and rewrite reference packm kernels. (#610)
Details:
- Reorganized the way kernels are stored within the cntx_t structure so
  that rather than having a function pointer for every supported size of
  unrolled packm kernel (2xk, 3xk, 4xk, etc.), we store only two packm
  kernels per datatype: one to pack MRxk micropanels and one to pack
  NRxk micropanels.
  - NOTE: The "bb" (broadcast B) reference kernels have been merged into
    the "standard" kernels (packm [including 1er and unpackm], gemm, 
    trsm, gemmtrsm). This replication factor is controlled by 
    BLIS_BB[MN]_[sdcz] etc. Power9/10 needs testing since only a 
    replication factor of 1 has been tested. armsve also needs testing 
    since the MR value isn't available as a macro.
- Simplified the bli_cntx_*() APIs to conform to the new unified kernel
  array within the cntx_t. Updated existing bli_cntx_init_<subconfig>()
  function definitions for all subconfigurations.
- Consolidated all kernel id types (e.g. l1vkr_t, l1mkr_t, l3ukr_t,
  etc.) into one kernel id type: ukr_t.
- Various edits, updates, and rewrites of reference kernels pursuant to 
  the aforementioned changes.
- Define compile-time macro constants (BLIS_MR_[sdcz], BLIS_NR_[sdcz], 
  and friends) in bli_kernel_macro_defs.h, but only when the macro
  BLIS_IN_REF_KERNEL is defined by the build system.
- Loose ends:
  - Still need to update documentation, including:
    - docs/ConfigurationHowTo.md
    - docs/KernelsHowTo.md
    to reflect changes made in this commit.
2022-04-06 20:31:11 -05:00
Field G. Van Zee
c9700f369a Renamed SIMD-related macro constants for clarity.
Details:
- Renamed the following macros defined in bli_kernel_macro_defs.h:

    BLIS_SIMD_NUM_REGISTERS -> BLIS_SIMD_MAX_NUM_REGISTERS
    BLIS_SIMD_SIZE          -> BLIS_SIMD_MAX_SIZE

  Also updated all instances of these macros elsewhere, including
  subconfigurations, source code, and documentation. Thanks to Devin
  Matthews for suggesting this change.
2022-02-15 15:36:52 -06:00
Field G. Van Zee
4493cf516e Redefined BLIS_NUM_ARCHS to update automatically.
Details:
- Changed BLIS_NUM_ARCHS from a cpp macro definition to the last enum
  value in the arch_t enum. This means that it no longer needs to get
  updated manually whenever new subconfigurations are added to BLIS.
  Also removed the explicit initial index assigment of 0 from the
  first enum value, which was unnecessary due to how the C language
  standard mandates indexing of enum values. Thanks to Devin Matthews
  for originally submitting this as a PR in #446.
- Updated docs/ConfigurationHowTo.md to reflect the aforementioned
  change.
2021-03-15 13:12:49 -05:00
Field G. Van Zee
c665eb9b88 Minor updates to docs, Makefiles.
Details:
- Changed all occurrances of
    micro-kernel -> microkernel
    macro-kernel -> macrokernel
    micro-panel  -> micropanel
  in all markdown documents in 'docs' directory. This change is being
  made since we've reached the point in adoption and acceptance of
  BLIS's insights where words such as "microkernel" are no longer new,
  and therefore now merit being unhyphenated.
- Updated "Implementation Notes" sections of KernelsHowTo.md, which
  still contained references to nonexistent cpp macros such as
  BLIS_DEFAULT_MR_? and BLIS_PACKDIM_MR_?.
- Added 'run-fast' and 'check-fast' targets to testsuite/Makefile.
- Minor updates to Testsuite.md, including suggesting use of
  'make check' and 'make check-fast' when running from the local
  testsuite directory.
- Added a comment to top-level Makefile explaining the purpose behind
  the TESTSUITE_WRAPPER variable, which at first glance appears to serve
  no purpose.
2019-01-28 16:22:23 -06:00
Field G. Van Zee
7afd095af3 Removed skx from code snippet in previous commit.
Details:
- The docs/ConfigurationHowTo.md document was written with examples that
  did not yet contain the skx sub-configuration, but the previous commit
  included bli_arch.c code copied and pasted from a recent commit that
  does support skx. To keep things consistent, I've removed skx from the
  recently-added ConfigurationHowTo.md code snippet.
2018-08-22 14:58:24 -05:00
Field G. Van Zee
48211a980d Update to docs/ConfigurationHowTo.md.
Details:
- Added missing language directing the reader to modify the config_name
  string array in bli_arch.c when adding a new sub-configuration. Thanks
  to Devangi Parikh for reporting this missing section.
2018-08-22 14:55:02 -05:00
Field G. Van Zee
401b69c8f2 More indentation in docs/ConfigurationHowTo.md. 2018-07-25 17:55:13 -05:00
Field G. Van Zee
1c6a1b921e Trying new indentation in ConfigurationHowTo.md.
Details:
- Modified a few sections to take advantage of a feature of markdown
  that allows a bullet or enumeration to have multiple paragraphs. This
  is a trial run to make sure the indentation looks good when rendered
  in a web browser.
2018-07-25 17:14:58 -05:00
Field G. Van Zee
80ddeae462 Added BLISObjectAPI.md to docs.
Details:
- Added first draft of BLISObjectAPI.md. (Object management section is
  still missing.)
- Small fixes to BLISTypedAPI.md found while writing BLISObjectAPI.md.
- In various .md files, changed ``` verbatim blocks to language
  attributes (e.g. ```c for C code).
2018-07-11 18:31:57 -05:00
Field G. Van Zee
7d3e8a7e5f Reverted docs/*.md links to relative paths.
Details:
- Within the documents in docs/*.md, reverted links to other local
  documents to relative paths.
- Fixed some links/documents that did not yet have the '.md' suffix.
- Testing whether we can use relative links ('docs/BLISTypedAPI.md')
  from within README.md.
2018-07-07 20:01:29 -05:00
Field G. Van Zee
d97c862c2b Updated links (URLs) in docs/*.md.
Details:
- Updated most markdown links in the documents/wikis to use absolute
  paths instead of the relative paths that were in use previously.
  A few links were not updated, except for adding a ".md" to reflect
  the documents' new names, in order to test whether relative
  linking still works.
2018-07-07 19:40:41 -05:00
Field G. Van Zee
bcacddfad7 Added 'docs' directory with wiki markdown files.
Details:
- Exported all github wikis to a new 'docs' directory.
- Renamed 'BLISAPIQuickReference' wiki to 'BLISTypedAPI' and removed
  all cntx_t* arguments from the (now non-expert) APIs (with the
  exception of the kernel APIs).
- Added section to BuildSystem documenting new ARG_MAX hack.
2018-07-07 16:45:29 -05:00