Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/marian-nmt/marian.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorYoung Jin Kim <youki@microsoft.com>2019-06-19 03:09:14 +0300
committerYoung Jin Kim <youki@microsoft.com>2019-06-19 03:09:14 +0300
commite8ca9a37561efba2c86806518fd52d908e5ff1b7 (patch)
treee09b1d496b6e5993aec40aea32d4d449012d5d64 /cmake
parentd2d8ec041d443f906809b912a57a3d41b2c3a07c (diff)
Update some fixed
Diffstat (limited to 'cmake')
-rw-r--r--cmake/FindSSE.cmake23
1 files changed, 22 insertions, 1 deletions
diff --git a/cmake/FindSSE.cmake b/cmake/FindSSE.cmake
index c152dd74..e6d3e9ca 100644
--- a/cmake/FindSSE.cmake
+++ b/cmake/FindSSE.cmake
@@ -56,6 +56,14 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
ELSE (AVX2_TRUE)
set(AVX2_FOUND false CACHE BOOL "AVX2 available on host")
ENDIF (AVX2_TRUE)
+
+ STRING(REGEX REPLACE "^.*(avx512).*$" "\\1" SSE_THERE ${CPUINFO})
+ STRING(COMPARE EQUAL "avx512" "${SSE_THERE}" AVX512_TRUE)
+ IF (AVX512_TRUE)
+ set(AVX512_FOUND true CACHE BOOL "AVX512 available on host")
+ ELSE (AVX512_TRUE)
+ set(AVX512_FOUND false CACHE BOOL "AVX512 available on host")
+ ENDIF (AVX512_TRUE)
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
EXEC_PROGRAM("/usr/sbin/sysctl -n machdep.cpu.features" OUTPUT_VARIABLE
@@ -108,6 +116,14 @@ ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
ELSE (AVX2_TRUE)
set(AVX2_FOUND false CACHE BOOL "AVX2 available on host")
ENDIF (AVX2_TRUE)
+
+ STRING(REGEX REPLACE "^.*(avx512).*$" "\\1" SSE_THERE ${CPUINFO})
+ STRING(COMPARE EQUAL "avx512" "${SSE_THERE}" AVX512_TRUE)
+ IF (AVX512_TRUE)
+ set(AVX512_FOUND true CACHE BOOL "AVX512 available on host")
+ ELSE (AVX512_TRUE)
+ set(AVX512_FOUND false CACHE BOOL "AVX512 available on host")
+ ENDIF (AVX512_TRUE)
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Windows")
# TODO
@@ -117,6 +133,7 @@ ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Windows")
set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host")
set(AVX_FOUND false CACHE BOOL "AVX available on host")
set(AVX2_FOUND false CACHE BOOL "AVX2 available on host")
+ set(AVX512_FOUND false CACHE BOOL "AVX512 available on host")
ELSE(CMAKE_SYSTEM_NAME MATCHES "Linux")
set(SSE2_FOUND true CACHE BOOL "SSE2 available on host")
set(SSE3_FOUND false CACHE BOOL "SSE3 available on host")
@@ -124,6 +141,7 @@ ELSE(CMAKE_SYSTEM_NAME MATCHES "Linux")
set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host")
set(AVX_FOUND false CACHE BOOL "AVX available on host")
set(AVX2_FOUND false CACHE BOOL "AVX2 available on host")
+ set(AVX512_FOUND false CACHE BOOL "AVX512 available on host")
ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
if(NOT SSE2_FOUND)
@@ -144,5 +162,8 @@ endif(NOT AVX_FOUND)
if(NOT AVX2_FOUND)
MESSAGE(STATUS "Could not find hardware support for AVX2 on this machine.")
endif(NOT AVX2_FOUND)
+if(NOT AVX512_FOUND)
+ MESSAGE(STATUS "Could not find hardware support for AVX512 on this machine.")
+endif(NOT AVX512_FOUND)
-mark_as_advanced(SSE2_FOUND SSE3_FOUND SSSE3_FOUND SSE4_1_FOUND, AVX_FOUND, AVX2_FOUND)
+mark_as_advanced(SSE2_FOUND SSE3_FOUND SSSE3_FOUND SSE4_1_FOUND, AVX_FOUND, AVX2_FOUND, AVX512_FOUND)