Commit Graph

1175 Commits

Author SHA1 Message Date
Field G. Van Zee
d6ab25a323 Add setijm, getijm operations.
Details:
- Added bli_setgetijm.c, which defines bli_setijm(), bli_getijm(), and
  related functions that can be used to read and write individual
  elements of an obj_t.
- Defined a new function, bli_obj_create_conf_to(), in bli_obj.c that will
  create a new object with dimensions conformal to an existing object.
  Transposition and conjugation states on the existing object are ignored,
  as are structure and uplo fields.
- Defined a new function, bli_datatype_string(), in bli_obj.c that returns
  a char* to a string representation of the name of each num_t datatype.
  For example, BLIS_DOUBLE is "double" and BLIS_DCOMPLEX is "dcomplex".
  BLIS_INT is included (as "int"), but BLIS_CONSTANT is not, and thus is
  not a valid input argument to bli_datatype_string().
- Added calls to bli_init_once() to various functions in bli_obj.c, the
  most important of which was bli_obj_create_without_buffer().
- Removed unintended/extra newline from the end of printv output.
- Whitespace changes to
  - frame/base/bli_machval.c
  - frame/base/bli_machval.h
  - frame/0/copysc/bli_copysc.c
- Trivial changes to README.md and common.mk.
2018-04-24 18:43:03 -05:00
Field G. Van Zee
a731a428f7 Another README.md update. 2018-04-17 16:44:55 -05:00
Field G. Van Zee
c734ee928a README.md update. 2018-04-17 16:40:05 -05:00
Field G. Van Zee
03ecad372d Added RELEASING file.
Details:
- Added a file named 'RELEASING' that contains basic notes on how to
  create a new version/release of BLIS. This is mostly just a reminder
  to myself, but also may become useful if/when others take over
  development and administration of the project.
2018-04-17 14:16:59 -05:00
Field G. Van Zee
24b3c3149c Merge branch 'dev' of github.com:flame/blis into dev 2018-04-16 18:49:38 -05:00
Field G. Van Zee
60366a3fab Updates to knl kernels and related code.
Details:
- Imported the 24x16 knl sgemm microkernel (and its corresonding spackm
  kernel) from TBLIS and enabled its use in the knl sub-config. Also
  Added sgemm microkernel prototype to bli_kernels_knl.h.
- Updated dgemm and dpackm microkernels from TBLIS, which included an
  important change regarding the offsets array (changed from extern
  declaration to static declaration/definition).
- Activated use of level-1v and -1f zen kernels in skx and knl
  sub-configs.
- Removed some old macros no longer needed in bli_family_skx.h now that
  libmemkind support exists in configure.
- Moved bli_avx512_macros.h to frame/include and adjusted #includes in
  skx and knl kernels accordingly.
- Moved unused kernels in kernels/knl/3 to kernels/knl/3/other
  directory.
- Fixed a minor bug in the 'make' output per compile when verboseness
  is not turned on. The rule-generating function 'make-kernel-rule' was
  previously passing in the name of the config, rather than the name of
  the kernel set returned by get-config-for-kset, which could give
  misleading information to the user when the kconfig_map mapped a
  kernel set to a sub-configuration that did not share the same name.
  (This didn't affect the CFLAGS that were actually used.)
- Updated test/3m4m/Makefile, removing acml targets and renaming the
  remaining targets.
2018-04-16 18:46:21 -05:00
Field G. Van Zee
817b67c017 Merge branch 'dev' of github.com:flame/blis into dev 2018-04-16 14:06:26 -05:00
Field G. Van Zee
67c9c2f86d Retired haswell gemm microkernels.
Details:
- Moved microkernels in kernels/haswell/3 to kernels/haswell/3/old. These
  microkernels were no longer being used and only sowed confusion to
  anyone inspecting the repository without being fully cognizant of the
  build system and how it works (and sometimes even to those who wrote
  the build system). Note that the haswell configuration currently
  employs the zen microkernels.
2018-04-16 14:03:12 -05:00
Field G. Van Zee
2b7108a8ef Minor updates to test driver makefiles.
Details:
- Cleaned up and homogenized the various test driver Makefiles in
  testsuite and test directories.
- Very minor updates to test driver code.
2018-04-16 12:35:53 -05:00
Field G. Van Zee
9f56df9557 Trivial tweaks to configure blacklisting output.
Details:
- Updated output of information vis-a-vis configuration blacklisting.
2018-04-11 14:51:36 -05:00
Field G. Van Zee
f56481efeb Cleaned up assembler version query on OS X.
Details:
- Swiched from querying version of 'objdump' to 'as' (e.g. the
  assembler).
- Fixed the outputting of the version of 'as' on OS X, which required
  this beauty:
    ...=$(as -v /dev/null -o /dev/null 2>&1)
- Only add sub-configs to blacklist if the sub-config hasn't already
  been added.
2018-04-10 19:02:21 -05:00
Field G. Van Zee
088c474e62 Added support for blacklisting via the assembler.
Details:
- Added logic to configure that attempts to assemble various small files
  containing select instructions designed to reveal whether binutils
  (specifically, the assembler) supports emitting those instruction sets.
  This information provides additional opportunities to blacklist sub-
  configurations that are unsupported by the environment. Thanks to Devin
  Matthews for pointing me towards a similar solution in TBLIS as an
  example.
- Various other cleanups in configure.
- Reorganized the detection code in the 'build' directory, bringing the
  "auto-detect" configuration detection, libmemkind detection, and new
  instruction set detection codes into a single new subdirectory named
  'detect'.
2018-04-10 18:09:56 -05:00
Field G. Van Zee
78a24e7dad Updated bli_avx512_macros.h in knl and skx configs.
Details:
- Downloaded updated version of bli_avx512_macros.h from TBLIS [1] in
  attempt to address issue #192.
  [1] https://github.com/devinamatthews/tblis/
2018-04-09 17:02:13 -05:00
Field G. Van Zee
388f64d6ad Fixed failure to honor CC= argument to configure.
Details:
- Fixed a failure to observe the value of CC when selecting the compiler
  in configure. Thanks to Devangi Parikh for reporting this bug.
- The semantics now also work for the CC environment variable. That is,
  if CC is set prior to running configure, that value is used, but will
  be overridden by specifying the CC= argument to configure. If the CC
  environment variable is not set, the CC= value is used. If neither the
  environment variable nor CC= are specified, then the choice is made
  internally to configure: first attempting to find gcc, then clang, and
  then cc.
2018-04-09 15:33:10 -05:00
Field G. Van Zee
45fbe66b3e Fixed libmemkind dependency for x86_64.
Details:
- Removed some old conditional code in config/knl/make_defs.mk that
  added -lmemkind to LDFLAGS if DEBUG_TYPE was not 'sde' and inserted
  code into common.mk that affirmatively filters out -lmemkind from
  LDFLAGS if DEBUG_TYPE is 'sde'. (Thanks to Dave Love for reporting
  this issue.) Other minor cleanups to neighboring code in common.mk.
- Updated CRVECFLAGS in knl/make_defs.mk to be based on -march=knl,
  and then AVX-512 functionality is manually removed via various
  -mno-avx512* flags. Also, make the setting of CRVECFLAGS conditional
  on CC_VENDOR. Similar change to skx/make_defs.mk.
- Comment/whitespace updates.
2018-04-09 14:01:08 -05:00
dnp
ca982148b3 Fixed bug in SKX sgemm microkernel. Modified SKX dgemm mircokernel to be consistent with the sgemm microkernel 2018-04-08 21:27:10 -05:00
Field G. Van Zee
bd0276752c Track separate ref kernel flags for each sub-config.
Details:
- Renamed CVECFLAGS variables in sub-configurations' make_defs.mk files
  to CKVECFLAGS.
- Added default defintions of two new make variables to most sub-
  configurations' make_defs.mk files--CROPTFLAGS and CRVECFLAGS--
  which correspond to reference kernel analogues of the CKOPTFLAGS
  and CKVECFLAGS, which track optimization and vectorization flags for
  optimized kernels. Currently, two sub-configurations (knl and skx)
  explicitly set CRVECFLAGS to non-default values (using AVX2 instead of
  AVX-512 for reference kernels. Thanks to Jeff Hammond, whose feedback
  prompted me to make this change (issue #187).
- Changed common.mk so that the get-refkern-cflags-for function returns
  the flags associated with the given sub-configuration's CROPTFLAGS
  and CRVECFLAGS (instead of CKOPTFLAGS and CKVECFLAGS).
2018-04-06 18:51:43 -05:00
Field G. Van Zee
b9aebce194 De-verbosify makefile fragment generation.
Details:
- Changed from -v1 to -v0 when calling gen-make-frag.sh from configure.
  The directory-by-directory recursive output didn't add much value to
  the user, so now we just echo a line for each top-level directory into
  which we will recurse (e.g. 'config', 'ref_kernels', 'frame', etc.).
  This also helps keep more interesting information (from earlier in the
  execution of configure) from scrolling out of the terminal window.
2018-04-06 18:37:33 -05:00
Field G. Van Zee
b549b91f26 Added 64-bit integer support to BLAS test drivers.
Details:
- Updated the build system and BLAS test drivers to use 64-bit integers
  when BLIS is configured for 64-bit integers in the BLAS layer. Also
  updated blastest/Makefile accordingly. Thanks to Dave Love for
  reporting the need for this feature.
- Added a 'check' target to blastest/Makefile so that the user can see
  a summary of the tests.
- Commented out the initial definition of INCLUDE_PATHS in common.mk,
  which was used pre-monolithic header, back when BLIS needed paths to
  *all* headers, rather than just a select few. This line is no longer
  needed since the value of INCLUDE_PATHS is overwritten by a later
  definition limited to only the header paths that are needed now.
2018-04-06 16:31:33 -05:00
Field G. Van Zee
d39fa1c042 Adjusted CFLAGS used to compile bli_cntx_ref.c.
Details:
- Removed CKOPTFLAGS and CVECFLAGS from the set of CFLAGS used to
  compile bli_cntx_ref.c for each configuration. This is necessary
  because the file defines functions like bli_cntx_init_skx_ref(),
  which are called during BLIS's initialization of the global kernel
  structure, potentially being executed by an architecture that lacks
  the instruction set used to compile the kernels for, in this example,
  skx, which would lead to an illegal instruction error. Thanks to
  Dave Love for reporting this issue.
- Further adjusted CFLAGS used when compiling code in the 'config'
  directory (e.g. bli_cntx_init_skx.c) as well as code in 'frame' so
  as to avoid the aforementioned issue.
2018-04-05 19:38:35 -05:00
Field G. Van Zee
08b123084d Added color-coding to 'make check' output.
Details:
- Added color coding to output of check-blistest.sh, check-blastest.sh
  scripts. Success messages are coded green and failure are coded red.
  This helps draw the eye toward those messages as the 'make checkblis',
  'make checkblis-fast', and 'make checkblas' targets are executed.
- Changed top-level Makefile so that execution will not halt if
  'checkblis', 'checkblis-fast', or 'checkblas' targets fail, which
  means that the second of the two tests (BLIS and BLAS) run by
  'make check' will run even if the first test fails.
2018-04-05 14:25:39 -05:00
Field G. Van Zee
c9e4d7db74 CHANGELOG update (0.3.1) 2018-04-04 17:13:15 -05:00
Field G. Van Zee
1f28d7c86e Version file update (0.3.1) 0.3.1 2018-04-04 17:13:15 -05:00
Field G. Van Zee
e6cc9ee26b Merge branch 'dev' of github.com:flame/blis into dev 2018-04-04 16:08:18 -05:00
Field G. Van Zee
786d15c5ef Added skx, knl to x86_64 configuration family.
Details:
- Added 'skx' and 'knl' sub-configurations to the 'x86_64' configuration
  family in the config_registry file.
- Added logic to configure that avoids committing certain sub-configs to
  the configuration/kernel registries if those sub-configs cannot be
  handled properly by the chosen compiler. (This was modeled after
  similar logic in TBLIS's configure; thanks to Devin Matthews for
  pointing this out.) First, the compiler and its version are inspected
  and, based on the results, certain configurations are added to a
  "blacklist". Then, as the configuration registries are being created,
  configurations and/or kernels that match items in the blacklist are
  skipped over and not commited to the registries. Under certain
  circumstances, omitting a blacklisted configuration will indirectly
  invalidate other configurations due to the loss of availability of
  the original blacklisted configuration's kernel set. This additional
  indirect blacklist is also accounted for.
- Added output to the beginning of configure that echos information
  about the chosen compiler as well as the configurations that are
  blacklisted and must be stripped from the registries.
- Various other cleanups in configure, especially with respect to
  explicitly declaring local variables in functions.
- Comment updates to config/zen/make_defs.mk regarding choice of -march
  flags based on compiler version.
2018-04-04 16:06:47 -05:00
Field G. Van Zee
3c91c7aeba Fixed 64b type mismatch warning in cblas_xerbla.c.
Details:
- Fixed a compiler warning concerning a type mismatch between the
  format specifier of the printf() call in cblas_xerbla.c and its
  corresponding (info) argument. The warning manifested when the CBLAS
  layer was enabled and the BLAS/CBLAS integer type siwas is set to 64
  (the default is 32). The warning was fixed by changing the specifier
  from %d to %jd and typecasting the argument to intmax_t. Thanks to
  Dave Love for reporting this issue and submitting the patch.
2018-04-02 12:40:25 -05:00
Field G. Van Zee
71eaf449a8 Merge branch 'dev' 2018-03-27 17:21:43 -05:00
dnp
ae9a5be56d Fixed bug in skx sgemm microkernel 2018-03-27 17:01:23 -05:00
Field G. Van Zee
3f02af0905 Row storage optimizations to zen dotxf kernels.
Details:
- Split the main loop bodies of zen's [sd]dotxf kernels into two cases:
  one to handle a column-stored matrix A and one to handle a row-stored
  matrix A. This allows vector instructions to be employed even if A is
  stored by rows (and A^T appears stored as columns). Both storage cases
  use a common edge case loop. Thanks to Devin Matthews for this idea
  and for prototyping the change needed for sdotxf kernel.
2018-03-26 17:40:04 -05:00
Field G. Van Zee
679dcc331d Make k_iter/k_left uint64_t in bulldozer fma ukrs.
Details:
- Changed the declaration of k_iter and k_left for d, c, z microkernels
  from dim_t to uint64_t. This is needed to ensure compatibility with
  the movq instruction used to load the value into registers. This
  change should have been made a long time ago, but for some reason
  only recently began showing up via Travis CI.
2018-03-26 15:35:17 -05:00
Field G. Van Zee
6a628184f6 Fixed a memkind-related compile-time bug on knl.
Details:
- Fixed a compile-time error that occurred due to the fact that
  BLIS_ENABLE_MEMKIND, defined in bli_config.h, was not being defined
  soon enough to be used in bli_system.h where it is needed to determine
  whether hbwmalloc.h should be #included. bli_system.h is now included
  after bli_config.h (and bli_config_macro_defs.h). Thanks to Dave Love
  for reporting this issue.
- Tweaked the language used by configure to echo the status of the
  --with[out]-memkind option.
2018-03-26 14:48:16 -05:00
Field G. Van Zee
e2192a8fd5 Removed vzeroupper intrinsics from zen kenels.
Details:
- Fixed a bug in the zen (also used by haswell) dotxf kernels whereby a
  vzeroupper instruction destoryed part of the intermediate result
  stored by the vdpps instructions that came right before. (The
  vzeroupper instrinsic was removed.)
- Removed remaining vzeroupper instrinsics from other zen kernels.
  Previously, the vzeroupper instructions were included because BLIS is
  typically compiled with -mfpmath=sse. But it was brought to my
  attention that inserting these vzeroupper instructions is unnecessary
  for our purposes, since (a) -mfpmath=sse results in VEX-encoded scalar
  code rather than literal SSE instructions, and (b) compilers already
  (likely) insert vzeroupper instructions where necessary. Thanks to
  Devin Matthews for zeroing in on the dotxf bug.
- Removed -malign-double from bulldozer make_defs.mk. This alignment
  was already happening by default since bulldozer is an x86_64 system.
2018-03-23 12:53:48 -05:00
Field G. Van Zee
22289ad23c Added build system support for libmemkind.
Details:
- Added support for libmemkind to configure. configure attempts to
  detect the presence of libmemkind by compiling a small program
  containing #include <hbwmalloc.h> and a call to hbw_malloc(). If
  successful, it is assumed that libmemkind is present and available.
  If present, use of libmemkind is enabled by default, and otherwise
  use is disabled by default. If libmemkind is present, the user may
  explicitly disable use of the library by running configure with the
  --without-memkind option. Furthermore, a configuration may disable
  libmemkind, perhaps conditional on some aspect of the build system,
  by including -DBLIS_DISABLE_MEMKIND in the configuration's CPPROCFLAGS
  make variable and setting the BLIS_ENABLE_MEMKIND makefile variable,
  set in config.mk, to 'no'. (The knl configuration makes use of this
  latter feature; see below.)
- If enabled at configure-time, bli_system.h will #include <hbwmalloc.h>
  and bli_kernel_macro_defs.h will define BLIS_MALLOC_POOL and
  BLIS_FREE_POOL to use hbw_malloc() and hbw_free(), respectively.
- Deprecated explicit use of BLIS_NO_HBWMALLOC in
  config/knl/bli_family.knl.h and replaced use of -DBLIS_NO_HBWMALLOC in
  config/knl/make_defs.mk with -DBLIS_DISABLE_MEMKIND, which overrides
  (#undefs) the definition of BLIS_ENABLE_MEMKIND in bli_system.h, if it
  would otherwise be defined. Also, set the BLIS_ENABLE_MEMKIND makefile
  variable to 'no'.
- common.mk now adds libmemkind to LDFLAGS if libmemkind is enabled.
2018-03-22 18:21:30 -05:00
Field G. Van Zee
7dc40eafdd Updates to top-level and test driver Makefiles.
Details:
- Added logic to common.mk that will choose a BLIS library against which
  to link (LIBBLIS_LINK). The default choice is the static (.a) library;
  the shared (.so) library is chosen only if the shared library build was
  enabled and the static one was disabled.
- Updated the various test driver Makefiles to reference this common,
  pre-chosen library against which to link. (Previously, these drivers
  unconditionally linked against the static library and would have
  failed if the static library build was disabled at configure-time.)
- Renamed many of the variables in common.mk and the top-level Makefile
  so that variables relating to the libblis.[a|so] files, including
  paths to those files, begin with "LIBBLIS".
- Shuffled around some of the library definitions from the top-level
  Makefile to common.mk.
- Renamed BLIS_ENABLE_DYNAMIC_BUILD to BLIS_ENABLE_SHARED_BUILD, and
  the @enable_dynamic@ anchor to @enable_shared@ in build/config.mk.in
  and in configure.
- A few other cleanups in the top-level Makefile.
2018-03-21 18:39:16 -05:00
Field G. Van Zee
97e1eeade3 Added input.operations.fast file for 'make check'.
Details:
- Added an 'input.operations.fast' file to testsuite directory to go
  along with the 'input.general.fast' file used by the 'make check'
  target in the top-level Makefile. This will allow the "fast" check
  to prune operations and/or parameter combinations from the test
  space in order to save time.
- Currently, input.operations.fast prunes trmm3 and all transposition
  and conjugation parameters from the level-3 test space.
- Reduced problem size tested in input.general.fast to 100 and disabled
  testing of 1m method.
2018-03-21 15:47:11 -05:00
Field G. Van Zee
c441caa95a README update.
Details:
- Minor updates to README.md.
- Minor change to blastest/Makefile.
2018-03-20 17:56:02 -05:00
Field G. Van Zee
6fe018eb4a Added .gitkeep file to blastest/obj.
Details:
- Added an empty file named '.gitkeep' to blastest/obj/ so that git will
  track the otherwise empty directory. (This is already done for the BLIS
  testsuite in testsuite/obj.)
2018-03-20 15:35:45 -05:00
Field G. Van Zee
0e6d000db9 Updated .gitignore to ignore BLAS test out.* files. 2018-03-20 15:08:43 -05:00
Field G. Van Zee
40c040a31d Fixes to .travis.yml.
Details:
- Invoke the full BLIS testsuite via 'make testblis' instead of the fast
  version via 'blistest-fast' (which was wrong anyway, since the correct
  fast traget is 'testblis-fast').
- Invoke the BLAS tests via 'make testblas' instead of 'blastest'.
2018-03-20 14:33:50 -05:00
Field G. Van Zee
664ec4813d Integrated f2c'ed netlib BLAS test suite.
Details:
- Created a new test suite that exercises only the BLAS compatibility
  found in BLIS. The test suite is a straightforward port of code
  obtained from netlib LAPACK, run through f2c and linked to a stripped-
  down version of libf2c that is compiled along with the test drivers
  (to prevent any obvious ABI issues). The new BLAS test suite can be
  run from within its new local directory, 'blastest' (through its local
  'make ; make run' targets) or from the top-level Makefile (via the
  'make testblas' target). Output files are created in whatever directory
  the test drivers are run, whether it be the 'blastest' directory, the
  top-level source distribution directory, or the out-of-tree directory
  in which 'configure' was run. Also, the results of the BLAS test suite
  can be checked via 'make checkblas', which summarizes the presence or
  absence of test failures in a single line printed to stdout.
- Updated the 'test' target to run both 'testblis' and 'testblas'.
- Added a new 'testblis-fast' target that runs the BLIS testsuite with
  smaller problem sizes, allowing it to finish more quickly.
- Added a 'make check' target, which runs 'checkblis-fast' and
  'checkblas'.
- Changed .travis.yml so that Travis CI runs 'testblis-fast' instead of
  'testblis' before (calling the check-blistest.sh script to check the
  result manually).
- Renamed some targets in the top-level Makefile to be consistent between
  BLAS and BLIS.
2018-03-20 13:54:58 -05:00
Field G. Van Zee
40fa10396c Fixed a few obscure bugs in the BLAS API.
Details:
- Fixed a missing parameter in the definition of sdsdot_(). The 'sb'
  argument was missing. Strangely, the argument is omitted from dsdot_()
  in the BLAS API.
- Fixed the missing 'c' or 'u' in the "?gerc" or "?geru" operation string
  passed to xerbla_() by the bla_ger_check() macro.
- For bla_syrk_check() and bla_syr2k_check() macros, only allow
  conjugate-transpose (trans='c') as a valid argument for the real
  domain functions [sd]syrk_() and [sd]syr2k_(). (Previously, the
  argument was allowed even for the complex domain equivalents, which
  was inconsistent with the BLAS API.)
2018-03-19 18:19:43 -05:00
Field G. Van Zee
fe7d7f1e43 Fixed cpp macro parameter "ch" typo in bla_ger.c.
Details:
- Previously, the BLAS routine-generating macro in bla_ger.c was
  incorrectly passing MKSTR(ch) into the _check() macro when it
  should have been passing in the char that was available, chxy.
  I've instead changed the name of the macro parameter from chxy
  to ch. Similar change as made to bla_ger.h for consistency.
  Thanks to Dave Love in helping track this down. (NOTE: This is
  actually the root cause of the bug that was first patched by
  increasing the length of the operation name strings passed into
  xerbla_(), as defined by the constant BLIS_MAX_BLAS_FUNC_STR_LENGTH,
  in 3d1a5a7. In theory, that change could be backed out now.)
- Applied aforementioned chxy->ch change to bla_dot.[ch], as well as
  frame/compat/cblas/f77_sub/f77_dot_sub.[ch] (not because it needed
  to happen, but for naming consistency).
- Reformatted function signatures/prototypes of CBLAS functions and
  function calls to BLAS in frame/compat/cblas/f77_sub/*.c.
2018-03-18 19:43:06 -05:00
Field G. Van Zee
cb7ed90752 Convert op names to uppercase before calling xerbla_().
Details:
- Defined a new function, bli_string_mkupper(), that calls toupper() on
  every non-NULL character in a string.
- Call bli_string_mkupper() prior to calling xerbla_() in the level-2/-3
  BLAS _check() macros. This prevents the BLAS testsuite from complaining
  that the operation name (e.g. "dgemm") does not match the expected
  value (e.g. "DGEMM"). Thanks to Dave Love for reporting this issue.
2018-03-16 13:05:56 -05:00
Field G. Van Zee
3d1a5a7c08 Fixed printf() format overflow.
Details:
- Increased the length of operation name strings passed to xerbla_() in
  the level-2 and level-3 operation _check() functions, found in
  frame/compat/check. This avoids a format specifier overflow warning by
  gcc 7. Thanks to Dave Love for reporting this issue and suggesting the
  fix.
2018-03-16 12:24:07 -05:00
Field G. Van Zee
c73055f028 Return after non-zero info in BLAS checks.
Details:
- Previously, when calling the BLAS compatibility layer, discovering a
  parameter check failure would result in the proper setting of the
  info parameter (printed by xerbla_()), but would also come with an
  immediate abort() rather than a return. This was incorrect behavior
  for two overlapping reasons.
  (1) BLAS should return gracefully to the caller in the event of a
      bad set of parameters, not abort().
  (2) When BLIS was being tested via the BLAS testsuite, BLIS's
      xerbla_() would correctly get preempted/overridden by the
      xerbla_() in the BLAS testsuite, but execution would then
      erroneously continue on to the BLIS implementation with bad
      parameter values.
- The previous issue was addressed by disabling the abort() in BLIS's
  xerbla_(), changing all of the BLAS _check() functions to cpp macros,
  and adding a return statement to the end of each _check() macro's
  "if ( info != 0 )" conditional.
  Thanks to Dave Love for reporting this issue.
2018-03-15 16:08:21 -05:00
Field G. Van Zee
c4f1d18b97 Minor typo fix to printing arch in testsuite.
Details:
- Mistakenly was calling bli_cpuid_query_id() instead of
  bli_arch_query_id() in the recent addition to the testsuite output
  that prints the active sub-configuration. The former function is
  only used for multi-architecture builds, whereas the latter is the
  more general option that also works for single configuration
  (including 'configure auto') builds.
2018-03-14 19:10:09 -05:00
Devin Matthews
8f2fabec80 Make arm32 and arm64 families work. (#176) 2018-03-14 17:43:42 -05:00
Field G. Van Zee
fc6a184251 Print sub-configuration name in testsuite output.
Details:
- Added a line to the testsuite output that prints the name of the
  current/active sub-configuration. This is useful when linking the
  testsuite against multi-configuration builds because it confirms
  the sub-configuration that is actually being employed at runtime.
  Thanks to Devin Matthews for suggesting this feature.
2018-03-14 15:31:17 -05:00
Devin Matthews
9943a899d6 Merge pull request #173 from devinamatthews/dev
Fix Cortex-A9 and Cortex-A15 configs.
2018-03-14 13:27:44 -05:00
Devin Matthews
b1a15ae6ee Use BLIS_H_FLAT 2018-03-14 13:26:44 -05:00