Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions all.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/bin/bash

models=(
"../models/beehive-llama-3.2-1b-instruct-fp16.gguf"
"../models/Phi-3-mini-4k-instruct-fp16.gguf"
"../models/Qwen3-1.7B-f16.gguf"
"../models/Mistral-7B-Instruct-v0.3.fp16.gguf"
"../models/Qwen3-8B-f16.gguf"
)

for model in "${models[@]}"; do
name=$(basename "$model" .gguf)
# file size (human readable, GB/MB)
if command -v numfmt &> /dev/null; then
size=$(stat -c%s "$model" 2>/dev/null | numfmt --to=iec --suffix=B) # Linux
[ -z "$size" ] && size=$(stat -f%z "$model" 2>/dev/null | numfmt --to=iec --suffix=B) # macOS
else
size=$(stat -c%s "$model" 2>/dev/null || stat -f%z "$model" 2>/dev/null)
size="${size} bytes"
fi

# colors
CYAN="\033[1;36m"
YELLOW="\033[1;33m"
RESET="\033[0m"

width=$(tput cols) # get terminal width
line=$(printf '━%.0s' $(seq 1 $width))

echo -e "\n${CYAN}${line}${RESET}"
echo -e " 🚀 Running Model: ${YELLOW}$name${RESET} (size: ${YELLOW}$size${RESET}) 🚀"
# echo -e " 🚀 Running Model: ${YELLOW}$name${RESET} 🚀"
echo -e "${CYAN}${line}${RESET} \n"

cmd=(
java @argfile
-cp /home/devoxx2025-demo/java-ai-demos/GPULlama3.java/target/gpu-llama3-0.2.2.jar
org.beehive.gpullama3.LlamaApp
--model "$model"
--stream true
--echo false
-p "Who are you?"
--instruct
)

# Pretty print the command (one-liner)
echo -e "java @argfile -cp /home/devoxx2025-demo/java-ai-demos/GPULlama3.java/target/gpu-llama3-0.2.2.jar org.beehive.gpullama3.LlamaApp --model \"$model\" --stream true --echo false -p \"Who are you?\" --instruct \n"

# Execute it
"${cmd[@]}"

#java @argfile -cp /home/devoxx2025-demo/java-ai-demos/GPULlama3.java/target/gpu-llama3-0.2.2.jar org.beehive.gpullama3.LlamaApp --model "$model" --stream true --echo false -p "Who are you?" --instruct

#./llama-tornado --gpu --opencl --model "$model" --prompt "Who are you?"
done

184 changes: 184 additions & 0 deletions argfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
-server
-XX:+UnlockExperimentalVMOptions
-XX:+EnableJVMCI
-Xms20g
-Xmx20g
--enable-preview

# -Dgraal.Dump=*:verbose -Dgraal.PrintGraph=Network -Dgraal.PrintBackendCFG=true

-Djava.library.path=/home/devoxx2025-demo/java-ai-demos/TornadoVM/bin/sdk/lib
-Djdk.module.showModuleResolution=false
--module-path .:/home/devoxx2025-demo/java-ai-demos/TornadoVM/bin/sdk/share/java/tornado
-Dtornado.load.api.implementation=uk.ac.manchester.tornado.runtime.tasks.TornadoTaskGraph
-Dtornado.load.runtime.implementation=uk.ac.manchester.tornado.runtime.TornadoCoreRuntime
-Dtornado.load.tornado.implementation=uk.ac.manchester.tornado.runtime.common.Tornado
-Dtornado.load.annotation.implementation=uk.ac.manchester.tornado.annotation.ASMClassVisitor
-Dtornado.load.annotation.parallel=uk.ac.manchester.tornado.api.annotations.Parallel
-Dtornado.tvm.maxbytecodesize=65536
-Duse.tornadovm=true
-Dtornado.threadInfo=false
-Dtornado.debug=false
-Dtornado.fullDebug=false
-Dtornado.printKernel=false
-Dtornado.print.bytecodes=false
-Dtornado.device.memory=20GB
-Dtornado.profiler=false
-Dtornado.log.profiler=false
-Dtornado.profiler.dump.dir=/home/mikepapadim/repos/gpu-llama3.java/prof.json
-Dtornado.enable.fastMathOptimizations=true
-Dtornado.enable.mathOptimizations=false
-Dtornado.enable.nativeFunctions=true
"-Dtornado.loop.interchange=true -Dtornado.dump.bytecodes.dir=/home/devoxx2025-demo/java-ai-demos/GPULlama3.java"
-Dtornado.eventpool.maxwaitevents=32000
"-Dtornado.opencl.compiler.flags=-cl-denorms-are-zero -cl-no-signed-zeros -cl-finite-math-only"
--upgrade-module-path /home/devoxx2025-demo/java-ai-demos/TornadoVM/bin/sdk/share/java/graalJars
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.cfg=tornado.runtime
--add-exports jdk.internal.vm.ci/jdk.vm.ci.common=jdk.internal.vm.compiler
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.meta=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.util=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir=tornado.runtime,tornado.drivers.common
--add-exports jdk.internal.vm.ci/jdk.vm.ci.meta=tornado.runtime,tornado.annotation,tornado.drivers.common,jdk.internal.vm.compiler
--add-exports jdk.internal.vm.ci/jdk.vm.ci.code=tornado.runtime,tornado.drivers.common,jdk.internal.vm.compiler
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.graph=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.graph.spi=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir.gen=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodeinfo=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes=tornado.runtime,tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.calc=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.spi=tornado.runtime,tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.api.runtime=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.code=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common=tornado.runtime,tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.target=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.debug=tornado.runtime,tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.hotspot=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.java=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir.asm=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir.phases=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.graphbuilderconf=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.options=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases=tornado.runtime,tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.tiers=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.util=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.printer=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.runtime=tornado.runtime
--add-exports jdk.internal.vm.ci/jdk.vm.ci.runtime=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.graph.iterators=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.java=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.bytecode=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.common=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.spi=tornado.runtime,tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.api.replacements=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.replacements=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.inlining=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.phases=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.type=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.extended=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.loop=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.inlining.info=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.inlining.policy=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.inlining.walker=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.loop.phases=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.debug=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.memory=tornado.runtime,tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.util=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.virtual=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir.constopt=tornado.runtime
--add-opens jdk.internal.vm.ci/jdk.vm.ci.hotspot=tornado.runtime
--add-exports jdk.internal.vm.ci/jdk.vm.ci.hotspot=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.gc=tornado.runtime,tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.memory.address=tornado.runtime,tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.replacements.nodes=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.word=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.util=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir.framemap=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.alloc=tornado.runtime
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.memory=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.graph=tornado.runtime,tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.graph.iterators=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.java=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.extended=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.loop=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.calc=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.options=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.debug=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.util=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.virtual=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.loop.phases=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.util=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.tiers=tornado.drivers.common
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.common=tornado.drivers.common

--add-opens java.base/java.lang=tornado.drivers.opencl
--add-exports jdk.internal.vm.ci/jdk.vm.ci.common=tornado.drivers.opencl
--add-exports jdk.internal.vm.ci/jdk.vm.ci.amd64=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.meta=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.replacements.classfile=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.alloc=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.util=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.cfg=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir.framemap=tornado.drivers.opencl
--add-exports jdk.internal.vm.ci/jdk.vm.ci.meta=tornado.drivers.opencl
--add-exports jdk.internal.vm.ci/jdk.vm.ci.code=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.graph=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.graph.spi=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir.gen=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodeinfo=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.calc=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.spi=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.code=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.debug=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.hotspot=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.java=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir.asm=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir.phases=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.graphbuilderconf=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.options=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.tiers=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.util=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.printer=tornado.drivers.opencl
--add-exports jdk.internal.vm.ci/jdk.vm.ci.runtime=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.graph.iterators=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.java=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.bytecode=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.common=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.spi=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.api.replacements=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.replacements=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.inlining=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.phases=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.type=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.extended=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.loop=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.loop.phases=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.debug=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.memory=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.util=tornado.drivers.opencl
--add-opens jdk.internal.vm.ci/jdk.vm.ci.hotspot=tornado.drivers.opencl
--add-exports jdk.internal.vm.ci/jdk.vm.ci.hotspot=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.asm=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.cfg=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.schedule=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.virtual.phases.ea=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.lir.ssa=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.calc=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.gen=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.match=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.memory.address=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.nodes.type=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.graph=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.util=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.common.util=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.phases.graph=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.word=tornado.drivers.opencl
--add-exports jdk.internal.vm.compiler/org.graalvm.compiler.core.common.memory=tornado.drivers.opencl

--add-modules
ALL-SYSTEM,jdk.incubator.vector,tornado.runtime,tornado.annotation,tornado.drivers.common,tornado.drivers.opencl
4 changes: 2 additions & 2 deletions llama-tornado
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ class LlamaRunner:
"-Dtornado.enable.fastMathOptimizations=true",
"-Dtornado.enable.mathOptimizations=false",
"-Dtornado.enable.nativeFunctions=true",
"-Dtornado.loop.interchange=true",
"-Dtornado.loop.interchange=true -Dtornado.dump.bytecodes.dir=/home/devoxx2025-demo/java-ai-demos/GPULlama3.java",
Copy link

Copilot AI Oct 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line contains two JVM arguments concatenated in a single string. They should be separated into individual array elements for proper argument parsing.

Suggested change
"-Dtornado.loop.interchange=true -Dtornado.dump.bytecodes.dir=/home/devoxx2025-demo/java-ai-demos/GPULlama3.java",
"-Dtornado.loop.interchange=true",
"-Dtornado.dump.bytecodes.dir=/home/devoxx2025-demo/java-ai-demos/GPULlama3.java",

Copilot uses AI. Check for mistakes.
f"-Dtornado.eventpool.maxwaitevents={args.max_wait_events}",
]
cmd.extend(tornado_runtime_config)
Expand Down Expand Up @@ -410,7 +410,7 @@ def create_parser() -> argparse.ArgumentParser:
const=Backend.PTX,
help="Use PTX/CUDA backend",
)
hw_group.add_argument("--gpu-memory", default="7GB", help="GPU memory allocation")
hw_group.add_argument("--gpu-memory", default="20GB", help="GPU memory allocation")
hw_group.add_argument("--heap-min", default="20g", help="Minimum JVM heap size")
hw_group.add_argument("--heap-max", default="20g", help="Maximum JVM heap size")

Expand Down
4 changes: 2 additions & 2 deletions set_paths
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

# Resolve root of this project (LLaMA3) and TornadoVM
export LLAMA_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
export TORNADO_ROOT="${LLAMA_ROOT}/external/tornadovm"
#export TORNADO_ROOT="${LLAMA_ROOT}/external/tornadovm"

# Set the path to TornadoVM SDK binaries
export TORNADO_SDK="${TORNADO_ROOT}/bin/sdk"
#export TORNADO_SDK="${TORNADO_ROOT}/bin/sdk"

# Add TornadoVM and LLaMA bin directories to PATH
export PATH="${PATH}:${TORNADO_SDK}:${LLAMA_ROOT}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public MistralModelLoader(FileChannel fileChannel, GGUF gguf, int contextLength,
// @formatter:off
@Override
public Mistral loadModel() {
try (var ignored = Timer.log("Load Mistral model")) {
try {
Copy link

Copilot AI Oct 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The try-with-resources statement has been changed to a regular try block, but there's no corresponding resource management. This could lead to resource leaks if exceptions occur during model loading.

Copilot uses AI. Check for mistakes.
Map<String, Object> metadata = gguf.getMetadata();

Vocabulary vocabulary = Vocabulary.loadMistralVocabulary(metadata);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,16 @@ public Phi3ModelLoader(FileChannel fileChannel, GGUF gguf, int contextLength, bo
// @formatter:off
@Override
public Phi3 loadModel() {
try (var ignored = Timer.log("Load Phi3 model")) {
try {
Copy link

Copilot AI Oct 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The try-with-resources statement has been changed to a regular try block, but there's no corresponding resource management. This could lead to resource leaks if exceptions occur during model loading.

Copilot uses AI. Check for mistakes.
Map<String, Object> metadata = gguf.getMetadata();
final String modelPrefix = "phi3.";

Vocabulary vocabulary = Vocabulary.loadPhi3Vocabulary(metadata);
Tokenizer tokenizer = new Phi3Tokenizer(metadata, vocabulary);

System.out.println("Tokenizer: " + tokenizer.getClass().getSimpleName());
if (TornadoVMMasterPlan.ENABLE_TORNADOVM_INIT_TIME) {
System.out.println("Tokenizer: " + tokenizer.getClass().getSimpleName());
}

int modelContextLength = (int) metadata.get(modelPrefix + "context_length");
if (contextLength < 0 || modelContextLength < contextLength) {
Expand Down
Loading