Skip to content

Commit f24531a

Browse files
authored
Refactor build-and-run workflow for GPULlama3
Updated paths and removed unnecessary steps in the build workflow.
1 parent 942f749 commit f24531a

1 file changed

Lines changed: 21 additions & 116 deletions

File tree

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

Lines changed: 21 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,18 @@ on:
55
branches: [ main ]
66
pull_request:
77
branches: [ main ]
8-
types: [opened, synchronize, reopened]
8+
types: [opened, synchronize, reopened]
9+
pull_request_review:
10+
types: [submitted, edited]
911

1012

1113
jobs:
1214
build-and-run:
1315
runs-on: self-hosted
14-
15-
outputs:
16-
tornado_sdk: ${{ steps.export_sdk.outputs.tornado_sdk }}
17-
16+
1817
env:
1918
JAVA_HOME: /opt/jenkins/jdks/graal-23.1.0/jdk-21.0.3
20-
TORNADO_ROOT: ${{ github.workspace }}/external/tornadovm
19+
TORNADO_ROOT: ${{ github.workspace }}/GPULlama3.java/external/tornadovm
2120
LLAMA_ROOT: ${{ github.workspace }}
2221

2322
steps:
@@ -29,58 +28,46 @@ jobs:
2928
- name: Check code formatting (Spotless)
3029
run: |
3130
cd ${{ github.workspace }}
32-
#./mvnw -T12C -Pspotless spotless:check
31+
# ./mvnw -T12C -Pspotless spotless:check
3332
34-
- name: Clean previous TornadoVM build
35-
run: |
36-
rm -rf external/tornadovm target
37-
3833
- name: Clone TornadoVM explicitly
3934
run: |
40-
git clone --depth 1 --branch develop \
35+
git clone --depth 1 --branch master \
4136
https://github.com/beehive-lab/TornadoVM.git \
42-
external/tornadovm
43-
37+
GPULlama3.java/external/tornadovm
4438
- name: Set up Python venv for TornadoVM
4539
run: |
46-
python3 -m venv external/tornadovm/venv
47-
source external/tornadovm/venv/bin/activate
40+
python3 -m venv GPULlama3.java/external/tornadovm/venv
41+
source GPULlama3.java/external/tornadovm/venv/bin/activate
4842
python --version
49-
5043
- name: Build TornadoVM
51-
id: export_sdk
5244
run: |
5345
set -x
54-
cd ${{ github.workspace }}/external/tornadovm
46+
cd GPULlama3.java/external/tornadovm
5547
source venv/bin/activate
5648
echo "=== Building TornadoVM ==="
5749
make
5850
echo "=== Searching for TornadoVM SDK directory ==="
59-
6051
SDK_DIR=$(find dist -type d -maxdepth 3 -path "*/tornadovm-*-opencl" | head -n 1)
6152
if [ -z "$SDK_DIR" ]; then
6253
echo "::error::Could not locate TornadoVM SDK directory!"
6354
find dist -maxdepth 5 -type d
6455
exit 1
6556
fi
66-
67-
# Use workspace-relative path to avoid duplication in next job
68-
FULL_SDK="${GITHUB_WORKSPACE}/external/tornadovm/${SDK_DIR}"
57+
FULL_SDK="${PWD}/${SDK_DIR}"
6958
echo "Detected TornadoVM SDK: $FULL_SDK"
70-
59+
60+
# Export for current shell session
7161
export TORNADO_SDK="$FULL_SDK"
7262
export PATH="$FULL_SDK/bin:$JAVA_HOME/bin:$PATH"
73-
63+
64+
# Save for subsequent steps
7465
echo "TORNADO_SDK=$FULL_SDK" >> $GITHUB_ENV
7566
echo "PATH=$PATH" >> $GITHUB_ENV
76-
77-
# Export relative SDK path for downstream jobs (relative to external/tornadovm)
78-
echo "tornado_sdk_relative=${SDK_DIR}" >> $GITHUB_OUTPUT
79-
67+
68+
echo "=== Checking tornado CLI ==="
8069
which tornado || { echo "::error::tornado not in PATH"; exit 1; }
8170
tornado --devices
82-
83-
8471
- name: Build GPULlama3
8572
run: |
8673
set -x
@@ -90,94 +77,12 @@ jobs:
9077
which tornado || { echo "::error::tornado unavailable during GPULlama3 build"; exit 1; }
9178
tornado --version
9279
make
93-
./llama-tornado --help
94-
95-
- name: Upload GPULlama3 JAR
96-
uses: actions/upload-artifact@v4
97-
with:
98-
name: gpullama3-jar
99-
path: target/*.jar
100-
retention-days: 1
101-
102-
- name: Upload TornadoVM SDK
103-
uses: actions/upload-artifact@v4
104-
with:
105-
name: tornadovm-sdk
106-
path: external/tornadovm/dist/
107-
retention-days: 1
108-
109-
test-models:
110-
runs-on: self-hosted
111-
needs: build-and-run
112-
113-
strategy:
114-
fail-fast: true
115-
matrix:
116-
model:
117-
- /opt/models/DeepSeek-R1-Distill-Qwen-1.5B-F16.gguf
118-
- /opt/models/DeepSeek-R1-Distill-Qwen-1.5B-Q8_0.gguf
119-
- /opt/models/Llama-3.2-1B-Instruct-F16.gguf
120-
- /opt/models/Llama-3.2-1B-Instruct-Q8_0.gguf
121-
- /opt/models/Llama-3.2-3B-Instruct-F16.gguf
122-
- /opt/models/Llama-3.2-3B-Instruct-Q8_0.gguf
123-
- /opt/models/Mistral-7B-Instruct-v0.3.fp16.gguf
124-
- /opt/models/Mistral-7B-Instruct-v0.3.Q8_0.gguf
125-
- /opt/models/Phi-3-mini-4k-instruct-fp16.gguf
126-
- /opt/models/Phi-3-mini-4k-instruct-Q8_0.gguf
127-
- /opt/models/Qwen2.5-0.5B-Instruct-f16.gguf
128-
- /opt/models/Qwen2.5-0.5B-Instruct-Q8_0.gguf
129-
- /opt/models/qwen2.5-1.5b-instruct-fp16.gguf
130-
- /opt/models/qwen2.5-1.5b-instruct-q8_0.gguf
131-
- /opt/models/Qwen3-0.6B-f16.gguf
132-
- /opt/models/Qwen3-0.6B-Q8_0.gguf
133-
- /opt/models/Qwen3-4B-f16.gguf
134-
- /opt/models/Qwen3-4B-Q8_0.gguf
135-
136-
env:
137-
JAVA_HOME: /opt/jenkins/jdks/graal-23.1.0/jdk-21.0.3
138-
LLAMA_ROOT: ${{ github.workspace }}
139-
140-
steps:
141-
- name: Checkout GPULlama3
142-
uses: actions/checkout@v4
143-
144-
- name: Download GPULlama3 JAR
145-
uses: actions/download-artifact@v4
146-
with:
147-
name: gpullama3-jar
148-
path: target/
149-
150-
- name: Download TornadoVM SDK
151-
uses: actions/download-artifact@v4
152-
with:
153-
name: tornadovm-sdk
154-
path: external/tornadovm/dist/
155-
156-
- name: Run inference for ${{ matrix.model }}
80+
- name: Run Test Inference
15781
run: |
15882
set -x
15983
cd ${{ github.workspace }}
160-
161-
# Find the TornadoVM SDK directory
162-
SDK_DIR=$(find external/tornadovm/dist -type d -path "*/tornadovm-*-opencl" | head -n 1)
163-
if [ -z "$SDK_DIR" ]; then
164-
echo "::error::Could not locate TornadoVM SDK directory!"
165-
find external/tornadovm/dist -maxdepth 5 -type d
166-
exit 1
167-
fi
168-
169-
TORNADO_SDK="${GITHUB_WORKSPACE}/${SDK_DIR}"
170-
echo "Using Tornado SDK: $TORNADO_SDK"
17184
export PATH="$TORNADO_SDK/bin:$JAVA_HOME/bin:$PATH"
172-
173-
# Verify tornado is in PATH
174-
if ! command -v tornado >/dev/null 2>&1; then
175-
echo "::error::tornado not found in PATH"
176-
exit 1
177-
fi
178-
179-
tornado --version
180-
85+
which tornado || { echo "::error::tornado not found at runtime"; exit 1; }
18186
./llama-tornado --gpu --opencl \
182-
--model "${{ matrix.model }}" \
87+
--model /home/michalis/models/Llama-3.2-1B-Instruct-F16.gguf \
18388
--prompt "Say hello"

0 commit comments

Comments
 (0)