Performance of llama.cpp with Vulkan #10879
Replies: 25 comments 25 replies
-
AMD FirePro W8100
|
Beta Was this translation helpful? Give feedback.
-
AMD RX 470
|
Beta Was this translation helpful? Give feedback.
-
ubuntu 24.04, vulkan and cuda installed from official APT packages.
build: 4da69d1 (4351) vs CUDA on the same build/setup
build: 4da69d1 (4351) |
Beta Was this translation helpful? Give feedback.
-
Macbook Air M2 on Asahi Linux ggml_vulkan: Found 1 Vulkan devices:
|
Beta Was this translation helpful? Give feedback.
-
Gentoo Linux on ROG Ally (2023) Ryzen Z1 Extreme ggml_vulkan: Found 1 Vulkan devices:
|
Beta Was this translation helpful? Give feedback.
-
ggml_vulkan: Found 4 Vulkan devices:
|
Beta Was this translation helpful? Give feedback.
-
build: 0d52a69 (4439) NVIDIA GeForce RTX 3090 (NVIDIA)
AMD Radeon RX 6800 XT (RADV NAVI21) (radv)
AMD Radeon (TM) Pro VII (RADV VEGA20) (radv)
Intel(R) Arc(tm) A770 Graphics (DG2) (Intel open-source Mesa driver)
|
Beta Was this translation helpful? Give feedback.
-
@netrunnereve Some of the tg results here are a little low, I think they might be debug builds. The cmake step (at least on Linux) might require |
Beta Was this translation helpful? Give feedback.
-
Build: 8d59d91 (4450)
Lack of proper Xe coopmat support in the ANV driver is a setback honestly.
edit: retested both with the default batch size. |
Beta Was this translation helpful? Give feedback.
-
Here's something exotic: An AMD FirePro S10000 dual GPU from 2012 with 2x 3GB GDDR5. build: 914a82d (4452)
|
Beta Was this translation helpful? Give feedback.
-
Latest arch with For the sake of consistency I run every bit in a script and also build every target from scratch (for some reason kill -STOP -1
timeout 240s $COMMAND
kill -CONT -1
ggml_vulkan: Found 1 Vulkan devices:
ggml_vulkan: 0 = Intel(R) Iris(R) Xe Graphics (TGL GT2) (Intel open-source Mesa driver) | uma: 1 | fp16: 1 | warp size: 32 | matrix cores: none
build: ff3fcab (4459)
This bit seems to underutilise both GPU and CPU in real conditions based on
|
Beta Was this translation helpful? Give feedback.
-
Intel ARC A770 on Windows:
build: ba8a1f9 (4460) |
Beta Was this translation helpful? Give feedback.
-
Single GPU VulkanRadeon Instinct MI25 ggml_vulkan: 0 = AMD Radeon Instinct MI25 (RADV VEGA10) (radv) | uma: 0 | fp16: 1 | warp size: 64 | matrix cores: none
build: 2739a71 (4461) Radeon PRO VII ggml_vulkan: 0 = AMD Radeon Pro VII (RADV VEGA20) (radv) | uma: 0 | fp16: 1 | warp size: 64 | matrix cores: none
build: 2739a71 (4461) Multi GPU Vulkanggml_vulkan: 0 = AMD Radeon Pro VII (RADV VEGA20) (radv) | uma: 0 | fp16: 1 | warp size: 64 | matrix cores: none
build: 2739a71 (4461) ggml_vulkan: 0 = AMD Radeon Pro VII (RADV VEGA20) (radv) | uma: 0 | fp16: 1 | warp size: 64 | matrix cores: none
build: 2739a71 (4461) Single GPU RocmDevice 0: AMD Radeon Instinct MI25, compute capability 9.0, VMM: no
build: 2739a71 (4461) Device 0: AMD Radeon Pro VII, compute capability 9.0, VMM: no
build: 2739a71 (4461) Multi GPU RocmDevice 0: AMD Radeon Pro VII, compute capability 9.0, VMM: no
build: 2739a71 (4461) Layer split
build: 2739a71 (4461) Row split
build: 2739a71 (4461) Single GPU speed is decent, but multi GPU trails Rocm by a wide margin, especially with large models due to the lack of row split. |
Beta Was this translation helpful? Give feedback.
-
AMD Radeon RX 5700 XT on Arch using mesa-git and setting a higher GPU power limit compared to the stock card.
I also think it could be interesting adding the flash attention results to the scoreboard (even if the support for it still isn't as mature as CUDA's).
|
Beta Was this translation helpful? Give feedback.
-
I tried but there's nothing after 1 hrs , ok, might be 40 mins... Anyway I run the llama_cli for a sample eval...
Meanwhile OpenBLAS
|
Beta Was this translation helpful? Give feedback.
-
Intel ARC B580 on Linux:
build: 9a48399 (4465) |
Beta Was this translation helpful? Give feedback.
-
It's a Nintendo Switch (2017). Since OOM with llama-2-7b.Q4_0.gguf, I tried with a smaller model.
build: 9a48399 (1) |
Beta Was this translation helpful? Give feedback.
-
EPYC 7352 24core 64GB dual channel 2x MI60 Archlinux Mesa 24.3.3 radv [cb88@M31-AR0 bin]$ ./llama-bench -m ~/Downloads/llama-2-7b.Q4_0.gguf -ngl 100
[cb88@M31-AR0 bin]$ export GGML_VK_VISIBLE_DEVICES=0
build: 504af20 (4476) ROCm 6.2.4 only build for reference 2x MI60
ROCm 6.2.4 gfx900 2x MI60
ROCm 6.2.4 gfx900 force 1 device
ROCm 6.2.4 gfx906 force 1 device (same results with -sm none -mg 0)
MI25 110W in same system ROCM 6.2
MI25 110W Vulkan Radv 24.3.3
|
Beta Was this translation helpful? Give feedback.
-
AMD Ryzen 5 8645HS w/ Radeon 760M Graphics 4.30 GHz Vulkan:
build: d79d8f3 (4393) CUDA:
build: d79d8f3 (4393) |
Beta Was this translation helpful? Give feedback.
-
How does Kompute compare? I know @slp is using Kompute backend alternatively for podman machine |
Beta Was this translation helpful? Give feedback.
-
Nothing overly exciting, but a GPU that wasn't listed yet. Win11 ggml_vulkan: 0 = AMD Radeon RX 6600 XT (AMD proprietary driver) | uma: 0 | fp16: 1 | warp size: 64 | matrix cores: none
build: 091592d (4481) |
Beta Was this translation helpful? Give feedback.
-
RTX 4070 with Vulkan Developer Driver 553.51 (includes NV_coopmat2 support). llama.cpp commit 9a48399. Default settings:
With flash attention (
With KHR_coopmat instead (
|
Beta Was this translation helpful? Give feedback.
-
AMD Radeon RX 5700 XT on Windows 11 (latest AMD drivers).
Here I also post the Linux results for the proprietary driver.
|
Beta Was this translation helpful? Give feedback.
-
Venerable T480 with ggml_vulkan: Found 1 Vulkan devices:
ggml_vulkan: 0 = Intel(R) UHD Graphics 620 (KBL GT2) (Intel open-source Mesa driver) | uma: 1 | fp16: 1 | warp size: 32 | matrix cores: none
build: f26c874 (4505) Without extra tricks I'm afraid this is the absolute limit. |
Beta Was this translation helpful? Give feedback.
-
Linux 6.12.9, Radeon RX 6900 XT, build 44e18ef (4503), AMDGPU-PRO (6.3.0)
Mesa RADV 23.3.3
AMD HIP (6.2.4) for comparison
|
Beta Was this translation helpful? Give feedback.
-
This is similar to the Apple Silicon benchmark thread, but for Vulkan! Many improvements have been made to the Vulkan backend in the past month and I think it's good to consolidate and discuss our results here.
We'll be testing the Llama 2 7B model like the other thread to keep things consistent, and use Q4_0 as it's simple to compute and small enough to fit on a 4GB GPU. You can download it here.
Instructions
Share your llama-bench results along with the git hash and Vulkan info string in the comments. Feel free to try other models, compare backends, and so forth, but only valid runs will be placed on the scoreboard.
If multiple entries for posted for the same device the one with the highest tg128 score will be used. Performance may vary depending on driver, operating system, board manufacturer, and so forth even if the chip is the same.
Vulkan Scoreboard for Llama 2 7B, Q4_0 (sorted by tg128)
Beta Was this translation helpful? Give feedback.
All reactions