From: Adrien Gallouët Date: Tue, 2 Dec 2025 16:21:11 +0000 (+0100) Subject: ggml : use svcntb() for SVE vector length detection (llama/17474) X-Git-Tag: upstream/0.9.4.395~79 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=35661286b8896cce5952b01644a85749f4f5f41d;p=pkg%2Fggml%2Fsources%2Fggml ggml : use svcntb() for SVE vector length detection (llama/17474) Signed-off-by: Adrien Gallouët --- diff --git a/src/ggml-cpu/ggml-cpu.c b/src/ggml-cpu/ggml-cpu.c index 3247af8b..e19e82ac 100644 --- a/src/ggml-cpu/ggml-cpu.c +++ b/src/ggml-cpu/ggml-cpu.c @@ -683,22 +683,14 @@ bool ggml_is_numa(void) { } #if defined(__ARM_ARCH) - -#if defined(__linux__) && defined(__aarch64__) -#include -#endif - -static void ggml_init_arm_arch_features(void) { #if defined(__aarch64__) && defined(__ARM_FEATURE_SVE) -#if defined(__linux__) - ggml_arm_arch_features.sve_cnt = PR_SVE_VL_LEN_MASK & prctl(PR_SVE_GET_VL); +#include +static void ggml_init_arm_arch_features(void) { + ggml_arm_arch_features.sve_cnt = svcntb(); +} #else - // TODO: add support of SVE for non-linux systems -#error "TODO: SVE is not supported on this platform. To use SVE, sve_cnt needs to be initialized here." -#endif +static void ggml_init_arm_arch_features(void) {} #endif -} - #endif // __ARM_ARCH struct ggml_tensor * ggml_new_i32(struct ggml_context * ctx, int32_t value) {