From 60816c9259449634fce491c793535ff0a95712ea Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sun, 6 Nov 2016 23:26:04 +0100 Subject: [PATCH 1/3] Add files via upload --- cpuid_x86.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/cpuid_x86.c b/cpuid_x86.c index dff150701..6b6bc0f26 100644 --- a/cpuid_x86.c +++ b/cpuid_x86.c @@ -1205,8 +1205,34 @@ int get_cpuname(void){ #endif else return CPUTYPE_NEHALEM; + case 7: + // Xeon Phi Knights Landing + if(support_avx()) +#ifndef NO_AVX2 + return CPUTYPE_HASWELL; +#else + return CPUTYPE_SANDYBRIDGE; +#endif + else + return CPUTYPE_NEHALEM; + case 12: + // Apollo Lake + return CPUTYPE_NEHALEM; } break; + case 8: + switch (model) { + case 14: // Kaby Lake + if(support_avx()) +#ifndef NO_AVX2 + return CPUTYPE_HASWELL; +#else + return CPUTYPE_SANDYBRIDGE; +#endif + else + return CPUTYPE_NEHALEM; + } + break; } break; case 0x7: @@ -1713,8 +1739,24 @@ int get_coretype(void){ #endif else return CORE_NEHALEM; - } + case 7: + // Phi Knights Landing + if(support_avx()) +#ifndef NO_AVX2 + return CORE_HASWELL; +#else + return CORE_SANDYBRIDGE; +#endif + else + return CORE_NEHALEM; + case 12: + // Apollo Lake + return CORE_NEHALEM; + } break; + case 8: + if (model == 14) // Kaby Lake + return CORE_HASWELL; } break; From 596ead0f8dad8381430543b2c97ae7c585e75ca4 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sun, 6 Nov 2016 23:26:39 +0100 Subject: [PATCH 2/3] Add files via upload --- driver/others/dynamic.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/driver/others/dynamic.c b/driver/others/dynamic.c index a09660f94..9bb96b76e 100644 --- a/driver/others/dynamic.c +++ b/driver/others/dynamic.c @@ -264,7 +264,6 @@ static gotoblas_t *get_coretype(void){ } //Intel Braswell / Avoton if (model == 12 || model == 13) { - openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK); return &gotoblas_NEHALEM; } return NULL; @@ -287,6 +286,29 @@ static gotoblas_t *get_coretype(void){ return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels. } } + //Intel Phi Knights Landing + if (model == 7) { + if(support_avx()) + return &gotoblas_HASWELL; + else{ + openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK); + return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels. + } + } + //Apollo Lake + if (model == 14) { + return &gotoblas_NEHALEM; + } + return NULL; + case 8: + if (model == 14 ) { // Kaby Lake + if(support_avx()) + return &gotoblas_HASWELL; + else{ + openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK); + return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels. + } + } return NULL; } case 0xf: From 9dbdc7b2cf9f75dba3aa273fb0dcf5cc00f94390 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sun, 6 Nov 2016 23:27:30 +0100 Subject: [PATCH 3/3] Add files via upload --- CMakeLists.txt | 49 ++++++++++--------------------------------------- 1 file changed, 10 insertions(+), 39 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a98e20c52..d4a5d5466 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,20 +30,10 @@ set(NO_LAPACK 1) set(NO_LAPACKE 1) endif() -if(CMAKE_CONFIGURATION_TYPES) # multiconfig generator? - set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE) - set(CMAKE_BUILD_TYPE - Debug Debug - Release Release - ) +if(BUILD_DEBUG) +set(CMAKE_BUILD_TYPE Debug) else() - if( NOT CMAKE_BUILD_TYPE ) - if(BUILD_DEBUG) - set(CMAKE_BUILD_TYPE Debug) - else() - set(CMAKE_BUILD_TYPE Release) - endif() - endif() +set(CMAKE_BUILD_TYPE Release) endif() if(BUILD_WITHOUT_CBLAS) @@ -151,11 +141,8 @@ include("${PROJECT_SOURCE_DIR}/cmake/export.cmake") # Set output for libopenblas set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) -set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES LIBRARY_OUTPUT_NAME_DEBUG "${OpenBLAS_LIBNAME}_d") - foreach (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG ) - set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib) set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib) set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib) @@ -165,15 +152,14 @@ enable_testing() add_subdirectory(utest) if(NOT MSVC) - #only build shared library for MSVC +#only build shared library for MSVC +add_library(${OpenBLAS_LIBNAME}_static STATIC ${LA_SOURCES} ${LAPACKE_SOURCES} ${TARGET_OBJS}) +set_target_properties(${OpenBLAS_LIBNAME}_static PROPERTIES OUTPUT_NAME ${OpenBLAS_LIBNAME}) +set_target_properties(${OpenBLAS_LIBNAME}_static PROPERTIES CLEAN_DIRECT_OUTPUT 1) - add_library(${OpenBLAS_LIBNAME}_static STATIC ${LA_SOURCES} ${LAPACKE_SOURCES} ${TARGET_OBJS}) - set_target_properties(${OpenBLAS_LIBNAME}_static PROPERTIES OUTPUT_NAME ${OpenBLAS_LIBNAME}) - set_target_properties(${OpenBLAS_LIBNAME}_static PROPERTIES CLEAN_DIRECT_OUTPUT 1) - - if(SMP) - target_link_libraries(${OpenBLAS_LIBNAME} pthread) - target_link_libraries(${OpenBLAS_LIBNAME}_static pthread) +if(SMP) +target_link_libraries(${OpenBLAS_LIBNAME} pthread) +target_link_libraries(${OpenBLAS_LIBNAME}_static pthread) endif() #build test and ctest @@ -212,18 +198,3 @@ set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES #endif # @touch lib.grd -# Install project - -# Install libraries -install(TARGETS ${OpenBLAS_LIBNAME} - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib ) - -# Install include files -FILE(GLOB_RECURSE INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h") -install (FILES ${INCLUDE_FILES} DESTINATION include) - -if(NOT MSVC) - install (TARGETS ${OpenBLAS_LIBNAME}_static DESTINATION lib) -endif()