diff options
Diffstat (limited to 'bench/btl')
36 files changed, 170 insertions, 167 deletions
diff --git a/bench/btl/CMakeLists.txt b/bench/btl/CMakeLists.txt index 38ff9f483..42094e867 100644 --- a/bench/btl/CMakeLists.txt +++ b/bench/btl/CMakeLists.txt @@ -1,35 +1,35 @@ -PROJECT(BTL) +project(BTL) -CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) +cmake_minimum_required(VERSION 2.6.2) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake ${Eigen_SOURCE_DIR}/cmake) include(MacroOptionalAddSubdirectory) -OPTION(BTL_NOVEC "Disable SSE/Altivec optimizations when possible" OFF) +option(BTL_NOVEC "Disable SSE/Altivec optimizations when possible" OFF) -SET(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_INCLUDE_CURRENT_DIR ON) string(REGEX MATCH icpc IS_ICPC ${CMAKE_CXX_COMPILER}) -IF(CMAKE_COMPILER_IS_GNUCXX OR IS_ICPC) - SET(CMAKE_CXX_FLAGS "-g0 -O3 -DNDEBUG ${CMAKE_CXX_FLAGS}") - SET(CMAKE_Fortran_FLAGS "-g0 -O3 -DNDEBUG ${CMAKE_Fortran_FLAGS}") - IF(BTL_NOVEC) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEIGEN_DONT_VECTORIZE") - ENDIF(BTL_NOVEC) -ENDIF(CMAKE_COMPILER_IS_GNUCXX OR IS_ICPC) - -IF(MSVC) - SET(CMAKE_CXX_FLAGS " /O2 /Ot /GL /fp:fast -DNDEBUG") -# SET(CMAKE_Fortran_FLAGS "-g0 -O3 -DNDEBUG") - IF(BTL_NOVEC) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEIGEN_DONT_VECTORIZE") - ENDIF(BTL_NOVEC) -ENDIF(MSVC) +if(CMAKE_COMPILER_IS_GNUCXX OR IS_ICPC) + set(CMAKE_CXX_FLAGS "-g0 -O3 -DNDEBUG ${CMAKE_CXX_FLAGS}") + set(CMAKE_Fortran_FLAGS "-g0 -O3 -DNDEBUG ${CMAKE_Fortran_FLAGS}") + if(BTL_NOVEC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEIGEN_DONT_VECTORIZE") + endif(BTL_NOVEC) +endif(CMAKE_COMPILER_IS_GNUCXX OR IS_ICPC) + +if(MSVC) + set(CMAKE_CXX_FLAGS " /O2 /Ot /GL /fp:fast -DNDEBUG") +# set(CMAKE_Fortran_FLAGS "-g0 -O3 -DNDEBUG") + if(BTL_NOVEC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEIGEN_DONT_VECTORIZE") + endif(BTL_NOVEC) +endif(MSVC) if(IS_ICPC) set(CMAKE_CXX_FLAGS "-fast ${CMAKE_CXX_FLAGS}") set(CMAKE_Fortran_FLAGS "-fast ${CMAKE_Fortran_FLAGS}") -endif(IS_ICPC) +endif() include_directories( ${PROJECT_SOURCE_DIR}/actions @@ -41,7 +41,7 @@ include_directories( # if (MKL_FOUND) # add_definitions(-DHAVE_MKL) # set(DEFAULT_LIBRARIES ${MKL_LIBRARIES}) -# endif (MKL_FOUND) +# endif () find_library(EIGEN_BTL_RT_LIBRARY rt) # if we cannot find it easily, then we don't need it! @@ -49,11 +49,11 @@ if(NOT EIGEN_BTL_RT_LIBRARY) set(EIGEN_BTL_RT_LIBRARY "") endif() -MACRO(BTL_ADD_BENCH targetname) +macro(BTL_ADD_BENCH targetname) foreach(_current_var ${ARGN}) set(_last_var ${_current_var}) - endforeach(_current_var) + endforeach() set(_sources ${ARGN}) list(LENGTH _sources _argn_length) @@ -64,17 +64,17 @@ MACRO(BTL_ADD_BENCH targetname) if (${_argn_length} EQUAL ${_src_length}) set(_last_var ON) - endif (${_argn_length} EQUAL ${_src_length}) + endif () - OPTION(BUILD_${targetname} "Build benchmark ${targetname}" ${_last_var}) + option(BUILD_${targetname} "Build benchmark ${targetname}" ${_last_var}) - IF(BUILD_${targetname}) - ADD_EXECUTABLE(${targetname} ${_sources}) - ADD_TEST(${targetname} "${targetname}") + if(BUILD_${targetname}) + add_executable(${targetname} ${_sources}) + add_test(${targetname} "${targetname}") target_link_libraries(${targetname} ${DEFAULT_LIBRARIES} ${EIGEN_BTL_RT_LIBRARY}) - ENDIF(BUILD_${targetname}) + endif(BUILD_${targetname}) -ENDMACRO(BTL_ADD_BENCH) +endmacro(BTL_ADD_BENCH) macro(btl_add_target_property target prop value) @@ -86,9 +86,9 @@ macro(btl_add_target_property target prop value) set_target_properties(${target} PROPERTIES ${prop} "${previous} ${value}") endif() -endmacro(btl_add_target_property) +endmacro() -ENABLE_TESTING() +enable_testing() add_subdirectory(libs/eigen3) add_subdirectory(libs/eigen2) diff --git a/bench/btl/README b/bench/btl/README index f3f5fb36f..ebed88960 100644 --- a/bench/btl/README +++ b/bench/btl/README @@ -36,7 +36,7 @@ For instance: You can also select a given set of actions defining the environment variable BTL_CONFIG this way: BTL_CONFIG="-a action1{:action2}*" ctest -V -An exemple: +An example: BTL_CONFIG="-a axpy:vector_matrix:trisolve:ata" ctest -V -R eigen2 Finally, if bench results already exist (the bench*.dat files) then they merges by keeping the best for each matrix size. If you want to overwrite the previous ones you can simply add the "--overwrite" option: diff --git a/bench/btl/actions/basic_actions.hh b/bench/btl/actions/basic_actions.hh index a3333ea26..62442f01f 100644 --- a/bench/btl/actions/basic_actions.hh +++ b/bench/btl/actions/basic_actions.hh @@ -6,7 +6,7 @@ #include "action_atv_product.hh" #include "action_matrix_matrix_product.hh" -// #include "action_ata_product.hh" +#include "action_ata_product.hh" #include "action_aat_product.hh" #include "action_trisolve.hh" diff --git a/bench/btl/cmake/FindACML.cmake b/bench/btl/cmake/FindACML.cmake index 4989fa2f4..daeeb535d 100644 --- a/bench/btl/cmake/FindACML.cmake +++ b/bench/btl/cmake/FindACML.cmake @@ -1,7 +1,7 @@ if (ACML_LIBRARIES) set(ACML_FIND_QUIETLY TRUE) -endif (ACML_LIBRARIES) +endif () find_library(ACML_LIBRARIES NAMES diff --git a/bench/btl/cmake/FindATLAS.cmake b/bench/btl/cmake/FindATLAS.cmake index 4136a989d..572a4c0b2 100644 --- a/bench/btl/cmake/FindATLAS.cmake +++ b/bench/btl/cmake/FindATLAS.cmake @@ -1,7 +1,7 @@ if (ATLAS_LIBRARIES) set(ATLAS_FIND_QUIETLY TRUE) -endif (ATLAS_LIBRARIES) +endif () find_file(ATLAS_LIB libatlas.so.3 PATHS /usr/lib /usr/lib/atlas /usr/lib64 /usr/lib64/atlas $ENV{ATLASDIR} ${LIB_INSTALL_DIR}) find_library(ATLAS_LIB satlas PATHS $ENV{ATLASDIR} ${LIB_INSTALL_DIR}) @@ -23,7 +23,7 @@ if(ATLAS_LIB AND ATLAS_CBLAS AND ATLAS_LAPACK AND ATLAS_F77BLAS) # set(ATLAS_LIBRARIES ${ATLAS_LIBRARIES} ${ATLAS_REFERENCE_LAPACK}) # endif() -endif(ATLAS_LIB AND ATLAS_CBLAS AND ATLAS_LAPACK AND ATLAS_F77BLAS) +endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(ATLAS DEFAULT_MSG ATLAS_LIBRARIES) diff --git a/bench/btl/cmake/FindBLAZE.cmake b/bench/btl/cmake/FindBLAZE.cmake index dba4c89f2..18a878ff9 100644 --- a/bench/btl/cmake/FindBLAZE.cmake +++ b/bench/btl/cmake/FindBLAZE.cmake @@ -15,7 +15,7 @@ if (BLAZE_INCLUDE_DIR) # in cache already set(BLAZE_FOUND TRUE) -else (BLAZE_INCLUDE_DIR) +else () find_path(BLAZE_INCLUDE_DIR NAMES blaze/Blaze.h PATHS @@ -27,5 +27,5 @@ find_package_handle_standard_args(BLAZE DEFAULT_MSG BLAZE_INCLUDE_DIR) mark_as_advanced(BLAZE_INCLUDE_DIR) -endif(BLAZE_INCLUDE_DIR) +endif() diff --git a/bench/btl/cmake/FindBlitz.cmake b/bench/btl/cmake/FindBlitz.cmake index 92880bbed..7ab375fd8 100644 --- a/bench/btl/cmake/FindBlitz.cmake +++ b/bench/btl/cmake/FindBlitz.cmake @@ -15,7 +15,7 @@ if (BLITZ_INCLUDES AND BLITZ_LIBRARIES) set(Blitz_FIND_QUIETLY TRUE) -endif (BLITZ_INCLUDES AND BLITZ_LIBRARIES) +endif () find_path(BLITZ_INCLUDES NAMES diff --git a/bench/btl/cmake/FindCBLAS.cmake b/bench/btl/cmake/FindCBLAS.cmake index ce0f2f2b2..43a90f7f6 100644 --- a/bench/btl/cmake/FindCBLAS.cmake +++ b/bench/btl/cmake/FindCBLAS.cmake @@ -2,7 +2,7 @@ if (CBLAS_INCLUDES AND CBLAS_LIBRARIES) set(CBLAS_FIND_QUIETLY TRUE) -endif (CBLAS_INCLUDES AND CBLAS_LIBRARIES) +endif () find_path(CBLAS_INCLUDES NAMES diff --git a/bench/btl/cmake/FindGMM.cmake b/bench/btl/cmake/FindGMM.cmake index 5049c64ed..ff45e6a0c 100644 --- a/bench/btl/cmake/FindGMM.cmake +++ b/bench/btl/cmake/FindGMM.cmake @@ -1,7 +1,7 @@ if (GMM_INCLUDE_DIR) # in cache already set(GMM_FOUND TRUE) -else (GMM_INCLUDE_DIR) +else () find_path(GMM_INCLUDE_DIR NAMES gmm/gmm.h PATHS @@ -14,4 +14,4 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GMM DEFAULT_MSG GMM_INCLUDE_DIR ) mark_as_advanced(GMM_INCLUDE_DIR) -endif(GMM_INCLUDE_DIR) +endif() diff --git a/bench/btl/cmake/FindMKL.cmake b/bench/btl/cmake/FindMKL.cmake index f4d7c6ebe..23e77279a 100644 --- a/bench/btl/cmake/FindMKL.cmake +++ b/bench/btl/cmake/FindMKL.cmake @@ -1,7 +1,7 @@ if (MKL_LIBRARIES) set(MKL_FIND_QUIETLY TRUE) -endif (MKL_LIBRARIES) +endif () if(CMAKE_MINOR_VERSION GREATER 4) @@ -30,7 +30,7 @@ if(MKL_LIBRARIES AND MKL_GUIDE) set(MKL_LIBRARIES ${MKL_LIBRARIES} mkl_intel_lp64 mkl_sequential ${MKL_GUIDE} pthread) endif() -else(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64") +else() find_library(MKL_LIBRARIES mkl_core @@ -55,9 +55,9 @@ if(MKL_LIBRARIES AND MKL_GUIDE) set(MKL_LIBRARIES ${MKL_LIBRARIES} mkl_intel mkl_sequential ${MKL_GUIDE} pthread) endif() -endif(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64") +endif() -endif(CMAKE_MINOR_VERSION GREATER 4) +endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(MKL DEFAULT_MSG MKL_LIBRARIES) diff --git a/bench/btl/cmake/FindMTL4.cmake b/bench/btl/cmake/FindMTL4.cmake index 3de490980..1bafc93a6 100644 --- a/bench/btl/cmake/FindMTL4.cmake +++ b/bench/btl/cmake/FindMTL4.cmake @@ -15,7 +15,7 @@ if (MTL4_INCLUDE_DIR) # in cache already set(MTL4_FOUND TRUE) -else (MTL4_INCLUDE_DIR) +else () find_path(MTL4_INCLUDE_DIR NAMES boost/numeric/mtl/mtl.hpp PATHS @@ -27,5 +27,5 @@ find_package_handle_standard_args(MTL4 DEFAULT_MSG MTL4_INCLUDE_DIR) mark_as_advanced(MTL4_INCLUDE_DIR) -endif(MTL4_INCLUDE_DIR) +endif() diff --git a/bench/btl/cmake/FindOPENBLAS.cmake b/bench/btl/cmake/FindOPENBLAS.cmake index 2a0919436..5c0762306 100644 --- a/bench/btl/cmake/FindOPENBLAS.cmake +++ b/bench/btl/cmake/FindOPENBLAS.cmake @@ -1,7 +1,7 @@ if (OPENBLAS_LIBRARIES) set(OPENBLAS_FIND_QUIETLY TRUE) -endif (OPENBLAS_LIBRARIES) +endif () find_file(OPENBLAS_LIBRARIES NAMES libopenblas.so libopenblas.so.0 PATHS /usr/lib /usr/lib64 $ENV{OPENBLASDIR} ${LIB_INSTALL_DIR}) find_library(OPENBLAS_LIBRARIES openblas PATHS $ENV{OPENBLASDIR} ${LIB_INSTALL_DIR}) diff --git a/bench/btl/cmake/FindPackageHandleStandardArgs.cmake b/bench/btl/cmake/FindPackageHandleStandardArgs.cmake index 7f122edcd..05d7e65bd 100644 --- a/bench/btl/cmake/FindPackageHandleStandardArgs.cmake +++ b/bench/btl/cmake/FindPackageHandleStandardArgs.cmake @@ -1,7 +1,7 @@ # FIND_PACKAGE_HANDLE_STANDARD_ARGS(NAME (DEFAULT_MSG|"Custom failure message") VAR1 ... ) # # This macro is intended to be used in FindXXX.cmake modules files. -# It handles the REQUIRED and QUIET argument to FIND_PACKAGE() and +# It handles the REQUIRED and QUIET argument to find_package() and # it also sets the <UPPERCASED_NAME>_FOUND variable. # The package is found if all variables listed are TRUE. # Example: @@ -19,42 +19,42 @@ # be "Could NOT find LibXml2", if you don't like this message you can specify # your own custom failure message there. -MACRO(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FAIL_MSG _VAR1 ) +macro(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FAIL_MSG _VAR1 ) - IF("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") - IF (${_NAME}_FIND_REQUIRED) - SET(_FAIL_MESSAGE "Could not find REQUIRED package ${_NAME}") - ELSE (${_NAME}_FIND_REQUIRED) - SET(_FAIL_MESSAGE "Could not find OPTIONAL package ${_NAME}") - ENDIF (${_NAME}_FIND_REQUIRED) - ELSE("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") - SET(_FAIL_MESSAGE "${_FAIL_MSG}") - ENDIF("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") + if("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") + if (${_NAME}_FIND_REQUIRED) + set(_FAIL_MESSAGE "Could not find REQUIRED package ${_NAME}") + else (${_NAME}_FIND_REQUIRED) + set(_FAIL_MESSAGE "Could not find OPTIONAL package ${_NAME}") + endif (${_NAME}_FIND_REQUIRED) + else("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") + set(_FAIL_MESSAGE "${_FAIL_MSG}") + endif("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG") - STRING(TOUPPER ${_NAME} _NAME_UPPER) + string(TOUPPER ${_NAME} _NAME_UPPER) - SET(${_NAME_UPPER}_FOUND TRUE) - IF(NOT ${_VAR1}) - SET(${_NAME_UPPER}_FOUND FALSE) - ENDIF(NOT ${_VAR1}) + set(${_NAME_UPPER}_FOUND TRUE) + if(NOT ${_VAR1}) + set(${_NAME_UPPER}_FOUND FALSE) + endif(NOT ${_VAR1}) - FOREACH(_CURRENT_VAR ${ARGN}) - IF(NOT ${_CURRENT_VAR}) - SET(${_NAME_UPPER}_FOUND FALSE) - ENDIF(NOT ${_CURRENT_VAR}) - ENDFOREACH(_CURRENT_VAR) + foreach(_CURRENT_VAR ${ARGN}) + if(NOT ${_CURRENT_VAR}) + set(${_NAME_UPPER}_FOUND FALSE) + endif(NOT ${_CURRENT_VAR}) + endforeach(_CURRENT_VAR) - IF (${_NAME_UPPER}_FOUND) - IF (NOT ${_NAME}_FIND_QUIETLY) - MESSAGE(STATUS "Found ${_NAME}: ${${_VAR1}}") - ENDIF (NOT ${_NAME}_FIND_QUIETLY) - ELSE (${_NAME_UPPER}_FOUND) - IF (${_NAME}_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "${_FAIL_MESSAGE}") - ELSE (${_NAME}_FIND_REQUIRED) - IF (NOT ${_NAME}_FIND_QUIETLY) - MESSAGE(STATUS "${_FAIL_MESSAGE}") - ENDIF (NOT ${_NAME}_FIND_QUIETLY) - ENDIF (${_NAME}_FIND_REQUIRED) - ENDIF (${_NAME_UPPER}_FOUND) -ENDMACRO(FIND_PACKAGE_HANDLE_STANDARD_ARGS) + if (${_NAME_UPPER}_FOUND) + if (NOT ${_NAME}_FIND_QUIETLY) + message(STATUS "Found ${_NAME}: ${${_VAR1}}") + endif (NOT ${_NAME}_FIND_QUIETLY) + else (${_NAME_UPPER}_FOUND) + if (${_NAME}_FIND_REQUIRED) + message(FATAL_ERROR "${_FAIL_MESSAGE}") + else (${_NAME}_FIND_REQUIRED) + if (NOT ${_NAME}_FIND_QUIETLY) + message(STATUS "${_FAIL_MESSAGE}") + endif (NOT ${_NAME}_FIND_QUIETLY) + endif (${_NAME}_FIND_REQUIRED) + endif (${_NAME_UPPER}_FOUND) +endmacro(FIND_PACKAGE_HANDLE_STANDARD_ARGS) diff --git a/bench/btl/cmake/FindTvmet.cmake b/bench/btl/cmake/FindTvmet.cmake index 26a29d965..8ccae271b 100644 --- a/bench/btl/cmake/FindTvmet.cmake +++ b/bench/btl/cmake/FindTvmet.cmake @@ -15,7 +15,7 @@ if (TVMET_INCLUDE_DIR) # in cache already set(TVMET_FOUND TRUE) -else (TVMET_INCLUDE_DIR) +else () find_path(TVMET_INCLUDE_DIR NAMES tvmet/tvmet.h PATHS @@ -28,5 +28,5 @@ find_package_handle_standard_args(Tvmet DEFAULT_MSG TVMET_INCLUDE_DIR) mark_as_advanced(TVMET_INCLUDE_DIR) -endif(TVMET_INCLUDE_DIR) +endif() diff --git a/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake b/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake index 545048b68..8d46fcea2 100644 --- a/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake +++ b/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake @@ -1,6 +1,6 @@ -# - MACRO_OPTIONAL_ADD_SUBDIRECTORY() combines ADD_SUBDIRECTORY() with an OPTION() +# - MACRO_OPTIONAL_ADD_SUBDIRECTORY() combines add_subdirectory() with an option() # MACRO_OPTIONAL_ADD_SUBDIRECTORY( <dir> ) -# If you use MACRO_OPTIONAL_ADD_SUBDIRECTORY() instead of ADD_SUBDIRECTORY(), +# If you use MACRO_OPTIONAL_ADD_SUBDIRECTORY() instead of add_subdirectory(), # this will have two effects # 1 - CMake will not complain if the directory doesn't exist # This makes sense if you want to distribute just one of the subdirs @@ -16,16 +16,16 @@ # For details see the accompanying COPYING-CMAKE-SCRIPTS file. -MACRO (MACRO_OPTIONAL_ADD_SUBDIRECTORY _dir ) - GET_FILENAME_COMPONENT(_fullPath ${_dir} ABSOLUTE) - IF(EXISTS ${_fullPath}) - IF(${ARGC} EQUAL 2) - OPTION(BUILD_${_dir} "Build directory ${_dir}" ${ARGV1}) - ELSE(${ARGC} EQUAL 2) - OPTION(BUILD_${_dir} "Build directory ${_dir}" TRUE) - ENDIF(${ARGC} EQUAL 2) - IF(BUILD_${_dir}) - ADD_SUBDIRECTORY(${_dir}) - ENDIF(BUILD_${_dir}) - ENDIF(EXISTS ${_fullPath}) -ENDMACRO (MACRO_OPTIONAL_ADD_SUBDIRECTORY) +macro (MACRO_OPTIONAL_ADD_SUBDIRECTORY _dir ) + get_filename_component(_fullPath ${_dir} ABSOLUTE) + if(EXISTS ${_fullPath}) + if(${ARGC} EQUAL 2) + option(BUILD_${_dir} "Build directory ${_dir}" ${ARGV1}) + else(${ARGC} EQUAL 2) + option(BUILD_${_dir} "Build directory ${_dir}" TRUE) + endif(${ARGC} EQUAL 2) + if(BUILD_${_dir}) + add_subdirectory(${_dir}) + endif(BUILD_${_dir}) + endif(EXISTS ${_fullPath}) +endmacro (MACRO_OPTIONAL_ADD_SUBDIRECTORY) diff --git a/bench/btl/data/CMakeLists.txt b/bench/btl/data/CMakeLists.txt index 6af2a366f..580c1ced0 100644 --- a/bench/btl/data/CMakeLists.txt +++ b/bench/btl/data/CMakeLists.txt @@ -1,25 +1,25 @@ -ADD_CUSTOM_TARGET(copy_scripts) +add_custom_target(copy_scripts) -SET(script_files go_mean mk_mean_script.sh mk_new_gnuplot.sh +set(script_files go_mean mk_mean_script.sh mk_new_gnuplot.sh perlib_plot_settings.txt action_settings.txt gnuplot_common_settings.hh ) -FOREACH(script_file ${script_files}) -ADD_CUSTOM_COMMAND( +foreach(script_file ${script_files}) +add_custom_command( TARGET copy_scripts POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${script_file} ${CMAKE_CURRENT_BINARY_DIR}/ ARGS ) -ENDFOREACH(script_file) +endforeach(script_file) -ADD_CUSTOM_COMMAND( +add_custom_command( TARGET copy_scripts POST_BUILD COMMAND ${CMAKE_CXX_COMPILER} --version | head -n 1 > ${CMAKE_CURRENT_BINARY_DIR}/compiler_version.txt ARGS ) -ADD_CUSTOM_COMMAND( +add_custom_command( TARGET copy_scripts POST_BUILD COMMAND echo "${Eigen_SOURCE_DIR}" > ${CMAKE_CURRENT_BINARY_DIR}/eigen_root_dir.txt diff --git a/bench/btl/data/go_mean b/bench/btl/data/go_mean index 42338ca27..d01426909 100755 --- a/bench/btl/data/go_mean +++ b/bench/btl/data/go_mean @@ -27,7 +27,7 @@ echo '<ul>'\ '<li>' `cat /proc/cpuinfo | grep "model name" | head -n 1`\ ' (' `uname -m` ')</li>'\ '<li> compiler: ' `cat compiler_version.txt` '</li>'\ - '<li> eigen3: ' `hg identify -i $EIGENDIR` '</li>'\ + '<li> eigen3: ' `git ls-remote --refs -q $EIGENDIR HEAD | cut -f 1` '</li>'\ '</ul>' \ '</p>' >> $webpagefilename diff --git a/bench/btl/generic_bench/bench.hh b/bench/btl/generic_bench/bench.hh index 7b7b951b5..0732940d5 100644 --- a/bench/btl/generic_bench/bench.hh +++ b/bench/btl/generic_bench/bench.hh @@ -159,7 +159,7 @@ BTL_DONT_INLINE void bench( int size_min, int size_max, int nb_point ){ // bench<Mixed_Perf_Analyzer,Action>(size_min,size_max,nb_point); - // Only for small problem size. Otherwize it will be too long + // Only for small problem size. Otherwise it will be too long // bench<X86_Perf_Analyzer,Action>(size_min,size_max,nb_point); // bench<STL_Perf_Analyzer,Action>(size_min,size_max,nb_point); diff --git a/bench/btl/generic_bench/utils/size_log.hh b/bench/btl/generic_bench/utils/size_log.hh index 13a3da7a8..68945e7cc 100644 --- a/bench/btl/generic_bench/utils/size_log.hh +++ b/bench/btl/generic_bench/utils/size_log.hh @@ -23,7 +23,7 @@ #include "math.h" // The Vector class must satisfy the following part of STL vector concept : // resize() method -// [] operator for seting element +// [] operator for setting element // the vector element are int compatible. template<class Vector> void size_log(const int nb_point, const int size_min, const int size_max, Vector & X) diff --git a/bench/btl/generic_bench/utils/xy_file.hh b/bench/btl/generic_bench/utils/xy_file.hh index 4571bed8f..0492faf09 100644 --- a/bench/btl/generic_bench/utils/xy_file.hh +++ b/bench/btl/generic_bench/utils/xy_file.hh @@ -55,7 +55,7 @@ bool read_xy_file(const std::string & filename, std::vector<int> & tab_sizes, // The Vector class must satisfy the following part of STL vector concept : // resize() method -// [] operator for seting element +// [] operator for setting element // the vector element must have the << operator define using namespace std; diff --git a/bench/btl/libs/BLAS/CMakeLists.txt b/bench/btl/libs/BLAS/CMakeLists.txt index 0272ccad0..f2738f169 100644 --- a/bench/btl/libs/BLAS/CMakeLists.txt +++ b/bench/btl/libs/BLAS/CMakeLists.txt @@ -5,8 +5,8 @@ if (ATLAS_FOUND) if(BUILD_btl_atlas) target_link_libraries(btl_atlas ${ATLAS_LIBRARIES}) set_target_properties(btl_atlas PROPERTIES COMPILE_FLAGS "-DCBLASNAME=ATLAS -DHAS_LAPACK=1") - endif(BUILD_btl_atlas) -endif (ATLAS_FOUND) + endif() +endif () find_package(MKL) if (MKL_FOUND) @@ -14,8 +14,8 @@ if (MKL_FOUND) if(BUILD_btl_mkl) target_link_libraries(btl_mkl ${MKL_LIBRARIES}) set_target_properties(btl_mkl PROPERTIES COMPILE_FLAGS "-DCBLASNAME=INTEL_MKL -DHAS_LAPACK=1") - endif(BUILD_btl_mkl) -endif (MKL_FOUND) + endif() +endif () find_package(OPENBLAS) @@ -24,8 +24,8 @@ if (OPENBLAS_FOUND) if(BUILD_btl_openblas) target_link_libraries(btl_openblas ${OPENBLAS_LIBRARIES} ) set_target_properties(btl_openblas PROPERTIES COMPILE_FLAGS "-DCBLASNAME=OPENBLAS") - endif(BUILD_btl_openblas) -endif (OPENBLAS_FOUND) + endif() +endif () find_package(ACML) if (ACML_FOUND) @@ -33,8 +33,8 @@ if (ACML_FOUND) if(BUILD_btl_acml) target_link_libraries(btl_acml ${ACML_LIBRARIES} ) set_target_properties(btl_acml PROPERTIES COMPILE_FLAGS "-DCBLASNAME=ACML -DHAS_LAPACK=1") - endif(BUILD_btl_acml) -endif (ACML_FOUND) + endif() +endif () if(Eigen_SOURCE_DIR AND CMAKE_Fortran_COMPILER_WORKS) # we are inside Eigen and blas/lapack interface is compilable diff --git a/bench/btl/libs/BLAS/blas_interface_impl.hh b/bench/btl/libs/BLAS/blas_interface_impl.hh index fc4ba2a1f..9e0a64905 100644 --- a/bench/btl/libs/BLAS/blas_interface_impl.hh +++ b/bench/btl/libs/BLAS/blas_interface_impl.hh @@ -46,9 +46,9 @@ public : BLAS_FUNC(gemm)(¬rans,¬rans,&N,&N,&N,&fone,A,&N,B,&N,&fzero,X,&N); } -// static inline void ata_product(gene_matrix & A, gene_matrix & X, int N){ -// ssyrk_(&lower,&trans,&N,&N,&fone,A,&N,&fzero,X,&N); -// } + static inline void ata_product(gene_matrix & A, gene_matrix & X, int N){ + BLAS_FUNC(syrk)(&lower,&trans,&N,&N,&fone,A,&N,&fzero,X,&N); + } static inline void aat_product(gene_matrix & A, gene_matrix & X, int N){ BLAS_FUNC(syrk)(&lower,¬rans,&N,&N,&fone,A,&N,&fzero,X,&N); diff --git a/bench/btl/libs/BLAS/main.cpp b/bench/btl/libs/BLAS/main.cpp index 564d55ef2..fd991490a 100644 --- a/bench/btl/libs/BLAS/main.cpp +++ b/bench/btl/libs/BLAS/main.cpp @@ -48,7 +48,7 @@ int main() bench<Action_rot<blas_interface<REAL_TYPE> > >(MIN_AXPY,MAX_AXPY,NB_POINT); bench<Action_matrix_matrix_product<blas_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); -// bench<Action_ata_product<blas_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); + bench<Action_ata_product<blas_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); bench<Action_aat_product<blas_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); bench<Action_trisolve<blas_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); diff --git a/bench/btl/libs/STL/STL_interface.hh b/bench/btl/libs/STL/STL_interface.hh index ef4cc9233..16658c4ba 100644 --- a/bench/btl/libs/STL/STL_interface.hh +++ b/bench/btl/libs/STL/STL_interface.hh @@ -78,18 +78,18 @@ public : cible[i][j]=source[i][j]; } -// static inline void ata_product(const gene_matrix & A, gene_matrix & X, int N) -// { -// real somme; -// for (int j=0;j<N;j++){ -// for (int i=0;i<N;i++){ -// somme=0.0; -// for (int k=0;k<N;k++) -// somme += A[i][k]*A[j][k]; -// X[j][i]=somme; -// } -// } -// } + static inline void ata_product(const gene_matrix & A, gene_matrix & X, int N) + { + real somme; + for (int j=0;j<N;j++){ + for (int i=0;i<N;i++){ + somme=0.0; + for (int k=0;k<N;k++) + somme += A[i][k]*A[j][k]; + X[j][i]=somme; + } + } + } static inline void aat_product(const gene_matrix & A, gene_matrix & X, int N) { diff --git a/bench/btl/libs/blaze/blaze_interface.hh b/bench/btl/libs/blaze/blaze_interface.hh index ee1523944..7b418f6da 100644 --- a/bench/btl/libs/blaze/blaze_interface.hh +++ b/bench/btl/libs/blaze/blaze_interface.hh @@ -20,6 +20,7 @@ #include <blaze/Math.h> #include <blaze/Blaze.h> +#include <Eigen/Core> // using namespace blaze; #include <vector> @@ -80,35 +81,35 @@ public : } } - static inline void matrix_matrix_product(const gene_matrix & A, const gene_matrix & B, gene_matrix & X, int N){ + static EIGEN_DONT_INLINE void matrix_matrix_product(const gene_matrix & A, const gene_matrix & B, gene_matrix & X, int N){ X = (A*B); } - static inline void transposed_matrix_matrix_product(const gene_matrix & A, const gene_matrix & B, gene_matrix & X, int N){ + static EIGEN_DONT_INLINE void transposed_matrix_matrix_product(const gene_matrix & A, const gene_matrix & B, gene_matrix & X, int N){ X = (trans(A)*trans(B)); } - static inline void ata_product(const gene_matrix & A, gene_matrix & X, int N){ + static EIGEN_DONT_INLINE void ata_product(const gene_matrix & A, gene_matrix & X, int N){ X = (trans(A)*A); } - static inline void aat_product(const gene_matrix & A, gene_matrix & X, int N){ + static EIGEN_DONT_INLINE void aat_product(const gene_matrix & A, gene_matrix & X, int N){ X = (A*trans(A)); } - static inline void matrix_vector_product(gene_matrix & A, gene_vector & B, gene_vector & X, int N){ + static EIGEN_DONT_INLINE void matrix_vector_product(gene_matrix & A, gene_vector & B, gene_vector & X, int N){ X = (A*B); } - static inline void atv_product(gene_matrix & A, gene_vector & B, gene_vector & X, int N){ + static EIGEN_DONT_INLINE void atv_product(gene_matrix & A, gene_vector & B, gene_vector & X, int N){ X = (trans(A)*B); } - static inline void axpy(const real coef, const gene_vector & X, gene_vector & Y, int N){ + static EIGEN_DONT_INLINE void axpy(const real coef, const gene_vector & X, gene_vector & Y, int N){ Y += coef * X; } - static inline void axpby(real a, const gene_vector & X, real b, gene_vector & Y, int N){ + static EIGEN_DONT_INLINE void axpby(real a, const gene_vector & X, real b, gene_vector & Y, int N){ Y = a*X + b*Y; } diff --git a/bench/btl/libs/blaze/main.cpp b/bench/btl/libs/blaze/main.cpp index 80e8f4eaa..ccae0cbd5 100644 --- a/bench/btl/libs/blaze/main.cpp +++ b/bench/btl/libs/blaze/main.cpp @@ -30,9 +30,9 @@ int main() bench<Action_matrix_vector_product<blaze_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT); bench<Action_atv_product<blaze_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT); -// bench<Action_matrix_matrix_product<blaze_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); -// bench<Action_ata_product<blaze_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); -// bench<Action_aat_product<blaze_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); + bench<Action_matrix_matrix_product<blaze_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); + bench<Action_ata_product<blaze_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); + bench<Action_aat_product<blaze_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); return 0; } diff --git a/bench/btl/libs/blitz/CMakeLists.txt b/bench/btl/libs/blitz/CMakeLists.txt index 880ab7338..e203c8152 100644 --- a/bench/btl/libs/blitz/CMakeLists.txt +++ b/bench/btl/libs/blitz/CMakeLists.txt @@ -7,11 +7,11 @@ if (BLITZ_FOUND) btl_add_bench(btl_blitz btl_blitz.cpp) if (BUILD_btl_blitz) target_link_libraries(btl_blitz ${BLITZ_LIBRARIES}) - endif (BUILD_btl_blitz) + endif () btl_add_bench(btl_tiny_blitz btl_tiny_blitz.cpp OFF) if (BUILD_btl_tiny_blitz) target_link_libraries(btl_tiny_blitz ${BLITZ_LIBRARIES}) - endif (BUILD_btl_tiny_blitz) + endif () -endif (BLITZ_FOUND) +endif () diff --git a/bench/btl/libs/eigen3/CMakeLists.txt b/bench/btl/libs/eigen3/CMakeLists.txt index 00cae23d3..06a72b4fb 100644 --- a/bench/btl/libs/eigen3/CMakeLists.txt +++ b/bench/btl/libs/eigen3/CMakeLists.txt @@ -47,9 +47,9 @@ if (EIGEN3_FOUND) # if(BUILD_btl_eigen3_adv) # target_link_libraries(btl_eigen3_adv ${MKL_LIBRARIES}) -# endif(BUILD_btl_eigen3_adv) +# endif() - endif(NOT BTL_NOVEC) + endif() btl_add_bench(btl_tiny_eigen3 btl_tiny_eigen3.cpp OFF) @@ -59,7 +59,7 @@ if (EIGEN3_FOUND) if(BUILD_btl_tiny_eigen3_novec) btl_add_target_property(btl_tiny_eigen3_novec COMPILE_FLAGS "-DEIGEN_DONT_VECTORIZE -DBTL_PREFIX=eigen3_tiny_novec") - endif(BUILD_btl_tiny_eigen3_novec) - endif(NOT BTL_NOVEC) + endif() + endif() -endif (EIGEN3_FOUND) +endif () diff --git a/bench/btl/libs/eigen3/eigen3_interface.hh b/bench/btl/libs/eigen3/eigen3_interface.hh index b821fd721..2e302d072 100644 --- a/bench/btl/libs/eigen3/eigen3_interface.hh +++ b/bench/btl/libs/eigen3/eigen3_interface.hh @@ -92,9 +92,11 @@ public : X.noalias() = A.transpose()*B.transpose(); } -// static inline void ata_product(const gene_matrix & A, gene_matrix & X, int /*N*/){ -// X.noalias() = A.transpose()*A; -// } + static inline void ata_product(const gene_matrix & A, gene_matrix & X, int /*N*/){ + //X.noalias() = A.transpose()*A; + X.template triangularView<Lower>().setZero(); + X.template selfadjointView<Lower>().rankUpdate(A.transpose()); + } static inline void aat_product(const gene_matrix & A, gene_matrix & X, int /*N*/){ X.template triangularView<Lower>().setZero(); diff --git a/bench/btl/libs/eigen3/main_matmat.cpp b/bench/btl/libs/eigen3/main_matmat.cpp index 926fa2b01..052810a16 100644 --- a/bench/btl/libs/eigen3/main_matmat.cpp +++ b/bench/btl/libs/eigen3/main_matmat.cpp @@ -25,7 +25,7 @@ BTL_MAIN; int main() { bench<Action_matrix_matrix_product<eigen3_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); -// bench<Action_ata_product<eigen3_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); + bench<Action_ata_product<eigen3_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); bench<Action_aat_product<eigen3_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); bench<Action_trmm<eigen3_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); diff --git a/bench/btl/libs/gmm/CMakeLists.txt b/bench/btl/libs/gmm/CMakeLists.txt index bc2586243..0bcb04659 100644 --- a/bench/btl/libs/gmm/CMakeLists.txt +++ b/bench/btl/libs/gmm/CMakeLists.txt @@ -3,4 +3,4 @@ find_package(GMM) if (GMM_FOUND) include_directories(${GMM_INCLUDES}) btl_add_bench(btl_gmm main.cpp) -endif (GMM_FOUND) +endif () diff --git a/bench/btl/libs/mtl4/CMakeLists.txt b/bench/btl/libs/mtl4/CMakeLists.txt index 14b47a808..132a501be 100644 --- a/bench/btl/libs/mtl4/CMakeLists.txt +++ b/bench/btl/libs/mtl4/CMakeLists.txt @@ -3,4 +3,4 @@ find_package(MTL4) if (MTL4_FOUND) include_directories(${MTL4_INCLUDE_DIR}) btl_add_bench(btl_mtl4 main.cpp) -endif (MTL4_FOUND) +endif () diff --git a/bench/btl/libs/tensors/CMakeLists.txt b/bench/btl/libs/tensors/CMakeLists.txt index 09d6d8e43..e10a736f5 100644 --- a/bench/btl/libs/tensors/CMakeLists.txt +++ b/bench/btl/libs/tensors/CMakeLists.txt @@ -39,6 +39,6 @@ if (TENSOR_FOUND) btl_add_target_property(btl_tensor_novec_vecmat COMPILE_FLAGS "-fno-exceptions -DEIGEN_DONT_VECTORIZE -DBTL_PREFIX=tensor_novec") btl_add_target_property(btl_tensor_novec_matmat COMPILE_FLAGS "-fno-exceptions -DEIGEN_DONT_VECTORIZE -DBTL_PREFIX=tensor_novec") - endif(NOT BTL_NOVEC) + endif() -endif (TENSOR_FOUND) +endif () diff --git a/bench/btl/libs/tvmet/CMakeLists.txt b/bench/btl/libs/tvmet/CMakeLists.txt index 25b565b97..e7376972c 100644 --- a/bench/btl/libs/tvmet/CMakeLists.txt +++ b/bench/btl/libs/tvmet/CMakeLists.txt @@ -3,4 +3,4 @@ find_package(Tvmet) if (TVMET_FOUND) include_directories(${TVMET_INCLUDE_DIR}) btl_add_bench(btl_tvmet main.cpp OFF) -endif (TVMET_FOUND) +endif () diff --git a/bench/btl/libs/ublas/CMakeLists.txt b/bench/btl/libs/ublas/CMakeLists.txt index bdb58bea1..5accf5b82 100644 --- a/bench/btl/libs/ublas/CMakeLists.txt +++ b/bench/btl/libs/ublas/CMakeLists.txt @@ -4,4 +4,4 @@ if (Boost_FOUND) include_directories(${Boost_INCLUDE_DIRS}) include_directories(${Boost_INCLUDES}) btl_add_bench(btl_ublas main.cpp) -endif (Boost_FOUND) +endif () diff --git a/bench/btl/libs/ublas/ublas_interface.hh b/bench/btl/libs/ublas/ublas_interface.hh index 95cad5195..f59b7cf2f 100644 --- a/bench/btl/libs/ublas/ublas_interface.hh +++ b/bench/btl/libs/ublas/ublas_interface.hh @@ -100,7 +100,7 @@ public : Y+=coef*X; } - // alias free assignements + // alias free assignments static inline void matrix_vector_product(gene_matrix & A, gene_vector & B, gene_vector & X, int N){ X.assign(prod(A,B)); |