sycl: unify unary kernels with a generic implementation and enable wide operator support#17213
Conversation
|
Hello @CISC @NeoZhangJianyu, |
NeoZhangJianyu
left a comment
There was a problem hiding this comment.
It's good job!
Thank you!
We could merge directly after the conflicts are fixed. |
|
@shani-f Thank you! |
|
Hello @NeoZhangJianyu, |
|
Regen the CSV, at least |
|
Is everything correct and finalized now?
|
I really did mean that you should regen it, there are more ops in the CSV that would be removed if you did. |
|
Hello @CISC, Let me know what you prefer. |
As explained here, simply run Line 7 in 9ee5bdc |
|
Hello @CISC, |
Yes, perfect, thank you! :) |
|
@shani-f Could you confirm it? I think the method "Run We can't use above method to create CSV file and overwrite the existed CSV file directly. Recommend to test and merge CSV manually. Thank you! |
|
@NeoZhangJianyu No, this is correct, those "ops" are fusion and are now filtered from the list. Edit: If at some point |
|
Why other backends support them if those ops are fusion in the MD? run If user want to run a new LLM including GROUP_NORM_MUL_ADD by llama.cpp, SYCL backend won't be ignored due to it's not supported shown by ops.md. |
It's outdated information, it will disappear for all other backends as well. Every backend that has all the basic ops in the fusion passed these tests before, now they are filtered. |
…ide operator support (ggml-org#17213) * SYCL: add generic unary op implementation for multiple ops (ABS/SGN/…); unify non-contiguous access * SYCL: update documentation and sycl.csv to reflect new unary op support * update ops.md after syncing SYCL.csv changes * Fix SYCL.csv merge conflict * Update ops.md after fixing SYCL.csv conflicts * Fix SYCL.csv tail after merge conflict and regenerate ops.md * Fix line endings and final newline in SYCL.csv * Remove TOPK_MOE entries from SYCL.csv as requested * Update ops.md after removing TOPK_MOE from SYCL.csv * Regenerated SYCL.csv and synced ops.md with upstream * Update ops.md using create_ops_docs.py
…ide operator support (#17213) * SYCL: add generic unary op implementation for multiple ops (ABS/SGN/…); unify non-contiguous access * SYCL: update documentation and sycl.csv to reflect new unary op support * update ops.md after syncing SYCL.csv changes * Fix SYCL.csv merge conflict * Update ops.md after fixing SYCL.csv conflicts * Fix SYCL.csv tail after merge conflict and regenerate ops.md * Fix line endings and final newline in SYCL.csv * Remove TOPK_MOE entries from SYCL.csv as requested * Update ops.md after removing TOPK_MOE from SYCL.csv * Regenerated SYCL.csv and synced ops.md with upstream * Update ops.md using create_ops_docs.py
Summary
Adds a generic unary implementation for the SYCL backend, allowing many unary operators to share a single optimized execution path.
The implementation matches the behavior of the existing CPU unary kernels.
Changes
ggml_sycl_op_unarygeneric functionelement_wise.cppdocs/ops.mddocs/ops/SYCL.csvImplementation
F16andF32data typesdispatch_ggml_sycl_op_unarywithparallel_forSupported Ops
Testing
test-backend-opsPerformance
Compatibility