Skip to content

Commit f3eb935

Browse files
authored
Merge pull request #14 from arthw/en_ssl_in_build
test enable ssl in build
2 parents 8c1383e + 861a844 commit f3eb935

5 files changed

Lines changed: 89 additions & 25 deletions

File tree

‎.devops/intel.Dockerfile‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ RUN if [ "${GGML_SYCL_F16}" = "ON" ]; then \
4949
&& export SYCL_PROGRAM_COMPILE_OPTIONS="-cl-fp32-correctly-rounded-divide-sqrt"; \
5050
fi && \
5151
echo "Building with dynamic libs" && \
52-
cmake -B build -DGGML_NATIVE=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DLLAMA_BUILD_TESTS=OFF ${OPT_SYCL_F16} && \
52+
cmake -B build -DGGML_NATIVE=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DLLAMA_BUILD_TESTS=OFF -DLLAMA_OPENSSL=ON ${OPT_SYCL_F16} && \
5353
cmake --build build --config Release -j$(nproc)
5454

5555
RUN mkdir -p /app/lib && \
@@ -107,7 +107,7 @@ RUN mkdir /tmp/neo/ && cd /tmp/neo/ \
107107
&& dpkg --install *.deb
108108

109109
RUN apt-get update \
110-
&& apt-get install -y libgomp1 curl ffmpeg \
110+
&& apt-get install -y libgomp1 curl ffmpeg openssl libssl-dev \
111111
&& apt autoremove -y \
112112
&& apt clean -y \
113113
&& rm -rf /tmp/* /var/tmp/* \

‎.github/workflows/build-sycl.yml‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,12 @@ jobs:
8686
wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/libze-dev_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O libze-dev.deb
8787
sudo apt-get install -y ./libze1.deb ./libze-dev.deb
8888
89+
- name: Dependencies
90+
id: depends
91+
run: |
92+
sudo apt-get update
93+
sudo apt-get install -y libssl-dev
94+
8995
- name: ccache
9096
uses: ggml-org/ccache-action@v1.2.24
9197
with:
@@ -111,7 +117,7 @@ jobs:
111117
-DGGML_SYCL=ON \
112118
-DCMAKE_C_COMPILER=icx \
113119
-DCMAKE_CXX_COMPILER=icpx \
114-
-DLLAMA_OPENSSL=OFF \
120+
-DLLAMA_OPENSSL=ON \
115121
-DGGML_NATIVE=OFF \
116122
-DGGML_SYCL_F16=${{ matrix.fp16 }} \
117123
-DGGML_SYCL_SUPPORT_LEVEL_ZERO_API=ON \

‎.github/workflows/release.yml‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1453,6 +1453,12 @@ jobs:
14531453
name: llama-ui.zip
14541454
path: tools/ui/dist
14551455

1456+
- name: Dependencies
1457+
id: depends
1458+
run: |
1459+
sudo apt-get update
1460+
sudo apt-get install -y libssl-dev
1461+
14561462
- name: ccache
14571463
uses: ggml-org/ccache-action@v1.2.24
14581464
with:
@@ -1471,7 +1477,7 @@ jobs:
14711477
-DCMAKE_CXX_COMPILER=icpx \
14721478
-DCMAKE_INSTALL_RPATH='$ORIGIN' \
14731479
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
1474-
-DLLAMA_OPENSSL=OFF \
1480+
-DLLAMA_OPENSSL=ON \
14751481
-DGGML_NATIVE=OFF \
14761482
-DGGML_SYCL_F16=${{ matrix.fp16 }}
14771483
time cmake --build build --config Release -j $(nproc)

‎examples/sycl/build.sh‎

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,18 @@
44
# SPDX-License-Identifier: MIT
55

66
print_usage() {
7-
echo "Usage: ./build.sh [fp32|fp16] [--help]"
7+
echo "Usage: ./build.sh [fp32|fp16] [ssl|nossl] [--help]"
88
echo ""
99
echo "Options:"
1010
echo " fp32 Build with FP32 precision (default)"
1111
echo " fp16 Build with FP16 precision (faster for long-prompt inference)"
12+
echo " ssl Build with OpenSSL (default)"
13+
echo " nossl Build without OpenSSL"
1214
echo " --help Print this help message"
1315
}
1416

1517
PRECISION=fp32
18+
SSL=ON
1619

1720
for arg in "$@"; do
1821
case "$arg" in
@@ -23,6 +26,12 @@ for arg in "$@"; do
2326
fp32|fp16)
2427
PRECISION="$arg"
2528
;;
29+
ssl)
30+
SSL=ON
31+
;;
32+
nossl)
33+
SSL=OFF
34+
;;
2635
*)
2736
echo "Error: unknown option '$arg'"
2837
print_usage
@@ -37,10 +46,13 @@ source /opt/intel/oneapi/setvars.sh
3746

3847
if [ "$PRECISION" = "fp16" ]; then
3948
#for FP16
40-
cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_SYCL_F16=ON -DLLAMA_OPENSSL=OFF # faster for long-prompt inference
49+
echo "cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_SYCL_F16=ON -DLLAMA_OPENSSL=$SSL # faster for long-prompt inference
50+
"
51+
cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_SYCL_F16=ON -DLLAMA_OPENSSL="$SSL" # faster for long-prompt inference
4152
else
4253
#for FP32
43-
cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DLLAMA_OPENSSL=OFF
54+
echo "cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DLLAMA_OPENSSL=$SSL"
55+
cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DLLAMA_OPENSSL="$SSL"
4456
fi
4557

4658
#build example/main
@@ -50,4 +62,5 @@ fi
5062
#cmake --build . --config Release --target llama-bench
5163

5264
#build all binary
65+
echo "cmake --build . --config Release -j$((($(nproc)+1)/2)) -v"
5366
cmake --build . --config Release -j$((($(nproc)+1)/2)) -v

‎examples/sycl/win-build-sycl.bat‎

Lines changed: 57 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,62 @@
33
:: Copyright (C) 2024 Intel Corporation
44
:: SPDX-License-Identifier: MIT
55

6-
IF /I "%1"=="--help" (
7-
echo Usage: win-build-sycl.bat [fp32^|fp16] [--help]
8-
echo.
9-
echo Options:
10-
echo fp32 Build with FP32 precision ^(default^)
11-
echo fp16 Build with FP16 precision ^(faster for long-prompt inference^)
12-
echo --help Print this help message
13-
exit /B 0
14-
)
6+
SET "PRECISION=fp32"
7+
SET "SSL=ON"
8+
SET "OPENSSL_OPTION="
159

16-
SET PRECISION=%1
17-
IF "%PRECISION%"=="" SET PRECISION=fp32
18-
IF /I NOT "%PRECISION%"=="fp32" IF /I NOT "%PRECISION%"=="fp16" (
19-
echo Error: invalid value '%PRECISION%'. Use 'fp32' or 'fp16'.
20-
echo Usage: win-build-sycl.bat [fp32^|fp16] [--help]
21-
exit /B 1
22-
)
10+
:PARSE_ARGS
11+
IF "%~1"=="" GOTO ARGS_DONE
12+
IF /I "%~1"=="--help" GOTO HELP
13+
IF /I "%~1"=="fp32" GOTO ARG_FP32
14+
IF /I "%~1"=="fp16" GOTO ARG_FP16
15+
IF /I "%~1"=="ssl" GOTO ARG_SSL
16+
IF /I "%~1"=="nossl" GOTO ARG_NOSSL
17+
GOTO INVALID_ARG
18+
19+
:ARG_FP32
20+
SET "PRECISION=fp32"
21+
GOTO NEXT_ARG
22+
23+
:ARG_FP16
24+
SET "PRECISION=fp16"
25+
GOTO NEXT_ARG
26+
27+
:ARG_SSL
28+
SET "SSL=ON"
29+
SET "OPENSSL_OPTION="
30+
GOTO NEXT_ARG
31+
32+
:ARG_NOSSL
33+
SET "SSL=OFF"
34+
SET "OPENSSL_OPTION=-DLLAMA_OPENSSL=OFF"
35+
GOTO NEXT_ARG
36+
37+
:NEXT_ARG
38+
SHIFT
39+
GOTO PARSE_ARGS
40+
41+
:HELP
42+
SET "ARG_ERROR=0"
43+
GOTO PRINT_USAGE
44+
45+
:INVALID_ARG
46+
SET "ARG_ERROR=1"
47+
echo Error: unknown option '%~1'
48+
49+
:PRINT_USAGE
50+
echo Usage: win-build-sycl.bat [fp32^|fp16] [ssl^|nossl] [--help]
51+
echo.
52+
echo Options:
53+
echo fp32 Build with FP32 precision ^(default^)
54+
echo fp16 Build with FP16 precision ^(faster for long-prompt inference^)
55+
echo ssl Build with BoringSSL ^(default^)
56+
echo nossl Build without BoringSSL
57+
echo --help Print this help message
58+
IF "%ARG_ERROR%"=="1" exit /B 1
59+
exit /B 0
60+
61+
:ARGS_DONE
2362

2463
IF not exist build (mkdir build)
2564
cd build
@@ -31,10 +70,10 @@ if %errorlevel% neq 0 goto ERROR
3170
IF /I "%PRECISION%"=="fp16" (
3271
:: for FP16
3372
:: faster for long-prompt inference
34-
cmake -G "MinGW Makefiles" .. -DLLAMA_OPENSSL=OFF -DGGML_SYCL=ON -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DGGML_SYCL_F16=ON
73+
cmake -G "MinGW Makefiles" .. -DLLAMA_BUILD_BORINGSSL=%SSL% %OPENSSL_OPTION% -DGGML_SYCL=ON -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DGGML_SYCL_F16=ON
3574
) ELSE (
3675
:: for FP32
37-
cmake -G "Ninja" .. -DLLAMA_OPENSSL=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
76+
cmake -G "Ninja" .. -DLLAMA_BUILD_BORINGSSL=%SSL% %OPENSSL_OPTION% -DGGML_SYCL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
3877
)
3978
if %errorlevel% neq 0 goto ERROR
4079

0 commit comments

Comments
 (0)