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