chore(packages): bump pins to current upstream releases
- awg-tool 0.4.0 -> 0.5.0 - awgen 0.1 -> 0.2 - codeaf 0.7.1 -> 0.8.2 - ds4 -> ee7e840 (2026-10-21) - freebuff 0.2.19 -> 0.2.34 - graphify 0.9.77 -> 0.9.95 (add pyyaml dependency) - hipengine 0.6.1 -> 0.8.3 - kubernetes-mcp-server 0.0.67 -> 0.0.69 (build with go_1_27) - kyojin 1.3 -> 1.7.1 (drop obsolete setup.py/pyproject patches, ship gr_mix_hip from the package, add ninja runtime dependency) - marmel -> de3e99c (2026-10-23) - omniroute 3.8.50 -> 3.8.52 - open-code-review 1.12.12 -> 1.13.3 (build with go_1_27) - pilotdeck 2026.10.17 -> 2026.10.20 - radar 1.16.2 -> 1.18.0 - traycer 1.4.2 -> 1.5.1 Verified: nix build passes for every bumped package; kyojin.tests.jit compiles all five JIT kernels. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
This commit is contained in:
@@ -30,7 +30,7 @@ if "--gpu" in sys.argv:
|
||||
lib.hipModuleUnload.argtypes = [ctypes.c_void_p]
|
||||
|
||||
for module, function, args in [
|
||||
("gr_mix_hip", "compile_hsaco", ()),
|
||||
("exllamav3.modules.gr_fn.gr_mix_hip", "compile_hsaco", ()),
|
||||
("exllamav3.modules.attention_fn.qsa_prefill_hip", "compile_hsaco", ()),
|
||||
("exllamav3.modules.ple_fn.ple_hip", "compile_hsaco", ()),
|
||||
("exllamav3.vendor.fla.hip.gdn_fused_h_hip", "_compile", ("", "gfx1151")),
|
||||
|
||||
@@ -18,13 +18,13 @@ let
|
||||
# only supports AMD Strix Halo, so the kernels are built for gfx1151 alone.
|
||||
rocmArch = "gfx1151";
|
||||
|
||||
version = "1.3";
|
||||
version = "1.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Yamz-Labs";
|
||||
repo = "kyojin";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-/DPoqW/iaLXRAH8XF5RdE+K5YS4jZT6Sic6QeCDQMlU=";
|
||||
hash = "sha256-84lRbN7H5eNG/RG8Ygvo9cByGOVOp7moFi0GS/YF+mU=";
|
||||
};
|
||||
|
||||
# setup.py passes EXL3_ROCM_DEV_INCLUDE as -I to every translation unit. The
|
||||
@@ -111,6 +111,7 @@ let
|
||||
jinja2
|
||||
llguidance
|
||||
marisa-trie
|
||||
ninja
|
||||
numpy
|
||||
pillow
|
||||
pydantic
|
||||
@@ -136,26 +137,9 @@ let
|
||||
EXL3_HIP_DEFINES = "EXL3_HIP_STG_PAD";
|
||||
};
|
||||
|
||||
# setup.py pulls the extension source list and the arch helper with
|
||||
# `from exllamav3...import ...`, which runs the package __init__ and
|
||||
# therefore exllamav3/ext.py. That module JIT-compiles the extension when no
|
||||
# precompiled exllamav3_ext is importable, i.e. during every wheel build
|
||||
# (and it wants a writable $HOME for it). Register an empty `exllamav3`
|
||||
# package first so only the two leaf modules are imported, and load
|
||||
# build_config without the package wrapper.
|
||||
postPatch = ''
|
||||
sed -i '1i import sys as _sys, types as _types; _exl3_pkg = _types.ModuleType("exllamav3"); _exl3_pkg.__path__ = ["exllamav3"]; _sys.modules.setdefault("exllamav3", _exl3_pkg)' setup.py
|
||||
sed -i 's|^from exllamav3\.exllamav3_ext\.build_config import get_sources as _get_sources$|import sys as _exl3_sys; _exl3_sys.path.insert(0, "exllamav3/exllamav3_ext"); from build_config import get_sources as _get_sources; _exl3_sys.path.pop(0)|' setup.py
|
||||
grep -q 'from build_config import' setup.py
|
||||
|
||||
# Upstream serves these from the checkout (pip install -e .); the wheel only
|
||||
# packages what pyproject lists, and three things are read out of the
|
||||
# installed package at run time: the .hip sources the JIT kernels compile,
|
||||
# the qsa_proof marker gating the QSA prefill kernel, and the dense-GEMM
|
||||
# tuning seed (without it every start re-tunes for ~7 minutes).
|
||||
sed -i 's|^ "exllamav3_ext/\*\*/\*",$|&\n "**/*.hip",\n "**/*.ok",\n "model/dense_gemm_tune_seed.txt",|' pyproject.toml
|
||||
grep -q '"\*\*/\*.hip"' pyproject.toml
|
||||
'';
|
||||
# setup.py loads exllamav3/exllamav3_ext/build_config.py by path (and
|
||||
# pyproject.toml ships the .hip sources, qsa_proof markers, and dense-GEMM
|
||||
# tuning seed), so no source patches are needed.
|
||||
|
||||
# tests/ needs a real gfx1151 GPU and the published model packs.
|
||||
doCheck = false;
|
||||
@@ -189,10 +173,7 @@ stdenv.mkDerivation {
|
||||
# exllamav3 finds hipcc under $EXL3_ROCM_SDK, and hipclang only finds the
|
||||
# amdgcn bitcode through $HIP_DEVICE_LIB_PATH (hipcc's own DEVICE_LIB_PATH is
|
||||
# not enough for a --genco call). The ROCm paths stay out of LD_LIBRARY_PATH
|
||||
# (upstream Trap 1/5: a second libhsa segfaults torch), and PYTHONPATH gets
|
||||
# `gr/`: upstream env.sh puts the repo root there so `import gr_mix_hip` (the
|
||||
# hand-written gated-residual WMMA kernel the server asks for with
|
||||
# EXL3_GR_HIP=1) resolves, and it is not part of the wheel either.
|
||||
# (upstream Trap 1/5: a second libhsa segfaults torch).
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
|
||||
@@ -210,7 +191,6 @@ stdenv.mkDerivation {
|
||||
--set HIP_DEVICE_LIB_PATH ${rocmPackages."rocm-device-libs"}/amdgcn/bitcode \
|
||||
--set EXL3_EXPANDABLE_SEGMENTS 0 \
|
||||
--prefix PATH : ${lib.makeBinPath [ stdenv.cc ]} \
|
||||
--prefix PYTHONPATH : ${src}/gr \
|
||||
--add-flags "${src}/tools/$model/serve.py"
|
||||
done
|
||||
|
||||
@@ -229,7 +209,6 @@ stdenv.mkDerivation {
|
||||
# matmul; a custom hipcc must select its own bitcode in its subprocess.
|
||||
HIP_DEVICE_LIB_PATH = "${rocmPackages."rocm-device-libs"}/amdgcn/bitcode";
|
||||
EXL3_EXPANDABLE_SEGMENTS = "0";
|
||||
PYTHONPATH = "${src}/gr";
|
||||
KYOJIN_REQUIRE_SDK = lib.boolToString (jitRocmSdk != null);
|
||||
}
|
||||
''
|
||||
|
||||
Reference in New Issue
Block a user