Skip to content

Conversation

@idostyle
Copy link
Contributor

The windows noavx build causes "Illegal instruction" errors on machines which lack AVX/AVX2 support.
Also stable-diffusion.cpp reports in verbose mode the following system info:

System Info:
    SSE3 = 1
    AVX = 1
    AVX2 = 1
    AVX512 = 0
    AVX512_VBMI = 0
    AVX512_VNNI = 0
    FMA = 1
    NEON = 0
    ARM_FMA = 0
    F16C = 1
    FP16_VA = 0
    WASM_SIMD = 0
    VSX = 0

even through the machine has no AVX, AVX2, etc. support.

Depending on the github action runner the CI workflow is executed on the windows release artifacts seem to have deviating optimizations enabled.
It seems to be caused by GGML enabling GGML_NATIVE by default which influences the enabled optimizations according to ggerganov/ggml/CMakeLists.txt#L96-L100 and ggerganov/ggml/CMakeLists.txt#L104-L106.

@Green-Sky
Copy link
Contributor

Running on cpu without avx is unreasonably slow and all intel and amd cpus released in the last 10 years (more or less) support avx2.

@leejet leejet merged commit 27edb76 into leejet:master Jan 18, 2025
@leejet
Copy link
Owner

leejet commented Jan 18, 2025

Thank you for your contribution.

@idostyle idostyle deleted the noavx branch January 18, 2025 12:55
stduhpf pushed a commit to stduhpf/stable-diffusion.cpp that referenced this pull request Feb 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants