@@ -322,12 +322,6 @@ static ggml_fp16_t ggml_table_exp_f16[1 << 16];
322
322
// precomputed f32 table for f16 (256 KB) (ggml-impl.h)
323
323
float ggml_table_f32_f16[1 << 16];
324
324
325
- // precomputed gelu table for bf16 (128 KB)
326
- static ggml_bf16_t ggml_table_gelu_bf16[1 << 16];
327
-
328
- // precomputed exp table for bf16 (128 KB)
329
- static ggml_bf16_t ggml_table_exp_bf16[1 << 16];
330
-
331
325
GGML_CALL const char * ggml_status_to_string(enum ggml_status status) {
332
326
switch (status) {
333
327
case GGML_STATUS_ALLOC_FAILED: return "GGML status: error (failed to allocate memory)";
@@ -1622,14 +1616,13 @@ static void ggml_vec_dot_bf16(int n, float * restrict s, size_t bs, ggml_bf16_t
1622
1616
__m512 c2 = _mm512_setzero_ps();
1623
1617
for (; i + 64 <= n; i += 64) {
1624
1618
c1 = _mm512_dpbf16_ps(c1, (__m512bh)_mm512_loadu_ps((const float *)(x + i)),
1625
- (__m512bh)_mm512_loadu_ps((const float *)(y + i)));
1619
+ (__m512bh)_mm512_loadu_ps((const float *)(y + i)));
1626
1620
c2 = _mm512_dpbf16_ps(c2, (__m512bh)_mm512_loadu_ps((const float *)(x + i + 32)),
1627
- (__m512bh)_mm512_loadu_ps((const float *)(y + i + 32)));
1621
+ (__m512bh)_mm512_loadu_ps((const float *)(y + i + 32)));
1628
1622
}
1629
1623
sumf += (ggml_float)_mm512_reduce_add_ps(c1);
1630
1624
sumf += (ggml_float)_mm512_reduce_add_ps(c2);
1631
1625
1632
- #undef LOAD
1633
1626
#elif defined(__AVX512F__)
1634
1627
#define LOAD(p) _mm512_castsi512_ps(_mm512_slli_epi32(_mm512_cvtepu16_epi32(_mm256_loadu_si256((const __m256i *)(p))), 16))
1635
1628
__m512 c1 = _mm512_setzero_ps();
@@ -1915,16 +1908,6 @@ inline static void ggml_vec_gelu_f16(const int n, ggml_fp16_t * y, const ggml_fp
1915
1908
}
1916
1909
}
1917
1910
1918
- inline static void ggml_vec_gelu_bf16(const int n, ggml_bf16_t * y, const ggml_bf16_t * x) {
1919
- for (int i = 0; i < n; ++i) {
1920
- union {
1921
- ggml_bf16_t f;
1922
- uint16_t i;
1923
- } u = {x[i]};
1924
- y[i] = ggml_table_gelu_bf16[u.i];
1925
- }
1926
- }
1927
-
1928
1911
#ifdef GGML_GELU_FP16
1929
1912
inline static void ggml_vec_gelu_f32(const int n, float * y, const float * x) {
1930
1913
uint16_t t;
@@ -2827,18 +2810,14 @@ struct ggml_context * ggml_init(struct ggml_init_params params) {
2827
2810
2828
2811
for (int i = 0; i < (1 << 16); ++i) {
2829
2812
union {
2830
- uint16_t i ;
2813
+ uint16_t u16 ;
2831
2814
ggml_fp16_t fp16;
2832
- ggml_bf16_t bf16;
2833
2815
} u = {i};
2834
2816
float f = ggml_table_f32_f16[i] = GGML_COMPUTE_FP16_TO_FP32(u.fp16);
2835
2817
ggml_table_gelu_f16[i] = GGML_FP32_TO_FP16(ggml_gelu_f32(f));
2836
2818
ggml_table_gelu_quick_f16[i] = GGML_FP32_TO_FP16(ggml_gelu_quick_f32(f));
2837
2819
ggml_table_silu_f16[i] = GGML_FP32_TO_FP16(ggml_silu_f32(f));
2838
2820
ggml_table_exp_f16[i] = GGML_FP32_TO_FP16(expf(f));
2839
- f = GGML_BF16_TO_FP32(u.bf16);
2840
- ggml_table_gelu_bf16[i] = GGML_FP32_TO_BF16(ggml_gelu_f32(f));
2841
- ggml_table_exp_bf16[i] = GGML_FP32_TO_BF16(expf(f));
2842
2821
}
2843
2822
2844
2823
const uint64_t t_end = ggml_time_us(); UNUSED(t_end);
0 commit comments