diff --git a/main.cpp b/main.cpp index c96f9ed..6dc9ae9 100644 --- a/main.cpp +++ b/main.cpp @@ -765,6 +765,26 @@ void sigint_handler(int signo) { } #endif +const char * llama_print_system_info(void) { + static std::string s; + + s = ""; + s += "AVX = " + std::to_string(ggml_cpu_has_avx()) + " | "; + s += "AVX2 = " + std::to_string(ggml_cpu_has_avx2()) + " | "; + s += "AVX512 = " + std::to_string(ggml_cpu_has_avx512()) + " | "; + s += "FMA = " + std::to_string(ggml_cpu_has_fma()) + " | "; + s += "NEON = " + std::to_string(ggml_cpu_has_neon()) + " | "; + s += "ARM_FMA = " + std::to_string(ggml_cpu_has_arm_fma()) + " | "; + s += "F16C = " + std::to_string(ggml_cpu_has_f16c()) + " | "; + s += "FP16_VA = " + std::to_string(ggml_cpu_has_fp16_va()) + " | "; + s += "WASM_SIMD = " + std::to_string(ggml_cpu_has_wasm_simd()) + " | "; + s += "BLAS = " + std::to_string(ggml_cpu_has_blas()) + " | "; + s += "SSE3 = " + std::to_string(ggml_cpu_has_sse3()) + " | "; + s += "VSX = " + std::to_string(ggml_cpu_has_vsx()) + " | "; + + return s.c_str(); +} + int main(int argc, char ** argv) { ggml_time_init(); const int64_t t_main_start_us = ggml_time_us(); @@ -807,6 +827,13 @@ int main(int argc, char ** argv) { t_load_us = ggml_time_us() - t_start_us; } + // print system information + { + fprintf(stderr, "\n"); + fprintf(stderr, "system_info: n_threads = %d / %d | %s\n", + params.n_threads, std::thread::hardware_concurrency(), llama_print_system_info()); + } + int n_past = 0; int64_t t_sample_us = 0; @@ -834,7 +861,7 @@ int main(int argc, char ** argv) { struct sigaction sigint_action; sigint_action.sa_handler = sigint_handler; sigemptyset (&sigint_action.sa_mask); - sigint_action.sa_flags = 0; + sigint_action.sa_flags = 0; sigaction(SIGINT, &sigint_action, NULL); #endif @@ -967,7 +994,7 @@ int main(int argc, char ** argv) { is_interacting = true; } if (is_interacting) { - // currently being interactive + // currently being interactive bool another_line=true; while (another_line) { fflush(stdout); @@ -999,7 +1026,7 @@ int main(int argc, char ** argv) { input_noecho = true; // do not echo this again } - is_interacting = false; + is_interacting = false; } }