ggml : reading the runtime sve config of the cpu

This commit is contained in:
domke 2024-07-09 10:06:51 +09:00
parent 7fdb6f73e3
commit 3a837ba919

View file

@ -37,6 +37,10 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
#if defined(__ARM_FEATURE_SVE)
#include <sys/prctl.h>
#endif
#ifdef __ARM_FEATURE_MATMUL_INT8 #ifdef __ARM_FEATURE_MATMUL_INT8
#undef GGML_USE_LLAMAFILE #undef GGML_USE_LLAMAFILE
#endif #endif
@ -21760,7 +21764,7 @@ int ggml_cpu_has_neon(void) {
int ggml_cpu_has_sve(void) { int ggml_cpu_has_sve(void) {
#if defined(__ARM_FEATURE_SVE) #if defined(__ARM_FEATURE_SVE)
// TODO: Currently, SVE 256 bit is only supported. // TODO: Currently, SVE 256 bit is only supported.
GGML_ASSERT(svcntb() == QK8_0); GGML_ASSERT((PR_SVE_VL_LEN_MASK & prctl(PR_SVE_GET_VL)) == QK8_0);
return 1; return 1;
#else #else
return 0; return 0;