@@ -10,12 +10,14 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
1010
1111
1212SET (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" )
1315set (TARGET_ARCH ${AOCL_BLIS_FAMILY} )
1416set (AOCL_BLIS_ZEN TRUE )
1517set (PYTHON_EXE "python" )
1618
1719if ("${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 " )
1921endif ()
2022
2123if (${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)
6365else ()
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 " )
6567endif ()
6668
6769set (TARGET_ARCH ${AOCL_BLIS_FAMILY} )
@@ -89,11 +91,23 @@ option(ENABLE_INT_TYPE_SIZE " Internal BLIS integers ,used in native BLIS interf
8991option (ENABLE_BLASTEST "Enable the blastest" OFF )
9092option (ENABLE_TESTCPP_TESTING "Enabling testcpp" OFF )
9193option (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 )
9396option (ENABLE_COMPLEX_RETURN_INTEL "Enable complex_return_intel" OFF )
9497option (ENABLE_TRSM_PREINVERSION "Enable TRSM preinversion" ON )
9598option (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 ()
97111if (ENABLE_NO_UNDERSCORE_API)
98112 add_definitions (-DBLIS_ENABLE_NO_UNDERSCORE_API)
99113endif ()
@@ -104,8 +118,12 @@ else()
104118 set (BLIS_DISABLE_COMPLEX_RETURN_INTEL TRUE )
105119endif ()
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)
109127endif ()
110128
111129if (ENABLE_AOCL_DYNAMIC)
@@ -132,7 +150,7 @@ endif ()
132150if (ENABLE_TRSM_PREINVERSION)
133151 set (BLIS_ENABLE_TRSM_PREINVERSION TRUE )
134152else ()
135- set (BLIS_DISABLE_TRSM_PREINVERSION TRUE )
153+ add_definitions (-DBLIS_DISABLE_TRSM_PREINVERSION )
136154endif ()
137155
138156if (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()
291310set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W0 " )
292311set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Oi" )
293312set (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
296315add_definitions (-D_CRT_SECURE_NO_DEPRECATE)
297316
298317#add_definitions(-DBLIS_OS_WINDOWS)
299318add_definitions (-D_MSC_VER)
319+ if (${AOCL_BLIS_FAMILY} STREQUAL "amdzen" )
320+ else ()
300321add_definitions (-DBLIS_CNAME=${TARGET_ARCH} )
301-
322+ endif ()
302323# Generate the bli_config.h header file
303324configure_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)
372393include_directories (${CMAKE_SOURCE_DIR} /config/zen)
373394include_directories (${CMAKE_SOURCE_DIR} /config/zen2)
374395include_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 ()
375402include_directories (${CMAKE_SOURCE_DIR} /ref_kernels)
376403include_directories (${CMAKE_SOURCE_DIR} /kernels)
377404include_directories (${CMAKE_SOURCE_DIR} /kernels/haswell)
@@ -394,22 +421,20 @@ find_package(PythonLibs 3 REQUIRED)
394421
395422string (APPEND HEADER_PATH
396423if (${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/"
400427elseif (${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/"
413438endif ()
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
503528file (STRINGS "version" BLIS_VERSION)
504529set (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
507535if (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} " )
513544endif ()
514545if (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} " )
519553endif ()
520554
@@ -529,7 +563,7 @@ add_subdirectory(aocl_dtl)
529563add_subdirectory (test )
530564add_subdirectory (testsuite)
531565if (ENABLE_TESTCPP_TESTING)
532- add_subdirectory (testcpp)
566+ add_subdirectory (vendor/ testcpp)
533567endif ()
534568if (ENABLE_BLASTEST)
535569 add_subdirectory (blastest)
0 commit comments