ggml : fix conv 2d dw (#25490)
This commit is contained in:
@@ -7324,11 +7324,12 @@ static void ggml_compute_forward_conv_2d_dw_cwhn(
|
|||||||
|
|
||||||
#ifdef GGML_SIMD
|
#ifdef GGML_SIMD
|
||||||
int64_t c_pkg_end = 0;
|
int64_t c_pkg_end = 0;
|
||||||
|
int64_t pkg_size = GGML_F32_EPR;
|
||||||
if (knl_type == GGML_TYPE_F32) {
|
if (knl_type == GGML_TYPE_F32) {
|
||||||
#if defined(__ARM_FEATURE_SVE)
|
#if defined(__ARM_FEATURE_SVE)
|
||||||
const int64_t pkg_size = svcntw();
|
pkg_size = svcntw();
|
||||||
#else
|
#else
|
||||||
const int64_t pkg_size = GGML_F32_EPR;
|
pkg_size = GGML_F32_EPR;
|
||||||
#endif
|
#endif
|
||||||
c_pkg_end = (c / pkg_size) * pkg_size;
|
c_pkg_end = (c / pkg_size) * pkg_size;
|
||||||
}
|
}
|
||||||
@@ -7345,7 +7346,7 @@ static void ggml_compute_forward_conv_2d_dw_cwhn(
|
|||||||
const int64_t src_x_base = dst_x * p.stride_x - p.pad_x;
|
const int64_t src_x_base = dst_x * p.stride_x - p.pad_x;
|
||||||
|
|
||||||
#ifdef GGML_SIMD
|
#ifdef GGML_SIMD
|
||||||
for (int64_t c_i = 0; c_i < c_pkg_end; c_i += GGML_F32_EPR) {
|
for (int64_t c_i = 0; c_i < c_pkg_end; c_i += pkg_size) {
|
||||||
GGML_F32_VEC sum = GGML_F32_VEC_ZERO;
|
GGML_F32_VEC sum = GGML_F32_VEC_ZERO;
|
||||||
for (int64_t knl_y = 0; knl_y < p.knl_h; ++knl_y) {
|
for (int64_t knl_y = 0; knl_y < p.knl_h; ++knl_y) {
|
||||||
const int64_t src_y = src_y_base + knl_y * p.dilation_y;
|
const int64_t src_y = src_y_base + knl_y * p.dilation_y;
|
||||||
|
|||||||
@@ -4917,7 +4917,9 @@ static bool ggml_backend_cuda_device_supports_op(ggml_backend_dev_t dev, const g
|
|||||||
case GGML_OP_IM2COL:
|
case GGML_OP_IM2COL:
|
||||||
case GGML_OP_IM2COL_3D:
|
case GGML_OP_IM2COL_3D:
|
||||||
case GGML_OP_CONV_2D:
|
case GGML_OP_CONV_2D:
|
||||||
|
return true;
|
||||||
case GGML_OP_CONV_2D_DW:
|
case GGML_OP_CONV_2D_DW:
|
||||||
|
return op->src[0]->type == GGML_TYPE_F32;
|
||||||
case GGML_OP_CONV_TRANSPOSE_2D:
|
case GGML_OP_CONV_TRANSPOSE_2D:
|
||||||
case GGML_OP_POOL_2D:
|
case GGML_OP_POOL_2D:
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user