Repository navigation
Commit 42ce76d
committed
sycl: decline float -> PTQ1_0/PQ2_0 copies instead of asserting
Adding the two types to ggml_sycl_is_quantized_type() made supports_op
accept f32/f16/bf16 -> PTQ1_0/PQ2_0 copies, but there is no quantize-rows
kernel for either, so ggml_sycl_cpy() took the float -> quantized branch
and died on GGML_ASSERT(ggml_sycl_can_quantize_rows_sycl(...)) at
cpy.cpp:1298/1302/1308.
Neither format can be produced by a row-at-a-time GPU kernel: the packing
assumes the Hadamard rotation the offline converter applies, so the right
answer is to decline the pair and let the scheduler place it elsewhere,
not to add a kernel. Quantized -> same-quantized copies are unaffected and
still take the memcpy path.
Reported by @dwymark on an Arc B390 (Panther Lake Xe3); reproduced on an
Arc Pro B50.
test -b SYCL0 -o CPY -p "ptq1_0|pq2_0"
before: abort at cpy.cpp:1298
after: 18/18 tests passed, float -> ternary reports "not supported"
No regression: MUL_MAT 204/204, MUL_MAT_ID 150/150, GET_ROWS 8/8 for the
two types.
The unrelated tq2_0 -> tq2_0 abort at cpy.cpp:1455 and the SET_ROWS abort
at set_rows.cpp:549 are both present on prism and untouched here.1 parent 450c5c3 commit 42ce76d
1 file changed
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6146 | 6146 | | |
6147 | 6147 | | |
6148 | 6148 | | |
| 6149 | + | |
| 6150 | + | |
| 6151 | + | |
| 6152 | + | |
| 6153 | + | |
| 6154 | + | |
| 6155 | + | |
| 6156 | + | |
| 6157 | + | |
| 6158 | + | |
6149 | 6159 | | |
6150 | 6160 | | |
6151 | 6161 | | |
| |||
0 commit comments