fixed CMake/IntelCompilers.cmake for setting proper macros based on CPU flags.

fixed a printf syntax and argument mismatch.


git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6592 e5b18d87-469d-4833-9cc0-8cdfa06e9491
This commit is contained in:
Ye Luo 2015-10-04 22:37:56 +00:00
parent 8e1b72fa33
commit 1668b7f113
3 changed files with 114 additions and 80 deletions

View File

@ -9,6 +9,7 @@ add_definitions(-DADD_ -DINLINE_ALL=inline)
set(ENABLE_OPENMP 1) set(ENABLE_OPENMP 1)
set(INTEL_OPTS "-g -restrict -unroll -O3 -ip -openmp") set(INTEL_OPTS "-g -restrict -unroll -O3 -ip -openmp")
#MESSAGE(STATUS "CPU_IDENTITY ${CPU_IDENTITY}")
#grep icpc version and determine what options to be used #grep icpc version and determine what options to be used
exec_program(icpc exec_program(icpc
@ -30,13 +31,6 @@ ELSE(ICPC_VERSION LESS 11)
ENDIF(ICPC_MINOR_VERSION LESS 1) ENDIF(ICPC_MINOR_VERSION LESS 1)
ENDIF(ICPC_VERSION LESS 11) ENDIF(ICPC_VERSION LESS 11)
#check if -xHost is accepted
SET(CMAKE_TRY_ICC_FLAGS "-xHost")
CHECK_C_COMPILER_FLAG(${CMAKE_TRY_ICC_FLAGS} INTEL_CC_FLAGS)
IF(INTEL_CC_FLAGS)
SET(INTEL_OPTS "${INTEL_OPTS} ${CMAKE_TRY_ICC_FLAGS}")
ENDIF(INTEL_CC_FLAGS)
#check if -ftz is accepted #check if -ftz is accepted
SET(CMAKE_TRY_ICC_FLAGS "-ftz") SET(CMAKE_TRY_ICC_FLAGS "-ftz")
CHECK_C_COMPILER_FLAG(${CMAKE_TRY_ICC_FLAGS} INTEL_CC_FLAGS) CHECK_C_COMPILER_FLAG(${CMAKE_TRY_ICC_FLAGS} INTEL_CC_FLAGS)
@ -50,79 +44,116 @@ ELSE(ICC_DEPRECATED_OPTS)
set(INTEL_OPTS "${INTEL_OPTS} -opt-prefetch") set(INTEL_OPTS "${INTEL_OPTS} -opt-prefetch")
ENDIF(ICC_DEPRECATED_OPTS) ENDIF(ICC_DEPRECATED_OPTS)
#exec_program(grep exec_program(grep
# ARGS flags /proc/cpuinfo ARGS flags /proc/cpuinfo
# OUTPUT_VARIABLE CPU_FLAGS OUTPUT_VARIABLE CPU_FLAGS
# RETURN_VALUE CPUINFO RETURN_VALUE CPUINFO
# ) )
#
#SET(HAVE_SSE4_2 0)
#SET(HAVE_SSE4_1 0)
#SET(HAVE_SSSE3 0)
#SET(HAVE_SSE3 0)
#SET(HAVE_SSE2 0)
#SET(HAVE_SSE 0)
#
#if(CPU_FLAGS MATCHES "sse4_2")
# IF(ICC_DEPRECATED_OPTS)
# MESSAGE(WARNING "SSE4.2 needs version 11.1 and higher.")
# ELSE(ICC_DEPRECATED_OPTS)
# SET(HAVE_SSE4_2 1)
# IF(NOT SSE_OPT_SET)
# SET(SSE_OPT_SET TRUE)
# SET(INTEL_OPTS "${INTEL_OPTS} -xSSE4.2")
# ENDIF(NOT SSE_OPT_SET)
# ENDIF(ICC_DEPRECATED_OPTS)
#endif(CPU_FLAGS MATCHES "sse4_2")
#
#if(CPU_FLAGS MATCHES "sse4_1")
# SET(HAVE_SSE4_1 1)
# IF(NOT SSE_OPT_SET)
# SET(SSE_OPT_SET TRUE)
# IF(ICC_DEPRECATED_OPTS)
# SET(INTEL_OPTS "${INTEL_OPTS} -xS")
# ELSE(ICC_DEPRECATED_OPTS)
# SET(INTEL_OPTS "${INTEL_OPTS} -xSSE4.1")
# ENDIF(ICC_DEPRECATED_OPTS)
# ENDIF(NOT SSE_OPT_SET)
#endif(CPU_FLAGS MATCHES "sse4_1")
#
#if(CPU_FLAGS MATCHES "ssse3")
# SET(HAVE_SSSE3 1)
# IF(NOT SSE_OPT_SET)
# SET(SSE_OPT_SET TRUE)
# IF(ICC_DEPRECATED_OPTS)
# SET(INTEL_OPTS "${INTEL_OPTS} -xT")
# ELSE(ICC_DEPRECATED_OPTS)
# SET(INTEL_OPTS "${INTEL_OPTS} -xSSSE3")
# ENDIF(ICC_DEPRECATED_OPTS)
# ENDIF(NOT SSE_OPT_SET)
#endif(CPU_FLAGS MATCHES "ssse3")
#
#if(CPU_FLAGS MATCHES "sse3")
# SET(HAVE_SSE3 1)
# IF(NOT SSE_OPT_SET)
# SET(SSE_OPT_SET TRUE)
# IF(ICC_DEPRECATED_OPTS)
# SET(INTEL_OPTS "${INTEL_OPTS} -xP")
# ELSE(ICC_DEPRECATED_OPTS)
# SET(INTEL_OPTS "${INTEL_OPTS} -xSSE3")
# ENDIF(ICC_DEPRECATED_OPTS)
# ENDIF(NOT SSE_OPT_SET)
#endif(CPU_FLAGS MATCHES "sse3")
#
#if(CPU_FLAGS MATCHES "sse2")
# SET(HAVE_SSE2 1)
# IF(NOT SSE_OPT_SET)
# SET(SSE_OPT_SET TRUE)
# IF(ICC_DEPRECATED_OPTS)
# SET(INTEL_OPTS "${INTEL_OPTS} -xN")
# ELSE(ICC_DEPRECATED_OPTS)
# SET(INTEL_OPTS "${INTEL_OPTS} -xSSE2")
# ENDIF(ICC_DEPRECATED_OPTS)
# ENDIF(NOT SSE_OPT_SET)
#endif(CPU_FLAGS MATCHES "sse2")
# not all the flags are used by the code
SET(HAVE_AVX2 0)
SET(HAVE_AVX 0)
SET(HAVE_SSE42 0)
SET(HAVE_SSE41 0)
SET(HAVE_SSSE3 0)
SET(HAVE_SSE3 0)
SET(HAVE_SSE2 0)
SET(HAVE_SSE 0)
#check if -xHost is accepted
SET(CMAKE_TRY_ICC_FLAGS "-xHost")
CHECK_C_COMPILER_FLAG(${CMAKE_TRY_ICC_FLAGS} INTEL_CC_FLAGS)
IF(INTEL_CC_FLAGS)
SET(INTEL_OPTS "${INTEL_OPTS} ${CMAKE_TRY_ICC_FLAGS}")
SET(SSE_OPT_SET TRUE)
ELSE(INTEL_CC_FLAGS)
SET(SSE_OPT_SET FALSE)
ENDIF(INTEL_CC_FLAGS)
if(CPU_FLAGS MATCHES "avx2")
SET(HAVE_AVX2 1)
IF(NOT SSE_OPT_SET)
IF(ICC_DEPRECATED_OPTS)
MESSAGE(WARNING "AVX2 needs version 14.0 and higher.")
ELSE(ICC_DEPRECATED_OPTS)
SET(SSE_OPT_SET TRUE)
SET(INTEL_OPTS "${INTEL_OPTS} -xCORE-AVX2")
ENDIF(ICC_DEPRECATED_OPTS)
ENDIF(NOT SSE_OPT_SET)
endif(CPU_FLAGS MATCHES "avx2")
if(CPU_FLAGS MATCHES "avx")
SET(HAVE_AVX 1)
IF(NOT SSE_OPT_SET)
IF(ICC_DEPRECATED_OPTS)
MESSAGE(WARNING "AVX needs version 11.1 and higher.")
ELSE(ICC_DEPRECATED_OPTS)
SET(SSE_OPT_SET TRUE)
SET(INTEL_OPTS "${INTEL_OPTS} -xAVX")
ENDIF(ICC_DEPRECATED_OPTS)
ENDIF(NOT SSE_OPT_SET)
endif(CPU_FLAGS MATCHES "avx")
if(CPU_FLAGS MATCHES "sse4_2")
SET(HAVE_SSE42 1)
IF(NOT SSE_OPT_SET)
IF(ICC_DEPRECATED_OPTS)
MESSAGE(WARNING "SSE4.2 needs version 11.1 and higher.")
ELSE(ICC_DEPRECATED_OPTS)
SET(SSE_OPT_SET TRUE)
SET(INTEL_OPTS "${INTEL_OPTS} -xSSE4.2")
ENDIF(ICC_DEPRECATED_OPTS)
ENDIF(NOT SSE_OPT_SET)
endif(CPU_FLAGS MATCHES "sse4_2")
if(CPU_FLAGS MATCHES "sse4_1")
SET(HAVE_SSE41 1)
IF(NOT SSE_OPT_SET)
SET(SSE_OPT_SET TRUE)
IF(ICC_DEPRECATED_OPTS)
SET(INTEL_OPTS "${INTEL_OPTS} -xS")
ELSE(ICC_DEPRECATED_OPTS)
SET(INTEL_OPTS "${INTEL_OPTS} -xSSE4.1")
ENDIF(ICC_DEPRECATED_OPTS)
ENDIF(NOT SSE_OPT_SET)
endif(CPU_FLAGS MATCHES "sse4_1")
if(CPU_FLAGS MATCHES "ssse3")
SET(HAVE_SSSE3 1)
IF(NOT SSE_OPT_SET)
SET(SSE_OPT_SET TRUE)
IF(ICC_DEPRECATED_OPTS)
SET(INTEL_OPTS "${INTEL_OPTS} -xT")
ELSE(ICC_DEPRECATED_OPTS)
SET(INTEL_OPTS "${INTEL_OPTS} -xSSSE3")
ENDIF(ICC_DEPRECATED_OPTS)
ENDIF(NOT SSE_OPT_SET)
endif(CPU_FLAGS MATCHES "ssse3")
if(CPU_FLAGS MATCHES "sse3")
SET(HAVE_SSE3 1)
IF(NOT SSE_OPT_SET)
SET(SSE_OPT_SET TRUE)
IF(ICC_DEPRECATED_OPTS)
SET(INTEL_OPTS "${INTEL_OPTS} -xP")
ELSE(ICC_DEPRECATED_OPTS)
SET(INTEL_OPTS "${INTEL_OPTS} -xSSE3")
ENDIF(ICC_DEPRECATED_OPTS)
ENDIF(NOT SSE_OPT_SET)
endif(CPU_FLAGS MATCHES "sse3")
if(CPU_FLAGS MATCHES "sse2")
SET(HAVE_SSE2 1)
SET(HAVE_SSE 1)
IF(NOT SSE_OPT_SET)
SET(SSE_OPT_SET TRUE)
IF(ICC_DEPRECATED_OPTS)
SET(INTEL_OPTS "${INTEL_OPTS} -xN")
ELSE(ICC_DEPRECATED_OPTS)
SET(INTEL_OPTS "${INTEL_OPTS} -xSSE2")
ENDIF(ICC_DEPRECATED_OPTS)
ENDIF(NOT SSE_OPT_SET)
endif(CPU_FLAGS MATCHES "sse2")
set(CMAKE_CXX_FLAGS "${INTEL_OPTS} $ENV{CXX_FLAGS} -Wno-deprecated") set(CMAKE_CXX_FLAGS "${INTEL_OPTS} $ENV{CXX_FLAGS} -Wno-deprecated")
set(CMAKE_C_FLAGS "${INTEL_OPTS} $ENV{CC_FLAGS} -std=c99 -Wno-deprecated") set(CMAKE_C_FLAGS "${INTEL_OPTS} $ENV{CC_FLAGS} -std=c99 -Wno-deprecated")

View File

@ -588,6 +588,9 @@ ENDIF(HDF5_FOUND)
#make sure we can find boost if it's not in /usr #make sure we can find boost if it's not in /usr
set(Boost_NO_BOOST_CMAKE on) set(Boost_NO_BOOST_CMAKE on)
IF($ENV{BOOST_HOME} MATCHES ".")
set(BOOST_ROOT $ENV{BOOST_HOME})
ENDIF()
find_package(Boost REQUIRED) find_package(Boost REQUIRED)
IF(Boost_FOUND) IF(Boost_FOUND)
SET(HAVE_LIBBOOST 1) SET(HAVE_LIBBOOST 1)

View File

@ -413,7 +413,7 @@ void EnergyDensityEstimator::write_nonzero_domains(const ParticleSet& P)
} }
if(nonzero) if(nonzero)
{ {
fprintf(stdout," %d %e %e %e %e %e %e\n",i,P.Collectables[n], fprintf(stdout," %d %e %e %e\n",i,P.Collectables[n],
P.Collectables[n+1], P.Collectables[n+1],
P.Collectables[n+2]); P.Collectables[n+2]);
} }