Files
blis/frame/include/blis.h
Edward Smyth c6f3340125 Merge commit '5013a6cb' into amd-main
* commit '5013a6cb':
  More edits and fixes to docs/FAQ.md.
  Fixed newly broken link to CREDITS in FAQ.md.
  More minor fixes to FAQ.md and Sandboxes.md.
  Updates to FAQ.md, Sandboxes.md, and README.md.
  Safelist 'master', 'dev', 'amd' branches.
  Re-enable and fix fb93d24.
  Reverted fb93d24.
  Re-enable and fix 8e0c425 (BLIS_ENABLE_SYSTEM).
  Removed last vestige of #define BLIS_NUM_ARCHS.
  Added new packm var3 to 'gemmlike'.
  Fix problem where uninitialized registers are included in vhaddpd in the Mx1 gemmsup kernels for haswell.
  Fix more copy-paste errors in the haswell gemmsup code.
  Do a fast test on OSX. [ci skip]
  Fix AArch64 tests and consolidate some other tests.
  Use C++ cross-compiler for ARM tests.
  Attempt to fix cxx-test for OOT builds.
  Updated travis-ci.org link in README.md to .com.
  Disabled (at least temporarily) commit 8e0c425.
  Define BLIS_OS_NONE when using --disable-system.
  Updated stale calls to malloc_intl() in gemmlike.
  Blacklist clang10/gcc9 and older for 'armsve'.
  Add test to Travis using C++ compiler to make sure blis.h is C++-compatible.
  Moved lang defs from _macro_def.h to _lang_defs.h.
  Minor tweaks to gemmlike sandbox.
  Added local _check() code to gemmlike sandbox.
  README.md citation updates (e.g. BLIS7 bibtex).
  Tweaks to gemmlike to facilitate 3rd party mods.
  Whitespace tweaks.
  Add row- and column-strides for A/B in obj_ukr_fn_t.
  Clean up some warnings that show up on clang/OSX.
  Remove schema field on obj_t (redundant) and add new API functions.
  Add dependency on the "flat" blis.h file for the BLIS and BLAS testsuite objects.
  Disabled sanity check in bli_pool_finalize().
  Implement proposed new function pointer fields for obj_t.

AMD-Internal: [CPUPL-2698]
Change-Id: I6fc33351fa824580cf4f25b63f0370383cd9422d
2023-11-10 13:05:12 -05:00

239 lines
5.7 KiB
C

/*
BLIS
An object-based framework for developing high-performance BLAS-like
libraries.
Copyright (C) 2014, The University of Texas at Austin
Copyright (C) 2016, Hewlett Packard Enterprise Development LP
Copyright (C) 2018 - 2023, Advanced Micro Devices, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name(s) of the copyright holder(s) nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef BLIS_H
#define BLIS_H
// Allow C++ users to include this header file in their source code. However,
// we make the extern "C" conditional on whether we're using a C++ compiler,
// since regular C compilers don't understand the extern "C" construct.
#ifdef __cplusplus
extern "C" {
#endif
// NOTE: PLEASE DON'T CHANGE THE ORDER IN WHICH HEADERS ARE INCLUDED UNLESS
// YOU ARE SURE THAT IT DOESN'T BREAK INTER-HEADER MACRO DEPENDENCIES.
// -- configure definitions --
// NOTE: bli_config.h header must be included before any BLIS header.
// It is bootstrapped by ./configure and does not depend on later
// headers. Moreover, these configuration variables are necessary to change
// some default behaviors (e.g. disable OS-detection in bli_system.h in case
// of --disable-system).
#include "bli_config.h"
// -- System and language-related headers --
// NOTE: bli_system.h header must be included before bli_config_macro_defs.h.
#include "bli_system.h"
#include "bli_lang_defs.h"
// -- configure default definitions --
#include "bli_config_macro_defs.h"
// -- Common BLIS definitions --
#include "bli_type_defs.h"
#include "bli_macro_defs.h"
// -- pragma definitions --
#include "bli_pragma_macro_defs.h"
// -- Threading definitions --
#include "bli_thread.h"
#include "bli_pthread.h"
// -- Constant definitions --
#include "bli_extern_defs.h"
// -- BLIS architecture/kernel definitions --
#include "bli_l1v_ker_prot.h"
#include "bli_l1f_ker_prot.h"
#include "bli_l1m_ker_prot.h"
#include "bli_l2_ker_prot.h"
#include "bli_l3_ukr_prot.h"
#include "bli_l3_sup_ker_prot.h"
#include "bli_arch_config_pre.h"
#include "bli_arch_config.h"
#include "bli_kernel_macro_defs.h"
// -- Base operation prototypes --
#include "bli_init.h"
#include "bli_malloc.h"
#include "bli_const.h"
#include "bli_obj.h"
#include "bli_obj_scalar.h"
#include "bli_blksz.h"
#include "bli_func.h"
#include "bli_mbool.h"
#include "bli_cntx.h"
#include "bli_rntm.h"
#include "bli_gks.h"
#include "bli_ind.h"
#include "bli_pba.h"
#include "bli_pool.h"
#include "bli_array.h"
#include "bli_apool.h"
#include "bli_sba.h"
#include "bli_memsys.h"
#include "bli_mem.h"
#include "bli_part.h"
#include "bli_prune.h"
#include "bli_query.h"
#include "bli_auxinfo.h"
#include "bli_param_map.h"
#include "bli_clock.h"
#include "bli_check.h"
#include "bli_error.h"
#include "bli_f2c.h"
#include "bli_machval.h"
#include "bli_getopt.h"
#include "bli_opid.h"
#include "bli_cntl.h"
#include "bli_env.h"
#include "bli_pack.h"
#include "bli_info.h"
#include "bli_arch.h"
#include "bli_cpuid.h"
#include "bli_string.h"
#include "bli_setgetijm.h"
#include "bli_setgetijv.h"
#include "bli_setri.h"
#include "bli_castm.h"
#include "bli_castnzm.h"
#include "bli_castv.h"
#include "bli_projm.h"
#include "bli_projv.h"
// -- Level-0 operations --
#include "bli_l0.h"
// -- Level-1v operations --
#include "bli_l1v.h"
// -- Level-1d operations --
#include "bli_l1d.h"
// -- Level-1f operations --
#include "bli_l1f.h"
// -- Level-1m operations --
#include "bli_l1m.h"
// -- Level-2 operations --
#include "bli_l2.h"
// -- Level-3 operations --
#include "bli_l3.h"
// -- Utility operations --
#include "bli_util.h"
// -- addon definitions --
// NOTE: These definitions should not be included much earlier since an addon
// may wish to utilize other types and definitions provided by BLIS.
// TODO: Disable addon header file inclusion for windows since configure
// script is not executed, and subsequently the header file ie not generated.
#if !defined(_WIN32) && !defined(__CYGWIN__)
#include "bli_addon.h"
#endif
// -- sandbox implementation --
#include "bli_sbox.h"
// -- BLAS compatibility layer --
#include "bli_blas.h"
// -- CBLAS compatibility layer --
#include "bli_cblas.h"
// -- Windows definitions
#include "bli_winsys.h"
#include "aocldtl.h"
#include "aocldtl_blis.h"
// End extern "C" construct block.
#ifdef __cplusplus
}
#endif
#endif