Skip to content

Feature Request: add indicator for which of MMQ vs cuBLAS is used #8350

Closed
@isaac-mcfadyen

Description

@isaac-mcfadyen

Prerequisites

  • I am running the latest code. Mention the version if possible as well.
  • I carefully followed the README.md.
  • I searched using keywords relevant to my issue to make sure that I am creating a new issue that is not already open (or closed).
  • I reviewed the Discussions, and have a new and useful enhancement to share.

Feature Description

Continuing discussion at #8340.

Since #8075, MMQ is now the default for Nvidia GPUs with int8 tensor core support (vs cuBLAS).

There are flags to force MMQ or cuBLAS, and if you don't specify those then llama.cpp picks automatically. However, as far as I can see, there is no indication which is being picked if it's done automatically.

This FR is to request some sort of output showing which is being picked, either at compile-time or run-time - a small using MMQ kernels or using cuBLAS kernels would suffice, or even a line during compile-time (if that's when the decision happens).

Motivation

MMQ is faster with smaller batch sizes, but is slower at higher batch sizes.

Having an indication of whether MMQ or cuBLAS is being used would help to show why certain batch sizes may be suboptimal for speed, or whether it is beneficial to force MMQ or cuBLAS when compiling.

E.g. "my speeds are slow at higher batch sizes and I see MMQ is enabled, maybe I should disable it" or "I'd like to optimize speed at lower batch sizes and I see that MMQ is not enabled, maybe I'll try and force it on"

Possible Implementation

N/A, not familiar enough with the codebase to suggest where this could be added.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions