]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
ggml : minor
authorGeorgi Gerganov <redacted>
Fri, 14 Apr 2023 10:31:29 +0000 (13:31 +0300)
committerGeorgi Gerganov <redacted>
Fri, 14 Apr 2023 10:31:29 +0000 (13:31 +0300)
ggml.c

diff --git a/ggml.c b/ggml.c
index 76694a61729525b70c4bc8abede08822a58be437..d99aca21a864dadd2e428ba0e5bc565ae3c893f5 100644 (file)
--- a/ggml.c
+++ b/ggml.c
@@ -7509,7 +7509,7 @@ static void ggml_compute_forward_rope_f32(
     // row index used to determine which thread to use
     int ir = 0;
 
-    const float theta_scale = powf(10000.0, ((float)-2)/n_dims);
+    const float theta_scale = powf(10000.0, -2.0f/n_dims);
 
     for (int64_t i3 = 0; i3 < ne3; i3++) {
         for (int64_t i2 = (mode == 0 ? 0 : n_past); i2 < ne2; i2++) {
@@ -7517,12 +7517,15 @@ static void ggml_compute_forward_rope_f32(
             for (int64_t i1 = 0; i1 < ne1; i1++) {
                 if (ir++ < ir0) continue;
                 if (ir   > ir1) break;
+
                 float theta = (float)p;
+
                 for (int i0 = 0; i0 < n_dims; i0 += 2) {
                     const float cos_theta = cosf(theta);
                     const float sin_theta = sinf(theta);
 
                     theta *= theta_scale;
+
                     const float * const src = (float *)((char *) src0->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0);
                           float * dst_data  = (float *)((char *)  dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0);
 
@@ -7583,7 +7586,7 @@ static void ggml_compute_forward_rope_f16(
     // row index used to determine which thread to use
     int ir = 0;
 
-    const float theta_scale = powf(10000.0, ((float)-2)/n_dims);
+    const float theta_scale = powf(10000.0, -2.0f/n_dims);
 
     for (int64_t i3 = 0; i3 < ne3; i3++) {
         for (int64_t i2 = (mode == 0 ? 0 : n_past); i2 < ne2; i2++) {
@@ -7591,12 +7594,15 @@ static void ggml_compute_forward_rope_f16(
             for (int64_t i1 = 0; i1 < ne1; i1++) {
                 if (ir++ < ir0) continue;
                 if (ir   > ir1) break;
+
                 float theta = (float)p;
+
                 for (int i0 = 0; i0 < n_dims; i0 += 2) {
                     const float cos_theta = cosf(theta);
                     const float sin_theta = sinf(theta);
 
                     theta *= theta_scale;
+
                     const ggml_fp16_t * const src = (ggml_fp16_t *)((char *) src0->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0);
                           ggml_fp16_t * dst_data  = (ggml_fp16_t *)((char *)  dst->data + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0);