refine avx condition and warning

createGenDocLib
tensor-tang 7 years ago
parent f0f06992c1
commit 0d46f518ae

@ -50,14 +50,20 @@ if(NOT WITH_PROFILER)
endif(NOT WITH_PROFILER) endif(NOT WITH_PROFILER)
if(NOT CMAKE_CROSSCOMPILING) if(NOT CMAKE_CROSSCOMPILING)
if(WITH_AVX AND AVX512F_FOUND) set(SIMD_FLAG)
set(SIMD_FLAG ${AVX512F_FLAG}) if(WITH_AVX)
elseif(WITH_AVX AND AVX2_FOUND) if (AVX512F_FOUND)
set(SIMD_FLAG ${AVX2_FLAG}) set(SIMD_FLAG "${SIMD_FLAG} ${AVX512F_FLAG}")
elseif(WITH_AVX AND AVX_FOUND) endif()
set(SIMD_FLAG ${AVX_FLAG}) if (AVX2_FOUND)
elseif(SSE3_FOUND) set(SIMD_FLAG "${SIMD_FLAG} ${AVX2_FLAG}")
set(SIMD_FLAG ${SSE3_FLAG}) endif()
if (AVX_FOUND)
set(SIMD_FLAG "${SIMD_FLAG} ${AVX_FLAG}")
endif()
if (SSE3_FOUND)
set(SIMD_FLAG "${SIMD_FLAG} ${SSE3_FLAG}")
endif()
endif() endif()
endif() endif()

@ -50,7 +50,7 @@ ENDIF()
# memcpy depends on device_context, here add deps individually for # memcpy depends on device_context, here add deps individually for
# avoiding cycle dependencies # avoiding cycle dependencies
cc_library(device_context SRCS device_context.cc init.cc DEPS malloc cc_library(device_context SRCS device_context.cc init.cc DEPS malloc
place eigen3 stringpiece cpu_helper framework_proto ${GPU_CTX_DEPS} ${MKLDNN_CTX_DEPS}) place eigen3 stringpiece cpu_helper cpu_info framework_proto ${GPU_CTX_DEPS} ${MKLDNN_CTX_DEPS})
nv_test(device_context_test SRCS device_context_test.cu DEPS device_context gpu_info) nv_test(device_context_test SRCS device_context_test.cu DEPS device_context gpu_info)
cc_test(init_test SRCS init_test.cc DEPS device_context) cc_test(init_test SRCS init_test.cc DEPS device_context)

@ -51,7 +51,7 @@ typedef enum {
} cpu_isa_t; // Instruction set architecture } cpu_isa_t; // Instruction set architecture
// May I use some instruction // May I use some instruction
inline bool MayIUse(const cpu_isa_t cpu_isa); bool MayIUse(const cpu_isa_t cpu_isa);
} // namespace jit } // namespace jit

@ -18,6 +18,7 @@ limitations under the License. */
#include "paddle/fluid/framework/operator.h" #include "paddle/fluid/framework/operator.h"
#include "paddle/fluid/platform/cpu_helper.h" #include "paddle/fluid/platform/cpu_helper.h"
#include "paddle/fluid/platform/cpu_info.h"
#include "paddle/fluid/platform/device_context.h" #include "paddle/fluid/platform/device_context.h"
#include "paddle/fluid/platform/init.h" #include "paddle/fluid/platform/init.h"
#include "paddle/fluid/platform/place.h" #include "paddle/fluid/platform/place.h"
@ -120,6 +121,22 @@ void InitDevices(bool init_p2p, const std::vector<int> devices) {
#ifndef PADDLE_WITH_MKLDNN #ifndef PADDLE_WITH_MKLDNN
platform::SetNumThreads(FLAGS_paddle_num_threads); platform::SetNumThreads(FLAGS_paddle_num_threads);
#endif #endif
if (platform::jit::MayIUse(platform::jit::avx512_common)) {
#ifndef __AVX512F__
LOG(WARNING) << "AVX512F is available, Please re-compile on local machine";
#endif
}
if (platform::jit::MayIUse(platform::jit::avx2)) {
#ifndef __AVX2__
LOG(WARNING) << "AVX2 is available, Please re-compile on local machine";
#endif
}
if (platform::jit::MayIUse(platform::jit::avx)) {
#ifndef __AVX__
LOG(WARNING) << "AVX is available, Please re-compile on local machine";
#endif
}
} }
void InitGLOG(const std::string &prog_name) { void InitGLOG(const std::string &prog_name) {

Loading…
Cancel
Save