Skip to content

Commit 0d70ca8

Browse files
committed
use memcpy for op params
1 parent 50c678f commit 0d70ca8

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

ggml/src/ggml-metal/ggml-metal.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2255,8 +2255,10 @@ static bool ggml_metal_encode_node(
22552255
{
22562256
GGML_ASSERT(ggml_is_contiguous(src0));
22572257

2258-
float scale = ((const float *)(dst->op_params))[0];
2259-
float bias = ((const float *)(dst->op_params))[1];
2258+
float scale;
2259+
float bias;
2260+
memcpy(&scale, ((const int32_t *) dst->op_params) + 0, sizeof(float));
2261+
memcpy(&bias, ((const int32_t *) dst->op_params) + 1, sizeof(float));
22602262

22612263
int64_t n = ggml_nelements(dst);
22622264

ggml/src/ggml-opencl/ggml-opencl.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5586,8 +5586,10 @@ static void ggml_cl_scale(ggml_backend_t backend, const ggml_tensor * src0, cons
55865586

55875587
ggml_backend_opencl_context *backend_ctx = (ggml_backend_opencl_context *)backend->context;
55885588

5589-
float scale = ((const float *)(dst->op_params))[0];
5590-
float bias = ((const float *)(dst->op_params))[1];
5589+
float scale;
5590+
float bias;
5591+
memcpy(&scale, ((int32_t *) dst->op_params) + 0, sizeof(float));
5592+
memcpy(&bias, ((int32_t *) dst->op_params) + 1, sizeof(float));
55915593

55925594
ggml_tensor_extra_cl * extra0 = (ggml_tensor_extra_cl *)src0->extra;
55935595
ggml_tensor_extra_cl * extrad = (ggml_tensor_extra_cl *)dst->extra;

ggml/src/ggml-sycl/ggml-sycl.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2318,8 +2318,10 @@ inline void ggml_sycl_op_scale(ggml_backend_sycl_context & ctx, ggml_tensor * ds
23182318
const float * src0_dd = static_cast<const float *>(dst->src[0]->data);
23192319
float * dst_dd = static_cast<float *>(dst->data);
23202320

2321-
float scale = ((const float *)(dst->op_params))[0];
2322-
float bias = ((const float *)(dst->op_params))[1];
2321+
float scale;
2322+
float bias;
2323+
memcpy(&scale, dst->op_params, sizeof(float));
2324+
memcpy(&bias, (float *) dst->op_params + 1, sizeof(float));
23232325

23242326
scale_f32_sycl(src0_dd, dst_dd, scale, bias, ggml_nelements(dst->src[0]), main_stream);
23252327
/*

0 commit comments

Comments
 (0)