40 lines
1.3 KiB
Bash
40 lines
1.3 KiB
Bash
#!/bin/bash
|
|
# Patch: Disable torch.cuda.empty_cache to prevent heap corruption on BC-250
|
|
# Add after the dynamo disable block
|
|
|
|
cd /home/fabian/ComfyUI
|
|
|
|
# 1. Add empty_cache kill after dynamo block
|
|
python3.11 -c "
|
|
import re
|
|
|
|
with open('bc250_softmax_patch.py', 'r') as f:
|
|
content = f.read()
|
|
|
|
# Check if already patched
|
|
if 'empty_cache = lambda' in content:
|
|
print('Already patched - empty_cache kill exists')
|
|
else:
|
|
# Insert after the dynamo block
|
|
marker = ' logger.warning(\"[BC-250] torch._dynamo: TORCHDYNAMO_DISABLE=1 (env only)\")'
|
|
insert = '''
|
|
|
|
# === EMPTY_CACHE KILL ===
|
|
# BC-250 HIP allocator has heap corruption bug triggered by torch.cuda.empty_cache()
|
|
# free(): invalid next size (normal) → SIGABRT on repeated alloc/free cycles
|
|
# Disable empty_cache globally — BC-250 APU has shared memory, no eviction needed
|
|
_original_empty_cache = torch.cuda.empty_cache
|
|
torch.cuda.empty_cache = lambda: None
|
|
logger.warning(\"[BC-250] torch.cuda.empty_cache → DISABLED (HIP heap corruption fix)\")
|
|
'''
|
|
content = content.replace(marker, marker + insert)
|
|
|
|
with open('bc250_softmax_patch.py', 'w') as f:
|
|
f.write(content)
|
|
print('Patched: empty_cache kill added')
|
|
"
|
|
|
|
# 2. Also remove the explicit empty_cache calls in the patch itself
|
|
# (they're now no-ops anyway but cleaner to remove)
|
|
echo "Done"
|