mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2026-08-10 06:07:58 +00:00
fix: fallback when backend rejects flash attention (#1732)
This commit is contained in:
parent
7dab3668d0
commit
2574f59365
@ -1388,6 +1388,9 @@ __STATIC_INLINE__ ggml_tensor* ggml_ext_attention_ext(ggml_context* ctx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto out = ggml_flash_attn_ext(ctx, q_in, k_in, v_in, mask_in, scale / kv_scale, 0, 0);
|
auto out = ggml_flash_attn_ext(ctx, q_in, k_in, v_in, mask_in, scale / kv_scale, 0, 0);
|
||||||
|
if (!ggml_backend_supports_op(backend, out)) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
ggml_flash_attn_ext_set_prec(out, GGML_PREC_F32);
|
ggml_flash_attn_ext_set_prec(out, GGML_PREC_F32);
|
||||||
if (kv_scale != 1.0f) {
|
if (kv_scale != 1.0f) {
|
||||||
out = ggml_ext_scale(ctx, out, 1.0f / kv_scale);
|
out = ggml_ext_scale(ctx, out, 1.0f / kv_scale);
|
||||||
@ -1405,9 +1408,7 @@ __STATIC_INLINE__ ggml_tensor* ggml_ext_attention_ext(ggml_context* ctx,
|
|||||||
|
|
||||||
if (can_use_flash_attn) {
|
if (can_use_flash_attn) {
|
||||||
kqv = build_kqv(q, k, v, mask);
|
kqv = build_kqv(q, k, v, mask);
|
||||||
if (!ggml_backend_supports_op(backend, kqv)) {
|
if (kqv != nullptr) {
|
||||||
kqv = nullptr;
|
|
||||||
} else {
|
|
||||||
kqv = ggml_view_4d(ctx,
|
kqv = ggml_view_4d(ctx,
|
||||||
kqv,
|
kqv,
|
||||||
d_head,
|
d_head,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user