Skip to content

Commit 4143c93

Browse files
xctanMinh141120
authored andcommitted
ggml-cpu : remove the weak alias trick (ggml-org#14221)
1 parent 9a2e6cd commit 4143c93

File tree

5 files changed

+2
-161
lines changed

5 files changed

+2
-161
lines changed

ggml/src/ggml-cpu/apple-fallback.h

Lines changed: 0 additions & 88 deletions
This file was deleted.

ggml/src/ggml-cpu/ggml-cpu-impl.h

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -515,28 +515,3 @@ int ggml_threadpool_chunk_add(struct ggml_threadpool * tp, int value);
515515
#ifdef __cplusplus
516516
}
517517
#endif
518-
519-
#define GGML_DO_PRAGMA_(x) _Pragma (#x)
520-
#define GGML_DO_PRAGMA(x) GGML_DO_PRAGMA_(x)
521-
#if defined(GGML_CPU_GENERIC) || defined(__HIPCC__) || defined(__APPLE__)
522-
// Note for Apple targets:
523-
// - clang: aliases are not supported on darwin
524-
// - all native kernels need to be implemented in both x86 and arm files
525-
// - on iOS, tvOS, and visionOS, if cmake cannot determine the target architecture, all `_generic` names are replaced by defines
526-
# define GGML_WEAK_ALIAS(name, alias)
527-
#elif defined(__GNUC__)
528-
// GCC/Clang on *nix
529-
# define GGML_WEAK_ALIAS(name, alias) GGML_DO_PRAGMA(weak name = alias) // NOLINT
530-
#elif defined(_MSC_VER) && defined(_WIN64)
531-
// MSVC
532-
// Note: C name mangling varies across different calling conventions
533-
// see https://learn.microsoft.com/en-us/cpp/build/reference/decorated-names?view=msvc-170
534-
# define GGML_WEAK_ALIAS(name, alias) GGML_DO_PRAGMA(comment(linker, "/alternatename:" #name "=" #alias))
535-
#elif defined(_MSC_VER) && defined(WIN32)
536-
// ref: https://github.com/ggml-org/whisper.cpp/pull/3239#issuecomment-2958224591
537-
# define GGML_WEAK_ALIAS(name, alias) GGML_DO_PRAGMA(comment(linker, "/alternatename:_" #name "=_" #alias))
538-
#else
539-
# error "Unsupported compiler for GGML_WEAK_ALIAS"
540-
#endif
541-
542-
#define GGML_CPU_NATIVE_IMPL(name) GGML_WEAK_ALIAS(name, name ## _generic)

ggml/src/ggml-cpu/quants.c

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
#include "ggml-quants.h"
66
#include "quants.h"
77

8-
#if defined(__APPLE__)
9-
#include "apple-fallback.h"
10-
#endif
8+
#include "arch-fallback.h"
119

1210
#include <string.h>
1311
#include <assert.h>
@@ -42,12 +40,10 @@ void quantize_row_q5_1(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, in
4240
void quantize_row_q8_0_generic(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k) {
4341
quantize_row_q8_0_ref(x, y, k);
4442
}
45-
GGML_CPU_NATIVE_IMPL(quantize_row_q8_0)
4643

4744
void quantize_row_q8_1_generic(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k) {
4845
quantize_row_q8_1_ref(x, y, k);
4946
}
50-
GGML_CPU_NATIVE_IMPL(quantize_row_q8_1)
5147

5248
//
5349
// 2-6 bit quantization in super-blocks
@@ -108,7 +104,6 @@ void quantize_row_tq2_0(const float * GGML_RESTRICT x, void * GGML_RESTRICT vy,
108104
void quantize_row_q8_K_generic(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k) {
109105
quantize_row_q8_K_ref(x, y, k);
110106
}
111-
GGML_CPU_NATIVE_IMPL(quantize_row_q8_K)
112107

113108
//===================================== Dot products =================================
114109

@@ -147,7 +142,6 @@ void ggml_vec_dot_q4_0_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, c
147142

148143
*s = sumf;
149144
}
150-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_q4_0_q8_0)
151145

152146
// TODO: add WASM SIMD
153147
void ggml_vec_dot_q4_1_q8_1_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
@@ -185,7 +179,6 @@ void ggml_vec_dot_q4_1_q8_1_generic(int n, float * GGML_RESTRICT s, size_t bs, c
185179

186180
*s = sumf;
187181
}
188-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_q4_1_q8_1)
189182

190183
void ggml_vec_dot_q5_0_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
191184
const int qk = QK8_0;
@@ -229,7 +222,6 @@ void ggml_vec_dot_q5_0_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, c
229222

230223
*s = sumf;
231224
}
232-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_q5_0_q8_0)
233225

234226
void ggml_vec_dot_q5_1_q8_1_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
235227
const int qk = QK8_1;
@@ -273,7 +265,6 @@ void ggml_vec_dot_q5_1_q8_1_generic(int n, float * GGML_RESTRICT s, size_t bs, c
273265

274266
*s = sumf;
275267
}
276-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_q5_1_q8_1)
277268

278269
void ggml_vec_dot_q8_0_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
279270
const int qk = QK8_0;
@@ -304,7 +295,6 @@ void ggml_vec_dot_q8_0_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, c
304295

305296
*s = sumf;
306297
}
307-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_q8_0_q8_0)
308298

309299
void ggml_vec_dot_tq1_0_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
310300
assert(nrc == 1);
@@ -357,7 +347,6 @@ void ggml_vec_dot_tq1_0_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs,
357347

358348
*s = sumf;
359349
}
360-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_tq1_0_q8_K)
361350

362351
void ggml_vec_dot_tq2_0_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
363352
assert(nrc == 1);
@@ -390,7 +379,6 @@ void ggml_vec_dot_tq2_0_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs,
390379

391380
*s = sumf;
392381
}
393-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_tq2_0_q8_K)
394382

395383
void ggml_vec_dot_q2_K_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
396384
assert(nrc == 1);
@@ -443,7 +431,6 @@ void ggml_vec_dot_q2_K_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, c
443431
}
444432
*s = sumf;
445433
}
446-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_q2_K_q8_K)
447434

448435
void ggml_vec_dot_q3_K_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
449436
assert(n % QK_K == 0);
@@ -523,7 +510,6 @@ void ggml_vec_dot_q3_K_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, c
523510
for (int l = 0; l < 8; ++l) sumf += sums[l];
524511
*s = sumf;
525512
}
526-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_q3_K_q8_K)
527513

528514
void ggml_vec_dot_q4_K_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
529515
assert(n % QK_K == 0);
@@ -599,7 +585,6 @@ void ggml_vec_dot_q4_K_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, c
599585
for (int l = 0; l < 8; ++l) sumf += sums[l];
600586
*s = sumf;
601587
}
602-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_q4_K_q8_K)
603588

604589
void ggml_vec_dot_q5_K_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
605590
assert(n % QK_K == 0);
@@ -680,7 +665,6 @@ void ggml_vec_dot_q5_K_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, c
680665
for (int l = 0; l < 8; ++l) sumf += sums[l];
681666
*s = sumf;
682667
}
683-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_q5_K_q8_K)
684668

685669
void ggml_vec_dot_q6_K_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
686670
assert(n % QK_K == 0);
@@ -736,7 +720,6 @@ void ggml_vec_dot_q6_K_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, c
736720
for (int l = 0; l < 8; ++l) sumf += sums[l];
737721
*s = sumf;
738722
}
739-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_q6_K_q8_K)
740723

741724
void ggml_vec_dot_iq2_xxs_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
742725
assert(n % QK_K == 0);
@@ -779,7 +762,6 @@ void ggml_vec_dot_iq2_xxs_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs
779762
}
780763
*s = 0.125f * sumf;
781764
}
782-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_iq2_xxs_q8_K)
783765

784766
void ggml_vec_dot_iq2_xs_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
785767
assert(n % QK_K == 0);
@@ -830,7 +812,6 @@ void ggml_vec_dot_iq2_xs_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs,
830812
}
831813
*s = 0.125f * sumf;
832814
}
833-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_iq2_xs_q8_K)
834815

835816
void ggml_vec_dot_iq2_s_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
836817
assert(n % QK_K == 0);
@@ -883,7 +864,6 @@ void ggml_vec_dot_iq2_s_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs,
883864

884865
*s = 0.125f * sumf;
885866
}
886-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_iq2_s_q8_K)
887867

888868
void ggml_vec_dot_iq3_xxs_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
889869
assert(n % QK_K == 0);
@@ -928,7 +908,6 @@ void ggml_vec_dot_iq3_xxs_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs
928908
}
929909
*s = 0.25f * sumf;
930910
}
931-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_iq3_xxs_q8_K)
932911

933912
void ggml_vec_dot_iq3_s_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
934913
assert(n % QK_K == 0);
@@ -985,7 +964,6 @@ void ggml_vec_dot_iq3_s_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs,
985964
}
986965
*s = sumf;
987966
}
988-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_iq3_s_q8_K)
989967

990968
void ggml_vec_dot_iq1_s_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
991969
assert(n % QK_K == 0);
@@ -1029,7 +1007,6 @@ void ggml_vec_dot_iq1_s_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs,
10291007

10301008
*s = sumf;
10311009
}
1032-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_iq1_s_q8_K)
10331010

10341011
void ggml_vec_dot_iq1_m_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
10351012
assert(n % QK_K == 0);
@@ -1091,7 +1068,6 @@ void ggml_vec_dot_iq1_m_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs,
10911068

10921069
*s = sumf;
10931070
}
1094-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_iq1_m_q8_K)
10951071

10961072
void ggml_vec_dot_iq4_nl_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
10971073
assert(nrc == 1);
@@ -1121,7 +1097,6 @@ void ggml_vec_dot_iq4_nl_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs,
11211097
}
11221098
*s = sumf;
11231099
}
1124-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_iq4_nl_q8_0)
11251100

11261101
void ggml_vec_dot_iq4_xs_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) {
11271102
assert(nrc == 1);
@@ -1168,7 +1143,6 @@ void ggml_vec_dot_iq4_xs_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs,
11681143
}
11691144
*s = sumf;
11701145
}
1171-
GGML_CPU_NATIVE_IMPL(ggml_vec_dot_iq4_xs_q8_K)
11721146

11731147
// ============================ 4-bit non-linear quants
11741148

0 commit comments

Comments
 (0)