1- ##Copyright (C) 2022, Advanced Micro Devices, Inc. All rights reserved.##
1+ ##Copyright (C) 2022-2023 , Advanced Micro Devices, Inc. All rights reserved.##
22
33cmake_minimum_required (VERSION 3.0.0 )
44
@@ -107,8 +107,9 @@ option (ENABLE_UPPERCASE_API "export APIs with uppercase" OFF)
107107option (ENABLE_COMPLEX_RETURN_INTEL "Enable complex_return_intel" OFF )
108108option (ENABLE_TRSM_PREINVERSION "Enable TRSM preinversion" ON )
109109option (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 )
111111option (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
113114if (${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 ()
181182if (ENABLE_JRIR_RR)
182183 message ("Round robin thread method enabled" )
183184 set (BLIS_ENABLE_JRIR_RR TRUE )
185+ set (BLIS_ENABLE_JRIR_SLAB FALSE )
184186elseif (ENABLE_JRIR_SLAB)
185187 message ("SLAB thread method enabled" )
186188 set (BLIS_ENABLE_JRIR_SLAB TRUE )
189+ set (BLIS_ENABLE_JRIR_RR FALSE )
187190else ()
188191 message ("Unsupported method of thread partitioning in jr and ir loops" )
189192endif ()
@@ -202,18 +205,23 @@ endif ()
202205
203206if (ENABLE_BLAS)
204207 add_definitions (-DBLIS_ENABLE_BLAS )
208+ set (BLIS_ENABLE_BLAS TRUE )
205209else ()
206210 add_definitions (-DBLIS_DISABLE_BLAS )
211+ set (BLIS_ENABLE_BLAS FALSE )
207212endif ()
208213
209214if (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 ()
215222else ()
216223 add_definitions (-DBLIS_DISABLE_CBLAS )
224+ set (BLIS_ENABLE_CBLAS FALSE )
217225endif ()
218226
219227if (ENABLE_BLASTEST)
@@ -286,8 +294,10 @@ endif()
286294
287295if (DISABLE_BLIS_ARCH_TYPE)
288296 set (BLIS_DISABLE_BLIS_ARCH_TYPE TRUE )
297+ set (BLIS_DISABLE_BLIS_MODEL_TYPE TRUE )
289298else ()
290299 set (BLIS_DISABLE_BLIS_ARCH_TYPE FALSE )
300+ set (BLIS_DISABLE_BLIS_MODEL_TYPE FALSE )
291301endif ()
292302
293303if (RENAME_BLIS_ARCH_TYPE)
@@ -298,6 +308,30 @@ else()
298308 set (rename_blis_arch_type "BLIS_ARCH_TYPE" )
299309endif ()
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
303337message ("---cmake configurations---" )
@@ -322,8 +356,9 @@ message(BLIS_ENABLE_SANDBOX : ${BLIS_ENABLE_SANDBOX})
322356message (BLIS_ENABLE_SHARED : ${BLIS_ENABLE_SHARED} )
323357message (DISABLE_BLIS_ARCH_TYPE : ${DISABLE_BLIS_ARCH_TYPE} )
324358message (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" )
327362SET_PROPERTY (CACHE ENABLE_SIMD_FLAGS PROPERTY STRINGS none SSE2 AVX AVX2 )
328363
329364if (${ENABLE_SIMD_FLAGS} MATCHES "AVX2" )
@@ -334,15 +369,6 @@ elseif(${ENABLE_SIMD_FLAGS} MATCHES "SSE2")
334369 add_definitions (/arch:SSE2 )
335370endif ()
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-
346372set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W0 " )
347373set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Oi" )
348374set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP" )
@@ -588,10 +614,37 @@ set(BLIS_VERSION_STRING ${BLIS_VERSION})
588614string (TIMESTAMP BUILD_DATE "%Y%m%d" )
589615add_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+
591642if (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()
601654if (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 ()
0 commit comments