Add git-based build information for better issue tracking
This commit is contained in:
parent
7ff0dcd320
commit
8272f4aed8
5 changed files with 81 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -32,6 +32,7 @@ models/*
|
||||||
/vdot
|
/vdot
|
||||||
/Pipfile
|
/Pipfile
|
||||||
|
|
||||||
|
build-info.h
|
||||||
arm_neon.h
|
arm_neon.h
|
||||||
compile_commands.json
|
compile_commands.json
|
||||||
|
|
||||||
|
|
|
@ -72,6 +72,58 @@ option(LLAMA_CLBLAST "llama: use CLBlast"
|
||||||
option(LLAMA_BUILD_TESTS "llama: build tests" ${LLAMA_STANDALONE})
|
option(LLAMA_BUILD_TESTS "llama: build tests" ${LLAMA_STANDALONE})
|
||||||
option(LLAMA_BUILD_EXAMPLES "llama: build examples" ${LLAMA_STANDALONE})
|
option(LLAMA_BUILD_EXAMPLES "llama: build examples" ${LLAMA_STANDALONE})
|
||||||
|
|
||||||
|
#
|
||||||
|
# Build info header
|
||||||
|
#
|
||||||
|
|
||||||
|
file(WRITE ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake "\
|
||||||
|
set(HEAD \"unknown\")
|
||||||
|
set(COUNT 0)
|
||||||
|
|
||||||
|
find_package(Git)
|
||||||
|
if(Git_FOUND)
|
||||||
|
execute_process(
|
||||||
|
COMMAND \${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
OUTPUT_VARIABLE TEMP_HEAD
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
RESULT_VARIABLE GIT_HEAD_RESULT
|
||||||
|
)
|
||||||
|
execute_process(
|
||||||
|
COMMAND \${GIT_EXECUTABLE} rev-list --count HEAD
|
||||||
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
OUTPUT_VARIABLE TEMP_COUNT
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
RESULT_VARIABLE GIT_COUNT_RESULT
|
||||||
|
)
|
||||||
|
if(GIT_HEAD_RESULT EQUAL 0 AND GIT_COUNT_RESULT EQUAL 0)
|
||||||
|
set(HEAD \${TEMP_HEAD})
|
||||||
|
set(COUNT \${TEMP_COUNT})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
file(WRITE \"${CMAKE_SOURCE_DIR}/build-info.h\" \"#pragma once\\n#define BUILD_NUMBER \${COUNT}\\n#define BUILD_BRANCH \\\"\${HEAD}\\\"\\n\")
|
||||||
|
")
|
||||||
|
|
||||||
|
# Call the script to generate build-info.h initially
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -P ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake
|
||||||
|
)
|
||||||
|
|
||||||
|
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
|
||||||
|
# Add a custom target to regenerate build-info.h when .git/index changes
|
||||||
|
add_custom_target(BUILD_INFO ALL DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h")
|
||||||
|
|
||||||
|
# Add a custom command to generate build-info.h when .git/index changes
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/build-info.h"
|
||||||
|
COMMENT "Updating build-info.h"
|
||||||
|
COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -P ${CMAKE_BINARY_DIR}/BUILD_INFO.cmake
|
||||||
|
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/.git/index"
|
||||||
|
VERBATIM
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Compile flags
|
# Compile flags
|
||||||
#
|
#
|
||||||
|
|
20
Makefile
20
Makefile
|
@ -16,6 +16,8 @@ endif
|
||||||
CCV := $(shell $(CC) --version | head -n 1)
|
CCV := $(shell $(CC) --version | head -n 1)
|
||||||
CXXV := $(shell $(CXX) --version | head -n 1)
|
CXXV := $(shell $(CXX) --version | head -n 1)
|
||||||
|
|
||||||
|
GIT_INDEX = $(wildcard .git/index)
|
||||||
|
|
||||||
# Mac OS + Arm can report x86_64
|
# Mac OS + Arm can report x86_64
|
||||||
# ref: https://github.com/ggerganov/whisper.cpp/issues/66#issuecomment-1282546789
|
# ref: https://github.com/ggerganov/whisper.cpp/issues/66#issuecomment-1282546789
|
||||||
ifeq ($(UNAME_S),Darwin)
|
ifeq ($(UNAME_S),Darwin)
|
||||||
|
@ -184,7 +186,23 @@ common.o: examples/common.cpp examples/common.h
|
||||||
clean:
|
clean:
|
||||||
rm -vf *.o main quantize quantize-stats perplexity embedding benchmark-matmult
|
rm -vf *.o main quantize quantize-stats perplexity embedding benchmark-matmult
|
||||||
|
|
||||||
main: examples/main/main.cpp ggml.o llama.o common.o $(OBJS)
|
build-info.h: $(GIT_INDEX)
|
||||||
|
@BUILD_NUMBER=`git rev-list HEAD --count 2>/dev/null`;\
|
||||||
|
BUILD_BRANCH=`git rev-parse --abbrev-ref HEAD 2>/dev/null`;\
|
||||||
|
if [ -z "$$BUILD_NUMBER" ] || [ -z "$$BUILD_BRANCH" ]; then\
|
||||||
|
BUILD_NUMBER="0";\
|
||||||
|
BUILD_BRANCH="unknown";\
|
||||||
|
fi;\
|
||||||
|
echo "#ifndef BUILD_INFO_H" > $@;\
|
||||||
|
echo "#define BUILD_INFO_H" >> $@;\
|
||||||
|
echo "" >> $@;\
|
||||||
|
echo "#define BUILD_NUMBER $$BUILD_NUMBER" >> $@;\
|
||||||
|
echo "#define BUILD_BRANCH \"$$BUILD_BRANCH\"" >> $@;\
|
||||||
|
echo "" >> $@;\
|
||||||
|
echo "#endif // BUILD_INFO_H" >> $@;
|
||||||
|
|
||||||
|
|
||||||
|
main: examples/main/main.cpp build-info.h ggml.o llama.o common.o $(OBJS)
|
||||||
$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)
|
$(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS)
|
||||||
@echo
|
@echo
|
||||||
@echo '==== Run ./main -h for help. ===='
|
@echo '==== Run ./main -h for help. ===='
|
||||||
|
|
|
@ -2,3 +2,4 @@ set(TARGET main)
|
||||||
add_executable(${TARGET} main.cpp)
|
add_executable(${TARGET} main.cpp)
|
||||||
target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${TARGET} PRIVATE common llama ${CMAKE_THREAD_LIBS_INIT})
|
||||||
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
target_compile_features(${TARGET} PRIVATE cxx_std_11)
|
||||||
|
add_dependencies(${TARGET} BUILD_INFO)
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "llama.h"
|
#include "llama.h"
|
||||||
|
#include "build-info.h"
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <cinttypes>
|
#include <cinttypes>
|
||||||
|
@ -81,11 +82,17 @@ int main(int argc, char ** argv) {
|
||||||
"expect poor results\n", __func__, params.n_ctx);
|
"expect poor results\n", __func__, params.n_ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(BUILD_BRANCH, "master") == 0) {
|
||||||
|
fprintf(stderr, "%s: build = %d\n", __func__, BUILD_NUMBER);
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "%s: build = %s-%d\n", __func__, BUILD_BRANCH, BUILD_NUMBER);
|
||||||
|
}
|
||||||
|
|
||||||
if (params.seed <= 0) {
|
if (params.seed <= 0) {
|
||||||
params.seed = time(NULL);
|
params.seed = time(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "%s: seed = %d\n", __func__, params.seed);
|
fprintf(stderr, "%s: seed = %d\n", __func__, params.seed);
|
||||||
|
|
||||||
std::mt19937 rng(params.seed);
|
std::mt19937 rng(params.seed);
|
||||||
if (params.random_prompt) {
|
if (params.random_prompt) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue