mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-30 08:42:00 +00:00 
			
		
		
		
	Fix MacOS Sonoma model quantization (#4052)
Co-authored-by: Jared Van Bortel <jared@nomic.ai> Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
This commit is contained in:
		| @@ -458,6 +458,15 @@ if (LLAMA_LTO) | |||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | # this version of Apple ld64 is buggy | ||||||
|  | execute_process( | ||||||
|  |     COMMAND ${CMAKE_C_COMPILER} ${CMAKE_EXE_LINKER_FLAGS} -Wl,-v | ||||||
|  |     ERROR_VARIABLE output | ||||||
|  | ) | ||||||
|  | if (output MATCHES "dyld-1015\.7") | ||||||
|  |     add_compile_definitions(HAVE_BUGGY_APPLE_LINKER) | ||||||
|  | endif() | ||||||
|  |  | ||||||
| # Architecture specific | # Architecture specific | ||||||
| # TODO: probably these flags need to be tweaked on some architectures | # TODO: probably these flags need to be tweaked on some architectures | ||||||
| #       feel free to update the Makefile for your architecture and send a pull request or issue | #       feel free to update the Makefile for your architecture and send a pull request or issue | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Makefile
									
									
									
									
									
								
							| @@ -239,6 +239,11 @@ else | |||||||
| 	endif | 	endif | ||||||
| endif | endif | ||||||
|  |  | ||||||
|  | # this version of Apple ld64 is buggy | ||||||
|  | ifneq '' '$(findstring dyld-1015.7,$(shell $(CC) $(LDFLAGS) -Wl,-v 2>&1))' | ||||||
|  | 	MK_CPPFLAGS += -DHAVE_BUGGY_APPLE_LINKER | ||||||
|  | endif | ||||||
|  |  | ||||||
| # OS specific | # OS specific | ||||||
| # TODO: support Windows | # TODO: support Windows | ||||||
| ifneq '' '$(filter $(UNAME_S),Linux Darwin FreeBSD NetBSD OpenBSD Haiku)' | ifneq '' '$(filter $(UNAME_S),Linux Darwin FreeBSD NetBSD OpenBSD Haiku)' | ||||||
|   | |||||||
| @@ -1368,7 +1368,12 @@ static float make_qkx2_quants(int n, int nmax, const float * restrict x, const f | |||||||
|     float max = x[0]; |     float max = x[0]; | ||||||
|     float sum_w = weights[0]; |     float sum_w = weights[0]; | ||||||
|     float sum_x = sum_w * x[0]; |     float sum_x = sum_w * x[0]; | ||||||
|  | #ifdef HAVE_BUGGY_APPLE_LINKER | ||||||
|  |     // use 'volatile' to prevent unroll and work around a bug in Apple ld64 1015.7 | ||||||
|  |     for (volatile int i = 1; i < n; ++i) { | ||||||
|  | #else | ||||||
|     for (int i = 1; i < n; ++i) { |     for (int i = 1; i < n; ++i) { | ||||||
|  | #endif | ||||||
|         if (x[i] < min) min = x[i]; |         if (x[i] < min) min = x[i]; | ||||||
|         if (x[i] > max) max = x[i]; |         if (x[i] > max) max = x[i]; | ||||||
|         float w = weights[i]; |         float w = weights[i]; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Michael Potter
					Michael Potter