Skip to content

Commit c73a2e8

Browse files
Rebase on latest ci changes
1 parent d74991f commit c73a2e8

File tree

1 file changed

+58
-49
lines changed

1 file changed

+58
-49
lines changed

.github/workflows/build-and-run.yml

Lines changed: 58 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -5,46 +5,66 @@ on:
55
branches: [ main ]
66
pull_request:
77
branches: [ main ]
8-
types: [opened, synchronize, reopened]
8+
types: [opened, synchronize, reopened]
9+
10+
env:
11+
JAVA_HOME: /opt/jenkins/jdks/graal-23.1.0/jdk-21.0.3
12+
TORNADO_ROOT: ${{ github.workspace }}/GPULlama3.java/external/tornadovm
13+
LLAMA_ROOT: ${{ github.workspace }}
14+
GRAAL_JARS: /opt/graalJars
15+
MODELS_DIR: /opt/models
916

1017
jobs:
11-
build-and-run:
18+
code-quality:
1219
runs-on: self-hosted
13-
14-
env:
15-
JAVA_HOME: /opt/jenkins/jdks/graal-23.1.0/jdk-21.0.3
16-
TORNADO_ROOT: ${{ github.workspace }}/GPULlama3.java/external/tornadovm
17-
LLAMA_ROOT: ${{ github.workspace }}
18-
20+
timeout-minutes: 30
21+
1922
steps:
2023
- name: Checkout GPULlama3
2124
uses: actions/checkout@v4
22-
with:
23-
fetch-depth: 0
2425

2526
- name: Check code formatting (Spotless)
2627
run: |
2728
cd ${{ github.workspace }}
2829
# ./mvnw -T12C -Pspotless spotless:check
29-
30-
- name: Clone Latest TornadoVM
30+
31+
build-and-run:
32+
runs-on: [self-hosted]
33+
needs: code-quality
34+
timeout-minutes: 30
35+
36+
strategy:
37+
fail-fast: true
38+
matrix:
39+
backend:
40+
- name: opencl
41+
- name: ptx
42+
43+
steps:
44+
- name: Checkout GPULlama3
45+
uses: actions/checkout@v4
46+
47+
- name: Clone TornadoVM master
3148
run: |
3249
git clone --depth 1 --branch master \
3350
https://github.com/beehive-lab/TornadoVM.git \
34-
GPULlama3.java/external/tornadovm
51+
$TORNADO_ROOT
3552
- name: Set up Python venv for TornadoVM
3653
run: |
37-
python3 -m venv GPULlama3.java/external/tornadovm/venv
38-
source GPULlama3.java/external/tornadovm/venv/bin/activate
54+
python3 -m venv $TORNADO_ROOT/venv
55+
source $TORNADO_ROOT/venv/bin/activate
3956
python --version
4057
- name: Build TornadoVM
4158
run: |
42-
cd GPULlama3.java/external/tornadovm
59+
cd $TORNADO_ROOT
60+
mkdir -p graalJars && cp $GRAAL_JARS/* graalJars/
4361
source venv/bin/activate
4462
echo "=== Building TornadoVM ==="
45-
make
63+
64+
make BACKEND=${{ matrix.backend.name }}
65+
4666
echo "=== Searching for TornadoVM SDK directory ==="
47-
SDK_DIR=$(find dist -type d -maxdepth 3 -path "*/tornadovm-*-opencl" | head -n 1)
67+
SDK_DIR=$(find dist -type d -maxdepth 3 -path "*/tornadovm-*-${{ matrix.backend.name }}" | head -n 1)
4868
if [ -z "$SDK_DIR" ]; then
4969
echo "::error::Could not locate TornadoVM SDK directory!"
5070
find dist -maxdepth 5 -type d
@@ -69,86 +89,75 @@ jobs:
6989
cd ${{ github.workspace }}
7090
echo "Using TORNADO_SDK=$TORNADO_SDK"
7191
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
72-
which tornado || { echo "::error::tornado unavailable during GPULlama3 build"; exit 1; }
7392
tornado --version
7493
./mvnw clean package -DskipTests
7594
- name: FP16 - Run Llama-3.2-1B-Instruct-F16.gguf
7695
run: |
7796
cd ${{ github.workspace }}
7897
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
79-
which tornado || { echo "::error::tornado not found at runtime"; exit 1; }
80-
./llama-tornado --gpu --opencl \
81-
--model /home/michalis/models/Llama-3.2-1B-Instruct-F16.gguf \
98+
./llama-tornado --gpu --${{ matrix.backend.name }} \
99+
--model $MODELS_DIR/Llama-3.2-1B-Instruct-F16.gguf \
82100
--prompt "Say hello"
83101
- name: FP16 - Run Qwen3-4B-f16.gguf
84102
run: |
85103
cd ${{ github.workspace }}
86104
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
87-
which tornado || { echo "::error::tornado not found at runtime"; exit 1; }
88-
./llama-tornado --gpu --opencl \
89-
--model /opt/models/Qwen3-4B-f16.gguf \
105+
./llama-tornado --gpu --${{ matrix.backend.name }} \
106+
--model $MODELS_DIR/Qwen3-4B-f16.gguf \
90107
--prompt "Say hello"
91108
- name: FP16 - Run Mistral-7B-Instruct-v0.3.fp16.gguf
92109
run: |
93110
cd ${{ github.workspace }}
94111
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
95-
which tornado || { echo "::error::tornado not found at runtime"; exit 1; }
96-
./llama-tornado --gpu --opencl \
97-
--model /opt/models/Mistral-7B-Instruct-v0.3.fp16.gguf \
112+
./llama-tornado --gpu --${{ matrix.backend.name }} \
113+
--model $MODELS_DIR/Mistral-7B-Instruct-v0.3.fp16.gguf \
98114
--prompt "Say hello"
99115
- name: FP16 - Run Qwen2.5-1.5b-instruct-fp16.gguf
100116
run: |
101117
cd ${{ github.workspace }}
102118
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
103-
which tornado || { echo "::error::tornado not found at runtime"; exit 1; }
104-
./llama-tornado --gpu --opencl \
105-
--model /opt/models/qwen2.5-1.5b-instruct-fp16.gguf \
119+
./llama-tornado --gpu --${{ matrix.backend.name }} \
120+
--model $MODELS_DIR/qwen2.5-1.5b-instruct-fp16.gguf \
106121
--prompt "Say hello"
107122
- name: FP16 - Run Phi-3-mini-4k-instruct-fp16.gguf
108123
run: |
109124
cd ${{ github.workspace }}
110125
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
111-
which tornado || { echo "::error::tornado not found at runtime"; exit 1; }
112-
./llama-tornado --gpu --opencl \
113-
--model /opt/models/Phi-3-mini-4k-instruct-fp16.gguf \
126+
./llama-tornado --gpu --${{ matrix.backend.name }} \
127+
--model /$MODELS_DIR/Phi-3-mini-4k-instruct-fp16.gguf \
114128
--prompt "Say hello"
115129
- name: Q8 - Run Llama-3.2-1B-Instruct-Q8_0.gguf
116130
run: |
117131
cd ${{ github.workspace }}
118132
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
119-
which tornado || { echo "::error::tornado not found at runtime"; exit 1; }
120-
./llama-tornado --gpu --opencl \
121-
--model /opt/models/Llama-3.2-1B-Instruct-Q8_0.gguf \
133+
./llama-tornado --gpu --${{ matrix.backend.name }} \
134+
--model $MODELS_DIR/Llama-3.2-1B-Instruct-Q8_0.gguf \
122135
--prompt "Say hello"
123136
- name: Q8 - Run Qwen3-0.6B-Q8_0.gguf
124137
run: |
125138
cd ${{ github.workspace }}
126139
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
127-
which tornado || { echo "::error::tornado not found at runtime"; exit 1; }
128-
./llama-tornado --gpu --opencl \
129-
--model /opt/models/Qwen3-0.6B-Q8_0.gguf \
140+
./llama-tornado --gpu --${{ matrix.backend.name }} \
141+
--model $MODELS_DIR/Qwen3-0.6B-Q8_0.gguf \
130142
--prompt "Say hello"
131143
- name: Q8 - Run Phi-3-mini-4k-instruct-Q8_0.gguf
132144
run: |
133145
cd ${{ github.workspace }}
134146
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
135-
which tornado || { echo "::error::tornado not found at runtime"; exit 1; }
136-
./llama-tornado --gpu --opencl \
137-
--model /opt/models/Phi-3-mini-4k-instruct-Q8_0.gguf \
147+
./llama-tornado --gpu --${{ matrix.backend.name }} \
148+
--model $MODELS_DIR/Phi-3-mini-4k-instruct-Q8_0.gguf \
138149
--prompt "Say hello"
139150
- name: Q8 - Run Qwen2.5-1.5b-instruct-q8_0.gguf
140151
run: |
141152
cd ${{ github.workspace }}
142153
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
143-
which tornado || { echo "::error::tornado not found at runtime"; exit 1; }
144-
./llama-tornado --gpu --opencl \
145-
--model /opt/models/qwen2.5-1.5b-instruct-q8_0.gguf \
154+
./llama-tornado --gpu --${{ matrix.backend.name }} \
155+
--model $MODELS_DIR/qwen2.5-1.5b-instruct-q8_0.gguf \
146156
--prompt "Say hello"
147157
- name: Q8 - Mistral-7B-Instruct-v0.3.Q8_0.gguf
148158
run: |
149159
cd ${{ github.workspace }}
150160
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
151-
which tornado || { echo "::error::tornado not found at runtime"; exit 1; }
152-
./llama-tornado --gpu --opencl \
153-
--model /opt/models/Mistral-7B-Instruct-v0.3.Q8_0.gguf \
161+
./llama-tornado --gpu --${{ matrix.backend.name }} \
162+
--model $MODELS_DIR/Mistral-7B-Instruct-v0.3.Q8_0.gguf \
154163
--prompt "Say hello"

0 commit comments

Comments
 (0)