Field G. Van Zee e64dba5633 Re-implemented micro-panel alignment.
Details:
- This commit re-implements a feature that was removed in commit
  c2b2ab62. It was removed because, at the time, I wasn't sure how the
  micro-panel alignment feature would interact with the 4m method (when
  applied at the micro-kernrel level), and so it seemed safer to disable
  the feature entirely rather than allow possible breakage. This commit
  revisits the issue and safely re-implements the feature in a way that
  is compatible with 4m, 3m, 4mh, and 3mh (and native execution).
- Modified the static memory pool to account for micro-panel alignment
  space.
- Modified packm_init and blocked variants to align whole micro-panels
  by a datatype-specific alignment value that may be set by the
  configuration. (If it is not set by the configuration, it will default
  to BLIS_SIZEOF_?.)
- Modified macro-kernels so that:
  - storage stride is handled properly given the new micro-panel
    alignment behavior;
  - indexing through 3m/4m/rih-type sub-panels, as is done by trmm and
    trsm, is more robust (e.g. will work if the applicable packing
    register blocksize is odd);
  - imaginary strides are computed and stored within auxinfo_t structs,
    which allows the virtual micro-kernels to more easily determine how
    to index into the micro-panel operands.
- Modified virtual 3m and 4m micro-kernels to use the imaginary strides
  within the auxinfo_t structs instead of panel strides.
- Deprecated the panel stride fields from the auxinfo_t structs.
- Updated test suite to print out the micro-panel alignment values.
2014-10-20 19:23:06 -05:00
2014-07-13 22:50:56 -07:00
2014-08-04 16:01:59 -05:00
2014-07-14 16:14:33 -05:00
2012-12-17 12:35:54 -06:00
2014-08-04 16:01:58 -05:00

BLIS framework
README
---

Thank you for deciding to try out the BLIS framework!

BLIS is a portable framework for instantiating BLAS-like libraries. The
framework was designed to isolate essential kernels of computation that,
when optimized, immediately enable optimized implementations of most of
its commonly used and computationally intensive operations.

BLIS has many features. For more detailed information about the project,
please check the BLIS homepage:

  http://code.google.com/p/blis/

You can keep in touch with developers and other users of the project by
joining one or more of the following mailing lists:

  o blis-announce - http://groups.google.com/group/blis-announce 
    Used only for announcements and other important messages regarding
    BLIS.

  o blis-discuss - http://groups.google.com/group/blis-discuss
    Please join and post to this mailing list if you have general questions
    or feedback regarding BLIS. Application developers (end users) should
    probably post here.

  o blis-devel - http://groups.google.com/group/blis-devel
    Please join and post to this mailing list if you are a BLIS developer
    (i.e., you are trying to use BLIS to create libraries, you want to
    write kernels for the framework, or you are trying to modify or extend
    the framework itself).

Also, please read the LICENSE file for information on copying and
distributing this software.

For a step-by-step guide on configuring, compiling, and installing BLIS,
please read the INSTALL file. Also, please check the BLIS website's wiki
page for other useful how-to guides.

Thanks again for your interest in BLIS!

Regards,

Field G. Van Zee
field@cs.utexas.edu

Description
BLAS-like Library Instantiation Software Framework
Readme BSD-3-Clause 71 MiB
Languages
C 86.2%
C++ 9.7%
Fortran 1.9%
Makefile 0.8%
MATLAB 0.4%
Other 0.9%