llama.cpp icon indicating copy to clipboard operation
llama.cpp copied to clipboard

No output after commit 84d9015 on Android

Open gjmulder opened this issue 1 year ago • 4 comments

Discussed in https://github.com/ggerganov/llama.cpp/discussions/234

Originally posted by ShouNichi March 17, 2023 When git checkout 84d9015 and make, there will be no output (only the model loading message) in termux. git checkout 63fd76f will produce a fully-functional binary.

I've moved this to issues. Please provide sample output from the working build and the non-working build.

gjmulder avatar Mar 17 '23 10:03 gjmulder

From #234:

image

gjmulder avatar Mar 17 '23 13:03 gjmulder

On another android device it will spit out error messages (at commit 84d9015) like

ggml.c:1364:25: warning: call to undeclared function 'vdotq_s32'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
        int32x4_t p_0 = vdotq_s32(vdupq_n_s32(0), v0_0ls, v1_0ls);
                        ^
ggml.c:1364:19: error: initializing 'int32x4_t' (vector of 4 'int32_t' values) with an expression of incompatible type 'int'
        int32x4_t p_0 = vdotq_s32(vdupq_n_s32(0), v0_0ls, v1_0ls);
                  ^     ~~~~~~~~~
ggml.c:1365:19: error: initializing 'int32x4_t' (vector of 4 'int32_t' values) with an expression of incompatible type 'int'
        int32x4_t p_1 = vdotq_s32(vdupq_n_s32(0), v0_1ls, v1_1ls);
                  ^     ~~~~~~~~~
ggml.c:1367:13: error: assigning to 'int32x4_t' (vector of 4 'int32_t' values) from incompatible type 'int'
        p_0 = vdotq_s32(p_0, v0_0hs, v1_0hs);
            ^ ~~~~~~
ggml.c:1368:13: error: assigning to 'int32x4_t' (vector of 4 'int32_t' values) from incompatible type 'int'
        p_1 = vdotq_s32(p_1, v0_1hs, v1_1hs);
            ^ ~~~~~~
1 warning and 4 errors generated.
make: *** [Makefile:182: ggml.o] Error 1

and the latest commit would work just file, so I assume it is a device specific issue. On the original device, even with the fix/latest commit, it refuses to work. The not-working output is terminal output.txt

and the normal output is... just normal output, with things generating after the loading process.

ShouNichi avatar Mar 17 '23 17:03 ShouNichi

The latest commit should include the changes from https://github.com/ggerganov/llama.cpp/pull/139 which are supposed to avoid the usage of vdotq_s32 if it isn’t available, but maybe a usage snuck in somewhere?

j-f1 avatar Mar 17 '23 17:03 j-f1

The latest commit should include the changes from #139 which are supposed to avoid the usage of vdotq_s32 if it isn’t available, but maybe a usage snuck in somewhere?

~Probably. Well, the problematic device is a Samsung Note 9. Don't know whether this info helps.~ No idea about how to help debugging. Any suggestions?

system_info: n_threads = 4 / 8 | AVX = 0 | AVX2 = 0 | AVX512 = 0 | FMA = 0 | NEON = 1 | ARM_FMA = 1 | F16C = 0 | FP16_VA = 1 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 0 | VSX = 0 | freshly cloned.txt

ShouNichi avatar Mar 17 '23 17:03 ShouNichi