Field G. Van Zee 7cd01b71b5 Implemented dynamic allocation for packing buffers.
Details:
- Replaced the old memory allocator, which was based on statically-
  allocated arrays, with one based on a new internal pool_t type, which,
  combined with a new bli_pool_*() API, provides a new abstract data
  type that implements the same memory pool functionality but with blocks
  from the heap (ie: malloc() or equivalent). Hiding the details of the
  pool in a separate API also allows for a much simpler bli_mem.c family
  of functions.
- Added a new internal header, bli_config_macro_defs.h, which enables
  sane defaults for the values previously found in bli_config. Those
  values can be overridden by #defining them in bli_config.h the same
  way kernel defaults can be overridden in bli_kernel.h. This file most
  resembles what was previously a typical configuration's bli_config.h.
- Added a new configuration macro, BLIS_POOL_ADDR_ALIGN_SIZE, which
  defaults to BLIS_PAGE_SIZE, to specify the alignment of individual
  blocks in the memory pool. Also added a corresponding query routine to
  the bli_info API.
- Deprecated (once again) the micro-panel alignment feature. Upon further
  reflection, it seems that the goal of more predictable L1 cache
  replacement behavior is outweighed by the harm caused by non-contiguous
  micro-panels when k % kc != 0. I honestly don't think anyone will even
  miss this feature.
- Changed bli_ukr_get_funcs() and bli_ukr_get_ref_funcs() to call
  bli_cntl_init() instead of bli_init().
- Removed query functions from bli_info.c that are no longer applicable
  given the dynamic memory allocator.
- Removed unnecessary definitions from configurations' bli_config.h files,
  which are now pleasantly sparse.
- Fixed incorrect flop counts in addv, subv, scal2v, scal2m testsuite
  modules. Thanks to Devangi Parikh for pointing out these
  miscalculations.
- Comment, whitespace changes.
2015-06-19 11:31:53 -05:00
2015-06-05 13:37:44 -05:00
2014-07-13 22:50:56 -07:00
2014-10-23 11:35:48 -05:00
2014-07-14 16:14:33 -05:00
2012-12-17 12:35:54 -06:00
2014-10-23 11:35:45 -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%