From bea1f1fac6b6b51bb3b8a666789c518b7aaa8b94 Mon Sep 17 00:00:00 2001 From: Michael Yang Date: Thu, 30 Jan 2025 12:05:50 -0800 Subject: [PATCH] cgo: use O3 --- discover/gpu.go | 1 + discover/gpu_darwin.go | 1 + llama/llama.cpp/examples/llava/llava.go | 1 + llama/llama.cpp/src/llama.go | 1 + llama/llama.go | 1 + ml/backend/ggml/ggml/src/ggml-blas/blas.go | 1 + ml/backend/ggml/ggml/src/ggml-cpu/cpu.go | 4 +++- ml/backend/ggml/ggml/src/ggml-cpu/llamafile/llamafile.go | 1 + ml/backend/ggml/ggml/src/ggml-metal/metal.go | 1 + ml/backend/ggml/ggml/src/ggml.go | 1 + ml/backend/ggml/ggml/src/ggml_darwin_arm64.go | 1 + 11 files changed, 13 insertions(+), 1 deletion(-) diff --git a/discover/gpu.go b/discover/gpu.go index ba906a184..22195d223 100644 --- a/discover/gpu.go +++ b/discover/gpu.go @@ -3,6 +3,7 @@ package discover /* +#cgo CPPFLAGS: -O3 #cgo linux LDFLAGS: -lrt -lpthread -ldl -lstdc++ -lm #cgo windows LDFLAGS: -lpthread diff --git a/discover/gpu_darwin.go b/discover/gpu_darwin.go index dd5bf6e27..f102a6fef 100644 --- a/discover/gpu_darwin.go +++ b/discover/gpu_darwin.go @@ -4,6 +4,7 @@ package discover /* #cgo CFLAGS: -x objective-c +#cgo CPPFLAGS: -O3 #cgo LDFLAGS: -framework Foundation -framework CoreGraphics -framework Metal #include "gpu_info_darwin.h" */ diff --git a/llama/llama.cpp/examples/llava/llava.go b/llama/llama.cpp/examples/llava/llava.go index 37b031cb7..c8b83d81d 100644 --- a/llama/llama.cpp/examples/llava/llava.go +++ b/llama/llama.cpp/examples/llava/llava.go @@ -1,6 +1,7 @@ package llava // #cgo CXXFLAGS: -std=c++11 +// #cgo CPPFLAGS: -O3 // #cgo CPPFLAGS: -I${SRCDIR}/../../include -I${SRCDIR}/../../common // #cgo CPPFLAGS: -I${SRCDIR}/../../../../ml/backend/ggml/ggml/include import "C" diff --git a/llama/llama.cpp/src/llama.go b/llama/llama.cpp/src/llama.go index ddbd53785..d3a2bb976 100644 --- a/llama/llama.cpp/src/llama.go +++ b/llama/llama.cpp/src/llama.go @@ -1,6 +1,7 @@ package llama // #cgo CXXFLAGS: -std=c++17 +// #cgo CPPFLAGS: -O3 // #cgo CPPFLAGS: -I${SRCDIR}/../include // #cgo CPPFLAGS: -I${SRCDIR}/../../../ml/backend/ggml/ggml/include // #cgo windows CPPFLAGS: -D_WIN32_WINNT=0x0602 diff --git a/llama/llama.go b/llama/llama.go index 1d4513e31..36450f28a 100644 --- a/llama/llama.go +++ b/llama/llama.go @@ -3,6 +3,7 @@ package llama /* #cgo CFLAGS: -std=c11 #cgo CXXFLAGS: -std=c++17 +#cgo CPPFLAGS: -O3 #cgo CPPFLAGS: -I${SRCDIR}/llama.cpp/include #cgo CPPFLAGS: -I${SRCDIR}/llama.cpp/common #cgo CPPFLAGS: -I${SRCDIR}/llama.cpp/examples/llava diff --git a/ml/backend/ggml/ggml/src/ggml-blas/blas.go b/ml/backend/ggml/ggml/src/ggml-blas/blas.go index b29c9f140..546781783 100644 --- a/ml/backend/ggml/ggml/src/ggml-blas/blas.go +++ b/ml/backend/ggml/ggml/src/ggml-blas/blas.go @@ -3,6 +3,7 @@ package blas // #cgo CXXFLAGS: -std=c++11 +// #cgo CPPFLAGS: -O3 // #cgo CPPFLAGS: -DGGML_USE_BLAS // #cgo CPPFLAGS: -I${SRCDIR}/.. -I${SRCDIR}/../../include // #cgo darwin,arm64 CPPFLAGS: -DGGML_BLAS_USE_ACCELERATE -DACCELERATE_NEW_LAPACK -DACCELERATE_LAPACK_ILP64 diff --git a/ml/backend/ggml/ggml/src/ggml-cpu/cpu.go b/ml/backend/ggml/ggml/src/ggml-cpu/cpu.go index f0bb54c23..1fd6c4302 100644 --- a/ml/backend/ggml/ggml/src/ggml-cpu/cpu.go +++ b/ml/backend/ggml/ggml/src/ggml-cpu/cpu.go @@ -2,9 +2,11 @@ package cpu // #cgo CFLAGS: -Wno-implicit-function-declaration // #cgo CXXFLAGS: -std=c++17 -// #cgo CPPFLAGS: -I${SRCDIR}/amx -I${SRCDIR}/llamafile -I${SRCDIR}/.. -I${SRCDIR}/../../include +// #cgo CPPFLAGS: -O3 // #cgo CPPFLAGS: -DGGML_USE_LLAMAFILE +// #cgo CPPFLAGS: -I${SRCDIR}/amx -I${SRCDIR}/llamafile -I${SRCDIR}/.. -I${SRCDIR}/../../include // #cgo linux CPPFLAGS: -D_GNU_SOURCE +// #cgo arm64 CPPFLAGS: -DGGML_USE_AARCH64 // #cgo darwin,arm64 CPPFLAGS: -DGGML_USE_ACCELERATE -DACCELERATE_NEW_LAPACK -DACCELERATE_LAPACK_ILP64 // #cgo darwin,arm64 LDFLAGS: -framework Accelerate import "C" diff --git a/ml/backend/ggml/ggml/src/ggml-cpu/llamafile/llamafile.go b/ml/backend/ggml/ggml/src/ggml-cpu/llamafile/llamafile.go index 09b002ce5..44b9ea42e 100644 --- a/ml/backend/ggml/ggml/src/ggml-cpu/llamafile/llamafile.go +++ b/ml/backend/ggml/ggml/src/ggml-cpu/llamafile/llamafile.go @@ -1,5 +1,6 @@ package llamafile // #cgo CXXFLAGS: -std=c++17 +// #cgo CPPFLAGS: -O3 // #cgo CPPFLAGS: -I${SRCDIR}/.. -I${SRCDIR}/../.. -I${SRCDIR}/../../../include import "C" diff --git a/ml/backend/ggml/ggml/src/ggml-metal/metal.go b/ml/backend/ggml/ggml/src/ggml-metal/metal.go index 1025e205d..cbebff068 100644 --- a/ml/backend/ggml/ggml/src/ggml-metal/metal.go +++ b/ml/backend/ggml/ggml/src/ggml-metal/metal.go @@ -4,6 +4,7 @@ package metal //go:generate sh -c "{ echo // Code generated $(date). DO NOT EDIT.; sed -e '/__embed_ggml-common.h__/r ../ggml-common.h' -e '/__embed_ggml-common.h__/d' -e '/#include \"ggml-metal-impl.h\"/r ggml-metal-impl.h' -e '/#include \"ggml-metal-impl.h\"/d' ggml-metal.metal; } >ggml-metal-embed.metal" +// #cgo CPPFLAGS: -O3 // #cgo CPPFLAGS: -DGGML_METAL_EMBED_LIBRARY -I.. -I../../include // #cgo LDFLAGS: -framework Metal -framework MetalKit import "C" diff --git a/ml/backend/ggml/ggml/src/ggml.go b/ml/backend/ggml/ggml/src/ggml.go index 7cf40e705..12c2a01a8 100644 --- a/ml/backend/ggml/ggml/src/ggml.go +++ b/ml/backend/ggml/ggml/src/ggml.go @@ -1,6 +1,7 @@ package ggml // #cgo CXXFLAGS: -std=c++17 +// #cgo CPPFLAGS: -O3 // #cgo CPPFLAGS: -DNDEBUG -DGGML_USE_CPU // #cgo CPPFLAGS: -I${SRCDIR}/../include -I${SRCDIR}/ggml-cpu // #cgo windows LDFLAGS: -lmsvcrt -static -static-libgcc -static-libstdc++ diff --git a/ml/backend/ggml/ggml/src/ggml_darwin_arm64.go b/ml/backend/ggml/ggml/src/ggml_darwin_arm64.go index beffa64e2..7ac46867d 100644 --- a/ml/backend/ggml/ggml/src/ggml_darwin_arm64.go +++ b/ml/backend/ggml/ggml/src/ggml_darwin_arm64.go @@ -1,5 +1,6 @@ package ggml +// #cgo CPPFLAGS: -O3 // #cgo CPPFLAGS: -DGGML_USE_METAL -DGGML_USE_BLAS // #cgo LDFLAGS: -framework Foundation import "C"