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
1113jobs :
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