You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge upstream/main into fork main (Apple Silicon MPS line)
Brings in 6 upstream commits (through bitsandbytes-foundation#2004). Conflict resolutions:
- csrc/mps_kernels.metal, csrc/mps_ops.mm: upstream bitsandbytes-foundation#2004 DELETED these as
'unused metal build code' (they were stubs upstream); the fork built them into
the real MPS port. Kept the fork's versions (rejected the deletion).
- CMakeLists.txt: bitsandbytes-foundation#2004 removed upstream's stub metal build. Restored the fork's
full MPS build support that the auto-merge dropped: the COMPUTE_BACKEND=mps ->
BUILD_MPS selection branch, set(MPS_FILES)/set(METAL_FILES), and the late
if(BUILD_MPS) framework-linking + add_dependencies(metallib) block. Verified a
clean MPS build produces the metallib + _mps.dylib.
- bitsandbytes/backends/default/ops.py: dropped the stale Lion NOTE (claimed CUDA
and Triton still had the coupled-decay bug -- all three are now fixed on this
fork); took upstream's cleaner version. The decoupled-decay code is unchanged.
- tests/test_optim.py: kept the fork's test_lion8bit_blockwise_weight_decay
alongside upstream's test_lion32bit_weight_decay.
- csrc/pythonInterface.cpp: took upstream's removal of a commented-out dead
#include (fork's MPS loads via dladdr, doesn't use it).
Verified on the merged tree: MPS builds, tests/test_mps_parity.py 329 passed
under BNB_MPS_REQUIRE_NATIVE=1 (bit-exact quant/dequant + native matmul intact).
Pre-existing paged_lion-on-mps test_optim failures are unchanged (paging is
CUDA-only; identical on fork main pre-merge).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments