mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-30 08:42:00 +00:00 
			
		
		
		
	make : use -march=native -mtune=native on x86 (#609)
This commit is contained in:
		
							
								
								
									
										91
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										91
									
								
								Makefile
									
									
									
									
									
								
							| @@ -70,95 +70,8 @@ endif | |||||||
| # 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 | ||||||
| ifeq ($(UNAME_M),$(filter $(UNAME_M),x86_64 i686)) | ifeq ($(UNAME_M),$(filter $(UNAME_M),x86_64 i686)) | ||||||
| 	ifeq ($(UNAME_S),Darwin) | 	# Use all CPU extensions that are available: | ||||||
| 		F16C_M := $(shell sysctl machdep.cpu.features) | 	CFLAGS += -march=native -mtune=native | ||||||
| 		ifneq (,$(findstring F16C,$(F16C_M))) |  | ||||||
| 		    CFLAGS += -mf16c |  | ||||||
| 		endif |  | ||||||
| 		AVX1_M := $(shell sysctl machdep.cpu.features) |  | ||||||
| 		ifneq (,$(findstring FMA,$(AVX1_M))) |  | ||||||
| 			CFLAGS += -mfma |  | ||||||
| 		endif |  | ||||||
| 		ifneq (,$(findstring AVX1.0,$(AVX1_M))) |  | ||||||
| 			CFLAGS += -mavx |  | ||||||
| 		endif |  | ||||||
| 		AVX2_M := $(shell sysctl machdep.cpu.leaf7_features) |  | ||||||
| 		ifneq (,$(findstring AVX2,$(AVX2_M))) |  | ||||||
| 			CFLAGS += -mavx2 |  | ||||||
| 		endif |  | ||||||
| 	else ifeq ($(UNAME_S),Linux) |  | ||||||
| 		AVX1_M := $(shell grep "avx " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring avx,$(AVX1_M))) |  | ||||||
| 			CFLAGS += -mavx |  | ||||||
| 		endif |  | ||||||
| 		AVX2_M := $(shell grep "avx2 " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring avx2,$(AVX2_M))) |  | ||||||
| 			CFLAGS += -mavx2 |  | ||||||
| 		endif |  | ||||||
| 		FMA_M := $(shell grep "fma " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring fma,$(FMA_M))) |  | ||||||
| 			CFLAGS += -mfma |  | ||||||
| 		endif |  | ||||||
| 		F16C_M := $(shell grep "f16c " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring f16c,$(F16C_M))) |  | ||||||
| 			CFLAGS += -mf16c |  | ||||||
| 		endif |  | ||||||
| 		SSE3_M := $(shell grep "sse3 " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring sse3,$(SSE3_M))) |  | ||||||
| 			CFLAGS += -msse3 |  | ||||||
| 		endif |  | ||||||
| 		AVX512F_M := $(shell grep "avx512f " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring avx512f,$(AVX512F_M))) |  | ||||||
| 			CFLAGS += -mavx512f |  | ||||||
| 		endif |  | ||||||
| 		AVX512BW_M := $(shell grep "avx512bw " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring avx512bw,$(AVX512BW_M))) |  | ||||||
| 			CFLAGS += -mavx512bw |  | ||||||
| 		endif |  | ||||||
| 		AVX512DQ_M := $(shell grep "avx512dq " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring avx512dq,$(AVX512DQ_M))) |  | ||||||
| 			CFLAGS += -mavx512dq |  | ||||||
| 		endif |  | ||||||
| 		AVX512VL_M := $(shell grep "avx512vl " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring avx512vl,$(AVX512VL_M))) |  | ||||||
| 			CFLAGS += -mavx512vl |  | ||||||
| 		endif |  | ||||||
| 		AVX512CD_M := $(shell grep "avx512cd " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring avx512cd,$(AVX512CD_M))) |  | ||||||
| 			CFLAGS += -mavx512cd |  | ||||||
| 		endif |  | ||||||
| 		AVX512ER_M := $(shell grep "avx512er " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring avx512er,$(AVX512ER_M))) |  | ||||||
| 			CFLAGS += -mavx512er |  | ||||||
| 		endif |  | ||||||
| 		AVX512IFMA_M := $(shell grep "avx512ifma " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring avx512ifma,$(AVX512IFMA_M))) |  | ||||||
| 			CFLAGS += -mavx512ifma |  | ||||||
| 		endif |  | ||||||
| 		AVX512PF_M := $(shell grep "avx512pf " /proc/cpuinfo) |  | ||||||
| 		ifneq (,$(findstring avx512pf,$(AVX512PF_M))) |  | ||||||
| 			CFLAGS += -mavx512pf |  | ||||||
| 		endif |  | ||||||
| 	else ifeq ($(UNAME_S),Haiku) |  | ||||||
| 		AVX1_M := $(shell sysinfo -cpu | grep -w "AVX") |  | ||||||
| 		ifneq (,$(findstring AVX,$(AVX1_M))) |  | ||||||
| 			CFLAGS += -mavx |  | ||||||
| 		endif |  | ||||||
| 		AVX2_M := $(shell sysinfo -cpu | grep -w "AVX2") |  | ||||||
| 		ifneq (,$(findstring AVX2,$(AVX2_M))) |  | ||||||
| 			CFLAGS += -mavx2 |  | ||||||
| 		endif |  | ||||||
| 		FMA_M := $(shell sysinfo -cpu | grep -w "FMA") |  | ||||||
| 		ifneq (,$(findstring FMA,$(FMA_M))) |  | ||||||
| 			CFLAGS += -mfma |  | ||||||
| 		endif |  | ||||||
| 		F16C_M := $(shell sysinfo -cpu | grep -w "F16C") |  | ||||||
| 		ifneq (,$(findstring F16C,$(F16C_M))) |  | ||||||
| 			CFLAGS += -mf16c |  | ||||||
| 		endif |  | ||||||
| 	else |  | ||||||
| 		CFLAGS += -mfma -mf16c -mavx -mavx2 |  | ||||||
| 	endif |  | ||||||
| endif | endif | ||||||
| ifneq ($(filter ppc64%,$(UNAME_M)),) | ifneq ($(filter ppc64%,$(UNAME_M)),) | ||||||
| 	POWER9_M := $(shell grep "POWER9" /proc/cpuinfo) | 	POWER9_M := $(shell grep "POWER9" /proc/cpuinfo) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Fabian
					Fabian