mirror of
https://github.com/amd/blis.git
synced 2026-05-11 09:39:59 +00:00
e64dba5633fc49b768b5edc7762f2b5d8a4d0588
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.
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
Languages
C
86.2%
C++
9.7%
Fortran
1.9%
Makefile
0.8%
MATLAB
0.4%
Other
0.9%