54 lines
1.5 KiB
Bash
54 lines
1.5 KiB
Bash
#!/bin/bash
|
|
# Test basic tensor.to(cuda) - does hipMemcpy work at all?
|
|
cd /home/fabian/ComfyUI
|
|
source venv/bin/activate
|
|
|
|
export HSA_OVERRIDE_GFX_VERSION=10.1.0
|
|
export HSA_ENABLE_SDMA=0
|
|
export HIP_VISIBLE_DEVICES=0
|
|
export PYTORCH_HIP_ALLOC_CONF=garbage_collection_threshold:0.8
|
|
|
|
timeout 30 python3 -c "
|
|
import torch, time, os
|
|
print(f'CUDA available: {torch.cuda.is_available()}')
|
|
print(f'Device: {torch.cuda.get_device_name(0)}')
|
|
|
|
# Test 1: Create on GPU (already works)
|
|
print('Test 1: torch.randn on GPU...')
|
|
t0 = time.time()
|
|
a = torch.randn(10, device='cuda')
|
|
print(f' OK in {time.time()-t0:.2f}s: {a[:3]}')
|
|
|
|
# Test 2: CPU to GPU transfer (the problematic path)
|
|
print('Test 2: tensor.to(cuda) small...')
|
|
b = torch.randn(10)
|
|
t0 = time.time()
|
|
c = b.to('cuda')
|
|
print(f' OK in {time.time()-t0:.2f}s: {c[:3]}')
|
|
|
|
# Test 3: Larger transfer
|
|
print('Test 3: tensor.to(cuda) 1MB...')
|
|
d = torch.randn(256*1024)
|
|
t0 = time.time()
|
|
e = d.to('cuda')
|
|
print(f' OK in {time.time()-t0:.2f}s, shape={e.shape}')
|
|
|
|
# Test 4: uint8 transfer (like GGUF)
|
|
print('Test 4: uint8 tensor.to(cuda)...')
|
|
f = torch.randint(0, 255, (1024*1024,), dtype=torch.uint8)
|
|
t0 = time.time()
|
|
g = f.to('cuda')
|
|
print(f' OK in {time.time()-t0:.2f}s, shape={g.shape}')
|
|
|
|
# Test 5: Large uint8 (like a GGUF weight)
|
|
print('Test 5: 10MB uint8 tensor.to(cuda)...')
|
|
h = torch.randint(0, 255, (10*1024*1024,), dtype=torch.uint8)
|
|
t0 = time.time()
|
|
i = h.to('cuda')
|
|
print(f' OK in {time.time()-t0:.2f}s, shape={i.shape}')
|
|
|
|
print('ALL TESTS PASSED - hipMemcpy works!')
|
|
os._exit(0)
|
|
" 2>&1
|
|
echo "Exit code: $?"
|