Skip to content

Commit 3aa0044

Browse files
committed
Blis AOCL 3.1 Release
2 parents d3a65bd + e3d9b83 commit 3aa0044

File tree

215 files changed

+59371
-45210
lines changed

Some content is hidden

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

215 files changed

+59371
-45210
lines changed

CMakeLists.txt

Lines changed: 60 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
1010

1111

1212
SET(AOCL_BLIS_FAMILY "zen" CACHE STRING "AOCL BLIS family name")
13+
SET(OPENMP_PATH "C:\\Program Files\\LLVM\\lib" CACHE STRING "openmp library
14+
path")
1315
set(TARGET_ARCH ${AOCL_BLIS_FAMILY})
1416
set(AOCL_BLIS_ZEN TRUE)
1517
set (PYTHON_EXE "python")
1618

1719
if ("${AOCL_BLIS_FAMILY}" STREQUAL "")
18-
message(FATAL_ERROR "Machine configuration missing! Select one of zen, zen2, zen3 or amd64")
20+
message(FATAL_ERROR "Machine configuration missing! Select one of zen, zen2, zen3 or amdzen")
1921
endif ()
2022

2123
if (${AOCL_BLIS_FAMILY} STREQUAL "auto")
@@ -48,9 +50,9 @@ elseif (${AOCL_BLIS_FAMILY} STREQUAL "zen3")
4850
add_definitions(-DBLIS_KERNELS_ZEN2)
4951
add_definitions(-DBLIS_KERNELS_ZEN)
5052
add_definitions(-DBLIS_KERNELS_HASWELL)
51-
elseif (${AOCL_BLIS_FAMILY} STREQUAL "amd64")
53+
elseif (${AOCL_BLIS_FAMILY} STREQUAL "amdzen")
5254
set(AOCL_BLIS_ZEN FALSE)
53-
add_definitions(-DBLIS_FAMILY_AMD64)
55+
add_definitions(-DBLIS_FAMILY_AMDZEN)
5456
add_definitions(-DBLIS_CONFIG_ZEN3)
5557
add_definitions(-DBLIS_CONFIG_ZEN2)
5658
add_definitions(-DBLIS_CONFIG_ZEN)
@@ -61,7 +63,7 @@ elseif (${AOCL_BLIS_FAMILY} STREQUAL "amd64")
6163
add_definitions(-DBLIS_KERNELS_ZEN)
6264
add_definitions(-DBLIS_KERNELS_GENERIC)
6365
else ()
64-
message(FATAL_ERROR "Wrong machine configuration. Select one of zen, zen2, zen3 or amd64")
66+
message(FATAL_ERROR "Wrong machine configuration. Select one of zen, zen2, zen3 or amdzen")
6567
endif ()
6668

6769
set(TARGET_ARCH ${AOCL_BLIS_FAMILY})
@@ -89,11 +91,23 @@ option(ENABLE_INT_TYPE_SIZE " Internal BLIS integers ,used in native BLIS interf
8991
option(ENABLE_BLASTEST "Enable the blastest" OFF)
9092
option(ENABLE_TESTCPP_TESTING "Enabling testcpp" OFF)
9193
option (ENABLE_NO_UNDERSCORE_API "export APIs without underscore" ON)
92-
option (ENABLE_UPPERCASE "export APIs with uppercase" OFF)
94+
option (ENABLE_UPPERCASE_API "export APIs with uppercase" OFF)
95+
option (ENABLE_API_WRAPPER "Enable wrapper code" OFF)
9396
option (ENABLE_COMPLEX_RETURN_INTEL "Enable complex_return_intel" OFF)
9497
option (ENABLE_TRSM_PREINVERSION "Enable TRSM preinversion" ON)
9598
option (ENABLE_AOCL_DYNAMIC "Enable Dynamic Multi-threading" OFF)
9699

100+
if (${AOCL_BLIS_FAMILY} STREQUAL "amdzen")
101+
set(REF_KERNEL_MIRRORING_PY "${CMAKE_SOURCE_DIR}/build/blis_ref_kernel_mirror.py")
102+
message("ref_kernel mirroring for fat binary")
103+
# Run python script to find the architecture family name
104+
execute_process(
105+
COMMAND ${PYTHON_EXE} ${REF_KERNEL_MIRRORING_PY} ${CMAKE_BINARY_DIR}
106+
RESULT_VARIABLE CMD_RESULT
107+
OUTPUT_VARIABLE CMD_OUTPUT
108+
OUTPUT_STRIP_TRAILING_WHITESPACE)
109+
message( STATUS "Ref Kernel Mirroring :" ${CMD_OUTPUT})
110+
endif()
97111
if(ENABLE_NO_UNDERSCORE_API)
98112
add_definitions(-DBLIS_ENABLE_NO_UNDERSCORE_API)
99113
endif()
@@ -104,8 +118,12 @@ else()
104118
set(BLIS_DISABLE_COMPLEX_RETURN_INTEL TRUE)
105119
endif()
106120

107-
if(ENABLE_UPPERCASE)
108-
add_definitions(-DBLIS_ENABLE_UPPERCASE)
121+
if(ENABLE_UPPERCASE_API)
122+
add_definitions(-DBLIS_ENABLE_UPPERCASE_API)
123+
endif()
124+
125+
if(ENABLE_API_WRAPPER)
126+
add_definitions(-DBLIS_ENABLE_API_WRAPPER)
109127
endif()
110128

111129
if(ENABLE_AOCL_DYNAMIC)
@@ -132,7 +150,7 @@ endif ()
132150
if (ENABLE_TRSM_PREINVERSION)
133151
set(BLIS_ENABLE_TRSM_PREINVERSION TRUE)
134152
else()
135-
set(BLIS_DISABLE_TRSM_PREINVERSION TRUE)
153+
add_definitions(-DBLIS_DISABLE_TRSM_PREINVERSION)
136154
endif()
137155

138156
if (ENABLE_INT_TYPE_SIZE)
@@ -242,6 +260,7 @@ if(ENABLE_MULTITHREADING)
242260
find_package(OpenMP)
243261
if (OPENMP_FOUND)
244262
set(BLIS_ENABLE_OPENMP TRUE)
263+
add_compile_options(-Xclang -fopenmp)
245264
else()
246265
message (FATAL_ERROR "Openmp Not Found")
247266
endif()
@@ -291,14 +310,16 @@ endif()
291310
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W0 ")
292311
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Oi")
293312
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
294-
set(INTR_GENERAL_LINK_FLAGS "${INTR_GENERAL_LINK_FLAGS} /RELEGE")
313+
set(INTR_GENERAL_LINK_FLAGS "${INTR_GENERAL_LINK_FLAGS} /RELEGE")
295314

296315
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
297316

298317
#add_definitions(-DBLIS_OS_WINDOWS)
299318
add_definitions(-D_MSC_VER)
319+
if (${AOCL_BLIS_FAMILY} STREQUAL "amdzen")
320+
else()
300321
add_definitions(-DBLIS_CNAME=${TARGET_ARCH})
301-
322+
endif()
302323
# Generate the bli_config.h header file
303324
configure_file (build/bli_win_config.h.in ${CMAKE_SOURCE_DIR}/bli_config.h @ONLY)
304325

@@ -372,6 +393,12 @@ include_directories(${CMAKE_SOURCE_DIR}/config/generic)
372393
include_directories(${CMAKE_SOURCE_DIR}/config/zen)
373394
include_directories(${CMAKE_SOURCE_DIR}/config/zen2)
374395
include_directories(${CMAKE_SOURCE_DIR}/config/zen3)
396+
if(${AOCL_BLIS_FAMILY} STREQUAL "amdzen")
397+
include_directories(${CMAKE_BINARY_DIR}/ref_kernels/generic)
398+
include_directories(${CMAKE_BINARY_DIR}/ref_kernels/zen)
399+
include_directories(${CMAKE_BINARY_DIR}/ref_kernels/zen2)
400+
include_directories(${CMAKE_BINARY_DIR}/ref_kernels/zen3)
401+
endif()
375402
include_directories(${CMAKE_SOURCE_DIR}/ref_kernels)
376403
include_directories(${CMAKE_SOURCE_DIR}/kernels)
377404
include_directories(${CMAKE_SOURCE_DIR}/kernels/haswell)
@@ -394,22 +421,20 @@ find_package(PythonLibs 3 REQUIRED)
394421

395422
string(APPEND HEADER_PATH
396423
if(${AOCL_BLIS_FAMILY} STREQUAL "zen")
397-
" ${CMAKE_CURRENT_SOURCE_DIR}/config/zen/"
398-
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/zen/"
399-
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/haswell/"
424+
" ${CMAKE_CURRENT_SOURCE_DIR}/config/zen/"
425+
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/zen/"
426+
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/haswell/"
400427
elseif (${AOCL_BLIS_FAMILY} STREQUAL "zen2")
401-
" ${CMAKE_CURRENT_SOURCE_DIR}/config/zen2/"
402-
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/zen/"
403-
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/haswell/"
404-
elseif (${AOCL_BLIS_FAMILY} STREQUAL "amd64")
405-
" ${CMAKE_CURRENT_SOURCE_DIR}/config/amd64/"
406-
" ${CMAKE_CURRENT_SOURCE_DIR}/config/bulldozer/"
407-
" ${CMAKE_CURRENT_SOURCE_DIR}/config/excavator/"
428+
" ${CMAKE_CURRENT_SOURCE_DIR}/config/zen2/"
429+
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/zen/"
430+
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/haswell/"
431+
" ${CMAKE_CURRENT_SOURCE_DIR}/config/amdzen/"
432+
" ${CMAKE_CURRENT_SOURCE_DIR}/config/zen/"
433+
" ${CMAKE_CURRENT_SOURCE_DIR}/config/zen2/"
434+
" ${CMAKE_CURRENT_SOURCE_DIR}/config/zen3/"
408435
" ${CMAKE_CURRENT_SOURCE_DIR}/config/generic/"
409-
" ${CMAKE_CURRENT_SOURCE_DIR}/config/piledriver/"
410-
" ${CMAKE_CURRENT_SOURCE_DIR}/config/steamroller/"
411-
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/piledriver/"
412-
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/bulldozer/"
436+
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/zen/"
437+
" ${CMAKE_CURRENT_SOURCE_DIR}/kernels/haswell/"
413438
endif ()
414439
" ${CMAKE_CURRENT_SOURCE_DIR}/frame/0/"
415440
" ${CMAKE_CURRENT_SOURCE_DIR}/frame/0/copysc/"
@@ -502,19 +527,28 @@ message( STATUS "Generating monolithic header file :" ${CMD_OUTPUT})
502527
# setting the blis version string
503528
file (STRINGS "version" BLIS_VERSION)
504529
set(BLIS_VERSION_STRING ${BLIS_VERSION})
505-
add_definitions(-DBLIS_VERSION_STRING="${BLIS_VERSION_STRING}")
530+
add_definitions(-DBLIS_VERSION_STRING="AOCL BLIS ${BLIS_VERSION_STRING}")
531+
532+
message( STATUS "OPENMP PATH:" ${OPENMP_PATH})
533+
link_directories("${OPENMP_PATH}")
506534

507535
if(BUILD_SHARED_LIBS)
508536
add_library("${PROJECT_NAME}" SHARED ${CMAKE_SOURCE_DIR}/bli_config.h
509537
${CMAKE_SOURCE_DIR}/include/${TARGET_ARCH}/blis.h
510538
${headers})
539+
if(ENABLE_OPENMP)
540+
target_link_libraries("${PROJECT_NAME}" PUBLIC "${OPENMP_PATH}/libomp.lib")
541+
endif()
511542
target_compile_definitions("${PROJECT_NAME}" PUBLIC -DBLIS_IS_BUILDING_LIBRARY)
512543
set_target_properties("${PROJECT_NAME}" PROPERTIES LINKER_LANGUAGE C OUTPUT_NAME "${LIB_NAME}")
513544
endif()
514545
if(NOT BUILD_SHARED_LIBS)
515546
add_library("${PROJECT_NAME}" STATIC ${CMAKE_SOURCE_DIR}/bli_config.h
516547
${CMAKE_SOURCE_DIR}/include/${TARGET_ARCH}/blis.h
517548
${headers})
549+
if(ENABLE_OPENMP)
550+
target_link_libraries("${PROJECT_NAME}" PUBLIC "${OPENMP_PATH}/libomp.lib")
551+
endif()
518552
set_target_properties("${PROJECT_NAME}" PROPERTIES LINKER_LANGUAGE C OUTPUT_NAME "${LIB_NAME}")
519553
endif()
520554

@@ -529,7 +563,7 @@ add_subdirectory(aocl_dtl)
529563
add_subdirectory(test)
530564
add_subdirectory(testsuite)
531565
if(ENABLE_TESTCPP_TESTING)
532-
add_subdirectory(testcpp)
566+
add_subdirectory(vendor/testcpp)
533567
endif()
534568
if (ENABLE_BLASTEST)
535569
add_subdirectory(blastest)

Makefile

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
#
22
#
3-
# BLIS
3+
# BLIS
44
# An object-based framework for developing high-performance BLAS-like
55
# libraries.
66
#
77
# Copyright (C) 2014, The University of Texas at Austin
8+
# Copyright (C) 2021, Advanced Micro Devices, Inc. All rights reserved.
89
#
910
# Redistribution and use in source and binary forms, with or without
1011
# modification, are permitted provided that the following conditions are
@@ -36,7 +37,7 @@
3637
# Makefile
3738
#
3839
# Field G. Van Zee
39-
#
40+
#
4041
# Top-level makefile for libflame linear algebra library.
4142
#
4243
#
@@ -257,16 +258,9 @@ ifeq ($(MK_ENABLE_CBLAS),yes)
257258
HEADERS_TO_INSTALL += $(CBLAS_H_FLAT)
258259
endif
259260

260-
# Install BLIS CPP Template header files
261-
HEADERS_TO_INSTALL += $(CPP_HEADER_DIR)/*.hh
262-
263-
# If requested, include AMD's C++ template header files in the list of headers
261+
# Include AMD's C++ template header files in the list of headers
264262
# to install.
265-
ifeq ($(INSTALL_HH),yes)
266263
HEADERS_TO_INSTALL += $(wildcard $(VEND_CPP_PATH)/*.hh)
267-
endif
268-
269-
270264

271265
#
272266
# --- public makefile fragment definitions -------------------------------------
@@ -720,7 +714,7 @@ endif
720714

721715
# --- BLAS test suite rules ---
722716

723-
testblas: blastest-run
717+
testblas: blastest-run
724718

725719
blastest-f2c: check-env $(BLASTEST_F2C_LIB)
726720

@@ -903,7 +897,7 @@ endif
903897

904898
# Check results of BLIS CPP Template tests
905899
checkbliscpp:
906-
$(MAKE) -C $(CPP_TEST_DIR)
900+
$(MAKE) -C $(VEND_TESTCPP_DIR)
907901

908902
# Check the results of the BLIS testsuite.
909903
checkblis: testsuite-run
@@ -1091,24 +1085,29 @@ endif # ifeq ($(IS_WIN),no)
10911085
# --- Query current configuration ---
10921086

10931087
showconfig: check-env
1094-
@echo "configuration family: $(CONFIG_NAME)"
1095-
@echo "sub-configurations: $(CONFIG_LIST)"
1096-
@echo "requisite kernels sets: $(KERNEL_LIST)"
1097-
@echo "kernel-to-config map: $(KCONFIG_MAP)"
1088+
@echo "configuration family: $(CONFIG_NAME)"
1089+
@echo "sub-configurations: $(CONFIG_LIST)"
1090+
@echo "requisite kernels sets: $(KERNEL_LIST)"
1091+
@echo "kernel-to-config map: $(KCONFIG_MAP)"
10981092
@echo "-------------------------"
1099-
@echo "BLIS version string: $(VERSION)"
1100-
@echo ".so major version: $(SO_MAJOR)"
1101-
@echo ".so minor.build vers: $(SO_MINORB)"
1102-
@echo "install libdir: $(INSTALL_LIBDIR)"
1103-
@echo "install includedir: $(INSTALL_INCDIR)"
1104-
@echo "install sharedir: $(INSTALL_SHAREDIR)"
1105-
@echo "debugging status: $(DEBUG_TYPE)"
1106-
@echo "multithreading status: $(THREADING_MODEL)"
1107-
@echo "enable BLAS API? $(MK_ENABLE_BLAS)"
1108-
@echo "enable CBLAS API? $(MK_ENABLE_CBLAS)"
1109-
@echo "build static library? $(MK_ENABLE_STATIC)"
1110-
@echo "build shared library? $(MK_ENABLE_SHARED)"
1111-
@echo "ARG_MAX hack enabled? $(ARG_MAX_HACK)"
1093+
@echo "BLIS version string: $(VERSION)"
1094+
@echo ".so major version: $(SO_MAJOR)"
1095+
@echo ".so minor.build vers: $(SO_MINORB)"
1096+
@echo "install libdir: $(INSTALL_LIBDIR)"
1097+
@echo "install includedir: $(INSTALL_INCDIR)"
1098+
@echo "install sharedir: $(INSTALL_SHAREDIR)"
1099+
@echo "debugging status: $(DEBUG_TYPE)"
1100+
@echo "multithreading status: $(THREADING_MODEL)"
1101+
@echo "enable BLAS API? $(MK_ENABLE_BLAS)"
1102+
@echo "enable CBLAS API? $(MK_ENABLE_CBLAS)"
1103+
@echo "build static library? $(MK_ENABLE_STATIC)"
1104+
@echo "build shared library? $(MK_ENABLE_SHARED)"
1105+
@echo "ARG_MAX hack enabled? $(ARG_MAX_HACK)"
1106+
@echo "complex return scheme: $(MK_COMPLEX_RETURN_SCHEME)"
1107+
@echo "enable trsm preinversion: $(MK_ENABLE_TRSM_PREINVERSION)"
1108+
@echo "enable AOCL dynamic threads: $(MK_ENABLE_AOCL_DYNAMIC)"
1109+
@echo "BLAS Integer size(LP/ILP): $(MK_BLAS_INT_TYPE_SIZE)"
1110+
11121111

11131112

11141113
# --- Clean rules ---
@@ -1242,13 +1241,13 @@ ifeq ($(IS_CONFIGURED),yes)
12421241
ifeq ($(ENABLE_VERBOSE),yes)
12431242
- $(FIND) $(TESTSUITE_DIR)/$(OBJ_DIR) -name "*.o" | $(XARGS) $(RM_F)
12441243
- $(RM_F) $(TESTSUITE_DIR)/$(TESTSUITE_BIN)
1245-
- $(MAKE) -C $(CPP_TEST_DIR) clean
1244+
- $(MAKE) -C $(VEND_TESTCPP_DIR) clean
12461245
else
12471246
@echo "Removing object files from $(TESTSUITE_DIR)/$(OBJ_DIR)"
12481247
@- $(FIND) $(TESTSUITE_DIR)/$(OBJ_DIR) -name "*.o" | $(XARGS) $(RM_F)
12491248
@echo "Removing binary $(TESTSUITE_DIR)/$(TESTSUITE_BIN)"
12501249
@- $(RM_F) $(TESTSUITE_DIR)/$(TESTSUITE_BIN)
1251-
@$(MAKE) -C $(CPP_TEST_DIR) clean
1250+
@$(MAKE) -C $(VEND_TESTCPP_DIR) clean
12521251
endif # ENABLE_VERBOSE
12531252
endif # IS_CONFIGURED
12541253

@@ -1282,7 +1281,7 @@ endif
12821281

12831282
changelog:
12841283
@echo "Updating '$(DIST_PATH)/$(CHANGELOG)' via '$(GIT_LOG)'"
1285-
@$(GIT_LOG) > $(DIST_PATH)/$(CHANGELOG)
1284+
@$(GIT_LOG) > $(DIST_PATH)/$(CHANGELOG)
12861285

12871286

12881287
# --- Uninstall rules ---

0 commit comments

Comments
 (0)