Hey everyone! I was just skimming through some inference benchmarks of other people and noticed the driver version is usually mentioned. It made me wonder how relevant this is. My prod server runs Debian 12 so the packaged nvidia drivers are rather old, but I’d prefer not to mess with the drivers if it won’t bring a benefit. Does any of you have any experience or did do some testing?

  • snikta@programming.dev
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    17 days ago

    TLDR: Yes, it matters. Especially when it comes to inference and “new” features and hacks it relies on.

    What GPU and what inference engine are you using?

    On Debian I would use the stable version (not old stable) and I would enable nonfree firmware and also the backports version of the kernel and nonfree firmware. Then you’re probably set for a year or two.

    An old kernel with only free firmware likely performs much worse. Look at the release logs of the Linux kernel and any GPU driver.

    If your hardware is very old, it probably doesn’t matter super much. But sometimes it does (like when a manufacturer decides to unlock some sleeping feature in an old forgotten device).

    • robber@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      17 days ago

      I use the the proprietary ones from Nvidia, they’re at 535 on oldstable IIRC but there are a lot newer ones.

      I use 3xRTX2000e Ada. It’s a rather new, quite power efficient GPU manufactured by PNY.

      As inference engine I use exllamav3 with tabbyAPI. I like it very much because it supports 3-way tensor paralellism, making it a lot faster for me than llamacpp.

      • snikta@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        16 days ago

        Oh, that’s quite fancy hardware.

        Hmm… Unless exllama is explicitly recommended by NVIDIA for that particular GPU and setup, it seems “risky”. vLLM seems to be the popular choice for most “production” systems. I’m switching from llama.cpp to vLLM because of better performance and its the engine recommended by most model providers. I don’t really have the time to benchmark, so I’ll just do what the documentation says. And it’s really hard to do good benchmarks. Especially when “qualitative language performance” can vary for the same weights on different hardware/software.

        With that kind of hardware, I would do exactly what NVIDIA and your model provider(s) say. Otherwise you might waste a lot of GPU power.

        • robber@lemmy.mlOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          16 days ago

          Thank you for taking the time to respond.

          I’ve used vLLM for hosting a smaller model which could fit in two of GPUs, it was very performant especially for multiple requests at the same time. The major drawback for my setup was that it only supports tensor parallelism for 2, 4, 8, etc. GPUs and data paralellism slowed inference down considerably, at least for my cards. exllamav3 is the only engine I’m aware of which support 3-way TP.

          But I’m fully with you in that vLLM seems to be the most recommended and battle-tested solution.

          I might take a look at how I can safely upgrade the driver until I can afford a fourth card and switch back to vLLM.

  • TheMightyCat@ani.social
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    17 days ago

    If I were to guess the biggest peformance impact is if your driver doesn’t support newer types like FP4 and FP8 while your hardware does, but I am not sure.

  • Alex@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    17 days ago

    Are you using open drivers or the binary proprietary ones? As I understand it with open drivers most of the work is in the Mesa user space and trying hand built versions of that is a lot easier.

    • robber@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      17 days ago

      I use the the proprietary ones from Nvidia, they’re at 535 on oldstable IIRC but there are a lot newer ones.

  • tal@lemmy.today
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    16 days ago

    On AMD hardware, I moved from rocm 6 to 7 and the associated amdgpu driver release and saw pretty noticeable inference performance improvements on an RX 7900 XTX with llama.cpp (as of rocm 7.0.2, AMD has a Debian Trixie build, BTW).

    But I imagine that AMD/Nvidia, specific hardware, application, and settings are probably all major inputs into that. YMMV.

    EDIT: Not to mention model being run.

  • keepthepace@tarte.nuage-libre.fr
    link
    fedilink
    Français
    arrow-up
    3
    ·
    16 days ago

    The CUDA version is what matters the most (assuming you are on NVidia). Later CUDA versions have optimizations that earlier don’t, this may in turn dictate the actual driver version you can use.

    I guess some models will simply deactivate some optimizations if you don’t have an appropriate version, though I mostly am aware of them failing in that case :-/

    If you compare a model running on CUDA 11 vs a model running on CUDA 12, people may point out that it could be unfair, though this is generally nitpicky.

    If you are worried about your perfs not being optimal, look in the log for messages like “<fast attention scheme XYZ> was deactivated because <cudaSuperOptimizedMegaSparseMatMult> was not available”

    • robber@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      16 days ago

      I see. When I run the inference engine containerized, will the container be able to run its own version of CUDA or use the host’s version?

      • keepthepace@tarte.nuage-libre.fr
        link
        fedilink
        Français
        arrow-up
        2
        ·
        15 days ago

        I am not sure, I have tried to avoid this whole situation in the last few years :-) IIRC it can have its own CUDA version, but double check that.