Skip to content

Commit 3376137

Browse files
authored
Merge branch 'ggerganov:master' into server-chat-templates-custom
2 parents 2f0a014 + 1bb30bf commit 3376137

File tree

11 files changed

+793
-472
lines changed

11 files changed

+793
-472
lines changed

.clang-format

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
---
2+
Language: Cpp
3+
AlignAfterOpenBracket: Align
4+
AlignArrayOfStructures: Left
5+
AlignConsecutiveAssignments: AcrossComments
6+
AlignConsecutiveBitFields: AcrossComments
7+
AlignConsecutiveDeclarations: AcrossComments
8+
AlignConsecutiveMacros: AcrossComments
9+
# AlignConsecutiveShortCaseStatements: AcrossComments
10+
AlignEscapedNewlines: Left # LeftWithLastLine
11+
AlignOperands: Align
12+
AlignTrailingComments:
13+
Kind: Always
14+
OverEmptyLines: 1
15+
AllowAllArgumentsOnNextLine: true
16+
AllowAllParametersOfDeclarationOnNextLine: false
17+
# AllowBreakBeforeNoexceptSpecifier: OnlyWithParen
18+
AllowShortBlocksOnASingleLine: Never
19+
AllowShortCaseLabelsOnASingleLine: false
20+
AllowShortFunctionsOnASingleLine: Inline
21+
AllowShortIfStatementsOnASingleLine: Never
22+
AllowShortLambdasOnASingleLine: Inline
23+
AllowShortLoopsOnASingleLine: false
24+
AlwaysBreakBeforeMultilineStrings: true
25+
BinPackArguments: true
26+
BinPackParameters: true # OnePerLine
27+
BitFieldColonSpacing: Both
28+
BreakBeforeBraces: Custom # Attach
29+
BraceWrapping:
30+
AfterCaseLabel: true
31+
AfterClass: false
32+
AfterControlStatement: false
33+
AfterEnum: false
34+
AfterFunction: false
35+
AfterNamespace: false
36+
AfterObjCDeclaration: false
37+
AfterStruct: false
38+
AfterUnion: false
39+
AfterExternBlock: false
40+
BeforeCatch: false
41+
BeforeElse: false
42+
BeforeLambdaBody: false
43+
BeforeWhile: false
44+
IndentBraces: false
45+
SplitEmptyFunction: false
46+
SplitEmptyRecord: false
47+
SplitEmptyNamespace: false
48+
# BreakAdjacentStringLiterals: true
49+
BreakAfterAttributes: Never
50+
BreakBeforeBinaryOperators: None
51+
BreakBeforeInlineASMColon: OnlyMultiline
52+
BreakBeforeTernaryOperators: false
53+
# BreakBinaryOperations: Never
54+
BreakConstructorInitializers: AfterColon
55+
# BreakFunctionDefinitionParameters: false
56+
BreakInheritanceList: AfterComma
57+
BreakStringLiterals: true
58+
# BreakTemplateDeclarations: Yes
59+
ColumnLimit: 120
60+
CommentPragmas: '^ IWYU pragma:'
61+
CompactNamespaces: false
62+
ConstructorInitializerIndentWidth: 4
63+
ContinuationIndentWidth: 4
64+
Cpp11BracedListStyle: false
65+
DerivePointerAlignment: false
66+
DisableFormat: false
67+
EmptyLineBeforeAccessModifier: Leave
68+
EmptyLineAfterAccessModifier: Never
69+
ExperimentalAutoDetectBinPacking: false
70+
FixNamespaceComments: true
71+
IncludeBlocks: Regroup
72+
IncludeCategories:
73+
- Regex: '^<.*\.h>'
74+
Priority: 1
75+
SortPriority: 0
76+
- Regex: '^<.*'
77+
Priority: 2
78+
SortPriority: 0
79+
- Regex: '.*'
80+
Priority: 3
81+
SortPriority: 0
82+
IncludeIsMainRegex: '([-_](test|unittest))?$'
83+
IncludeIsMainSourceRegex: ''
84+
IndentAccessModifiers: false
85+
IndentCaseBlocks: true
86+
IndentCaseLabels: true
87+
IndentExternBlock: NoIndent
88+
IndentGotoLabels: false
89+
IndentPPDirectives: AfterHash
90+
IndentWidth: 4
91+
IndentWrappedFunctionNames: false
92+
InsertBraces: true # NOTE: may lead to incorrect formatting
93+
InsertNewlineAtEOF: true
94+
JavaScriptQuotes: Leave
95+
JavaScriptWrapImports: true
96+
KeepEmptyLinesAtTheStartOfBlocks: false
97+
LambdaBodyIndentation: Signature
98+
LineEnding: LF
99+
MacroBlockBegin: ''
100+
MacroBlockEnd: ''
101+
MaxEmptyLinesToKeep: 1
102+
NamespaceIndentation: None
103+
ObjCBinPackProtocolList: Auto
104+
ObjCBlockIndentWidth: 4
105+
ObjCSpaceAfterProperty: true
106+
ObjCSpaceBeforeProtocolList: true
107+
PPIndentWidth: -1
108+
PackConstructorInitializers: CurrentLine
109+
PenaltyBreakAssignment: 2
110+
PenaltyBreakBeforeFirstCallParameter: 1
111+
PenaltyBreakComment: 300
112+
PenaltyBreakFirstLessLess: 120
113+
PenaltyBreakString: 1000
114+
PenaltyBreakTemplateDeclaration: 10
115+
PenaltyExcessCharacter: 1000000
116+
PenaltyReturnTypeOnItsOwnLine: 200
117+
PointerAlignment: Middle
118+
QualifierAlignment: Left
119+
#QualifierOrder: ['static', 'inline', 'friend', 'constexpr', 'const', 'volatile', 'type', 'restrict']
120+
RawStringFormats:
121+
- Language: Cpp
122+
Delimiters:
123+
- cc
124+
- CC
125+
- cpp
126+
- Cpp
127+
- CPP
128+
- 'c++'
129+
- 'C++'
130+
CanonicalDelimiter: ''
131+
ReferenceAlignment: Middle
132+
ReflowComments: false # IndentOnly
133+
SeparateDefinitionBlocks: Always
134+
SortIncludes: CaseInsensitive
135+
SortUsingDeclarations: LexicographicNumeric
136+
SpaceAfterCStyleCast: true
137+
SpaceAfterLogicalNot: false
138+
SpaceAfterTemplateKeyword: true
139+
SpaceBeforeAssignmentOperators: true
140+
SpaceBeforeCpp11BracedList: false
141+
SpaceBeforeCtorInitializerColon: true
142+
SpaceBeforeInheritanceColon: true
143+
SpaceBeforeParens: ControlStatements
144+
SpaceBeforeRangeBasedForLoopColon: true
145+
SpaceInEmptyBlock: false
146+
SpaceInEmptyParentheses: false
147+
SpacesBeforeTrailingComments: 2
148+
SpacesInAngles: Never
149+
SpacesInContainerLiterals: true
150+
SpacesInLineCommentPrefix:
151+
Minimum: 1
152+
Maximum: -1
153+
SpacesInParentheses: false
154+
SpacesInSquareBrackets: false
155+
SpaceBeforeSquareBrackets: false
156+
Standard: c++17
157+
TabWidth: 4
158+
UseTab: Never
159+
WhitespaceSensitiveMacros: ['STRINGIZE']
160+
...
161+

cmake/llama-config.cmake.in

Lines changed: 104 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,60 @@ set(LLAMA_BUILD_COMMIT @LLAMA_BUILD_COMMIT@)
33
set(LLAMA_BUILD_NUMBER @LLAMA_BUILD_NUMBER@)
44
set(LLAMA_SHARED_LIB @BUILD_SHARED_LIBS@)
55

6+
set(GGML_STATIC @GGML_STATIC@)
7+
set(GGML_NATIVE @GGML_NATIVE@)
8+
set(GGML_LTO @GGML_LTO@)
9+
set(GGML_CCACHE @GGML_CCACHE@)
10+
set(GGML_AVX @GGML_AVX@)
11+
set(GGML_AVX2 @GGML_AVX2@)
12+
set(GGML_AVX512 @GGML_AVX512@)
13+
set(GGML_AVX512_VBMI @GGML_AVX512_VBMI@)
14+
set(GGML_AVX512_VNNI @GGML_AVX512_VNNI@)
15+
set(GGML_AVX512_BF16 @GGML_AVX512_BF16@)
16+
set(GGML_AMX_TILE @GGML_AMX_TILE@)
17+
set(GGML_AMX_INT8 @GGML_AMX_INT8@)
18+
set(GGML_AMX_BF16 @GGML_AMX_BF16@)
19+
set(GGML_FMA @GGML_FMA@)
20+
set(GGML_LASX @GGML_LASX@)
21+
set(GGML_LSX @GGML_LSX@)
22+
set(GGML_RVV @GGML_RVV@)
23+
set(GGML_SVE @GGML_SVE@)
24+
625
set(GGML_ACCELERATE @GGML_ACCELERATE@)
26+
set(GGML_OPENMP @GGML_OPENMP@)
27+
set(GGML_CPU_HBM @GGML_CPU_HBM@)
28+
set(GGML_BLAS_VENDOR @GGML_BLAS_VENDOR@)
29+
30+
set(GGML_CUDA_FORCE_MMQ @GGML_CUDA_FORCE_MMQ@)
31+
set(GGML_CUDA_FORCE_CUBLAS @GGML_CUDA_FORCE_CUBLAS@)
32+
set(GGML_CUDA_F16 @GGML_CUDA_F16@)
33+
set(GGML_CUDA_PEER_MAX_BATCH_SIZE @GGML_CUDA_PEER_MAX_BATCH_SIZE@)
34+
set(GGML_CUDA_NO_PEER_COPY @GGML_CUDA_NO_PEER_COPY@)
35+
set(GGML_CUDA_NO_VMM @GGML_CUDA_NO_VMM@)
36+
set(GGML_CUDA_FA_ALL_QUANTS @GGML_CUDA_FA_ALL_QUANTS@)
37+
set(GGML_CUDA_GRAPHS @GGML_CUDA_GRAPHS@)
38+
39+
set(GGML_HIP_UMA @GGML_HIP_UMA@)
40+
741
set(GGML_VULKAN_CHECK_RESULTS @GGML_VULKAN_CHECK_RESULTS@)
8-
set(GGML_VULKAN_DEBUG @GGML_VULKAN_DEBUG@)
9-
set(GGML_VULKAN_MEMORY_DEBUG @GGML_VULKAN_MEMORY_DEBUG@)
10-
set(GGML_VULKAN_VALIDATE @GGML_VULKAN_VALIDATE@)
11-
set(GGML_OPENMP @GGML_OPENMP@)
42+
set(GGML_VULKAN_DEBUG @GGML_VULKAN_DEBUG@)
43+
set(GGML_VULKAN_MEMORY_DEBUG @GGML_VULKAN_MEMORY_DEBUG@)
44+
set(GGML_VULKAN_SHADER_DEBUG_INFO @GGML_VULKAN_SHADER_DEBUG_INFO@)
45+
set(GGML_VULKAN_PERF @GGML_VULKAN_PERF@)
46+
set(GGML_VULKAN_VALIDATE @GGML_VULKAN_VALIDATE@)
47+
set(GGML_VULKAN_RUN_TESTS @GGML_VULKAN_RUN_TESTS@)
48+
49+
set(GGML_METAL_USE_BF16 @GGML_METAL_USE_BF16@)
50+
set(GGML_METAL_NDEBUG @GGML_METAL_NDEBUG@)
51+
set(GGML_METAL_SHADER_DEBUG @GGML_METAL_SHADER_DEBUG@)
52+
set(GGML_METAL_EMBED_LIBRARY @GGML_METAL_EMBED_LIBRARY@)
53+
set(GGML_METAL_MACOSX_VERSION_MIN @GGML_METAL_MACOSX_VERSION_MIN@)
54+
set(GGML_METAL_STD @GGML_METAL_STD@)
55+
56+
set(GGML_SYCL_F16 @GGML_SYCL_F16@)
57+
set(GGML_SYCL_TARGET @GGML_SYCL_TARGET@)
58+
set(GGML_SYCL_DEVICE_ARCH @GGML_SYCL_DEVICE_ARCH@)
59+
1260

1361
@PACKAGE_INIT@
1462

@@ -20,6 +68,7 @@ find_package(Threads REQUIRED)
2068

2169
set(_llama_transient_defines "@GGML_TRANSIENT_DEFINES@")
2270
set(_llama_link_deps "")
71+
set(_llama_link_opts "")
2372
foreach(_ggml_lib ggml ggml-base)
2473
string(REPLACE "-" "_" _ggml_lib_var "${_ggml_lib}_LIBRARY")
2574
find_library(${_ggml_lib_var} ${_ggml_lib}
@@ -49,41 +98,63 @@ foreach(backend amx blas cann cpu cuda hip kompute metal musa rpc sycl vulkan)
4998
endif()
5099
endforeach()
51100

52-
if (APPLE AND GGML_ACCELERATE)
53-
find_library(ACCELERATE_FRAMEWORK Accelerate REQUIRED)
54-
endif()
101+
if (NOT LLAMA_SHARED_LIB)
102+
if (APPLE AND GGML_ACCELERATE)
103+
find_library(ACCELERATE_FRAMEWORK Accelerate REQUIRED)
104+
list(APPEND _llama_link_deps ${ACCELERATE_FRAMEWORK})
105+
endif()
55106

56-
if (GGML_BLAS)
57-
find_package(BLAS REQUIRED)
58-
endif()
107+
if (GGML_OPENMP)
108+
find_package(OpenMP REQUIRED)
109+
list(APPEND _llama_link_deps OpenMP::OpenMP_C OpenMP::OpenMP_CXX)
110+
endif()
59111

60-
if (GGML_CUDA)
61-
find_package(CUDAToolkit REQUIRED)
62-
endif()
112+
if (GGML_CPU_HBM)
113+
find_library(memkind memkind REQUIRED)
114+
list(APPEND _llama_link_deps memkind)
115+
endif()
63116

64-
if (GGML_METAL)
65-
find_library(FOUNDATION_LIBRARY Foundation REQUIRED)
66-
find_library(METAL_FRAMEWORK Metal REQUIRED)
67-
find_library(METALKIT_FRAMEWORK MetalKit REQUIRED)
68-
endif()
117+
if (GGML_BLAS)
118+
find_package(BLAS REQUIRED)
119+
list(APPEND _llama_link_deps ${BLAS_LIBRARIES})
120+
list(APPEND _llama_link_opts ${BLAS_LINKER_FLAGS})
121+
endif()
69122

70-
if (GGML_VULKAN)
71-
find_package(Vulkan REQUIRED)
72-
endif()
123+
if (GGML_CUDA)
124+
find_package(CUDAToolkit REQUIRED)
125+
endif()
73126

74-
if (GGML_HIP)
75-
find_package(hip REQUIRED)
76-
find_package(hipblas REQUIRED)
77-
find_package(rocblas REQUIRED)
78-
endif()
127+
if (GGML_METAL)
128+
find_library(FOUNDATION_LIBRARY Foundation REQUIRED)
129+
find_library(METAL_FRAMEWORK Metal REQUIRED)
130+
find_library(METALKIT_FRAMEWORK MetalKit REQUIRED)
131+
list(APPEND _llama_link_deps ${FOUNDATION_LIBRARY}
132+
${METAL_FRAMEWORK} ${METALKIT_FRAMEWORK})
133+
endif()
79134

80-
if (GGML_SYCL)
81-
find_package(IntelSYCL REQUIRED)
82-
find_package(MKL REQUIRED)
83-
endif()
135+
if (GGML_VULKAN)
136+
find_package(Vulkan REQUIRED)
137+
list(APPEND _llama_link_deps Vulkan::Vulkan)
138+
endif()
84139

85-
if (GGML_OPENMP)
86-
find_package(OpenMP REQUIRED)
140+
if (GGML_HIP)
141+
find_package(hip REQUIRED)
142+
find_package(hipblas REQUIRED)
143+
find_package(rocblas REQUIRED)
144+
list(APPEND _llama_link_deps hip::host roc::rocblas roc::hipblas)
145+
endif()
146+
147+
if (GGML_SYCL)
148+
find_package(DNNL)
149+
if (${DNNL_FOUND} AND GGML_SYCL_TARGET STREQUAL "INTEL")
150+
list(APPEND _llama_link_deps DNNL::dnnl)
151+
endif()
152+
if (WIN32)
153+
find_package(IntelSYCL REQUIRED)
154+
find_package(MKL REQUIRED)
155+
list(APPEND _llama_link_deps IntelSYCL::SYCL_CXX MKL::MKL MKL::MKL_SYCL)
156+
endif()
157+
endif()
87158
endif()
88159

89160
find_library(llama_LIBRARY llama
@@ -97,6 +168,7 @@ set_target_properties(llama
97168
PROPERTIES
98169
INTERFACE_INCLUDE_DIRECTORIES "${LLAMA_INCLUDE_DIR}"
99170
INTERFACE_LINK_LIBRARIES "${_llama_link_deps}"
171+
INTERFACE_LINK_OPTIONS "${_llama_link_opts}"
100172
INTERFACE_COMPILE_DEFINITIONS "${_llama_transient_defines}"
101173
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
102174
IMPORTED_LOCATION "${llama_LIBRARY}"

0 commit comments

Comments
 (0)