Skip to content

Commit a5a3c8b

Browse files
committed
AOCL-BLAS Release 4.1
2 parents e3fc540 + 4dcd51c commit a5a3c8b

861 files changed

Lines changed: 236889 additions & 45474 deletions

File tree

Some content is hidden

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

CMakeLists.txt

Lines changed: 69 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
##Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved.##
1+
##Copyright (C) 2022-2023, Advanced Micro Devices, Inc. All rights reserved.##
22

33
cmake_minimum_required(VERSION 3.0.0)
44

@@ -107,8 +107,9 @@ option (ENABLE_UPPERCASE_API "export APIs with uppercase" OFF)
107107
option (ENABLE_COMPLEX_RETURN_INTEL "Enable complex_return_intel" OFF)
108108
option (ENABLE_TRSM_PREINVERSION "Enable TRSM preinversion" ON)
109109
option (ENABLE_AOCL_DYNAMIC "Enable Dynamic Multi-threading" OFF)
110-
option(DISABLE_BLIS_ARCH_TYPE "Disable BLIS_ARCH_TYPE functionality" OFF)
110+
option(DISABLE_BLIS_ARCH_TYPE "Disable BLIS_ARCH_TYPE and BLIS_MODEL_TYPE functionality" OFF)
111111
option(RENAME_BLIS_ARCH_TYPE "Rename BLIS_ARCH_TYPE env var renamed to supplied value" BLIS_ARCH_TYPE)
112+
option(RENAME_BLIS_MODEL_TYPE "Rename BLIS_MODEL_TYPE env var renamed to supplied value" BLIS_MODEL_TYPE)
112113

113114
if (${AOCL_BLIS_FAMILY} STREQUAL "amdzen")
114115
set(REF_KERNEL_MIRRORING_PY "${CMAKE_SOURCE_DIR}/build/blis_ref_kernel_mirror.py")
@@ -181,9 +182,11 @@ endif ()
181182
if (ENABLE_JRIR_RR)
182183
message("Round robin thread method enabled")
183184
set(BLIS_ENABLE_JRIR_RR TRUE)
185+
set(BLIS_ENABLE_JRIR_SLAB FALSE)
184186
elseif (ENABLE_JRIR_SLAB)
185187
message("SLAB thread method enabled")
186188
set(BLIS_ENABLE_JRIR_SLAB TRUE)
189+
set(BLIS_ENABLE_JRIR_RR FALSE)
187190
else ()
188191
message("Unsupported method of thread partitioning in jr and ir loops")
189192
endif ()
@@ -202,18 +205,23 @@ endif ()
202205

203206
if (ENABLE_BLAS)
204207
add_definitions(-DBLIS_ENABLE_BLAS)
208+
set(BLIS_ENABLE_BLAS TRUE)
205209
else ()
206210
add_definitions(-DBLIS_DISABLE_BLAS)
211+
set(BLIS_ENABLE_BLAS FALSE)
207212
endif ()
208213

209214
if (ENABLE_CBLAS)
210215
add_definitions(-DBLIS_ENABLE_CBLAS)
216+
set(BLIS_ENABLE_CBLAS TRUE)
211217
if (NOT ENABLE_BLAS)
212218
# Force BLAS layer when CBLAS is enabled
213219
add_definitions(-DBLIS_ENABLE_BLAS)
220+
set(BLIS_ENABLE_BLAS TRUE)
214221
endif ()
215222
else ()
216223
add_definitions(-DBLIS_DISABLE_CBLAS)
224+
set(BLIS_ENABLE_CBLAS FALSE)
217225
endif ()
218226

219227
if (ENABLE_BLASTEST)
@@ -286,8 +294,10 @@ endif()
286294

287295
if(DISABLE_BLIS_ARCH_TYPE)
288296
set(BLIS_DISABLE_BLIS_ARCH_TYPE TRUE)
297+
set(BLIS_DISABLE_BLIS_MODEL_TYPE TRUE)
289298
else()
290299
set(BLIS_DISABLE_BLIS_ARCH_TYPE FALSE)
300+
set(BLIS_DISABLE_BLIS_MODEL_TYPE FALSE)
291301
endif()
292302

293303
if(RENAME_BLIS_ARCH_TYPE)
@@ -298,6 +308,30 @@ else()
298308
set(rename_blis_arch_type "BLIS_ARCH_TYPE")
299309
endif()
300310

311+
if(RENAME_BLIS_MODEL_TYPE)
312+
set(__blis_model_type_name TRUE)
313+
set(rename_blis_model_type "${RENAME_BLIS_MODEL_TYPE}")
314+
else()
315+
set(__blis_model_type_name TRUE)
316+
set(rename_blis_model_type "BLIS_MODEL_TYPE")
317+
endif()
318+
319+
find_package(Doxygen)
320+
set(W_DIR "${CMAKE_CURRENT_SOURCE_DIR}/docs")
321+
if(NOT (DOXYGEN_FOUND))
322+
message(STATUS "Doxygen not found please install and try again.")
323+
else()
324+
execute_process(COMMAND doxygen Doxyfile
325+
WORKING_DIRECTORY ${W_DIR}
326+
COMMAND_ECHO STDOUT)
327+
endif()
328+
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/docs/html/index.html)
329+
message(STATUS "Documentation generated successfully, to view documentation open docs/html/index.html .")
330+
else()
331+
message(STATUS "Document generation failed.")
332+
endif()
333+
334+
set(CMAKE_BUILD_TYPE ${CMAKE_CONFIGURATION_TYPES})
301335

302336
#print configurations
303337
message("---cmake configurations---")
@@ -322,8 +356,9 @@ message(BLIS_ENABLE_SANDBOX : ${BLIS_ENABLE_SANDBOX})
322356
message(BLIS_ENABLE_SHARED : ${BLIS_ENABLE_SHARED})
323357
message(DISABLE_BLIS_ARCH_TYPE : ${DISABLE_BLIS_ARCH_TYPE})
324358
message(RENAME_BLIS_ARCH_TYPE : ${RENAME_BLIS_ARCH_TYPE})
359+
message(RENAME_BLIS_MODEL_TYPE : ${RENAME_BLIS_MODEL_TYPE})
325360

326-
SET(ENABLE_SIMD_FLAGS "AVX2" CACHE STRING "Set compiler SIMD flags")
361+
SET(ENABLE_SIMD_FLAGS "none" CACHE STRING "Set compiler SIMD flags")
327362
SET_PROPERTY(CACHE ENABLE_SIMD_FLAGS PROPERTY STRINGS none SSE2 AVX AVX2)
328363

329364
if(${ENABLE_SIMD_FLAGS} MATCHES "AVX2")
@@ -334,15 +369,6 @@ elseif(${ENABLE_SIMD_FLAGS} MATCHES "SSE2")
334369
add_definitions(/arch:SSE2)
335370
endif()
336371

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-
346372
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W0 ")
347373
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Oi")
348374
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
@@ -588,10 +614,37 @@ set(BLIS_VERSION_STRING ${BLIS_VERSION})
588614
string(TIMESTAMP BUILD_DATE "%Y%m%d")
589615
add_definitions(-DBLIS_VERSION_STRING="AOCL-BLIS ${BLIS_VERSION_STRING} Build ${BUILD_DATE}")
590616

617+
# Set object libraries created in kernels directory to be added into BLIS library.
618+
set(OBJECT_LIBRARIES
619+
$<TARGET_OBJECTS:zen_1>
620+
$<TARGET_OBJECTS:zen_1f>
621+
$<TARGET_OBJECTS:zen_2>
622+
$<TARGET_OBJECTS:zen_3>
623+
$<TARGET_OBJECTS:zen_3_sup>
624+
$<TARGET_OBJECTS:haswell_1m>
625+
$<TARGET_OBJECTS:haswell_3>
626+
$<TARGET_OBJECTS:haswell_3sup>
627+
$<TARGET_OBJECTS:haswell_3supd6x8>
628+
)
629+
# Ammend the list of object libraries to include zen4 paths as appropriate.
630+
if(${TARGET_ARCH} STREQUAL zen4 OR
631+
${TARGET_ARCH} STREQUAL amdzen)
632+
set(OBJECT_LIBRARIES ${OBJECT_LIBRARIES}
633+
$<TARGET_OBJECTS:zen4_1>
634+
$<TARGET_OBJECTS:zen4_1m>
635+
$<TARGET_OBJECTS:zen4_3>
636+
$<TARGET_OBJECTS:zen4_3sup>
637+
$<TARGET_OBJECTS:zen4_3supd24x8>
638+
$<TARGET_OBJECTS:skx_3>
639+
)
640+
endif()
641+
591642
if(BUILD_SHARED_LIBS)
592643
add_library("${PROJECT_NAME}" SHARED ${CMAKE_SOURCE_DIR}/bli_config.h
593644
${CMAKE_SOURCE_DIR}/include/${TARGET_ARCH}/blis.h
594-
${headers})
645+
${headers}
646+
${OBJECT_LIBRARIES}
647+
)
595648
if(ENABLE_OPENMP)
596649
target_link_libraries("${PROJECT_NAME}" PRIVATE OpenMP::OpenMP_CXX)
597650
endif()
@@ -601,7 +654,9 @@ endif()
601654
if(NOT BUILD_SHARED_LIBS)
602655
add_library("${PROJECT_NAME}" STATIC ${CMAKE_SOURCE_DIR}/bli_config.h
603656
${CMAKE_SOURCE_DIR}/include/${TARGET_ARCH}/blis.h
604-
${headers})
657+
${headers}
658+
${OBJECT_LIBRARIES}
659+
)
605660
if(ENABLE_OPENMP)
606661
set_target_properties("${PROJECT_NAME}" PROPERTIES LINKER_LANGUAGE C OUTPUT_NAME "${LIB_NAME}" STATIC_LIBRARY_OPTIONS "${OpenMP_libomp_LIBRARY}")
607662
else()

Makefile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# libraries.
66
#
77
# Copyright (C) 2014, The University of Texas at Austin
8-
# Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved.
8+
# Copyright (C) 2022-2023, Advanced Micro Devices, Inc. All rights reserved.
99
#
1010
# Redistribution and use in source and binary forms, with or without
1111
# modification, are permitted provided that the following conditions are
@@ -273,9 +273,11 @@ BASE_OBJ_CBLAS_PATH := $(BASE_OBJ_FRAME_PATH)/compat/cblas
273273
ifeq ($(MK_ENABLE_CBLAS),no)
274274
MK_BLIS_OBJS := $(filter-out $(BASE_OBJ_CBLAS_PATH)/%.o, $(MK_BLIS_OBJS) )
275275
endif
276-
ifeq ($(MK_ENABLE_BLAS),no)
277-
MK_BLIS_OBJS := $(filter-out $(BASE_OBJ_BLAS_PATH)/%.o, $(MK_BLIS_OBJS) )
278-
endif
276+
# Include bla_ files so that we get the *_blis_impl interfaces. Actual BLAS
277+
# interfaces will not be included from these files when MK_ENABLE_BLAS is no.
278+
##ifeq ($(MK_ENABLE_BLAS),no)
279+
##MK_BLIS_OBJS := $(filter-out $(BASE_OBJ_BLAS_PATH)/%.o, $(MK_BLIS_OBJS) )
280+
##endif
279281

280282

281283

0 commit comments

Comments
 (0)