Skip to content

Commit 0cbee13

Browse files
cmdr2ggerganov
authored andcommitted
cuda/vulkan: specify fp32-only support for some operations in supports_op (ggml/1129)
ggml-ci
1 parent 8371d44 commit 0cbee13

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

ggml/src/ggml-cuda/ggml-cuda.cu

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3155,7 +3155,7 @@ static bool ggml_backend_cuda_device_supports_op(ggml_backend_dev_t dev, const g
31553155
return false;
31563156
} break;
31573157
case GGML_OP_SILU_BACK:
3158-
return ggml_is_contiguous(op->src[0]);
3158+
return ggml_is_contiguous(op->src[0]) && op->src[0]->type == GGML_TYPE_F32;
31593159
break;
31603160
case GGML_OP_NORM:
31613161
case GGML_OP_RMS_NORM:

ggml/src/ggml-vulkan/ggml-vulkan.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8452,7 +8452,7 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm
84528452
case GGML_UNARY_OP_RELU:
84538453
case GGML_UNARY_OP_TANH:
84548454
case GGML_UNARY_OP_SIGMOID:
8455-
return ggml_is_contiguous(op->src[0]);
8455+
return ggml_is_contiguous(op->src[0]) && op->src[0]->type == GGML_TYPE_F32;
84568456
default:
84578457
return false;
84588458
}
@@ -8653,19 +8653,20 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm
86538653
case GGML_OP_RMS_NORM:
86548654
return ggml_is_contiguous(op->src[0]);
86558655
case GGML_OP_ADD:
8656-
case GGML_OP_ACC:
86578656
case GGML_OP_SUB:
86588657
case GGML_OP_MUL:
86598658
case GGML_OP_DIV:
8660-
case GGML_OP_CONCAT:
86618659
case GGML_OP_SILU_BACK:
86628660
case GGML_OP_RMS_NORM_BACK:
8663-
case GGML_OP_UPSCALE:
8664-
case GGML_OP_SCALE:
86658661
case GGML_OP_SQR:
86668662
case GGML_OP_SIN:
86678663
case GGML_OP_COS:
86688664
case GGML_OP_CLAMP:
8665+
return op->src[0]->type == GGML_TYPE_F32;
8666+
case GGML_OP_ACC:
8667+
case GGML_OP_CONCAT:
8668+
case GGML_OP_UPSCALE:
8669+
case GGML_OP_SCALE:
86698670
case GGML_OP_PAD:
86708671
case GGML_OP_DIAG_MASK_INF:
86718672
case GGML_OP_SOFT_MAX:

tests/test-backend-ops.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3998,10 +3998,7 @@ static std::vector<std::unique_ptr<test_case>> make_test_cases_eval() {
39983998

39993999
test_cases.emplace_back(new test_add1());
40004000
test_cases.emplace_back(new test_scale());
4001-
4002-
for (ggml_type type : {GGML_TYPE_F16, GGML_TYPE_F32}) {
4003-
test_cases.emplace_back(new test_silu_back());
4004-
}
4001+
test_cases.emplace_back(new test_silu_back());
40054002

40064003
for (float eps : {0.0f, 1e-6f, 1e-4f, 1e-1f}) {
40074004
for (bool v : {false, true}) {

0 commit comments

Comments
 (0)