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
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
# Incremental semantic indexing and recovery
|
||||
|
||||
Status: implementation design and acceptance gates; not implemented. Current
|
||||
semantic rebuilds regenerate vectors and the ANN graph. Interrupted staging is
|
||||
discarded by the next rebuild. The previous ready generation remains searchable.
|
||||
|
||||
## Reuse requires complete sources
|
||||
|
||||
Document vectors depend on the extracted text, the bounded filename title,
|
||||
model, prompt and token-window policy. The current passage content hash alone
|
||||
is insufficient: a basename rename changes Google's document prompt. Passage
|
||||
IDs are recreated by core reconciliation, so reuse must remap current IDs,
|
||||
paths and page/line locations rather than retain old citations.
|
||||
|
||||
Media reuse requires a verified hash of the actual file bytes and matching
|
||||
encoder/preprocessing/sampling policy. Size and modification time alone are
|
||||
insufficient. Existing media chunks are written progressively; their presence
|
||||
does not prove that a file completed. A crash can leave an incomplete group.
|
||||
|
||||
Add a versioned completion manifest per source group: generation, task key,
|
||||
source type, encoder/policy key, source hash, title hash where applicable,
|
||||
expected chunk count and completion state. Associate chunks with their group.
|
||||
Only completed groups can supply reusable vectors. Historical generations
|
||||
without completion evidence remain searchable but require one rebuild before
|
||||
their vectors qualify for reuse.
|
||||
|
||||
Start with matching complete-generation policies. Component encoder keys can
|
||||
later let unchanged document vectors survive an audio-sampling policy change.
|
||||
Do not silently omit image, audio or video work to make a rebuild cheaper.
|
||||
|
||||
## Durable work and atomic publication
|
||||
|
||||
Persist bounded pending/running/done/failed tasks in SQLite. Tasks retain their
|
||||
source identity, attempts and a bounded error. Obtain the existing OS build
|
||||
lock before starting or resuming a compatible staging generation; only then
|
||||
can interrupted running tasks be reset. Keep inference outside write
|
||||
transactions. Commit source completion, verified chunk membership and task
|
||||
state atomically. Incomplete groups must be discarded or resumed without
|
||||
qualifying as completed reuse sources.
|
||||
|
||||
Discover work in bounded keyset batches. Before publication, reconcile staging
|
||||
against current indexed sources: remove deleted sources, invalidate changed
|
||||
identities and enqueue additions. Verify exact document window slices and
|
||||
remap citations. For media, confirm the file is unchanged after extraction and
|
||||
inference. Retain the 100,000-chunk budget and explicit per-file media failures.
|
||||
|
||||
Build the ANN graph only from eligible completed groups. Publish under a
|
||||
transaction that checks the reconciled corpus revision; a concurrent source
|
||||
change must trigger reconciliation/retry. Storage or activation failure must
|
||||
preserve both the previous active generation and the same reader's policy.
|
||||
|
||||
## Acceptance gates
|
||||
|
||||
- [ ] Migrate existing databases while preserving active-generation search.
|
||||
- [ ] Rebuild mixed text/code/image/audio/video fixtures unchanged with zero
|
||||
document/media inference calls and identical vectors and source locations.
|
||||
- [ ] Change one document and one media file; re-encode only affected groups.
|
||||
- [ ] Re-encode text after a basename rename; reuse a folder-only move with
|
||||
current citations. Verify media bytes before reusing a renamed media file.
|
||||
- [ ] Regenerate affected media when sampling policy changes; retain eligible
|
||||
text groups when component encoder-key reuse is implemented.
|
||||
- [ ] Terminate after a committed batch and resume without repeating completed
|
||||
inference. Never reuse or publish an unfinished source group.
|
||||
- [ ] Mutate or delete a queued/running source and prove stale vectors cannot
|
||||
activate or become readable.
|
||||
- [ ] Inject storage/activation failure, preserve existing results and resume.
|
||||
- [ ] Use genuine Google CPU inference for these integration checks. Storage
|
||||
fixtures alone do not establish retrieval quality or reuse equivalence.
|
||||
- [ ] Measure preparation, the first foreground query and warm p95 while
|
||||
resumed indexing runs; record actual inference/reuse counts and resource use.
|
||||
|
||||
Foreground query priority and bounded persistent workers remain part of the
|
||||
first-use requirement. Faster unchanged rebuilds alone do not prove responsive
|
||||
search while indexing.
|
||||
+16
-2
@@ -30,6 +30,10 @@ Status: implementation started; no production release yet. Windows VM tests use
|
||||
- [ ] Versioned embeddings, ANN index, exact-match priority and hybrid fusion.
|
||||
- [ ] English/German relevance corpus and measured top-10 recall.
|
||||
- [ ] Atomic model/index replacement and resumable persistent work queues.
|
||||
- [ ] Completed-source manifests with title/model/window policy keys and
|
||||
citation remapping; reuse only verified complete document/media groups.
|
||||
- [ ] Durable generation tasks, crash resume and final corpus reconciliation;
|
||||
see [incremental semantic design](INCREMENTAL-SEMANTIC.md).
|
||||
|
||||
## 3. Desktop
|
||||
- [ ] Tauri shell, accessible keyboard search, progressive results and previews (shell built; UI interaction verification pending).
|
||||
@@ -62,6 +66,11 @@ Status: implementation started; no production release yet. Windows VM tests use
|
||||
- [x] Normal Windows x64 archive includes baseline/optimized CPU dispatch,
|
||||
OS AVX-state guards, shared app-local MSVC CRT and hashed DLL inventory;
|
||||
real optimized and baseline-only package inference passes in the CPU VM.
|
||||
- [x] Normal native Linux x86-64 CPU/Vulkan worker build, hashed 19-library
|
||||
staging and genuine optimized/baseline-only CPU code-query inference outside
|
||||
the build tree; desktop, ABI/older-hardware and GPU validation remain open.
|
||||
- [x] Actual Linux automatic CPU fallback with Vulkan loader, ICDs/drivers and
|
||||
GPU devices absent in a verified private namespace; no GPU provider loaded.
|
||||
- [ ] Verify CPU dispatch on older physical CPUs and a clean Windows machine;
|
||||
dependency inspection and baseline execution on a modern VM are insufficient.
|
||||
- [ ] Actual missing/incompatible GPU drivers, precision, device loss and memory
|
||||
@@ -92,8 +101,13 @@ Status: implementation started; no production release yet. Windows VM tests use
|
||||
- [ ] Test migrations, interrupted work, invalid documents, inaccessible/offline roots and cloud placeholders.
|
||||
- [ ] Automated native build matrix and documented supported cross-compilation paths.
|
||||
- [x] Native Linux headless workspace tests: 93 passed, 11 explicitly ignored.
|
||||
- [ ] Execute Linux native Google worker and desktop/macOS platform tests;
|
||||
create Windows/macOS/Linux installers.
|
||||
- [x] Native Linux Google text/code/media reference parity and service
|
||||
lifecycle/rebuild recovery: seven genuine CPU integration tests passed.
|
||||
- [x] Unsigned Linux x86-64 headless archive: verify extracted checksums/modes,
|
||||
mixed document/code/audio indexing, decoder discovery, semantic retrieval,
|
||||
line citations and strict filters outside the source/build directories.
|
||||
- [ ] Execute native Linux video/codec coverage and Linux desktop/macOS
|
||||
platform tests; create Windows/macOS/Linux installers.
|
||||
- [ ] Signing/notarization configuration, upgrade/rollback validation, release instructions.
|
||||
|
||||
## 6. Local agents and optional answers
|
||||
|
||||
@@ -44,6 +44,15 @@ external OpenMP runtime. Production CMake supports cpu, auto, metal, vulkan,
|
||||
and cuda; CPU builds force GPU flags off. Runtime/provider parity and packaging
|
||||
on other operating systems remain independent release checks.
|
||||
|
||||
Linux x86-64 normal builds also use shared CPU dispatch: 14 CPU modules,
|
||||
four core libraries and a dynamically loaded Vulkan module. Core SONAME files
|
||||
are copied beside the worker with origin-relative lookup; the builder verifies
|
||||
ELF dependencies and the stager verifies the explicit hashed inventory.
|
||||
Vulkan's system loader is a dependency of the optional GPU module rather than
|
||||
the worker or CPU/core libraries. Native optimized and baseline-only CPU
|
||||
code-query smoke checks pass. System ABI coverage, reference parity, GPU
|
||||
operation and desktop packaging are separate release gates.
|
||||
|
||||
The normal build/staging default is `auto`, shipping GPU support together with
|
||||
CPU fallback: Metal on macOS, Vulkan on Windows/Linux. Runtime detection chooses
|
||||
the usable device; users do not need hardware-specific builds. Release builders
|
||||
|
||||
+50
-1
@@ -5,7 +5,56 @@ inference, FFmpeg decoding and WebView tests use CPU only. UI launches set
|
||||
`WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS='--disable-gpu --disable-accelerated-video-decode'`
|
||||
and `SEARCHI_FORCE_CPU=1`.
|
||||
|
||||
## Native Linux media checkpoint (2026-10-13)
|
||||
## Native Linux runtime and headless checkpoint (2026-10-13)
|
||||
|
||||
The normal native Linux x86-64 worker now builds with Vulkan plus shared CPU
|
||||
dispatch. All 19 packaged libraries (14 CPU modules, Vulkan and four core
|
||||
libraries) pass dependency/RUNPATH checks and hashed resource staging. Actual
|
||||
copies outside the build tree pass genuine Google code-query inference on
|
||||
`libggml-cpu-zen4.so` and on a baseline-only `libggml-cpu-x64.so` extraction.
|
||||
Both produce finite normalized 768-dimensional vectors and report CPU with no
|
||||
Vulkan module loaded. See [dispatch evidence](evidence/linux-worker-cpu-dispatch.json)
|
||||
and [baseline evidence](evidence/linux-worker-cpu-baseline.json). These establish
|
||||
startup, origin-relative packaging and CPU inference, not broad retrieval
|
||||
quality, text/media reference parity, older hardware or GPU behavior.
|
||||
|
||||
An actual loader-free chroot also passes with requested device `auto` and no
|
||||
forced-CPU override. Its private mount namespace contains only the verified
|
||||
runtime, declared C/C++ ABI libraries and a read-only pinned model; Vulkan
|
||||
loaders, driver/ICD configuration and GPU devices are absent. It returns a
|
||||
normalized Google vector on CPU and reports Vulkan not loaded. See
|
||||
[missing-loader evidence](evidence/linux-worker-missing-loader.json). This proves
|
||||
Linux missing-loader CPU fallback without GPU execution; actual device loss,
|
||||
GPU precision and driver recovery remain open. The reusable check verifies
|
||||
namespace separation before any mount changes; two guard regressions pass.
|
||||
|
||||
Native Linux builder tests pass 7/7; staging passes 25 with two Windows-only
|
||||
skips; archive regressions pass 15/15. Packaging regressions use inert ELF
|
||||
fixtures and controlled metadata, so actual extracted CLI deployment remains
|
||||
a distinct gate. The Linux release CLI build passed (25m43s cold compilation).
|
||||
Initial actual archive preflight detected its glibc `libmvec.so.1` dependency;
|
||||
Ubuntu identifies that component as part of `libc6`. Adding that exact declared
|
||||
ABI component preserves unknown-dependency rejection. Actual archive creation
|
||||
now passes. The resulting unsigned headless archive is 148,157,038 bytes,
|
||||
SHA-256 `1e5a07edd4d94b49d2550914163637eca84087c802df0bb59b68168b849544e5`.
|
||||
All 29 listed files and permissions pass extraction verification into a path
|
||||
containing spaces. Installed release CLI startup, mixed document/code/audio
|
||||
indexing, automatic decoder discovery, real German semantic retrieval, code
|
||||
line citations and strict extension filtering pass. See
|
||||
[archive evidence](evidence/linux-headless-archive.json). This is an unpublished
|
||||
development candidate, not an installer or clean-machine certification.
|
||||
|
||||
Five genuine Google integration tests pass on native Linux, serially with one
|
||||
inference thread. Code task/debug/offset checks pass; text reference cosines
|
||||
range from 0.99981764 to 0.99994252 and debug/normal parity is 1.00000001.
|
||||
Image budgets 280/140/70 have reference cosines 0.99993253, 0.99976889 and
|
||||
0.99914157; audio parity is 0.99979352. These meet the 0.999 reference threshold.
|
||||
They establish runtime equivalence on this CPU host, not broad retrieval
|
||||
quality or GPU parity. Two additional genuine Google service tests pass:
|
||||
restart/stale-change/deletion behavior and failed rebuild policy preservation
|
||||
with retry. Seven real-model tests passed in total. No GPU provider executed.
|
||||
Exact model/worker hashes, test counts and reference similarities are retained
|
||||
in [Google CPU parity evidence](evidence/linux-google-cpu-parity.json).
|
||||
|
||||
Pinned BtbN Linux x86-64 FFmpeg/FFprobe archive size and SHA-256 verification
|
||||
passed under Ubuntu 24.04 WSL. Both native tools report the pinned version;
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"platform": "Ubuntu 24.04 x86_64 under WSL in the Windows VM",
|
||||
"cpu_only": true,
|
||||
"inference_threads": 1,
|
||||
"serial_test_workers": true,
|
||||
"worker_sha256": "8e8b1046ca3387c078ff1f9d93eb05aba18d150b3c47d606bf1d6646b16bbd1f",
|
||||
"backbone_sha256": "2188ac1deca4b77dffefd603c2776a9d76d9d74ec01841392982ebb840b09135",
|
||||
"projector_sha256": "c4a8a52691ecef40618438928bdf9e68379b854e24166f292592353db0aab64f",
|
||||
"passed_tests": {"code": 2, "text": 2, "media": 1, "service": 2},
|
||||
"reference_cosine_threshold": 0.999,
|
||||
"text_reference_cosines": {
|
||||
"query": 0.99991829,
|
||||
"query_bn": 0.99992166,
|
||||
"query_ar": 0.99994252,
|
||||
"document": 0.99981764,
|
||||
"document_long": 0.99990818
|
||||
},
|
||||
"debug_normal_cosine": 1.00000001,
|
||||
"media_reference_cosines": {
|
||||
"screen_280": 0.99993253,
|
||||
"photo_140": 0.99976889,
|
||||
"frame_70": 0.99914157,
|
||||
"speech": 0.99979352
|
||||
},
|
||||
"service_scope": ["restart and changed/deleted source suppression", "failed policy rebuild preserves live reader and retry"],
|
||||
"scope": "Runtime equivalence to pinned DigUp references and small real source lifecycle fixtures; not broad retrieval quality or performance benchmarks",
|
||||
"limitations": ["GPU untested", "older physical CPUs untested", "distribution ABI coverage untested", "native desktop untested"]
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"platform": "linux-x86_64",
|
||||
"cpu_only": true,
|
||||
"archive_sha256": "1e5a07edd4d94b49d2550914163637eca84087c802df0bb59b68168b849544e5",
|
||||
"archive_bytes": 148157038,
|
||||
"verified_files": 29,
|
||||
"extraction_path_contains_spaces": true,
|
||||
"automatic_media_helper_discovery": "passed",
|
||||
"embedding_report": {
|
||||
"media_files": 1,
|
||||
"media_failures": 0,
|
||||
"failures": [],
|
||||
"passages": 2,
|
||||
"chunks": 3,
|
||||
"generation": 1,
|
||||
"model_fingerprint": "google/embeddinggemma-2:bfcd298762cc34d0357ece5ebdd31791a3a374d8:q8_0:llama-b11461-no-logits-v1:mean:l2:query512:doc2048:windows-overlap128:prompts-v1:byte64k-overlap512-title512-v1:google/embeddinggemma-2:bfcd298762cc34d0357ece5ebdd31791a3a374d8:q8_0:llama-b11461-no-logits-v1:mtmd:mean:l2:rgb-catmullrom48-exif-largejpeg-scaled-v2:pcm16k30s-v1:image280-frame70-audio30s-overlap2-distributed240-scene120-v1"
|
||||
},
|
||||
"semantic_top_filename": "supplier.md",
|
||||
"code_source": {
|
||||
"kind": "line",
|
||||
"number": 1
|
||||
},
|
||||
"strict_filter": "passed",
|
||||
"command_elapsed_ms": {
|
||||
"help": 1444.2557980000856,
|
||||
"index": 897.0072200000914,
|
||||
"embed": 12126.549685999977,
|
||||
"semantic_search": 964.4444650000423,
|
||||
"code_search": 1260.825207000039,
|
||||
"strict_filter": 966.029466000009
|
||||
},
|
||||
"timing_scope": "single deployment smoke samples; not retrieval/performance benchmarks",
|
||||
"limitations": [
|
||||
"GPU untested",
|
||||
"desktop untested",
|
||||
"clean-machine/ABI coverage untested",
|
||||
"broad retrieval quality untested"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"platform": "linux",
|
||||
"cpu_only": true,
|
||||
"baseline_only_extraction": true,
|
||||
"worker_sha256": "8e8b1046ca3387c078ff1f9d93eb05aba18d150b3c47d606bf1d6646b16bbd1f",
|
||||
"model_sha256": "2188ac1deca4b77dffefd603c2776a9d76d9d74ec01841392982ebb840b09135",
|
||||
"files": [
|
||||
"libggml-base.so.0",
|
||||
"libggml-cpu-x64.so",
|
||||
"libggml-vulkan.so",
|
||||
"libggml.so.0",
|
||||
"libllama.so.0",
|
||||
"libmtmd.so.0",
|
||||
"runtime-libraries.json",
|
||||
"searchi-gemma-worker"
|
||||
],
|
||||
"hello": {
|
||||
"code_query_supported": true,
|
||||
"cpu_backend_module": "libggml-cpu-x64.so",
|
||||
"device": "cpu",
|
||||
"dimensions": 768,
|
||||
"media_supported": true,
|
||||
"model": "google/embeddinggemma-2",
|
||||
"ready": true,
|
||||
"runtime": "b11461-no-logits-v1",
|
||||
"threads": 1,
|
||||
"vulkan_module_loaded": false
|
||||
},
|
||||
"dimensions": 768,
|
||||
"norm": 1.0000000026410276,
|
||||
"startup_query_exit_ms": 1416.2597190002089,
|
||||
"timing_scope": "single diagnostic smoke sample; not a performance benchmark",
|
||||
"worker_dynamic_section": "\nDynamic section at offset 0x2f940 contains 35 entries:\n Tag Type Name/Value\n 0x0000000000000001 (NEEDED) Shared library: [libmtmd.so.0]\n 0x0000000000000001 (NEEDED) Shared library: [libllama.so.0]\n 0x0000000000000001 (NEEDED) Shared library: [libggml.so.0]\n 0x0000000000000001 (NEEDED) Shared library: [libggml-base.so.0]\n 0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]\n 0x0000000000000001 (NEEDED) Shared library: [libm.so.6]\n 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]\n 0x0000000000000001 (NEEDED) Shared library: [libc.so.6]\n 0x000000000000001d (RUNPATH) Library runpath: [$ORIGIN]\n 0x000000000000000c (INIT) 0x5000\n 0x000000000000000d (FINI) 0x27908\n 0x0000000000000019 (INIT_ARRAY) 0x306c8\n 0x000000000000001b (INIT_ARRAYSZ) 8 (bytes)\n 0x000000000000001a (FINI_ARRAY) 0x306d0\n 0x000000000000001c (FINI_ARRAYSZ) 8 (bytes)\n 0x000000006ffffef5 (GNU_HASH) 0x3b0\n 0x0000000000000005 (STRTAB) 0x14b0\n 0x0000000000000006 (SYMTAB) 0x4a8\n 0x000000000000000a (STRSZ) 5653 (bytes)\n 0x000000000000000b (SYMENT) 24 (bytes)\n 0x0000000000000015 (DEBUG) 0x0\n 0x0000000000000003 (PLTGOT) 0x30bb0\n 0x0000000000000002 (PLTRELSZ) 3072 (bytes)\n 0x0000000000000014 (PLTREL) RELA\n 0x0000000000000017 (JMPREL) 0x3598\n 0x0000000000000007 (RELA) 0x2da0\n 0x0000000000000008 (RELASZ) 2040 (bytes)\n 0x0000000000000009 (RELAENT) 24 (bytes)\n 0x000000000000001e (FLAGS) BIND_NOW\n 0x000000006ffffffb (FLAGS_1) Flags: NOW PIE\n 0x000000006ffffffe (VERNEED) 0x2c20\n 0x000000006fffffff (VERNEEDNUM) 4\n 0x000000006ffffff0 (VERSYM) 0x2ac6\n 0x000000006ffffff9 (RELACOUNT) 56\n 0x0000000000000000 (NULL) 0x0\n",
|
||||
"limitations": [
|
||||
"GPU untested",
|
||||
"older physical CPUs untested",
|
||||
"desktop and installer untested",
|
||||
"system-loader absence not physically exercised"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"platform": "linux",
|
||||
"cpu_only": true,
|
||||
"baseline_only_extraction": false,
|
||||
"worker_sha256": "8e8b1046ca3387c078ff1f9d93eb05aba18d150b3c47d606bf1d6646b16bbd1f",
|
||||
"model_sha256": "2188ac1deca4b77dffefd603c2776a9d76d9d74ec01841392982ebb840b09135",
|
||||
"files": [
|
||||
"libggml-base.so.0",
|
||||
"libggml-cpu-alderlake.so",
|
||||
"libggml-cpu-cannonlake.so",
|
||||
"libggml-cpu-cascadelake.so",
|
||||
"libggml-cpu-cooperlake.so",
|
||||
"libggml-cpu-haswell.so",
|
||||
"libggml-cpu-icelake.so",
|
||||
"libggml-cpu-ivybridge.so",
|
||||
"libggml-cpu-piledriver.so",
|
||||
"libggml-cpu-sandybridge.so",
|
||||
"libggml-cpu-sapphirerapids.so",
|
||||
"libggml-cpu-skylakex.so",
|
||||
"libggml-cpu-sse42.so",
|
||||
"libggml-cpu-x64.so",
|
||||
"libggml-cpu-zen4.so",
|
||||
"libggml-vulkan.so",
|
||||
"libggml.so.0",
|
||||
"libllama.so.0",
|
||||
"libmtmd.so.0",
|
||||
"runtime-libraries.json",
|
||||
"searchi-gemma-worker"
|
||||
],
|
||||
"hello": {
|
||||
"code_query_supported": true,
|
||||
"cpu_backend_module": "libggml-cpu-zen4.so",
|
||||
"device": "cpu",
|
||||
"dimensions": 768,
|
||||
"media_supported": true,
|
||||
"model": "google/embeddinggemma-2",
|
||||
"ready": true,
|
||||
"runtime": "b11461-no-logits-v1",
|
||||
"threads": 1,
|
||||
"vulkan_module_loaded": false
|
||||
},
|
||||
"dimensions": 768,
|
||||
"norm": 1.0000000005534304,
|
||||
"startup_query_exit_ms": 2679.169430999991,
|
||||
"timing_scope": "single diagnostic smoke sample; not a performance benchmark",
|
||||
"worker_dynamic_section": "\nDynamic section at offset 0x2f940 contains 35 entries:\n Tag Type Name/Value\n 0x0000000000000001 (NEEDED) Shared library: [libmtmd.so.0]\n 0x0000000000000001 (NEEDED) Shared library: [libllama.so.0]\n 0x0000000000000001 (NEEDED) Shared library: [libggml.so.0]\n 0x0000000000000001 (NEEDED) Shared library: [libggml-base.so.0]\n 0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]\n 0x0000000000000001 (NEEDED) Shared library: [libm.so.6]\n 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]\n 0x0000000000000001 (NEEDED) Shared library: [libc.so.6]\n 0x000000000000001d (RUNPATH) Library runpath: [$ORIGIN]\n 0x000000000000000c (INIT) 0x5000\n 0x000000000000000d (FINI) 0x27908\n 0x0000000000000019 (INIT_ARRAY) 0x306c8\n 0x000000000000001b (INIT_ARRAYSZ) 8 (bytes)\n 0x000000000000001a (FINI_ARRAY) 0x306d0\n 0x000000000000001c (FINI_ARRAYSZ) 8 (bytes)\n 0x000000006ffffef5 (GNU_HASH) 0x3b0\n 0x0000000000000005 (STRTAB) 0x14b0\n 0x0000000000000006 (SYMTAB) 0x4a8\n 0x000000000000000a (STRSZ) 5653 (bytes)\n 0x000000000000000b (SYMENT) 24 (bytes)\n 0x0000000000000015 (DEBUG) 0x0\n 0x0000000000000003 (PLTGOT) 0x30bb0\n 0x0000000000000002 (PLTRELSZ) 3072 (bytes)\n 0x0000000000000014 (PLTREL) RELA\n 0x0000000000000017 (JMPREL) 0x3598\n 0x0000000000000007 (RELA) 0x2da0\n 0x0000000000000008 (RELASZ) 2040 (bytes)\n 0x0000000000000009 (RELAENT) 24 (bytes)\n 0x000000000000001e (FLAGS) BIND_NOW\n 0x000000006ffffffb (FLAGS_1) Flags: NOW PIE\n 0x000000006ffffffe (VERNEED) 0x2c20\n 0x000000006fffffff (VERNEEDNUM) 4\n 0x000000006ffffff0 (VERSYM) 0x2ac6\n 0x000000006ffffff9 (RELACOUNT) 56\n 0x0000000000000000 (NULL) 0x0\n",
|
||||
"limitations": [
|
||||
"GPU untested",
|
||||
"older physical CPUs untested",
|
||||
"desktop and installer untested",
|
||||
"system-loader absence not physically exercised"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"platform": "linux",
|
||||
"device_requested": "auto",
|
||||
"forced_cpu": false,
|
||||
"gpu_execution": false,
|
||||
"vulkan_loader_present": false,
|
||||
"seal": {
|
||||
"system_abi": [
|
||||
"libc.so.6",
|
||||
"libm.so.6",
|
||||
"libdl.so.2",
|
||||
"libpthread.so.0",
|
||||
"librt.so.1",
|
||||
"libstdc++.so.6",
|
||||
"libgcc_s.so.1"
|
||||
],
|
||||
"proc_read_only": true,
|
||||
"model_read_only": true,
|
||||
"private_mount_namespace_verified": true,
|
||||
"gpu_devices": false,
|
||||
"icd_manifests": false,
|
||||
"environment": {
|
||||
"PATH": "/usr/bin:/bin",
|
||||
"LANG": "C.UTF-8"
|
||||
}
|
||||
},
|
||||
"worker_sha256": "8e8b1046ca3387c078ff1f9d93eb05aba18d150b3c47d606bf1d6646b16bbd1f",
|
||||
"model_sha256": "2188ac1deca4b77dffefd603c2776a9d76d9d74ec01841392982ebb840b09135",
|
||||
"hello": {
|
||||
"code_query_supported": true,
|
||||
"cpu_backend_module": "libggml-cpu-zen4.so",
|
||||
"device": "cpu",
|
||||
"dimensions": 768,
|
||||
"media_supported": true,
|
||||
"model": "google/embeddinggemma-2",
|
||||
"ready": true,
|
||||
"runtime": "b11461-no-logits-v1",
|
||||
"threads": 1,
|
||||
"vulkan_module_loaded": false
|
||||
},
|
||||
"dimensions": 768,
|
||||
"norm": 1.0000000005534304,
|
||||
"limitations": [
|
||||
"Actual GPU and driver recovery untested",
|
||||
"Distribution ABI compatibility untested"
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user