Ouadie EL FAROUKI commited on
Commit
5239c28
·
1 Parent(s): 1bdb50a

Fixed dequant precision issues in Q4_1 and Q5_1 (llama/9711)

Browse files
Files changed (1) hide show
  1. ggml/src/ggml-sycl/dequantize.hpp +8 -8
ggml/src/ggml-sycl/dequantize.hpp CHANGED
@@ -55,12 +55,12 @@ static __dpct_inline__ void dequantize_q4_1(const void *vx, const int64_t ib,
55
  #ifdef GGML_SYCL_F16
56
  // v = v * {d, d};
57
  // v = v + {m, m};
58
- v.s0() = (v.s0() * d) + m;
59
- v.s1() = (v.s1() * d) + m;
60
 
61
  #else
62
- v.x() = (v.x() * d) + m;
63
- v.y() = (v.y() * d) + m;
64
  #endif // GGML_SYCL_F16
65
  }
66
 
@@ -110,11 +110,11 @@ static __dpct_inline__ void dequantize_q5_1(const void *vx, const int64_t ib,
110
  #ifdef GGML_SYCL_F16
111
  // v = v * {d, d};
112
  // v = v + {m, m};
113
- v.s0() = (v.s0() * d) + m;
114
- v.s1() = (v.s1() * d) + m;
115
  #else
116
- v.x() = (v.x() * d) + m;
117
- v.y() = (v.y() * d) + m;
118
  #endif // GGML_SYCL_F16
119
  }
120
 
 
55
  #ifdef GGML_SYCL_F16
56
  // v = v * {d, d};
57
  // v = v + {m, m};
58
+ v.s0() = sycl::fma(v.s0(), d, m);
59
+ v.s1() = sycl::fma(v.s1(), d, m);
60
 
61
  #else
62
+ v.x() = sycl::fma(v.x(), d, m);
63
+ v.y() = sycl::fma(v.y(), d, m);
64
  #endif // GGML_SYCL_F16
65
  }
66
 
 
110
  #ifdef GGML_SYCL_F16
111
  // v = v * {d, d};
112
  // v = v + {m, m};
113
+ v.s0() = sycl::fma(v.s0(), d, m);
114
+ v.s1() = sycl::fma(v.s1(), d, m);
115
  #else
116
+ v.x() = sycl::fma(v.x(), d, m);
117
+ v.y() = sycl::fma(v.y(), d, m);
118
  #endif // GGML_SYCL_F16
119
  }
120