[SYCL] fix unsupported UT cases of CONT & CPY (#25231)
* fix unsupported UT cases of CONT & CPY * update ops.md * rm unused head file
This commit is contained in:
@@ -5721,70 +5721,99 @@ static bool do_ggml_backend_sycl_device_supports_op(ggml_backend_dev_t dev, cons
|
||||
{
|
||||
ggml_type src0_type = op->src[0]->type;
|
||||
ggml_type src1_type = op->src[1]->type;
|
||||
if (src0_type == src1_type && (ggml_is_contiguous(op->src[0]) && ggml_is_contiguous(op->src[1])) && src0_type != GGML_TYPE_BF16) {
|
||||
return true;
|
||||
|
||||
if (src0_type == GGML_TYPE_F16) {
|
||||
if (src1_type == GGML_TYPE_Q2_K ||
|
||||
src1_type == GGML_TYPE_Q3_K ||
|
||||
src1_type == GGML_TYPE_Q4_K ||
|
||||
src1_type == GGML_TYPE_Q5_K ||
|
||||
src1_type == GGML_TYPE_Q6_K ||
|
||||
src1_type == GGML_TYPE_IQ2_XXS ||
|
||||
src1_type == GGML_TYPE_IQ2_XS ||
|
||||
src1_type == GGML_TYPE_IQ2_S ||
|
||||
src1_type == GGML_TYPE_IQ3_XXS ||
|
||||
src1_type == GGML_TYPE_IQ1_S ||
|
||||
src1_type == GGML_TYPE_IQ1_M ||
|
||||
src1_type == GGML_TYPE_IQ3_S ||
|
||||
src1_type == GGML_TYPE_IQ4_XS) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_F32) {
|
||||
return true;
|
||||
|
||||
if (src0_type == GGML_TYPE_BF16) {
|
||||
if (src1_type == GGML_TYPE_Q4_0 || //big error in ut
|
||||
src1_type == GGML_TYPE_Q4_1 || //big error in ut
|
||||
src1_type == GGML_TYPE_Q8_0 || //big error in ut
|
||||
src1_type == GGML_TYPE_Q2_K ||
|
||||
src1_type == GGML_TYPE_Q3_K ||
|
||||
src1_type == GGML_TYPE_Q4_K ||
|
||||
src1_type == GGML_TYPE_Q5_K ||
|
||||
src1_type == GGML_TYPE_Q6_K ||
|
||||
src1_type == GGML_TYPE_IQ2_XXS ||
|
||||
src1_type == GGML_TYPE_IQ2_XS ||
|
||||
src1_type == GGML_TYPE_IQ2_S ||
|
||||
src1_type == GGML_TYPE_IQ3_XXS ||
|
||||
src1_type == GGML_TYPE_IQ1_S ||
|
||||
src1_type == GGML_TYPE_IQ1_M ||
|
||||
src1_type == GGML_TYPE_IQ3_S ||
|
||||
src1_type == GGML_TYPE_IQ4_XS) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_F16) {
|
||||
return true;
|
||||
|
||||
if (src0_type == GGML_TYPE_F32) {
|
||||
if (src1_type == GGML_TYPE_Q2_K ||
|
||||
src1_type == GGML_TYPE_Q3_K ||
|
||||
src1_type == GGML_TYPE_Q4_K ||
|
||||
src1_type == GGML_TYPE_Q5_K ||
|
||||
src1_type == GGML_TYPE_Q6_K ||
|
||||
src1_type == GGML_TYPE_IQ2_XXS ||
|
||||
src1_type == GGML_TYPE_IQ2_XS ||
|
||||
src1_type == GGML_TYPE_IQ2_S ||
|
||||
src1_type == GGML_TYPE_IQ3_XXS ||
|
||||
src1_type == GGML_TYPE_IQ1_S ||
|
||||
src1_type == GGML_TYPE_IQ1_M ||
|
||||
src1_type == GGML_TYPE_IQ3_S ||
|
||||
src1_type == GGML_TYPE_IQ4_XS) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_Q8_0) {
|
||||
return true;
|
||||
|
||||
if (src1_type == GGML_TYPE_F32) {
|
||||
if (src0_type == GGML_TYPE_Q1_0 ||
|
||||
src0_type == GGML_TYPE_NVFP4 ||
|
||||
src0_type == GGML_TYPE_Q2_K ||
|
||||
src0_type == GGML_TYPE_Q3_K ||
|
||||
src0_type == GGML_TYPE_Q4_K ||
|
||||
src0_type == GGML_TYPE_Q5_K ||
|
||||
src0_type == GGML_TYPE_Q6_K ||
|
||||
src0_type == GGML_TYPE_IQ2_XXS ||
|
||||
src0_type == GGML_TYPE_IQ2_XS ||
|
||||
src0_type == GGML_TYPE_IQ2_S ||
|
||||
src0_type == GGML_TYPE_IQ3_XXS ||
|
||||
src0_type == GGML_TYPE_IQ1_S ||
|
||||
src0_type == GGML_TYPE_IQ1_M ||
|
||||
src0_type == GGML_TYPE_IQ3_S ||
|
||||
src0_type == GGML_TYPE_IQ4_NL ||
|
||||
src0_type == GGML_TYPE_IQ4_XS
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_Q4_0) {
|
||||
return true;
|
||||
|
||||
if (src0_type == src1_type) {
|
||||
if (src1_type == GGML_TYPE_IQ2_XXS ||
|
||||
src1_type == GGML_TYPE_IQ2_XS ||
|
||||
src1_type == GGML_TYPE_IQ2_S ||
|
||||
src1_type == GGML_TYPE_IQ3_XXS ||
|
||||
src1_type == GGML_TYPE_IQ3_S ||
|
||||
src1_type == GGML_TYPE_IQ1_S ||
|
||||
src1_type == GGML_TYPE_IQ1_M) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_Q4_1) {
|
||||
return true;
|
||||
}
|
||||
if (src0_type == GGML_TYPE_F16 && src1_type == GGML_TYPE_F16) {
|
||||
return true;
|
||||
}
|
||||
if (src0_type == GGML_TYPE_F16 && src1_type == GGML_TYPE_F32) {
|
||||
return true;
|
||||
}
|
||||
if (src0_type == GGML_TYPE_Q8_0 && src1_type == GGML_TYPE_F32) {
|
||||
return true;
|
||||
}
|
||||
if (src0_type == GGML_TYPE_Q4_0 && src1_type == GGML_TYPE_F32) {
|
||||
return true;
|
||||
}
|
||||
if (src0_type == GGML_TYPE_Q4_1 && src1_type == GGML_TYPE_F32) {
|
||||
return true;
|
||||
}
|
||||
if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_Q5_0) {
|
||||
return true;
|
||||
}
|
||||
if (src0_type == GGML_TYPE_Q5_0 && src1_type == GGML_TYPE_F32) {
|
||||
return true;
|
||||
}
|
||||
if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_Q5_1) {
|
||||
return true;
|
||||
}
|
||||
if (src0_type == GGML_TYPE_Q5_1 && src1_type == GGML_TYPE_F32) {
|
||||
return true;
|
||||
}
|
||||
if (src0_type == GGML_TYPE_F32 && src1_type == GGML_TYPE_IQ4_NL) {
|
||||
return true;
|
||||
}
|
||||
if(src0_type == GGML_TYPE_Q8_0 && src1_type == GGML_TYPE_Q8_0) {
|
||||
return true;
|
||||
}
|
||||
if(src0_type == GGML_TYPE_Q5_0 && src1_type == GGML_TYPE_Q5_0) {
|
||||
return true;
|
||||
}
|
||||
if(src0_type == GGML_TYPE_Q5_1 && src1_type == GGML_TYPE_Q5_1) {
|
||||
return true;
|
||||
}
|
||||
if(src0_type == GGML_TYPE_Q4_0 && src1_type == GGML_TYPE_Q4_0) {
|
||||
return true;
|
||||
}
|
||||
if(src0_type == GGML_TYPE_Q4_1 && src1_type == GGML_TYPE_Q4_1) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
case GGML_OP_REPEAT_BACK:
|
||||
{
|
||||
@@ -5826,7 +5855,7 @@ static bool do_ggml_backend_sycl_device_supports_op(ggml_backend_dev_t dev, cons
|
||||
case GGML_OP_SCALE:
|
||||
return true;
|
||||
case GGML_OP_CONT:
|
||||
return op->src[0]->type != GGML_TYPE_BF16;
|
||||
return true;
|
||||
case GGML_OP_TRI:
|
||||
{
|
||||
const ggml_tensor * src0 = op->src[0];
|
||||
|
||||
Reference in New Issue
Block a user