Replies: 1 comment
|
Tested this directly on a different card (AMD RX 580, Polaris/Vulkan — warp size 64, int dot: 0) using the exact same model file as Baseline (q8_0/q8_0, averaged across 3 runs): pp512: ~990 t/s — well ahead of both your CUDA (834) and Vulkan (242-494) numbers, makes sense given the RX 580 is a bigger/newer card. KV cache type matters more than backend choice:
K type | V type | pp512 | tg128
-- | -- | -- | --
f16 | f16 | 940.38 ± 6.17 | 37.14 ± 0.17
q8_0 | q8_0 | 974.39 ± 30.98 | 30.51 ± 0.45
f16 | q8_0 (mixed) | 346.79 ± 7.60 | 12.89 ± 0.28
q8_0 | f16 (mixed) | 524.27 ± 5.66 | 12.68 ± 0.31
Mixing K and V types is the real trap — it tanks both pp and tg hard, likely falling back to a slower path when types differ. Pure f16 beats pure q8_0 on tg by ~22% here (probably no per-token dequant overhead, since Polaris has no native int8 path), at a small pp cost (~3.6%). Also worth noting: this card requires Side note on Bottom line on "can I get both pp and tg high": backend choice isn't the main lever here — matching K/V cache types is. f16/f16 if tg matters more (chat), q8_0/q8_0 if pp matters more (long prompts), never mix them. Reproducible with: If you're curious how far this kind of legacy hardware revival goes — Vulkan's been supported since 2016/2017, so this isn't AMD-specific. I've documented the full stack (llama.cpp + stable-diffusion.cpp, no CUDA/ROCm) on an RX 580, including an interactive step-by-step "Cookbook" for setting up local AI on old Nvidia/AMD/Intel GPUs: https://github.com/aivisionslab-studios/rx580-local-ai-guide Hardware doesn't die — it just waits for the right software. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hi every one,
After installing llamacpp on my server, I decided to test it into an old pc and see how it runs.
Specs:
Intel Core2 Quad Desktop Q6600
4gb DDR2 Ram
NVIDIA GT 1030 2gb
SSD 256gb
I installed ubuntu server and start testing (The model is from HF):
load_backend: loaded RPC backend from /llamacpp/llama-b9102/libggml-rpc.so
ggml_vulkan: Found 1 Vulkan devices:
ggml_vulkan: 0 = NVIDIA GeForce GT 1030 (NVIDIA) | uma: 0 | fp16: 0 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: none
load_backend: loaded Vulkan backend from /llamacpp/llama-b9102/libggml-vulkan.so
load_backend: loaded CPU backend from /llamacpp/llama-b9102/libggml-cpu-x64.so
_0 -ctv q8_0
ggml_vulkan: Found 1 Vulkan devices:
ggml_vulkan: 0 = NVIDIA GeForce GT 1030 (NVIDIA) | uma: 0 | fp16: 0 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 0 | matrix cores: none
ggml_cuda_init: found 1 CUDA devices (Total VRAM: 1991 MiB):
Device 0: NVIDIA GeForce GT 1030, compute capability 6.1, VMM: yes, VRAM: 1991 MiB
Anyone can explain me why using Vulkan tg increases? And why using Cuda the pp increases?
Is there any way to get the mix of pp ~800t/s and tg ~60t/s?
Thanks!!
All reactions