unsloth/studio/backend/utils/hardware
LeoBorcherding cc36e4b535 fix: BNB_ROCM_VERSION in server process + torch._C._distributed_c10d stubs
Two errors visible in training logs on Windows ROCm:

1. Server process bitsandbytes crash:
   "Configured ROCm binary not found at libbitsandbytes_rocm713.dll"
   The installed BNB wheel ships rocm72.dll (not rocm713.dll). The
   training worker already sets BNB_ROCM_VERSION=72 via DLL detection
   but the server process (main.py) imported bitsandbytes before that
   ran. Fix: add the same DLL-scan + BNB_ROCM_VERSION assignment to
   main.py inside the existing win32 guard, before any downstream
   import can pull in bitsandbytes.

2. torch.distributed import failure:
   "No module named 'torch._C._distributed_c10d'; torch._C is not a package"
   torch._C is a C extension on Windows ROCm — Python cannot do
   submodule imports from it, so torch.distributed fails to import
   before our attribute stubs could ever run. Fix: inject empty
   ModuleType stubs for _distributed_c10d, _distributed_autograd and
   _distributed_rpc into sys.modules inside the win32 guard in
   hardware.py BEFORE importing torch.distributed, so the import
   succeeds and our attribute stubs take effect.

9 new tests in TestServerStartupRocmFixes; total 212 passed, 2 skipped
2026-05-16 16:34:16 -05:00
..
__init__.py Add AMD ROCm/HIP support across installer and hardware detection (#4720) 2026-04-10 01:56:12 -07:00
amd.py [pre-commit.ci] auto fixes from pre-commit.com hooks 2026-05-14 19:49:25 +00:00
hardware.py fix: BNB_ROCM_VERSION in server process + torch._C._distributed_c10d stubs 2026-05-16 16:34:16 -05:00
nvidia.py Add native GGUF intake to Studio (#5246) 2026-05-04 11:46:18 +02:00
VRAM_ESTIMATION.md Update VRAM estimator to cater to broader model configs (#5175) 2026-05-05 04:12:36 -07:00
vram_estimation.py Update VRAM estimator to cater to broader model configs (#5175) 2026-05-05 04:12:36 -07:00