@@ -10,12 +10,14 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
10
10
11
11
12
12
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" )
13
15
set (TARGET_ARCH ${AOCL_BLIS_FAMILY} )
14
16
set (AOCL_BLIS_ZEN TRUE )
15
17
set (PYTHON_EXE "python" )
16
18
17
19
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 " )
19
21
endif ()
20
22
21
23
if (${AOCL_BLIS_FAMILY} STREQUAL "auto" )
@@ -48,9 +50,9 @@ elseif (${AOCL_BLIS_FAMILY} STREQUAL "zen3")
48
50
add_definitions (-DBLIS_KERNELS_ZEN2 )
49
51
add_definitions (-DBLIS_KERNELS_ZEN )
50
52
add_definitions (-DBLIS_KERNELS_HASWELL )
51
- elseif (${AOCL_BLIS_FAMILY} STREQUAL "amd64 " )
53
+ elseif (${AOCL_BLIS_FAMILY} STREQUAL "amdzen " )
52
54
set (AOCL_BLIS_ZEN FALSE )
53
- add_definitions (-DBLIS_FAMILY_AMD64 )
55
+ add_definitions (-DBLIS_FAMILY_AMDZEN )
54
56
add_definitions (-DBLIS_CONFIG_ZEN3 )
55
57
add_definitions (-DBLIS_CONFIG_ZEN2 )
56
58
add_definitions (-DBLIS_CONFIG_ZEN )
@@ -61,7 +63,7 @@ elseif (${AOCL_BLIS_FAMILY} STREQUAL "amd64")
61
63
add_definitions (-DBLIS_KERNELS_ZEN )
62
64
add_definitions (-DBLIS_KERNELS_GENERIC )
63
65
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 " )
65
67
endif ()
66
68
67
69
set (TARGET_ARCH ${AOCL_BLIS_FAMILY} )
@@ -89,11 +91,23 @@ option(ENABLE_INT_TYPE_SIZE " Internal BLIS integers ,used in native BLIS interf
89
91
option (ENABLE_BLASTEST "Enable the blastest" OFF )
90
92
option (ENABLE_TESTCPP_TESTING "Enabling testcpp" OFF )
91
93
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 )
93
96
option (ENABLE_COMPLEX_RETURN_INTEL "Enable complex_return_intel" OFF )
94
97
option (ENABLE_TRSM_PREINVERSION "Enable TRSM preinversion" ON )
95
98
option (ENABLE_AOCL_DYNAMIC "Enable Dynamic Multi-threading" OFF )
96
99
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 ()
97
111
if (ENABLE_NO_UNDERSCORE_API )
98
112
add_definitions (-DBLIS_ENABLE_NO_UNDERSCORE_API )
99
113
endif ()
@@ -104,8 +118,12 @@ else()
104
118
set (BLIS_DISABLE_COMPLEX_RETURN_INTEL TRUE )
105
119
endif ()
106
120
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 )
109
127
endif ()
110
128
111
129
if (ENABLE_AOCL_DYNAMIC )
@@ -132,7 +150,7 @@ endif ()
132
150
if (ENABLE_TRSM_PREINVERSION )
133
151
set (BLIS_ENABLE_TRSM_PREINVERSION TRUE )
134
152
else ()
135
- set ( BLIS_DISABLE_TRSM_PREINVERSION TRUE )
153
+ add_definitions ( -DBLIS_DISABLE_TRSM_PREINVERSION )
136
154
endif ()
137
155
138
156
if (ENABLE_INT_TYPE_SIZE )
@@ -242,6 +260,7 @@ if(ENABLE_MULTITHREADING)
242
260
find_package (OpenMP )
243
261
if (OPENMP_FOUND )
244
262
set (BLIS_ENABLE_OPENMP TRUE )
263
+ add_compile_options (-Xclang -fopenmp )
245
264
else ()
246
265
message (FATAL_ERROR "Openmp Not Found" )
247
266
endif ()
@@ -291,14 +310,16 @@ endif()
291
310
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W0 " )
292
311
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Oi" )
293
312
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" )
295
314
296
315
add_definitions (-D_CRT_SECURE_NO_DEPRECATE )
297
316
298
317
#add_definitions(-DBLIS_OS_WINDOWS)
299
318
add_definitions (-D_MSC_VER )
319
+ if (${AOCL_BLIS_FAMILY} STREQUAL "amdzen" )
320
+ else ()
300
321
add_definitions (-DBLIS_CNAME=${TARGET_ARCH} )
301
-
322
+ endif ()
302
323
# Generate the bli_config.h header file
303
324
configure_file (build /bli_win_config.h.in ${CMAKE_SOURCE_DIR} /bli_config.h @ONLY )
304
325
@@ -372,6 +393,12 @@ include_directories(${CMAKE_SOURCE_DIR}/config/generic)
372
393
include_directories (${CMAKE_SOURCE_DIR} /config/zen )
373
394
include_directories (${CMAKE_SOURCE_DIR} /config/zen2 )
374
395
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 ()
375
402
include_directories (${CMAKE_SOURCE_DIR} /ref_kernels )
376
403
include_directories (${CMAKE_SOURCE_DIR} /kernels )
377
404
include_directories (${CMAKE_SOURCE_DIR} /kernels/haswell )
@@ -394,22 +421,20 @@ find_package(PythonLibs 3 REQUIRED)
394
421
395
422
string (APPEND HEADER_PATH
396
423
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/"
400
427
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 /"
408
435
" ${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/"
413
438
endif ()
414
439
" ${CMAKE_CURRENT_SOURCE_DIR} /frame/0/"
415
440
" ${CMAKE_CURRENT_SOURCE_DIR} /frame/0/copysc/"
@@ -502,19 +527,28 @@ message( STATUS "Generating monolithic header file :" ${CMD_OUTPUT})
502
527
# setting the blis version string
503
528
file (STRINGS "version" BLIS_VERSION )
504
529
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} " )
506
534
507
535
if (BUILD_SHARED_LIBS )
508
536
add_library ("${PROJECT_NAME} " SHARED ${CMAKE_SOURCE_DIR} /bli_config.h
509
537
${CMAKE_SOURCE_DIR} /include/${TARGET_ARCH}/blis.h
510
538
${headers} )
539
+ if (ENABLE_OPENMP )
540
+ target_link_libraries ("${PROJECT_NAME} " PUBLIC "${OPENMP_PATH} /libomp.lib" )
541
+ endif ()
511
542
target_compile_definitions ("${PROJECT_NAME} " PUBLIC -DBLIS_IS_BUILDING_LIBRARY )
512
543
set_target_properties ("${PROJECT_NAME} " PROPERTIES LINKER_LANGUAGE C OUTPUT_NAME "${LIB_NAME} " )
513
544
endif ()
514
545
if (NOT BUILD_SHARED_LIBS )
515
546
add_library ("${PROJECT_NAME} " STATIC ${CMAKE_SOURCE_DIR} /bli_config.h
516
547
${CMAKE_SOURCE_DIR} /include/${TARGET_ARCH}/blis.h
517
548
${headers} )
549
+ if (ENABLE_OPENMP )
550
+ target_link_libraries ("${PROJECT_NAME} " PUBLIC "${OPENMP_PATH} /libomp.lib" )
551
+ endif ()
518
552
set_target_properties ("${PROJECT_NAME} " PROPERTIES LINKER_LANGUAGE C OUTPUT_NAME "${LIB_NAME} " )
519
553
endif ()
520
554
@@ -529,7 +563,7 @@ add_subdirectory(aocl_dtl)
529
563
add_subdirectory (test )
530
564
add_subdirectory (testsuite )
531
565
if (ENABLE_TESTCPP_TESTING )
532
- add_subdirectory (testcpp )
566
+ add_subdirectory (vendor/ testcpp )
533
567
endif ()
534
568
if (ENABLE_BLASTEST )
535
569
add_subdirectory (blastest )
0 commit comments