Skip to content

Commit 3e8ff47

Browse files
authored
devops : added systemd units and set versioning to use date. (ggml-org#2835)
* Corrections and systemd units * Missing dependency clblast
1 parent 103cfaf commit 3e8ff47

File tree

3 files changed

+96
-19
lines changed

3 files changed

+96
-19
lines changed

.devops/lamma-cpp-clblast.srpm.spec renamed to .devops/llama-cpp-clblast.srpm.spec

+35-9
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@
1313
# It is up to the user to install the correct vendor-specific support.
1414

1515
Name: llama.cpp-clblast
16-
Version: master
16+
Version: %( date "+%%Y%%m%%d" )
1717
Release: 1%{?dist}
18-
Summary: OpenCL Inference of LLaMA model in pure C/C++
18+
Summary: OpenCL Inference of LLaMA model in C/C++
1919
License: MIT
2020
Source0: https://github.com/ggerganov/llama.cpp/archive/refs/heads/master.tar.gz
21-
BuildRequires: coreutils make gcc-c++ git mesa-libOpenCL-devel
21+
BuildRequires: coreutils make gcc-c++ git mesa-libOpenCL-devel clblast-devel
22+
Requires: clblast
2223
URL: https://github.com/ggerganov/llama.cpp
2324

2425
%define debug_package %{nil}
@@ -35,18 +36,43 @@ make -j LLAMA_CLBLAST=1
3536

3637
%install
3738
mkdir -p %{buildroot}%{_bindir}/
38-
cp -p main %{buildroot}%{_bindir}/llamacppclblast
39-
cp -p server %{buildroot}%{_bindir}/llamacppclblastserver
40-
cp -p simple %{buildroot}%{_bindir}/llamacppclblastsimple
39+
cp -p main %{buildroot}%{_bindir}/llamaclblast
40+
cp -p server %{buildroot}%{_bindir}/llamaclblastserver
41+
cp -p simple %{buildroot}%{_bindir}/llamaclblastsimple
42+
43+
mkdir -p %{buildroot}/usr/lib/systemd/system
44+
%{__cat} <<EOF > %{buildroot}/usr/lib/systemd/system/llamaclblast.service
45+
[Unit]
46+
Description=Llama.cpp server, CPU only (no GPU support in this build).
47+
After=syslog.target network.target local-fs.target remote-fs.target nss-lookup.target
48+
49+
[Service]
50+
Type=simple
51+
EnvironmentFile=/etc/sysconfig/llama
52+
ExecStart=/usr/bin/llamaclblastserver $LLAMA_ARGS
53+
ExecReload=/bin/kill -s HUP $MAINPID
54+
Restart=never
55+
56+
[Install]
57+
WantedBy=default.target
58+
EOF
59+
60+
mkdir -p %{buildroot}/etc/sysconfig
61+
%{__cat} <<EOF > %{buildroot}/etc/sysconfig/llama
62+
LLAMA_ARGS="-m /opt/llama2/ggml-model-f32.bin"
63+
EOF
4164

4265
%clean
4366
rm -rf %{buildroot}
4467
rm -rf %{_builddir}/*
4568

4669
%files
47-
%{_bindir}/llamacppclblast
48-
%{_bindir}/llamacppclblastserver
49-
%{_bindir}/llamacppclblastsimple
70+
%{_bindir}/llamaclblast
71+
%{_bindir}/llamaclblastserver
72+
%{_bindir}/llamaclblastsimple
73+
/usr/lib/systemd/system/llamaclblast.service
74+
%config /etc/sysconfig/llama
75+
5076

5177
%pre
5278

.devops/lamma-cpp-cublas.srpm.spec renamed to .devops/llama-cpp-cublas.srpm.spec

+25-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# It is up to the user to install the correct vendor-specific support.
1414

1515
Name: llama.cpp-cublas
16-
Version: master
16+
Version: %( date "+%%Y%%m%%d" )
1717
Release: 1%{?dist}
1818
Summary: CPU Inference of LLaMA model in pure C/C++ (no CUDA/OpenCL)
1919
License: MIT
@@ -40,6 +40,28 @@ cp -p main %{buildroot}%{_bindir}/llamacppcublas
4040
cp -p server %{buildroot}%{_bindir}/llamacppcublasserver
4141
cp -p simple %{buildroot}%{_bindir}/llamacppcublassimple
4242

43+
mkdir -p %{buildroot}/usr/lib/systemd/system
44+
%{__cat} <<EOF > %{buildroot}/usr/lib/systemd/system/llamacublas.service
45+
[Unit]
46+
Description=Llama.cpp server, CPU only (no GPU support in this build).
47+
After=syslog.target network.target local-fs.target remote-fs.target nss-lookup.target
48+
49+
[Service]
50+
Type=simple
51+
EnvironmentFile=/etc/sysconfig/llama
52+
ExecStart=/usr/bin/llamacppcublasserver $LLAMA_ARGS
53+
ExecReload=/bin/kill -s HUP $MAINPID
54+
Restart=never
55+
56+
[Install]
57+
WantedBy=default.target
58+
EOF
59+
60+
mkdir -p %{buildroot}/etc/sysconfig
61+
%{__cat} <<EOF > %{buildroot}/etc/sysconfig/llama
62+
LLAMA_ARGS="-m /opt/llama2/ggml-model-f32.bin"
63+
EOF
64+
4365
%clean
4466
rm -rf %{buildroot}
4567
rm -rf %{_builddir}/*
@@ -48,6 +70,8 @@ rm -rf %{_builddir}/*
4870
%{_bindir}/llamacppcublas
4971
%{_bindir}/llamacppcublasserver
5072
%{_bindir}/llamacppcublassimple
73+
/usr/lib/systemd/system/llamacublas.service
74+
%config /etc/sysconfig/llama
5175

5276
%pre
5377

.devops/llama-cpp.srpm.spec

+36-9
Original file line numberDiff line numberDiff line change
@@ -6,47 +6,74 @@
66
# Notes for llama.cpp:
77
# 1. Tags are currently based on hash - which will not sort asciibetically.
88
# We need to declare standard versioning if people want to sort latest releases.
9+
# In the meantime, YYYYMMDD format will be used.
910
# 2. Builds for CUDA/OpenCL support are separate, with different depenedencies.
1011
# 3. NVidia's developer repo must be enabled with nvcc, cublas, clblas, etc installed.
1112
# Example: https://developer.download.nvidia.com/compute/cuda/repos/fedora37/x86_64/cuda-fedora37.repo
1213
# 4. OpenCL/CLBLAST support simply requires the ICD loader and basic opencl libraries.
1314
# It is up to the user to install the correct vendor-specific support.
1415

1516
Name: llama.cpp
16-
Version: master
17+
Version: %( date "+%%Y%%m%%d" )
1718
Release: 1%{?dist}
1819
Summary: CPU Inference of LLaMA model in pure C/C++ (no CUDA/OpenCL)
1920
License: MIT
2021
Source0: https://github.com/ggerganov/llama.cpp/archive/refs/heads/master.tar.gz
21-
BuildRequires: coreutils make gcc-c++ git
22+
BuildRequires: coreutils make gcc-c++ git libstdc++-devel
23+
Requires: libstdc++
2224
URL: https://github.com/ggerganov/llama.cpp
2325

2426
%define debug_package %{nil}
2527
%define source_date_epoch_from_changelog 0
2628

2729
%description
2830
CPU inference for Meta's Lllama2 models using default options.
31+
Models are not included in this package and must be downloaded separately.
2932

3033
%prep
31-
%autosetup
34+
%setup -n llama.cpp-master
3235

3336
%build
3437
make -j
3538

3639
%install
3740
mkdir -p %{buildroot}%{_bindir}/
38-
cp -p main %{buildroot}%{_bindir}/llamacpp
39-
cp -p server %{buildroot}%{_bindir}/llamacppserver
40-
cp -p simple %{buildroot}%{_bindir}/llamacppsimple
41+
cp -p main %{buildroot}%{_bindir}/llama
42+
cp -p server %{buildroot}%{_bindir}/llamaserver
43+
cp -p simple %{buildroot}%{_bindir}/llamasimple
44+
45+
mkdir -p %{buildroot}/usr/lib/systemd/system
46+
%{__cat} <<EOF > %{buildroot}/usr/lib/systemd/system/llama.service
47+
[Unit]
48+
Description=Llama.cpp server, CPU only (no GPU support in this build).
49+
After=syslog.target network.target local-fs.target remote-fs.target nss-lookup.target
50+
51+
[Service]
52+
Type=simple
53+
EnvironmentFile=/etc/sysconfig/llama
54+
ExecStart=/usr/bin/llamaserver $LLAMA_ARGS
55+
ExecReload=/bin/kill -s HUP $MAINPID
56+
Restart=never
57+
58+
[Install]
59+
WantedBy=default.target
60+
EOF
61+
62+
mkdir -p %{buildroot}/etc/sysconfig
63+
%{__cat} <<EOF > %{buildroot}/etc/sysconfig/llama
64+
LLAMA_ARGS="-m /opt/llama2/ggml-model-f32.bin"
65+
EOF
4166

4267
%clean
4368
rm -rf %{buildroot}
4469
rm -rf %{_builddir}/*
4570

4671
%files
47-
%{_bindir}/llamacpp
48-
%{_bindir}/llamacppserver
49-
%{_bindir}/llamacppsimple
72+
%{_bindir}/llama
73+
%{_bindir}/llamaserver
74+
%{_bindir}/llamasimple
75+
/usr/lib/systemd/system/llama.service
76+
%config /etc/sysconfig/llama
5077

5178
%pre
5279

0 commit comments

Comments
 (0)