Skip to content

[Bug] OpenCL Kernel compilation fails on Qualcomm Adreno 642L (no detailed error output)** #1226

@Mr5b

Description

@Mr5b

Git commit

5e4579c

Operating System & Version

HarmonyOS 4.2.0

GGML backends

OpenCL

Command-line arguments used

/data/local/tmp/stable-diffusion/bin/sd-cli -m "/data/local/tmp/model.safetensors" -p ""

Steps to reproduce

cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE='android-ndk-r29-linux./android-ndk-r29/build/cmake/android.toolchain.cmake' -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-28 -DSD_OPENCL=ON -DGGML_OPENMP=OFF -DOpenCL_INCLUDE_DIR=... -DCMAKE_INSTALL_PREFIX=stable-diffusion -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXE_LINKER_FLAGS="-static-libstdc++ -static-libgcc"

ninja

ninja install

zip ...

adb push "stable-diffusion.zip" /data/local/tmp

adb push "model.safetensors" /data/local/tmp

adb shell

cd .... unzip ....

../../gdbserver :🔢 ./sd-cli -m "/../../model.safetensors" -p ""

What you expected to happen

nullptr

What actually happened

kernel compile error / Segmentation fault

Logs / error messages / stack trace

(ggml_opencl: device: 'QUALCOMM Adreno(TM) (OpenCL 2.0 Adreno(TM) 642L)'
[INFO ] ggml_extend.hpp:78 - ggml_opencl: OpenCL driver: OpenCL 2.0 QUALCOMM build: commit #272cf717f5 changeid #Iee40f504b5 Date: 10/05/21 Tue Local Branch: Remote Branch: Compiler E031.38.01.08
[INFO ] ggml_extend.hpp:78 - ggml_opencl: vector subgroup broadcast support: false
[INFO ] ggml_extend.hpp:78 - ggml_opencl: device FP16 support: true
[INFO ] ggml_extend.hpp:78 - ggml_opencl: mem base addr align: 128
[INFO ] ggml_extend.hpp:78 - ggml_opencl: max mem alloc size: 920 MB
[INFO ] ggml_extend.hpp:78 - ggml_opencl: device max workgroup size: 1024
[INFO ] ggml_extend.hpp:78 - ggml_opencl: SVM coarse grain buffer support: true
[INFO ] ggml_extend.hpp:78 - ggml_opencl: SVM fine grain buffer support: true
[INFO ] ggml_extend.hpp:78 - ggml_opencl: SVM fine grain system support: false
[INFO ] ggml_extend.hpp:78 - ggml_opencl: SVM atomics support: true
[INFO ] ggml_extend.hpp:78 - ggml_opencl: flattening quantized weights representation as struct of arrays (GGML_OPENCL_SOA_Q)
[INFO ] ggml_extend.hpp:78 - ggml_opencl: using kernels optimized for Adreno (GGML_OPENCL_USE_ADRENO_KERNELS)
[INFO ] ggml_extend.hpp:78 - ggml_opencl: loading OpenCL kernels
Segmentation fault)

Or

([INFO ] ggml_extend.hpp:78 - ggml_opencl: selected platform: 'QUALCOMM Snapdragon(TM)'
[INFO ] ggml_extend.hpp:78 -
ggml_opencl: device: 'QUALCOMM Adreno(TM) (OpenCL 2.0 Adreno(TM) 642L)'
[INFO ] ggml_extend.hpp:78 - ggml_opencl: OpenCL driver: OpenCL 2.0 QUALCOMM build: commit #272cf717f5 changeid #Iee40f504b5 Date: 10/05/21 Tue Local Branch: Remote Branch: Compiler E031.38.01.08
[INFO ] ggml_extend.hpp:78 - ggml_opencl: vector subgroup broadcast support: false
[INFO ] ggml_extend.hpp:78 - ggml_opencl: device FP16 support: true
[INFO ] ggml_extend.hpp:78 - ggml_opencl: mem base addr align: 128
[INFO ] ggml_extend.hpp:78 - ggml_opencl: max mem alloc size: 920 MB
[INFO ] ggml_extend.hpp:78 - ggml_opencl: device max workgroup size: 1024
[INFO ] ggml_extend.hpp:78 - ggml_opencl: SVM coarse grain buffer support: true
[INFO ] ggml_extend.hpp:78 - ggml_opencl: SVM fine grain buffer support: true
[INFO ] ggml_extend.hpp:78 - ggml_opencl: SVM fine grain system support: false
[INFO ] ggml_extend.hpp:78 - ggml_opencl: SVM atomics support: true
[INFO ] ggml_extend.hpp:78 - ggml_opencl: flattening quantized weights representation as struct of arrays (GGML_OPENCL_SOA_Q)
[INFO ] ggml_extend.hpp:78 - ggml_opencl: using kernels optimized for Adreno (GGML_OPENCL_USE_ADRENO_KERNELS)
[INFO ] ggml_extend.hpp:78 - ggml_opencl: loading OpenCL kernels
[ERROR] ggml_extend.hpp:84 - ggml_opencl: kernel compile error:

Pass)

Additional context / environment details

Adreno(TM) 642L

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions