ggml : detect SSSE3 (#1211)

* ggml : add ggml_cpu_has_ssse3

* whisper : show SSSE3 in system info

* make : detect SSSE3 via cpuinfo
This commit is contained in:
Przemysław Pawełczyk 2023-08-27 20:36:41 +02:00 committed by GitHub
parent 175ffa64ee
commit 601c2d2181
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 0 deletions

View File

@ -104,6 +104,11 @@ ifeq ($(UNAME_M),$(filter $(UNAME_M),x86_64 i686))
ifneq (,$(findstring sse3,$(SSE3_M))) ifneq (,$(findstring sse3,$(SSE3_M)))
CFLAGS += -msse3 CFLAGS += -msse3
endif endif
SSSE3_M := $(shell $(CPUINFO_CMD) | grep -m 1 "ssse3 ")
ifneq (,$(findstring ssse3,$(SSSE3_M)))
CFLAGS += -mssse3
endif
endif endif
endif endif
ifeq ($(UNAME_M),amd64) ifeq ($(UNAME_M),amd64)

8
ggml.c
View File

@ -18721,6 +18721,14 @@ int ggml_cpu_has_sse3(void) {
#endif #endif
} }
int ggml_cpu_has_ssse3(void) {
#if defined(__SSSE3__)
return 1;
#else
return 0;
#endif
}
int ggml_cpu_has_vsx(void) { int ggml_cpu_has_vsx(void) {
#if defined(__POWER9_VECTOR__) #if defined(__POWER9_VECTOR__)
return 1; return 1;

1
ggml.h
View File

@ -1508,6 +1508,7 @@ extern "C" {
GGML_API int ggml_cpu_has_clblast (void); GGML_API int ggml_cpu_has_clblast (void);
GGML_API int ggml_cpu_has_gpublas (void); GGML_API int ggml_cpu_has_gpublas (void);
GGML_API int ggml_cpu_has_sse3 (void); GGML_API int ggml_cpu_has_sse3 (void);
GGML_API int ggml_cpu_has_ssse3 (void);
GGML_API int ggml_cpu_has_vsx (void); GGML_API int ggml_cpu_has_vsx (void);
// //

View File

@ -3480,6 +3480,7 @@ const char * whisper_print_system_info(void) {
s += "WASM_SIMD = " + std::to_string(ggml_cpu_has_wasm_simd()) + " | "; s += "WASM_SIMD = " + std::to_string(ggml_cpu_has_wasm_simd()) + " | ";
s += "BLAS = " + std::to_string(ggml_cpu_has_blas()) + " | "; s += "BLAS = " + std::to_string(ggml_cpu_has_blas()) + " | ";
s += "SSE3 = " + std::to_string(ggml_cpu_has_sse3()) + " | "; s += "SSE3 = " + std::to_string(ggml_cpu_has_sse3()) + " | ";
s += "SSSE3 = " + std::to_string(ggml_cpu_has_ssse3()) + " | ";
s += "VSX = " + std::to_string(ggml_cpu_has_vsx()) + " | "; s += "VSX = " + std::to_string(ggml_cpu_has_vsx()) + " | ";
s += "COREML = " + std::to_string(whisper_has_coreml()) + " | "; s += "COREML = " + std::to_string(whisper_has_coreml()) + " | ";
s += "OPENVINO = " + std::to_string(whisper_has_openvino()) + " | "; s += "OPENVINO = " + std::to_string(whisper_has_openvino()) + " | ";