Uploaded sanitized BC250/ROCm Repository.
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Fix: maximize threading to 12 cores, add --lowvram for 7.6GB VRAM, restart ComfyUI."""
|
||||
import paramiko
|
||||
import time
|
||||
|
||||
ssh = paramiko.SSHClient()
|
||||
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
ssh.connect('192.168.178.150', username='fabian', key_filename=r'C:\Users\fabia\.ssh\id_ed25519')
|
||||
|
||||
def run(cmd, timeout=300, desc=""):
|
||||
if desc:
|
||||
print(f"\n{'='*60}")
|
||||
print(f" {desc}")
|
||||
print(f"{'='*60}")
|
||||
print(f"$ {cmd[:300]}")
|
||||
_, stdout, stderr = ssh.exec_command(cmd, timeout=timeout)
|
||||
out = stdout.read().decode()
|
||||
err = stderr.read().decode()
|
||||
rc = stdout.channel.recv_exit_status()
|
||||
if out.strip():
|
||||
lines = out.strip().split('\n')
|
||||
if len(lines) > 40:
|
||||
print(f" ... ({len(lines)} lines, showing last 40)")
|
||||
print('\n'.join(lines[-40:]))
|
||||
else:
|
||||
print(out.strip())
|
||||
if err.strip():
|
||||
lines = err.strip().split('\n')
|
||||
show = lines[-15:] if len(lines) > 15 else lines
|
||||
print(f"STDERR: {chr(10).join(show)}")
|
||||
print(f" Exit code: {rc}")
|
||||
return rc, out, err
|
||||
|
||||
# 1. Kill any existing ComfyUI
|
||||
run("bash -c 'pkill -9 -f \"python main.py\" 2>/dev/null; sleep 2; echo ok'",
|
||||
desc="Kill existing ComfyUI")
|
||||
|
||||
# 2. Write updated start_comfyui.sh with full threading + lowvram
|
||||
startup_script = r'''#!/bin/bash
|
||||
# ComfyUI Startup Script for AsRock BC-250 (AMD Cyan Skillfish / ROCm 7.2)
|
||||
# Optimized for all 12 CPU cores + 7.6GB shared VRAM
|
||||
set -euo pipefail
|
||||
|
||||
# ═══════════════ BC-250 GPU Environment ═══════════════
|
||||
export HSA_OVERRIDE_GFX_VERSION=10.1.0
|
||||
export HIP_VISIBLE_DEVICES=0
|
||||
export HSA_ENABLE_SDMA=0
|
||||
export HSA_TOOLS_LIB=""
|
||||
export HSA_TOOLS_REPORT_LOAD_FAILURE=0
|
||||
|
||||
# ═══════════════ THREADING — ALL 12 CORES ═══════════════
|
||||
export OMP_NUM_THREADS=12
|
||||
export MKL_NUM_THREADS=12
|
||||
export OPENBLAS_NUM_THREADS=12
|
||||
export VECLIB_MAXIMUM_THREADS=12
|
||||
export NUMEXPR_NUM_THREADS=12
|
||||
# PyTorch intra-op (tensor math) and inter-op (parallel node execution) threads
|
||||
export TORCH_NUM_THREADS=12
|
||||
|
||||
# ═══════════════ Memory / ROCm tuning ═══════════════
|
||||
export PYTORCH_HIP_ALLOC_CONF="expandable_segments:False"
|
||||
export TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1
|
||||
# Disable HIP memory caching to avoid fragmentation on shared VRAM
|
||||
export PYTORCH_NO_HIP_MEMORY_CACHING=0
|
||||
|
||||
# ═══════════════ Activate venv ═══════════════
|
||||
source "$HOME/comfyui-env/bin/activate"
|
||||
|
||||
cd "$HOME/ComfyUI"
|
||||
|
||||
# Force PyTorch to use all 12 cores
|
||||
python3 -c "import torch; torch.set_num_threads(12); torch.set_num_interop_threads(12); print(f'Threads: intra={torch.get_num_threads()} inter={torch.get_num_interop_threads()}')"
|
||||
|
||||
echo "=========================================="
|
||||
echo " ComfyUI on BC-250 (ROCm 7.2)"
|
||||
echo " GPU: AMD Cyan Skillfish (gfx1013→gfx1010)"
|
||||
echo " PyTorch: $(python3 -c 'import torch; print(torch.__version__)')"
|
||||
echo " HIP: $(python3 -c 'import torch; print(torch.version.hip)')"
|
||||
echo " CUDA: $(python3 -c 'import torch; print(torch.cuda.is_available())')"
|
||||
echo " CPU: $(nproc) cores (all used)"
|
||||
echo " VRAM: 7.6GB shared — using --lowvram mode"
|
||||
echo "=========================================="
|
||||
|
||||
# Default: listen on all interfaces, --lowvram for 7.6GB shared VRAM
|
||||
LISTEN_ARGS="--listen 0.0.0.0 --port 8188 --lowvram"
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
LISTEN_ARGS="$@"
|
||||
fi
|
||||
|
||||
echo "Starting: python main.py $LISTEN_ARGS"
|
||||
echo "Access at: http://192.168.178.150:8188"
|
||||
echo ""
|
||||
|
||||
# Set threads inside the actual process too
|
||||
exec python3 -c "
|
||||
import torch, sys, os
|
||||
torch.set_num_threads(12)
|
||||
torch.set_num_interop_threads(12)
|
||||
# Now exec ComfyUI main
|
||||
sys.argv = ['main.py'] + '$LISTEN_ARGS'.split()
|
||||
exec(open('main.py').read())
|
||||
"
|
||||
'''
|
||||
|
||||
sftp = ssh.open_sftp()
|
||||
with sftp.open('/home/fabian/start_comfyui.sh', 'w') as f:
|
||||
f.write(startup_script)
|
||||
sftp.close()
|
||||
|
||||
run("chmod +x /home/fabian/start_comfyui.sh", desc="Make script executable")
|
||||
|
||||
# 3. Launch ComfyUI with new settings
|
||||
run("bash -c 'rm -f /home/fabian/comfyui.log'", desc="Clean old log")
|
||||
run("bash -c 'nohup bash /home/fabian/start_comfyui.sh > /home/fabian/comfyui.log 2>&1 & echo PID=$!'",
|
||||
desc="Launch ComfyUI with 12-core threading + lowvram")
|
||||
|
||||
# 4. Wait for startup
|
||||
time.sleep(15)
|
||||
run("bash -c 'tail -30 /home/fabian/comfyui.log 2>/dev/null'",
|
||||
desc="Startup log")
|
||||
|
||||
time.sleep(10)
|
||||
run("bash -c 'ss -tlnp | grep 8188 || echo PORT_NOT_LISTENING'",
|
||||
desc="Check port 8188")
|
||||
|
||||
# Verify threads are set
|
||||
run("bash -c 'tail -40 /home/fabian/comfyui.log 2>/dev/null'",
|
||||
desc="Full startup log")
|
||||
|
||||
ssh.close()
|
||||
print("\nDone.")
|
||||
Reference in New Issue
Block a user