This repository has been archived on 2026-08-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ROCm-Research-Archive/_TestScripts/Scripts and Tests/gpu_transfer_safe.sh
T
2026-08-20 00:45:43 +02:00

51 lines
1.7 KiB
Bash

#!/bin/bash
export HSA_OVERRIDE_GFX_VERSION=10.1.0
export HSA_ENABLE_SDMA=0
export HIP_VISIBLE_DEVICES=0
export TORCHDYNAMO_DISABLE=1
export PYTORCH_HIP_ALLOC_CONF=garbage_collection_threshold:0.8,max_split_size_mb:128
export TORCH_BLAS_PREFER_HIPBLASLT=0
/home/fabian/ComfyUI/venv/bin/python -c "
import torch
import time
print('=== BC-250 Transfer Test (no empty_cache) ===')
print(f'Device: {torch.cuda.get_device_name(0)}')
# Test: Keep all tensors on GPU, no empty_cache(), do compute
print()
print('Test: 50x transfer+matmul [2560x2560 f16], NO empty_cache')
t0 = time.time()
for i in range(50):
a = torch.randn(2560, 2560, dtype=torch.float16).to('cuda:0', non_blocking=False)
b = torch.randn(2560, 2560, dtype=torch.float16).to('cuda:0', non_blocking=False)
c = torch.matmul(a, b)
torch.cuda.synchronize()
del a, b, c
if (i+1) % 10 == 0:
mem = torch.cuda.memory_allocated() / 1024**2
print(f' {i+1}/50 done, GPU mem: {mem:.0f}MB ({time.time()-t0:.1f}s)')
print(f' Total: {time.time()-t0:.1f}s')
# Test 2: Simulate lowvram layer loading pattern
print()
print('Test2: Simulated UNET forward (453 layers)')
t0 = time.time()
for i in range(453):
# Simulate dequant on CPU -> transfer to GPU
w = torch.randn(1024, 1024, dtype=torch.float16).to('cuda:0', non_blocking=False)
# Simulate compute
x = torch.randn(1, 1024, dtype=torch.float16, device='cuda:0')
y = torch.matmul(x, w.T)
torch.cuda.synchronize()
del w, x, y
if (i+1) % 100 == 0:
mem = torch.cuda.memory_allocated() / 1024**2
print(f' Layer {i+1}/453, GPU mem: {mem:.0f}MB ({time.time()-t0:.1f}s)')
print(f' Total: {time.time()-t0:.1f}s')
print()
print('ALL TESTS PASSED')
"