Skip to content

Commit e3fc540

Browse files
committed
AOCL-BLIS Release 4.0
2 parents 77c8f06 + ea4acd2 commit e3fc540

File tree

271 files changed

+86429
-7764
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

271 files changed

+86429
-7764
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
config.mk
3333
bli_config.h
34+
bli_addon.h
3435

3536
# -- monolithic headers --
3637

CMakeLists.txt

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ set(AOCL_BLIS_ZEN TRUE)
1717
set (PYTHON_EXE "python")
1818

1919
if ("${AOCL_BLIS_FAMILY}" STREQUAL "")
20-
message(FATAL_ERROR "Machine configuration missing! Select one of zen, zen2, zen3 or amdzen")
20+
message(FATAL_ERROR "Machine configuration missing! Select one of zen, zen2, zen3, zen4 or amdzen")
2121
endif ()
2222

2323
if (${AOCL_BLIS_FAMILY} STREQUAL "auto")
@@ -50,20 +50,32 @@ elseif (${AOCL_BLIS_FAMILY} STREQUAL "zen3")
5050
add_definitions(-DBLIS_KERNELS_ZEN2)
5151
add_definitions(-DBLIS_KERNELS_ZEN)
5252
add_definitions(-DBLIS_KERNELS_HASWELL)
53+
elseif (${AOCL_BLIS_FAMILY} STREQUAL "zen4")
54+
add_definitions(-DBLIS_FAMILY_ZEN4)
55+
add_definitions(-DBLIS_CONFIG_ZEN4)
56+
add_definitions(-DBLIS_KERNELS_SKX)
57+
add_definitions(-DBLIS_KERNELS_ZEN4)
58+
add_definitions(-DBLIS_KERNELS_ZEN3)
59+
add_definitions(-DBLIS_KERNELS_ZEN2)
60+
add_definitions(-DBLIS_KERNELS_ZEN)
61+
add_definitions(-DBLIS_KERNELS_HASWELL)
5362
elseif (${AOCL_BLIS_FAMILY} STREQUAL "amdzen")
5463
set(AOCL_BLIS_ZEN FALSE)
5564
add_definitions(-DBLIS_FAMILY_AMDZEN)
65+
add_definitions(-DBLIS_CONFIG_ZEN4)
5666
add_definitions(-DBLIS_CONFIG_ZEN3)
5767
add_definitions(-DBLIS_CONFIG_ZEN2)
5868
add_definitions(-DBLIS_CONFIG_ZEN)
5969
add_definitions(-DBLIS_CONFIG_GENERIC)
70+
add_definitions(-DBLIS_KERNELS_SKX)
71+
add_definitions(-DBLIS_KERNELS_ZEN4)
6072
add_definitions(-DBLIS_KERNELS_ZEN3)
6173
add_definitions(-DBLIS_KERNELS_ZEN2)
6274
add_definitions(-DBLIS_KERNELS_HASWELL)
6375
add_definitions(-DBLIS_KERNELS_ZEN)
6476
add_definitions(-DBLIS_KERNELS_GENERIC)
6577
else ()
66-
message(FATAL_ERROR "Wrong machine configuration. Select one of zen, zen2, zen3 or amdzen")
78+
message(FATAL_ERROR "Wrong machine configuration. Select one of zen, zen2, zen3, zen4 or amdzen")
6779
endif ()
6880

6981
set(TARGET_ARCH ${AOCL_BLIS_FAMILY})
@@ -95,6 +107,8 @@ option (ENABLE_UPPERCASE_API "export APIs with uppercase" OFF)
95107
option (ENABLE_COMPLEX_RETURN_INTEL "Enable complex_return_intel" OFF)
96108
option (ENABLE_TRSM_PREINVERSION "Enable TRSM preinversion" ON)
97109
option (ENABLE_AOCL_DYNAMIC "Enable Dynamic Multi-threading" OFF)
110+
option(DISABLE_BLIS_ARCH_TYPE "Disable BLIS_ARCH_TYPE functionality" OFF)
111+
option(RENAME_BLIS_ARCH_TYPE "Rename BLIS_ARCH_TYPE env var renamed to supplied value" BLIS_ARCH_TYPE)
98112

99113
if (${AOCL_BLIS_FAMILY} STREQUAL "amdzen")
100114
set(REF_KERNEL_MIRRORING_PY "${CMAKE_SOURCE_DIR}/build/blis_ref_kernel_mirror.py")
@@ -270,6 +284,21 @@ else()
270284
endif()
271285
endif()
272286

287+
if(DISABLE_BLIS_ARCH_TYPE)
288+
set(BLIS_DISABLE_BLIS_ARCH_TYPE TRUE)
289+
else()
290+
set(BLIS_DISABLE_BLIS_ARCH_TYPE FALSE)
291+
endif()
292+
293+
if(RENAME_BLIS_ARCH_TYPE)
294+
set(__blis_arch_type_name TRUE)
295+
set(rename_blis_arch_type "${RENAME_BLIS_ARCH_TYPE}")
296+
else()
297+
set(__blis_arch_type_name TRUE)
298+
set(rename_blis_arch_type "BLIS_ARCH_TYPE")
299+
endif()
300+
301+
273302
#print configurations
274303
message("---cmake configurations---")
275304
message(CMAKE_C_COMPILER_ID : ${CMAKE_C_COMPILER_ID})
@@ -291,7 +320,8 @@ message(BLIS_ENABLE_MEMKIND : ${BLIS_ENABLE_MEMKIND})
291320
message(BLIS_ENABLE_PRAGMA_OMP_SIMD : ${BLIS_ENABLE_PRAGMA_OMP_SIMD})
292321
message(BLIS_ENABLE_SANDBOX : ${BLIS_ENABLE_SANDBOX})
293322
message(BLIS_ENABLE_SHARED : ${BLIS_ENABLE_SHARED})
294-
323+
message(DISABLE_BLIS_ARCH_TYPE : ${DISABLE_BLIS_ARCH_TYPE})
324+
message(RENAME_BLIS_ARCH_TYPE : ${RENAME_BLIS_ARCH_TYPE})
295325

296326
SET(ENABLE_SIMD_FLAGS "AVX2" CACHE STRING "Set compiler SIMD flags")
297327
SET_PROPERTY(CACHE ENABLE_SIMD_FLAGS PROPERTY STRINGS none SSE2 AVX AVX2)
@@ -304,6 +334,15 @@ elseif(${ENABLE_SIMD_FLAGS} MATCHES "SSE2")
304334
add_definitions(/arch:SSE2)
305335
endif()
306336

337+
if(${TARGET_ARCH} STREQUAL zen4 OR
338+
${TARGET_ARCH} STREQUAL amdzen)
339+
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/kernels/zen4/1/bli_amaxv_zen_int_avx512.c PROPERTIES COMPILE_FLAGS /arch:AVX512)
340+
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/kernels/zen4/3/bli_gemmtrsm_l_zen_16x14.c PROPERTIES COMPILE_FLAGS /arch:AVX512)
341+
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/kernels/zen4/3/bli_gemmtrsm_u_zen_16x14.c PROPERTIES COMPILE_FLAGS /arch:AVX512)
342+
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/kernels/skx/3/bli_dgemm_skx_asm_16x14.c PROPERTIES COMPILE_FLAGS /arch:AVX512)
343+
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/kernels/skx/3/bli_sgemm_skx_asm_32x12_l2.c PROPERTIES COMPILE_FLAGS /arch:AVX512)
344+
endif()
345+
307346
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W0 ")
308347
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Oi")
309348
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
@@ -390,11 +429,13 @@ include_directories(${CMAKE_SOURCE_DIR}/config/generic)
390429
include_directories(${CMAKE_SOURCE_DIR}/config/zen)
391430
include_directories(${CMAKE_SOURCE_DIR}/config/zen2)
392431
include_directories(${CMAKE_SOURCE_DIR}/config/zen3)
432+
include_directories(${CMAKE_SOURCE_DIR}/config/zen4)
393433
if(${AOCL_BLIS_FAMILY} STREQUAL "amdzen")
394434
include_directories(${CMAKE_BINARY_DIR}/ref_kernels/generic)
395435
include_directories(${CMAKE_BINARY_DIR}/ref_kernels/zen)
396436
include_directories(${CMAKE_BINARY_DIR}/ref_kernels/zen2)
397437
include_directories(${CMAKE_BINARY_DIR}/ref_kernels/zen3)
438+
include_directories(${CMAKE_BINARY_DIR}/ref_kernels/zen4)
398439
endif()
399440
include_directories(${CMAKE_SOURCE_DIR}/ref_kernels)
400441
include_directories(${CMAKE_SOURCE_DIR}/kernels)
@@ -410,7 +451,9 @@ include_directories(${CMAKE_SOURCE_DIR}/kernels/zen/2)
410451
include_directories(${CMAKE_SOURCE_DIR}/kernels/zen/3)
411452
include_directories(${CMAKE_SOURCE_DIR}/kernels/zen/3/sup)
412453
include_directories(${CMAKE_SOURCE_DIR}/kernels/zen2)
413-
454+
include_directories(${CMAKE_SOURCE_DIR}/kernels/zen4)
455+
include_directories(${CMAKE_SOURCE_DIR}/kernels/skx)
456+
include_directories(${CMAKE_SOURCE_DIR}/kernels/skx/3)
414457
file(GLOB headers ${CMAKE_SOURCE_DIR}/*.h)
415458

416459
# Monolithic Header generation
@@ -429,6 +472,7 @@ elseif (${AOCL_BLIS_FAMILY} STREQUAL "zen2")
429472
" ${CMAKE_CURRENT_SOURCE_DIR}/config/zen/"
430473
" ${CMAKE_CURRENT_SOURCE_DIR}/config/zen2/"
431474
" ${CMAKE_CURRENT_SOURCE_DIR}/config/zen3/"
475+
" ${CMAKE_CURRENT_SOURCE_DIR}/config/zen4/"
432476
" ${CMAKE_CURRENT_SOURCE_DIR}/config/generic/"
433477
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/zen/"
434478
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/haswell/"
@@ -541,7 +585,8 @@ message( STATUS "Generating monolithic cblas header file :" ${CMD_OUTPUT})
541585
# setting the blis version string
542586
file (STRINGS "version" BLIS_VERSION)
543587
set(BLIS_VERSION_STRING ${BLIS_VERSION})
544-
add_definitions(-DBLIS_VERSION_STRING="AOCL BLIS ${BLIS_VERSION_STRING}")
588+
string(TIMESTAMP BUILD_DATE "%Y%m%d")
589+
add_definitions(-DBLIS_VERSION_STRING="AOCL-BLIS ${BLIS_VERSION_STRING} Build ${BUILD_DATE}")
545590

546591
if(BUILD_SHARED_LIBS)
547592
add_library("${PROJECT_NAME}" SHARED ${CMAKE_SOURCE_DIR}/bli_config.h
@@ -574,6 +619,7 @@ add_subdirectory(frame)
574619
add_subdirectory(aocl_dtl)
575620
add_subdirectory(test)
576621
add_subdirectory(testsuite)
622+
add_subdirectory(bench)
577623
if(ENABLE_TESTCPP_TESTING)
578624
add_subdirectory(vendor/testcpp)
579625
endif()

CREDITS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ but many others have contributed code and feedback, including
2323
Dilyn Corner @dilyn-corner
2424
Mat Cross @matcross (NAG)
2525
@decandia50
26+
Daniël de Kok @danieldk (Explosion)
2627
Kay Dewhurst @jkd2016 (Max Planck Institute, Halle, Germany)
2728
Jeff Diamond (Oracle)
2829
Johannes Dieterich @iotamudelta
@@ -45,6 +46,7 @@ but many others have contributed code and feedback, including
4546
Matthew Honnibal @honnibal
4647
Stefan Husmann @stefanhusmann
4748
Francisco Igual @figual (Universidad Complutense de Madrid)
49+
Madeesh Kannan @shadeMe
4850
Tony Kelman @tkelman
4951
Lee Killough @leekillough (Cray)
5052
Mike Kistler @mkistler (IBM, Austin Research Laboratory)

Makefile

Lines changed: 86 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ BASE_OBJ_FRAME_PATH := $(BASE_OBJ_PATH)/$(FRAME_DIR)
116116
BASE_OBJ_AOCLDTL_PATH := $(BASE_OBJ_PATH)/$(AOCLDTL_DIR)
117117
BASE_OBJ_REFKERN_PATH := $(BASE_OBJ_PATH)/$(REFKERN_DIR)
118118
BASE_OBJ_KERNELS_PATH := $(BASE_OBJ_PATH)/$(KERNELS_DIR)
119+
BASE_OBJ_ADDON_PATH := $(BASE_OBJ_PATH)/$(ADDON_DIR)
119120
BASE_OBJ_SANDBOX_PATH := $(BASE_OBJ_PATH)/$(SANDBOX_DIR)
120121

121122
# --- Define install target names for static libraries ---
@@ -212,6 +213,20 @@ MK_REFKERN_OBJS := $(foreach arch, $(CONFIG_LIST), \
212213
# Generate object file paths for all of the portable framework source code.
213214
MK_FRAME_OBJS := $(call gen-obj-paths-from-src,$(FRAME_SRC_SUFS),$(MK_FRAME_SRC),$(FRAME_PATH),$(BASE_OBJ_FRAME_PATH))
214215

216+
# Generate object file paths for the addon source code. If one or more addons
217+
# were not enabled a configure-time, these variable will we empty.
218+
# NOTE: We separate the source and objects into kernel and non-kernel lists.
219+
MK_ADDON_KERS_SRC := $(foreach addon, $(ADDON_LIST), \
220+
$(filter $(ADDON_PATH)/$(addon)/$(KERNELS_DIR)/%, \
221+
$(MK_ADDON_SRC)) \
222+
)
223+
MK_ADDON_OTHER_SRC := $(foreach addon, $(ADDON_LIST), \
224+
$(filter-out $(ADDON_PATH)/$(addon)/$(KERNELS_DIR)/%, \
225+
$(MK_ADDON_SRC)) \
226+
)
227+
MK_ADDON_KERS_OBJS := $(call gen-obj-paths-from-src,$(ADDON_SRC_SUFS),$(MK_ADDON_KERS_SRC),$(ADDON_PATH),$(BASE_OBJ_ADDON_PATH))
228+
MK_ADDON_OTHER_OBJS := $(call gen-obj-paths-from-src,$(ADDON_SRC_SUFS),$(MK_ADDON_OTHER_SRC),$(ADDON_PATH),$(BASE_OBJ_ADDON_PATH))
229+
MK_ADDON_OBJS := $(MK_ADDON_KERS_OBJS) $(MK_ADDON_OTHER_OBJS)
215230
# AMD has optimized some of the framework files, these optimizations
216231
# may not be compatible with other platforms.
217232
#
@@ -236,8 +251,6 @@ endif
236251
# Generate object file paths for all of the debgu and trace logger.
237252
MK_AOCLDTL_OBJS := $(call gen-obj-paths-from-src,$(AOCLDTL_SRC_SUFS),$(MK_AOCLDTL_SRC),$(AOCLDTL_PATH),$(BASE_OBJ_AOCLDTL_PATH))
238253

239-
240-
241254
# Generate object file paths for the sandbox source code. If a sandbox was not
242255
# enabled a configure-time, this variable will we empty.
243256
MK_SANDBOX_OBJS := $(call gen-obj-paths-from-src,$(SANDBOX_SRC_SUFS),$(MK_SANDBOX_SRC),$(SANDBOX_PATH),$(BASE_OBJ_SANDBOX_PATH))
@@ -248,6 +261,7 @@ MK_BLIS_OBJS := $(MK_CONFIG_OBJS) \
248261
$(MK_REFKERN_OBJS) \
249262
$(MK_FRAME_OBJS) \
250263
$(MK_AOCLDTL_OBJS) \
264+
$(MK_ADDON_OBJS) \
251265
$(MK_SANDBOX_OBJS)
252266

253267
# Optionally filter out the BLAS and CBLAS compatibility layer object files.
@@ -590,6 +604,47 @@ endef
590604

591605
# first argument: a configuration name from the union of config_list and
592606
# config_name, used to look up the CFLAGS to use during compilation.
607+
# second argument: the C99 addon file suffix being considered.
608+
define make-c99-addon-rule
609+
$(BASE_OBJ_ADDON_PATH)/%.o: $(ADDON_PATH)/%.$(2) $(BLIS_H_FLAT) $(ADDON_H99_FILES) $(MAKE_DEFS_MK_PATHS)
610+
ifeq ($(ENABLE_VERBOSE),yes)
611+
$(CC) $(call get-addon-c99flags-for,$(1)) -c $$< -o $$@
612+
else
613+
@echo "Compiling $$@" $(call get-addon-c99text-for,$(1))
614+
@$(CC) $(call get-addon-c99flags-for,$(1)) -c $$< -o $$@
615+
endif
616+
endef
617+
618+
# first argument: a configuration name from the union of config_list and
619+
# config_name, used to look up the CFLAGS to use during compilation.
620+
# second argument: the C99 addon file suffix being considered.
621+
# third argument: the name of the addon being considered.
622+
define make-c99-addon-kers-rule
623+
$(BASE_OBJ_ADDON_PATH)/$(3)/$(KERNELS_DIR)/%.o: $(ADDON_PATH)/$(3)/$(KERNELS_DIR)/%.$(2) $(BLIS_H_FLAT) $(ADDON_H99_FILES) $(MAKE_DEFS_MK_PATHS)
624+
ifeq ($(ENABLE_VERBOSE),yes)
625+
$(CC) $(call get-addon-kernel-c99flags-for,$(1)) -c $$< -o $$@
626+
else
627+
@echo "Compiling $$@" $(call get-addon-kernel-text-for,$(1))
628+
@$(CC) $(call get-addon-kernel-c99flags-for,$(1)) -c $$< -o $$@
629+
endif
630+
endef
631+
632+
# first argument: a configuration name from the union of config_list and
633+
# config_name, used to look up the CFLAGS to use during compilation.
634+
# second argument: the C++ addon file suffix being considered.
635+
define make-cxx-addon-rule
636+
$(BASE_OBJ_ADDON_PATH)/%.o: $(ADDON_PATH)/%.$(2) $(BLIS_H_FLAT) $(ADDON_HXX_FILES) $(MAKE_DEFS_MK_PATHS)
637+
ifeq ($(ENABLE_VERBOSE),yes)
638+
$(CXX) $(call get-addon-cxxflags-for,$(1)) -c $$< -o $$@
639+
else
640+
@echo "Compiling $$@" $(call get-addon-cxxtext-for,$(1))
641+
@$(CXX) $(call get-addon-cxxflags-for,$(1)) -c $$< -o $$@
642+
endif
643+
endef
644+
645+
# first argument: a configuration name from the union of config_list and
646+
# config_name, used to look up the CFLAGS to use during compilation.
647+
# second argument: the C99 sandbox file suffix being considered.
593648
define make-c99-sandbox-rule
594649
$(BASE_OBJ_SANDBOX_PATH)/%.o: $(SANDBOX_PATH)/%.$(2) $(BLIS_H_FLAT) $(SANDBOX_H99_FILES) $(MAKE_DEFS_MK_PATHS)
595650
ifeq ($(ENABLE_VERBOSE),yes)
@@ -600,6 +655,9 @@ else
600655
endif
601656
endef
602657

658+
# first argument: a configuration name from the union of config_list and
659+
# config_name, used to look up the CFLAGS to use during compilation.
660+
# second argument: the C++ sandbox file suffix being considered.
603661
define make-cxx-sandbox-rule
604662
$(BASE_OBJ_SANDBOX_PATH)/%.o: $(SANDBOX_PATH)/%.$(2) $(BLIS_H_FLAT) $(SANDBOX_HXX_FILES) $(MAKE_DEFS_MK_PATHS)
605663
ifeq ($(ENABLE_VERBOSE),yes)
@@ -648,6 +706,22 @@ $(foreach conf, $(CONFIG_LIST), $(eval $(call make-refkern-rule,$(conf))))
648706
$(foreach suf, $(KERNELS_SRC_SUFS), \
649707
$(foreach kset, $(KERNEL_LIST), $(eval $(call make-kernels-rule,$(kset),$(call get-config-for-kset,$(kset)),$(suf)))))
650708

709+
# Instantiate the build rule for C addon files. Use the CFLAGS for the
710+
# configuration family.
711+
$(foreach suf, $(ADDON_C99_SUFS), \
712+
$(foreach conf, $(CONFIG_NAME), $(eval $(call make-c99-addon-rule,$(conf),$(suf)))))
713+
714+
# Instantiate the build rule for C addon/kernels files. Use the CFLAGS for the
715+
# configuration family.
716+
$(foreach addon, $(ADDON_LIST), \
717+
$(foreach suf, $(ADDON_C99_SUFS), \
718+
$(foreach conf, $(CONFIG_NAME), $(eval $(call make-c99-addon-kers-rule,$(conf),$(suf),$(addon))))))
719+
720+
# Instantiate the build rule for C++ addon files. Use the CFLAGS for the
721+
# configuration family.
722+
$(foreach suf, $(ADDON_CXX_SUFS), \
723+
$(foreach conf, $(CONFIG_NAME), $(eval $(call make-cxx-addon-rule,$(conf),$(suf)))))
724+
651725
# Instantiate the build rule for C sandbox files. Use the CFLAGS for the
652726
# configuration family.
653727
$(foreach suf, $(SANDBOX_C99_SUFS), \
@@ -1141,6 +1215,9 @@ ifeq ($(ENABLE_VERBOSE),yes)
11411215
- $(FIND) $(AOCLDTL_FRAG_PATH) -name "$(FRAGMENT_MK)" | $(XARGS) $(RM_F)
11421216
- $(FIND) $(REFKERN_FRAG_PATH) -name "$(FRAGMENT_MK)" | $(XARGS) $(RM_F)
11431217
- $(FIND) $(KERNELS_FRAG_PATH) -name "$(FRAGMENT_MK)" | $(XARGS) $(RM_F)
1218+
ifneq ($(ADDON_LIST),)
1219+
- $(FIND) $(ADDON_FRAG_PATH) -name "$(FRAGMENT_MK)" | $(XARGS) $(RM_F)
1220+
endif
11441221
ifneq ($(SANDBOX),)
11451222
- $(FIND) $(SANDBOX_FRAG_PATH) -name "$(FRAGMENT_MK)" | $(XARGS) $(RM_F)
11461223
endif
@@ -1155,6 +1232,10 @@ else
11551232
@- $(FIND) $(REFKERN_FRAG_PATH) -name "$(FRAGMENT_MK)" | $(XARGS) $(RM_F)
11561233
@echo "Removing makefile fragments from $(KERNELS_FRAG_PATH)"
11571234
@- $(FIND) $(KERNELS_FRAG_PATH) -name "$(FRAGMENT_MK)" | $(XARGS) $(RM_F)
1235+
ifneq ($(ADDON_LIST),)
1236+
@echo "Removing makefile fragments from $(ADDON_FRAG_PATH)"
1237+
@- $(FIND) $(ADDON_FRAG_PATH) -name "$(FRAGMENT_MK)" | $(XARGS) $(RM_F)
1238+
endif
11581239
ifneq ($(SANDBOX),)
11591240
@echo "Removing makefile fragments from $(SANDBOX_FRAG_PATH)"
11601241
@- $(FIND) $(SANDBOX_FRAG_PATH) -name "$(FRAGMENT_MK)" | $(XARGS) $(RM_F)
@@ -1275,13 +1356,16 @@ endif # IS_CONFIGURED
12751356
distclean: cleanmk cleanh cleanlib cleantest
12761357
ifeq ($(IS_CONFIGURED),yes)
12771358
ifeq ($(ENABLE_VERBOSE),yes)
1359+
- $(RM_F) $(BLIS_ADDON_H)
12781360
- $(RM_F) $(BLIS_CONFIG_H)
12791361
- $(RM_F) $(CONFIG_MK_FILE)
12801362
- $(RM_F) $(PC_OUT_FILE)
12811363
- $(RM_RF) $(OBJ_DIR)
12821364
- $(RM_RF) $(LIB_DIR)
12831365
- $(RM_RF) $(INCLUDE_DIR)
12841366
else
1367+
@echo "Removing $(BLIS_ADDON_H)"
1368+
@$(RM_F) $(BLIS_ADDON_H)
12851369
@echo "Removing $(BLIS_CONFIG_H)"
12861370
@$(RM_F) $(BLIS_CONFIG_H)
12871371
@echo "Removing $(CONFIG_MK_FILE)"

addon/aocl_gemm/aocl_bf16_type.h

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
/*
3+
BLIS
4+
An object-based framework for developing high-performance BLAS-like
5+
libraries.
6+
Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved.
7+
Redistribution and use in source and binary forms, with or without
8+
modification, are permitted provided that the following conditions are
9+
met:
10+
- Redistributions of source code must retain the above copyright
11+
notice, this list of conditions and the following disclaimer.
12+
- Redistributions in binary form must reproduce the above copyright
13+
notice, this list of conditions and the following disclaimer in the
14+
documentation and/or other materials provided with the distribution.
15+
- Neither the name(s) of the copyright holder(s) nor the names of its
16+
contributors may be used to endorse or promote products derived
17+
from this software without specific prior written permission.
18+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22+
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
#ifndef AOCL_GEMM_HALF_PRECISION_TYPE_H
31+
#define AOCL_GEMM_HALF_PRECISION_TYPE_H
32+
33+
typedef int16_t bfloat16;
34+
35+
#endif // AOCL_GEMM_HALF_PRECISION_TYPE_H
36+

0 commit comments

Comments
 (0)