|
6 | 6 | #include "traits.h"
|
7 | 7 | #include "ggml.h"
|
8 | 8 |
|
| 9 | +#if defined(__APPLE__) |
| 10 | +#include <TargetConditionals.h> |
| 11 | +#endif |
| 12 | + |
9 | 13 | // GGML internal header
|
10 | 14 |
|
11 | 15 | ggml_backend_buffer_type_t ggml_backend_cpu_repack_buffer_type(void);
|
@@ -67,7 +71,7 @@ extern "C" {
|
67 | 71 | // Workaround for clang:
|
68 | 72 | // clang++ complains: ``error: call to 'ggml_gemm_q4_0_4x4_q8_0' is ambiguous''
|
69 | 73 | // repro: https://godbolt.org/z/oKdeWKonM (ICE), https://godbolt.org/z/1szq6P36v (ambiguous call)
|
70 |
| -#if !defined(__clang__) || (defined(__clang__) && (defined(GGML_CPU_CLANG_WORKAROUND) || defined(_WIN64))) |
| 74 | +#if defined(GGML_CPU_CLANG_WORKAROUND) || !(defined(__GNUC__) && defined(__clang__)) |
71 | 75 | void ggml_quantize_mat_q8_0_4x4(const float * GGML_RESTRICT x, void * GGML_RESTRICT vy, int64_t k);
|
72 | 76 | void ggml_quantize_mat_q8_0_4x8(const float * GGML_RESTRICT x, void * GGML_RESTRICT vy, int64_t k);
|
73 | 77 | void ggml_quantize_mat_q8_K_4x8(const float * GGML_RESTRICT x, void * GGML_RESTRICT vy, int64_t k);
|
@@ -98,6 +102,22 @@ void ggml_gemm_q4_0_8x8_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs,
|
98 | 102 | void ggml_gemm_q4_K_8x8_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, const void * GGML_RESTRICT vy, int nr, int nc);
|
99 | 103 | void ggml_gemm_iq4_nl_4x4_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, const void * GGML_RESTRICT vy, int nr, int nc);
|
100 | 104 |
|
| 105 | +#if defined(__APPLE__) && !defined(TARGET_OS_OSX) |
| 106 | +#define ggml_quantize_mat_q8_0_4x4_generic ggml_quantize_mat_q8_0_4x4 |
| 107 | +#define ggml_quantize_mat_q8_0_4x8_generic ggml_quantize_mat_q8_0_4x8 |
| 108 | +#define ggml_quantize_mat_q8_K_4x8_generic ggml_quantize_mat_q8_K_4x8 |
| 109 | +#define ggml_gemv_q4_0_4x4_q8_0_generic ggml_gemv_q4_0_4x4_q8_0 |
| 110 | +#define ggml_gemv_q4_0_4x8_q8_0_generic ggml_gemv_q4_0_4x8_q8_0 |
| 111 | +#define ggml_gemv_q4_0_8x8_q8_0_generic ggml_gemv_q4_0_8x8_q8_0 |
| 112 | +#define ggml_gemv_q4_K_8x8_q8_K_generic ggml_gemv_q4_K_8x8_q8_K |
| 113 | +#define ggml_gemv_iq4_nl_4x4_q8_0_generic ggml_gemv_iq4_nl_4x4_q8_0 |
| 114 | +#define ggml_gemm_q4_0_4x4_q8_0_generic ggml_gemm_q4_0_4x4_q8_0 |
| 115 | +#define ggml_gemm_q4_0_4x8_q8_0_generic ggml_gemm_q4_0_4x8_q8_0 |
| 116 | +#define ggml_gemm_q4_0_8x8_q8_0_generic ggml_gemm_q4_0_8x8_q8_0 |
| 117 | +#define ggml_gemm_q4_K_8x8_q8_K_generic ggml_gemm_q4_K_8x8_q8_K |
| 118 | +#define ggml_gemm_iq4_nl_4x4_q8_0_generic ggml_gemm_iq4_nl_4x4_q8_0 |
| 119 | +#endif |
| 120 | + |
101 | 121 | #if defined(__cplusplus)
|
102 | 122 | } // extern "C"
|
103 | 123 | #endif
|
0 commit comments