Package portable Linux runtime and verify Google CPU search
This commit is contained in:
1 parent
e3558a0104
commit
0b56ab553c
22 files changed
+1585
-16
No files matched your search
@@ -97,6 +97,11 @@ These are the current script and CLI interfaces, not evidence of an executed
|
||||
Linux release. On a native Linux build host with Vulkan development libraries
|
||||
and `glslc`, run from the repository root:
|
||||
|
||||
On Ubuntu 24.04, the native worker build prerequisites are `build-essential`,
|
||||
`cmake`, `git`, `pkg-config`, `libvulkan-dev`, `glslc`, and `spirv-headers`.
|
||||
The last package supplies the SPIR-V CMake configuration required by the pinned
|
||||
Vulkan backend. These build tools do not enable GPU execution in tests.
|
||||
|
||||
```sh
|
||||
python3 tools/embeddinggemma2/build_runtime.py --backend auto --jobs 2
|
||||
python3 tools/embeddinggemma2/download.py
|
||||
@@ -114,6 +119,46 @@ This normal worker detects usable acceleration and falls back to CPU. Internal
|
||||
CPU-only model tests may use `--backend cpu` and `SEARCHI_FORCE_CPU=1`; those
|
||||
test artifacts are not a separate distribution edition.
|
||||
|
||||
### Linux headless archive validation
|
||||
|
||||
The Linux x86-64 normal worker layout includes baseline and optimized CPU
|
||||
modules, an optional Vulkan module and adjacent core libraries. The builder
|
||||
audits ELF dependencies and origin-relative lookup before writing a hashed
|
||||
runtime inventory. ARM and other distribution/ABI combinations remain separate
|
||||
release gates.
|
||||
|
||||
After building the normal worker, release CLI and pinned media helpers, prepare
|
||||
an unsigned headless development candidate:
|
||||
|
||||
```sh
|
||||
python3 tools/package_linux.py
|
||||
python3 tools/embeddinggemma2/linux_smoke.py --worker .searchi/runtime/auto/searchi-gemma-worker --models .searchi/models/embeddinggemma2 --output .searchi/packages/linux-worker-smoke.json
|
||||
python3 tools/embeddinggemma2/linux_smoke.py --worker .searchi/runtime/auto/searchi-gemma-worker --models .searchi/models/embeddinggemma2 --output .searchi/packages/linux-baseline-smoke.json --baseline
|
||||
```
|
||||
|
||||
The packager accepts explicit `--executable`, `--runtime`, `--media` and
|
||||
`--llama-license` paths when builds use separate target/cache directories.
|
||||
It packages only approved runtime files, pinned decoders and notices, with
|
||||
normalized archive metadata, executable modes and per-file checksums. It
|
||||
excludes model caches and user indexes/settings. The smoke checks copy the
|
||||
runtime outside its build tree and run genuine Google code inference on CPU;
|
||||
the baseline check omits optimized CPU modules from its temporary extraction.
|
||||
They do not exercise GPU providers or certify older physical CPUs, installers
|
||||
or desktop behavior. Archive extraction and installed CLI search must also
|
||||
be verified before a release gate is closed.
|
||||
|
||||
The optional Linux missing-loader check requires explicit root execution and
|
||||
util-linux mount namespaces/chroot. It never escalates privileges and verifies
|
||||
a private namespace before creating an isolated filesystem:
|
||||
|
||||
```sh
|
||||
sudo python3 tools/embeddinggemma2/linux_loader_smoke.py --worker .searchi/runtime/auto/searchi-gemma-worker --models .searchi/models/embeddinggemma2 --output .searchi/packages/linux-missing-loader.json
|
||||
```
|
||||
|
||||
It runs automatic device selection with no forced-CPU override, but contains no
|
||||
Vulkan loader, driver configuration or GPU devices, so only CPU inference can
|
||||
execute. This is distinct from testing an actual GPU or recovering device loss.
|
||||
|
||||
`searchi setup --model-dir PATH` is an alternative verified model-provisioning
|
||||
command. It provisions model assets, not the native worker. Package the worker
|
||||
separately and pass its path to headless embedding/search. Each short-lived CLI
|
||||
|
||||
Reference in new issue
Block a user