mirror of
https://github.com/amd/blis.git
synced 2026-04-19 23:28:52 +00:00
AOCL-Windows: Updating the blis windows build system.
1. Removed the libomp.lib hardcoded from cmake scripts and made it user configurable. By default libomp.lib is used as an omp library. 2. Added the STATIC_LIBRARY_OPTIONS property in set_target_properties cmake command to link omp library to build static-mt blis library. 3. Updated the blis_ref_kernel_mirror.py to give support for zen4 architecture. AMD-Internal: CPUPL-1630 Change-Id: I54b04cde2fa6a1ddc4b4303f1da808c1efe0484a
This commit is contained in:
@@ -10,8 +10,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
|
||||
|
||||
|
||||
SET(AOCL_BLIS_FAMILY "zen" CACHE STRING "AOCL BLIS family name")
|
||||
SET(OPENMP_PATH "C:\\Program Files\\LLVM\\lib" CACHE STRING "openmp library
|
||||
path")
|
||||
SET(OMP_LIB "C:\\Program Files\\LLVM\\lib\\libomp.lib" CACHE STRING "openmp library path")
|
||||
set(TARGET_ARCH ${AOCL_BLIS_FAMILY})
|
||||
set(AOCL_BLIS_ZEN TRUE)
|
||||
set (PYTHON_EXE "python")
|
||||
@@ -542,15 +541,14 @@ file (STRINGS "version" BLIS_VERSION)
|
||||
set(BLIS_VERSION_STRING ${BLIS_VERSION})
|
||||
add_definitions(-DBLIS_VERSION_STRING="AOCL BLIS ${BLIS_VERSION_STRING}")
|
||||
|
||||
message( STATUS "OPENMP PATH:" ${OPENMP_PATH})
|
||||
link_directories("${OPENMP_PATH}")
|
||||
message( STATUS "OPENMP Library:" ${OMP_LIB})
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
add_library("${PROJECT_NAME}" SHARED ${CMAKE_SOURCE_DIR}/bli_config.h
|
||||
${CMAKE_SOURCE_DIR}/include/${TARGET_ARCH}/blis.h
|
||||
${headers})
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries("${PROJECT_NAME}" PUBLIC "${OPENMP_PATH}/libomp.lib")
|
||||
target_link_libraries("${PROJECT_NAME}" PUBLIC "${OMP_LIB}")
|
||||
endif()
|
||||
target_compile_definitions("${PROJECT_NAME}" PUBLIC -DBLIS_IS_BUILDING_LIBRARY)
|
||||
set_target_properties("${PROJECT_NAME}" PROPERTIES LINKER_LANGUAGE C OUTPUT_NAME "${LIB_NAME}")
|
||||
@@ -560,9 +558,10 @@ if(NOT BUILD_SHARED_LIBS)
|
||||
${CMAKE_SOURCE_DIR}/include/${TARGET_ARCH}/blis.h
|
||||
${headers})
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries("${PROJECT_NAME}" PUBLIC "${OPENMP_PATH}/libomp.lib")
|
||||
set_target_properties("${PROJECT_NAME}" PROPERTIES LINKER_LANGUAGE C OUTPUT_NAME "${LIB_NAME}" STATIC_LIBRARY_OPTIONS "${OMP_LIB}")
|
||||
else()
|
||||
set_target_properties("${PROJECT_NAME}" PROPERTIES LINKER_LANGUAGE C OUTPUT_NAME "${LIB_NAME}")
|
||||
endif()
|
||||
set_target_properties("${PROJECT_NAME}" PROPERTIES LINKER_LANGUAGE C OUTPUT_NAME "${LIB_NAME}")
|
||||
endif()
|
||||
|
||||
link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
|
||||
|
||||
@@ -69,11 +69,11 @@ def remove_lines_in_file(filename):
|
||||
file_content = fd.read()
|
||||
file_content = file_content.replace(
|
||||
'if(${TARGET_ARCH} STREQUAL amdzen)\n'
|
||||
'add_subdirectory(${CMAKE_BINARY_DIR}/ref_kernels/generic'
|
||||
'add_subdirectory(${CMAKE_BINARY_DIR}/ref_kernels/generic '
|
||||
'${CMAKE_BINARY_DIR}/ref_kernels/generic)\n'
|
||||
'add_subdirectory(${CMAKE_BINARY_DIR}/ref_kernels/zen'
|
||||
'add_subdirectory(${CMAKE_BINARY_DIR}/ref_kernels/zen '
|
||||
'${CMAKE_BINARY_DIR}/ref_kernels/zen)\n'
|
||||
'add_subdirectory(${CMAKE_BINARY_DIR}/ref_kernels/zen2'
|
||||
'add_subdirectory(${CMAKE_BINARY_DIR}/ref_kernels/zen2 '
|
||||
'${CMAKE_BINARY_DIR}/ref_kernels/zen2)\n'
|
||||
'add_subdirectory(${CMAKE_BINARY_DIR}/ref_kernels/zen3 '
|
||||
'${CMAKE_BINARY_DIR}/ref_kernels/zen3)\n'
|
||||
@@ -115,6 +115,7 @@ if __name__ == '__main__':
|
||||
create_folder(os.path.join(dest_path, 'zen'))
|
||||
create_folder(os.path.join(dest_path, 'zen2'))
|
||||
create_folder(os.path.join(dest_path, 'zen3'))
|
||||
create_folder(os.path.join(dest_path, 'zen4'))
|
||||
create_folder(os.path.join(dest_path, 'generic'))
|
||||
execute_and_check('XCOPY {} {} /E'.format(
|
||||
temp, os.path.join(dest_path, 'zen')))
|
||||
@@ -122,6 +123,8 @@ if __name__ == '__main__':
|
||||
temp, os.path.join(dest_path, 'zen2')))
|
||||
execute_and_check('XCOPY {} {} /E'.format(
|
||||
temp, os.path.join(dest_path, 'zen3')))
|
||||
execute_and_check('XCOPY {} {} /E'.format(
|
||||
temp, os.path.join(dest_path, 'zen4')))
|
||||
execute_and_check('XCOPY {} {} /E'.format(
|
||||
temp, os.path.join(dest_path, 'generic')))
|
||||
remove_folder(temp)
|
||||
@@ -133,6 +136,8 @@ if __name__ == '__main__':
|
||||
dest_path, 'zen2', 'CMakeLists.txt'))
|
||||
remove_lines_in_file(os.path.join(
|
||||
dest_path, 'zen3', 'CMakeLists.txt'))
|
||||
remove_lines_in_file(os.path.join(
|
||||
dest_path, 'zen4', 'CMakeLists.txt'))
|
||||
cfiles_in_generic = execute_and_check('cd {} && dir / s / b / o: gn *.c'
|
||||
.format(os.path.join(dest_path,
|
||||
'generic')))
|
||||
@@ -140,20 +145,22 @@ if __name__ == '__main__':
|
||||
add_macro_to_cfiles(cfiles_in_generic,
|
||||
'\n#define BLIS_CNAME_INFIX _generic\n')
|
||||
cfiles_in_zen = execute_and_check('cd {} && dir / s / b / o: gn *.c'
|
||||
.format(os.path.join(dest_path,
|
||||
'zen')))
|
||||
.format(os.path.join(dest_path, 'zen')))
|
||||
cfiles_in_zen = cfiles_in_zen.split('\r\n')
|
||||
add_macro_to_cfiles(cfiles_in_zen,
|
||||
'\n#define BLIS_CNAME_INFIX _zen\n')
|
||||
cfiles_in_zen2 = execute_and_check('cd {} && dir / s / b / o: gn *.c'
|
||||
.format(os.path.join(dest_path,
|
||||
'zen2')))
|
||||
.format(os.path.join(dest_path, 'zen2')))
|
||||
cfiles_in_zen2 = cfiles_in_zen2.split('\r\n')
|
||||
add_macro_to_cfiles(cfiles_in_zen2,
|
||||
'\n#define BLIS_CNAME_INFIX _zen2\n')
|
||||
cfiles_in_zen3 = execute_and_check('cd {} && dir / s / b / o: gn *.c'
|
||||
.format(os.path.join(dest_path,
|
||||
'zen3')))
|
||||
.format(os.path.join(dest_path, 'zen3')))
|
||||
cfiles_in_zen3 = cfiles_in_zen3.split('\r\n')
|
||||
add_macro_to_cfiles(cfiles_in_zen3,
|
||||
'\n#define BLIS_CNAME_INFIX _zen3\n')
|
||||
cfiles_in_zen4 = execute_and_check('cd {} && dir / s / b / o: gn *.c'
|
||||
.format(os.path.join(dest_path, 'zen4')))
|
||||
cfiles_in_zen4 = cfiles_in_zen4.split('\r\n')
|
||||
add_macro_to_cfiles(cfiles_in_zen4,
|
||||
'\n#define BLIS_CNAME_INFIX _zen4\n')
|
||||
|
||||
@@ -4,169 +4,169 @@ add_definitions(-DBLAS="AOCL")
|
||||
|
||||
add_executable(TestAminv test_aminv.c)
|
||||
target_link_libraries(TestAminv debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestAminv "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestAminv "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestAminv optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestAxpyv test_axpyv.c)
|
||||
target_link_libraries(TestAxpyv debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestAxpyv "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestAxpyv "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestAxpyv optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestAxpbyv test_axpbyv.c)
|
||||
target_link_libraries(TestAxpbyv debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestAxpbyv "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestAxpbyv "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestAxpbyv optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestCopyv test_copyv.c)
|
||||
target_link_libraries(TestCopyv debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestCopyv "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestCopyv "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestCopyv optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestCabs1 test_cabs1.c)
|
||||
target_link_libraries(TestCabs1 debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestCabs1 "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestCabs1 "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestCabs1 optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestDotv test_dotv.c)
|
||||
target_link_libraries(TestDotv debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestDotv "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestDotv "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestDotv optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestGemm test_gemm.c)
|
||||
target_link_libraries(TestGemm debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestGemm "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestGemm "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestGemm optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestGemmBatch test_gemm_batch.c)
|
||||
target_link_libraries(TestGemmBatch debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestGemmBatch "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestGemmBatch "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestGemmBatch optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestGemm3m test_gemm3m.c)
|
||||
target_link_libraries(TestGemm3m debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestGemm3m "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestGemm3m "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestGemm3m optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestGemmt test_gemmt.c)
|
||||
target_link_libraries(TestGemmt debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestGemmt "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestGemmt "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestGemmt optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestGemv test_gemv.c)
|
||||
target_link_libraries(TestGemv debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestGemv "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestGemv "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestGemv optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestGer test_ger.c)
|
||||
target_link_libraries(TestGer debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestGer "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestGer "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestGer optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestHemm test_hemm.c)
|
||||
target_link_libraries(TestHemm debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestHemm "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestHemm "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestHemm optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestHemv test_hemv.c)
|
||||
target_link_libraries(TestHemv debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestHemv "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestHemv "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestHemv optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestHer test_her.c)
|
||||
target_link_libraries(TestHer debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestHer "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestHer "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestHer optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestHer2 test_her2.c)
|
||||
target_link_libraries(TestHer2 debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestHer2 "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestHer2 "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestHer2 optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestHer2k test_her2k.c)
|
||||
target_link_libraries(TestHer2k debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestHer2k "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestHer2k "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestHer2k optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestHerk test_herk.c)
|
||||
target_link_libraries(TestHerk debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestHerk "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestHerk "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestHerk optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestScalv test_scalv.c)
|
||||
target_link_libraries(TestScalv debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestScalv "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestScalv "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestScalv optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestSwapv test_swapv.c)
|
||||
target_link_libraries(TestSwapv debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestSwapv "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestSwapv "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestSwapv optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestTrmm test_trmm.c)
|
||||
target_link_libraries(TestTrmm debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestTrmm "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestTrmm "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestTrmm optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestTrmv test_trmv.c)
|
||||
target_link_libraries(TestTrmv debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestTrmv "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestTrmv "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestTrmv optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestTrsm test_trsm.c)
|
||||
target_link_libraries(TestTrsm debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestTrsm "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestTrsm "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestTrsm optimized "${LIB_NAME}.lib")
|
||||
|
||||
add_executable(TestTrsv test_trsv.c)
|
||||
target_link_libraries(TestTrsv debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(TestTrsv "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(TestTrsv "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(TestTrsv optimized "${LIB_NAME}.lib")
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ add_executable(test_libblis "")
|
||||
add_subdirectory(src)
|
||||
|
||||
target_link_libraries(test_libblis debug "${LIB_NAME}.lib")
|
||||
if(ENABLE_OPENMP)
|
||||
target_link_libraries(test_libblis "${OPENMP_PATH}/libomp.lib")
|
||||
if(ENABLE_OPENMP AND BUILD_SHARED_LIBS)
|
||||
target_link_libraries(test_libblis "${OMP_LIB}")
|
||||
endif()
|
||||
target_link_libraries(test_libblis optimized "${LIB_NAME}.lib")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user