Skip to content

[mirror #14] Add Linux ROCm and Vulkan legs to the prebuilt pipeline, so AMD hosts stop landing on the CPU build - #1

Open
LeoBorcherding wants to merge 204 commits into
masterfrom
prebuilt-amd-legs
Open

LeoBorcherding wants to merge 204 commits into
masterfrom
prebuilt-amd-legs

Conversation

@LeoBorcherding

Copy link
Copy Markdown
Owner

Mirror of unslothai#14 at d2ae8f8 for Codex and the dispatch-only GPU legs. Nothing here goes back to the source branch.

stduhpf and others added 30 commits August 11, 2026 22:57
Co-authored-by: leejet <leejet714@gmail.com>
Co-authored-by: leejet <leejet714@gmail.com>
Co-authored-by: leejet <leejet714@gmail.com>
akleine and others added 30 commits October 15, 2026 22:26
…16 (unslothai#31)

The dense collector read src1 as packed f32 and walked ne[1] rows only, so
strided row views, batched ne[2]/ne[3] planes and F16/BF16 activations were
summed from the wrong memory or skipped. Rows are now addressed through
nb[1..3], every plane is accumulated into the weight's column vector, and
F16/BF16 rows are converted with the ggml row helpers. Other types, or a
strided nb[0], are refused with an error and counted instead of being read
as floats. The device copy is sized by ggml_nbytes so a strided view no
longer overruns it. The MUL_MAT_ID branch uses the same row reader.

Saving the imatrix logs how many collected matmuls saw each layout.
…mpute headroom under --max-vram (unslothai#32)

The partitioner filled the first device up to its weight capacity before
using the next one, so a module whose weights fit the main device alone was
never split, and the compute buffers then had no room under the budget. The
2 GiB compute headroom was also taken only from free memory, never from an
explicit --max-vram budget, so a per-device budget was filled entirely with
weights.

Ranges are now sized in proportion to each device's capacity (the lower of
free memory and its --max-vram budget, minus the headroom), as docs/backend.md
already described, with the fill-first plan kept as a fallback when the
proportional ranges do not fit. The planner is a header-only function with a
standalone test (scripts/layer_split_ranges_test.cpp).
Brings in 17 upstream commits up to leejet/stable-diffusion.cpp 8cd731e (FLUX.3 Image Klein and Klein Base, leejet#2143).
…e flash attention

Upstream leejet#2132 maps --diffusion-fa to --flash-attn off,diffusion=on and no longer sets the legacy diffusion_flash_attn flag, so the H3 VAE flash-attention rule (CUDA/ROCm by default) never fired after the sync. Key it on the resolved per-module state instead: diffusion FA on, VAE FA off, and no explicit vae= assignment.
Sync with upstream master-968-8cd731e (FLUX.3 Image Klein)
…ubmodule)

Upstream master-982 moves the ggml submodule from d25b121 to dc99877 (leejet#2147), so
0001-0007 and 0009 no longer applied. Ported by cherry-picking each patch onto the
new submodule commit; conflicts were adjacent additions plus four API moves:
load_tile lost its swz template argument, launch_fattn gained async_kv_preload
before the occupancy arguments, rms_norm_f32 now takes nchannels/nsamples and a
do_scale/scale_out pair, and ggml_cuda_should_use_mmvf takes warp_size.
Merge upstream master-982 (MOSS-Image) and port the ggml patches to dc99877
…ive-branch skip

moss_uncond_skip=false turns the built-in uncond skip off; moss_uncond_skip_start /
moss_uncond_skip_end bound it in sigma-percent of the shifted flow schedule
(ComfyUI percent_to_sigma, inclusive). Without these keys every step skips block 22
as before. Logs the number of skipped negative passes per sampling run.
…p set changes

EasyCache / UCache / CacheDIT key a condition's cached output by its pointer only, so at
the moss_uncond_skip window edge a reused &uncond diff could come from the other skip
configuration. Track the effective negative-branch skip per pass and invalidate &uncond in
the step cache when it flips. Only runs with a window set; the default path is unchanged.
Verbose logs say whether each windowed MOSS uncond pass was computed or served from cache.
MOSS-Image: extra sample args to window or disable the block-22 negative-branch skip
# Conflicts:
#	.github/workflows/unsloth-sd-prebuilt.yml
#	docs/backend.md
#	scripts/unsloth/package_bundle.py
#	src/conditioning/conditioner.hpp
#	src/model_manager.cpp

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.