From 294f2d60414c37a7050d5db9aadb90516d078485 Mon Sep 17 00:00:00 2001 From: Adam Treat Date: Fri, 21 Apr 2023 07:36:05 -0400 Subject: [PATCH] Revamp hardware tester to print to stdout the result in single word. --- test_hw.cpp | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/test_hw.cpp b/test_hw.cpp index 721d71fb..6b7373f2 100644 --- a/test_hw.cpp +++ b/test_hw.cpp @@ -5,21 +5,25 @@ int main(int argc, char *argv[]) { static bool avx = __builtin_cpu_supports("avx"); static bool avx2 = __builtin_cpu_supports("avx2"); - static bool avx512f = __builtin_cpu_supports("avx512f"); - static bool avx512vbmi = __builtin_cpu_supports("avx512vbmi"); - static bool avx512vnni = __builtin_cpu_supports("avx512vnni"); static bool fma = __builtin_cpu_supports("fma"); static bool sse3 = __builtin_cpu_supports("sse3"); static std::string s; - s = "My hardware supports:\n"; - s += "AVX = " + std::to_string(avx) + "\n"; - s += "AVX2 = " + std::to_string(avx2) + "\n"; - s += "AVX512 = " + std::to_string(avx512f) + "\n"; - s += "AVX512_VBMI = " + std::to_string(avx512vbmi) + "\n"; - s += "AVX512_VNNI = " + std::to_string(avx512vnni) + "\n"; - s += "FMA = " + std::to_string(fma) + "\n"; - s += "SSE3 = " + std::to_string(sse3) + "\n"; - printf("%s", s.c_str()); + s = "gpt4all hardware test results:\n"; + s += " AVX = " + std::to_string(avx) + "\n"; + s += " AVX2 = " + std::to_string(avx2) + "\n"; + s += " FMA = " + std::to_string(fma) + "\n"; + s += " SSE3 = " + std::to_string(sse3) + "\n"; + fprintf(stderr, "%s", s.c_str()); + fprintf(stderr, "your hardware supports the \""); + fflush(stderr); + if (avx2) + printf("full"); + else if (avx && fma) + printf("avx_only"); + else + printf("bare_minimum"); fflush(stdout); + fprintf(stderr, "\" version of gpt4all.\n"); + fflush(stderr); return 0; }