Repository navigation
sycl: run on an integrated Arc (Arc 140T, xe): free memory from /proc/meminfo, no prompt-slot borrowing, a native launcher - #2114
Open
andersson82 wants to merge 1 commit into
Conversation
…/meminfo, no prompt-slot borrowing, a native launcher On the Arc 140T (Core Ultra 9 285H, 62 GiB, Fedora 44, xe, oneAPI 2026.0 on the PC) the engine did not start: the device has no ext_intel_free_memory (also with ZES_ENABLE_SYSMAN=1), so the expert cache was sized from 0. - sycl/include/dpct/device.hpp: get_memory_info on a device with host_unified_memory and no free-memory query reads MemAvailable from /proc/meminfo (Linux); STRATA_SYCL_FREE_MIB sets it by hand. Other devices: unchanged. - sycl/src/program/generate.cpp: no prompt-slot borrowing on a host_unified_memory device. With it the answer after a borrowing prompt was token 0 (expert activations NaN from the 2nd chunk; 0.1.40, any context). - sycl/serve/strata-sycl-native.sh (new): the config's exe for the engine on the PC's own oneAPI, no Docker. - docs/INTEL.md: "Integrated Arc: the Arc 140T"; docs/INTEL_ARC.md: the 140T is no longer "not tested". Measured on the 140T, Coder IQ1_M, engine 0.1.43 with Niko1221#2110, through the server: 12.0-17.4 tok/s decode on 100-token answers (all 12,288 experts cached), a 72,648-token prompt read at 156.5 tok/s with its first-line fact recalled. Built with sycl/tools/build.sh (native oneAPI): 0 errors. No discrete card was run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Title
sycl: run on an integrated Arc (Arc 140T, xe): free memory from /proc/meminfo, no prompt-slot borrowing, a native launcher
Issue: none; the "integrated Arc GPUs ... not tested" line of docs/INTEL_ARC.md (and #515 for the B390 on Windows, not covered here)
Summary
The SYCL port did not start on an integrated Arc: the Arc 140T has no free-memory query, so the expert cache was sized
from 0. With the three changes below it runs the Coder IQ1_M on the 140T with 62 GiB of RAM, through the normal server,
at 12.0-17.4 tok/s decode, and reads a 72,648-token prompt at 156.5 tok/s.
What changed
sycl/include/dpct/device.hpp,get_memory_info: on a device withhost_unified_memoryand noext_intel_free_memory,free memory is
MemAvailablefrom/proc/meminfo(Linux only);STRATA_SYCL_FREE_MIBsets it by hand (thexedriverkeeps freed GPU memory in a pool that
MemAvailabledoes not count until a reboot). Other devices: the code path is theone before.
sycl/src/program/generate.cpp: no prompt-slot borrowing on ahost_unified_memorydevice. With borrowing, the answerafter a borrowing prompt was token 0 (every expert activation NaN from the second prompt chunk; measured on the 0.1.40
port, any context). Discrete cards keep the old rule.
sycl/serve/strata-sycl-native.sh(new): the config'sexefor the engine on the PC's own oneAPI, no Docker. Sets thesame port defaults as
strata-sycl.sh(each overridable from the config's"env") plusSTRATA_NO_MULTI_GR=1(15.1 vs 18.3 tok/s on the 140T with the multi-token GR kernels, 0.1.40, same output) and an OOM score of 1000 for the
engine.
docs/INTEL.md: a new section "Integrated Arc: the Arc 140T" (build, what is different from a card, a config to run it byhand, the numbers).
docs/INTEL_ARC.md: the 140T is no longer in "not tested".Left alone: discrete cards (every change is behind
host_unified_memory, which a card with its own VRAM should notreport; I have no discrete card to check), CUDA and HIP (no file of theirs is touched), setup (its own PR, which builds
on this one).
Measurements
Arc 140T (8086:7d51, Xe-LPG+), Core Ultra 9 285H, 62 GiB RAM, Fedora 44 (kernel 7.2.9,
xe), oneAPI 2026.0, JIT build.Coder IQ1_M,
--spec 4 --mtp,--max-context 98304,--kv int8,--stream-experts, throughsycl/serve/server_intel.py, greedy, thinking off. Engine 0.1.43 with these changes and #2110 (without #2110 every requeststalls on the 140T).
xepool)SYCL_CACHE_PERSISTENT=1(0.1.40)Extra Notes
How I checked:
origin/main(7695859) withsycl/tools/build.shon the PC's oneAPI: 0 errors.bash -non the launcher.Not tested:
i915on an iGPU, Windows.🤖 Generated with Claude Code