diff --git a/paddle/utils/CpuId.cpp b/paddle/utils/CpuId.cpp index 909c347945beeef509532f024680904d1d0ff5b3..734b2e09246a56358160f9d1d090e10266bee2fa 100644 --- a/paddle/utils/CpuId.cpp +++ b/paddle/utils/CpuId.cpp @@ -28,10 +28,6 @@ limitations under the License. */ namespace paddle { -/// init simd instance -static InitFunction __init_simd_flags( - []{ SIMDFlags::instance(); }, std::numeric_limits::max()); - SIMDFlags::SIMDFlags() { unsigned int cpuInfo[4]; // CPUID: https://en.wikipedia.org/wiki/CPUID diff --git a/paddle/utils/CpuId.h b/paddle/utils/CpuId.h index 59a917c857828dccb76dac3ecacbaf163b6a16e7..d15e58d1dddde3263826d22c0a26915a1f09ca71 100644 --- a/paddle/utils/CpuId.h +++ b/paddle/utils/CpuId.h @@ -24,17 +24,17 @@ public: static SIMDFlags* instance(); - inline bool isSSE() { return simd_flags_ & SIMD_SSE; } - inline bool isSSE2() { return simd_flags_ & SIMD_SSE2; } - inline bool isSSE3() { return simd_flags_ & SIMD_SSE3; } - inline bool isSSSE3() { return simd_flags_ & SIMD_SSSE3; } - inline bool isSSE41() { return simd_flags_ & SIMD_SSE41; } - inline bool isSSE42() { return simd_flags_ & SIMD_SSE42; } - inline bool isFMA3() { return simd_flags_ & SIMD_FMA3; } - inline bool isFMA4() { return simd_flags_ & SIMD_FMA4; } - inline bool isAVX() { return simd_flags_ & SIMD_AVX; } - inline bool isAVX2() { return simd_flags_ & SIMD_AVX2; } - inline bool isAVX512() { return simd_flags_ & SIMD_AVX512;} + inline bool isSSE() const { return simd_flags_ & SIMD_SSE; } + inline bool isSSE2() const { return simd_flags_ & SIMD_SSE2; } + inline bool isSSE3() const { return simd_flags_ & SIMD_SSE3; } + inline bool isSSSE3() const { return simd_flags_ & SIMD_SSSE3; } + inline bool isSSE41() const { return simd_flags_ & SIMD_SSE41; } + inline bool isSSE42() const { return simd_flags_ & SIMD_SSE42; } + inline bool isFMA3() const { return simd_flags_ & SIMD_FMA3; } + inline bool isFMA4() const { return simd_flags_ & SIMD_FMA4; } + inline bool isAVX() const { return simd_flags_ & SIMD_AVX; } + inline bool isAVX2() const { return simd_flags_ & SIMD_AVX2; } + inline bool isAVX512()const { return simd_flags_ & SIMD_AVX512;} private: enum simd_t { diff --git a/paddle/utils/tests/test_SIMDFlags.cpp b/paddle/utils/tests/test_SIMDFlags.cpp index 382d69a4a60243819ec666e710a88641ba42d2d5..a544901aa388a0d0a59ed0116ae62b8387a8829b 100644 --- a/paddle/utils/tests/test_SIMDFlags.cpp +++ b/paddle/utils/tests/test_SIMDFlags.cpp @@ -20,14 +20,14 @@ using namespace paddle; // NOLINT TEST(SIMDFlags, gccTest) { #if (defined(__GNUC__) || defined(__GNUG__)) && !(defined(__clang__)) - CHECK(__builtin_cpu_supports("sse") == HAS_SSE); - CHECK(__builtin_cpu_supports("sse2") == HAS_SSE2); - CHECK(__builtin_cpu_supports("sse3") == HAS_SSE3); - CHECK(__builtin_cpu_supports("ssse3") == HAS_SSSE3); - CHECK(__builtin_cpu_supports("sse4.1")== HAS_SSE41); - CHECK(__builtin_cpu_supports("sse4.2")== HAS_SSE42); - CHECK(__builtin_cpu_supports("avx") == HAS_AVX); - CHECK(__builtin_cpu_supports("avx2") == HAS_AVX2); + CHECK(!__builtin_cpu_supports("sse") != HAS_SSE); + CHECK(!__builtin_cpu_supports("sse2") != HAS_SSE2); + CHECK(!__builtin_cpu_supports("sse3") != HAS_SSE3); + CHECK(!__builtin_cpu_supports("ssse3") != HAS_SSSE3); + CHECK(!__builtin_cpu_supports("sse4.1")!= HAS_SSE41); + CHECK(!__builtin_cpu_supports("sse4.2")!= HAS_SSE42); + CHECK(!__builtin_cpu_supports("avx") != HAS_AVX); + CHECK(!__builtin_cpu_supports("avx2") != HAS_AVX2); #endif }