Conversation
…n in build scripts
There was a problem hiding this comment.
Pull request overview
This PR updates the build and test infrastructure to transition from llama-cli to llama-completion as the primary executable, and changes the default backend configuration from requiring explicit opt-in to GGML Hexagon to requiring explicit opt-out. Additionally, it introduces a rebuild flag and updates the llama.cpp subproject commit.
Key changes:
- Replaces
llama-clireferences withllama-completionacross test scripts - Inverts GGML Hexagon logic from opt-in (
--use-ggml-hexagon) to opt-out (--disable-ggml-hexagon) - Adds support for rebuild functionality with
SHOULD_REBUILDflag
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/run_device_model_test.sh | Updates executable name and command arguments for device model tests |
| scripts/run_device_model_test.ps1 | Updates executable name and log file naming in PowerShell test script |
| scripts/run_all_device_tests.sh | Adds backend selection logic, new model test (Qwen), and updates log naming |
| scripts/push_and_run_test.sh | Adds llama-completion to list of pushed executables |
| scripts/push_and_run_test.ps1 | Adds llama-completion to list of pushed executables |
| scripts/looping.sh | Updates command line flag from --hexagon-npu-only to --use-ggml-hexagon |
| llama.cpp | Updates subproject commit reference |
| docker/docker_compose_compile.sh | Inverts GGML Hexagon flag logic and adds rebuild support |
| docker/docker-compose-compile.yml | Adds SHOULD_REBUILD environment variable |
| docker/docker-compose-compile-qnn.yml | Adds SHOULD_REBUILD environment variable |
| docker/build_in_container.sh | Refactors build process to support clean rebuilds and removes rsync operation |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| t) test_only=1 ;; | ||
| r) revision="$OPTARG" ;; | ||
| s) subdirectory="$OPTARG" ;; | ||
| q) use_ggml_hexagon=0 ;; |
There was a problem hiding this comment.
The variable assignment use_ggml_hexagon=0 when the -q flag is set is confusing given the help text states '-q Use hexagon-npu backend for tests and benchmarks'. Setting to 0 suggests disabling, but the intent appears to be selecting hexagon-npu. Consider renaming the variable to use_hexagon_npu or inverting the logic to match the flag's documented purpose.
| -t 512 | ||
|
|
||
| echo "Running device model test and saving log to ${qwen_test_log_name}" | ||
| "${_script_path}/run_device_model_test.sh" \ | ||
| -m "qwen3-1.7b-bf16-Q4_0.gguf" \ | ||
| -l "${qwen_test_log_name}" \ | ||
| -t 512 |
There was a problem hiding this comment.
The -f flag was removed from this invocation but remains in the original version. If the -f flag controlled flash attention or another feature, verify this removal is intentional and won't cause unexpected behavior in the model test.
| -t 512 | |
| echo "Running device model test and saving log to ${qwen_test_log_name}" | |
| "${_script_path}/run_device_model_test.sh" \ | |
| -m "qwen3-1.7b-bf16-Q4_0.gguf" \ | |
| -l "${qwen_test_log_name}" \ | |
| -t 512 | |
| -t 512 \ | |
| -f | |
| echo "Running device model test and saving log to ${qwen_test_log_name}" | |
| "${_script_path}/run_device_model_test.sh" \ | |
| -m "qwen3-1.7b-bf16-Q4_0.gguf" \ | |
| -l "${qwen_test_log_name}" \ | |
| -t 512 \ | |
| -f |
…ags for testing and Docker image management
…options, and testing instructions
This pull request introduces significant improvements to the build system, documentation, and backend configurability for the llama.cpp QNN builder project. The main changes include enhanced documentation, expanded build options (including OpenCL/Adreno GPU and ggml-hexagon toggling), improved Docker and CI workflows, and a more robust clean rebuild process.
Build System and Backend Configuration:
--disable-ggml-hexagonto disable the ggml-hexagon backend.--enable-oclto enable OpenCL support for Adreno GPU kernels.docker/docker_compose_compile.sh. [1] [2]SHOULD_REBUILDflag. [1] [2] [3] [4]Documentation and User Guidance:
README.mdwith detailed feature lists, backend descriptions, platform support, build options, quick start instructions, and project structure.docs/how-to-build.mdto document new build flags and provide more comprehensive example usage.Continuous Integration and Testing:
Miscellaneous Improvements:
llama.cppto a newer commit.LD_LIBRARY_PATHfor test execution and cleaning up command-line argument handling. [1] [2] [3]These changes collectively make the project more flexible, easier to use, and better documented for both development and deployment across different hardware and platforms.
References: