For years I’ve had a dream of building a rack mounted PC capable of splitting its resources to host multiple GPU intensive VMs:

  • a few gaming VMs
  • a VM for work that can run Davinci Resolve and Blender renders
  • an LLM server
  • a Stable Diffusion server
  • media server

Just to name a few possibilities…

Everytime I’ve looked into it, it seemed like the technology just wasn’t there yet. I remember a few years ago Linus TT took a shot at it, but in the end suggested the technology (for non-commercial entities) just wasn’t in a comfortable spot yet.

So how far off are we? Obviously AI focused companies seem to make it work, but what possibilities exist for us self-hosters who might also want to run multiple displays in addition to the web gui LLM servers? And without forking out crazy money for GPU virtualization software licenses?

  • MudMan@fedia.io
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    6 months ago

    OK, but why?

    Well, for fun and as a cool hobby project, I get that. That is enough to justify it, like any other crazy hobbyist project. Don’t let me stop you.

    But in the spirit of practicality and speaking hypothetically: Why set it up that way?

    For self-hosting why not build a few standalone machines and run off that instead? The reason to do this large scale is optimizing resources so you can assign a smaller pool of hardware to users as they need it, right? For a home set of two or three users you’d probably notice the fluctuations in performance caused by sharing the resources on the gaming VMs and it would cost you the same or more than building a couple reasonable gaming systems and a home server/NAS for the rest. Way less, I bet, if you’re smart about upgrades and hand-me-downs.

    • Catsrules@lemmy.ml
      link
      fedilink
      English
      arrow-up
      4
      ·
      6 months ago

      Yep this has been my hold up. It is mostly just a solution in search of a problem.

      The best use case I have come up with is if you have an nice computer and an extra GPU laying around. You could turn the single computer into two workstation/gaming computers.

      • MudMan@fedia.io
        link
        fedilink
        arrow-up
        2
        ·
        6 months ago

        Yeah, but if you’re this deep into the self hosting rabbit hole what circumstances lead to having an extra GPU laying around without an extra everything else, even if it’s relartively underpowered? You’ll probably be able to upgrade it later by recycling whatever is in your nice PC next time you upgrade something.

        At this point most of my household is running some frankenstein of phased out parts just to justify my main build. It’s a bit of a problem, actually.

        • vividspecter@lemm.ee
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          6 months ago

          Mainly because running multiple desktop machines adds up to a lot of power, even at idle. If you power them off and on as needed it’s better, but then it’s not as convenient. Of course, if you leave a single machine with multiple GPUs on 24/7 that will also eat a lot of power, but it will be less than multiple machines turned on 24/7 at least.

          And the physical space taken up by multiple desktop machines starts to add up significantly, particularly if you live in an apartment or smaller house.

          • MudMan@fedia.io
            link
            fedilink
            arrow-up
            1
            ·
            6 months ago

            I guess that depends on the use case and how frequently both machines are running simultaneously. Like I said, that reasoning makes a lot of sense if you have a bunch of users coming and going, but the OP is saying it’s two instances at most, so… I don’t know if the math makes virtualization more efficient. It’d pobably be more efficient by the dollar, if the server is constantly rendering something in the background and you’re only sapping whatever performance you need to run games when you’re playing.

            But the physical space thing is debatable, I think. This sounds like a chonker of a setup either way, and nothing is keeping you from stacking or rack-mounting two PCs, either. Plus if that’s the concern you can go with very space-efficient alternatives, including gaming laptops. I’ve done that before for that reason.

            I suppose it’s why PC building as a hobbyist is fun, there are a lot of balance points and you can tweak a lot of knobs to balance many different things between power/price/performance/power consumption/whatever else.

        • Catsrules@lemmy.ml
          link
          fedilink
          English
          arrow-up
          2
          ·
          6 months ago

          I have upgraded my GPU on my desktop without upgrading anything else. Leaving me with a spare GPU and no other hardware.

          Self hosting, I have also pulled GPUs out of systems to keep the power requirements down. As most of the time onboard GPUs are just fine for Self hosting applications. Also leaving me with a spare GPU.

          However over the years GPUs have because more popular for processing there are more arguments to keep the GPU in a home server. So I can see how this is going away.

    • brownmustardminion@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 months ago

      Maybe my situation is just unique, but due to my job I’m able to have a single workstation with multiple high VRAM GPUs. I wouldn’t be able to justify the cost of buying new GPUs and an entire rig just for gaming or AI image/video. I wouldn’t foresee more than 2 VMs using the GPU in high priority at any single time.

      When I’m not working this system sits idle or is running renders. Why not utilize the amazing resources I have to serve my other needs?

      • MudMan@fedia.io
        link
        fedilink
        arrow-up
        3
        ·
        6 months ago

        OK, yeah, that makes sense. And it IS pretty unique, to have a multi-GPU system available at home but just idling when not at work. I think I’d still try to build a standalone second machine for that second user, though. You can then focus on making the big boy accessible from wherever you want to use it for gaming, which seems like a much more manageable, much less finicky challenge. That second computer would probably end up being relatively inexpensive to match the average use case for half of the big server thing. Definitely much less of a hassle. I’ve even had a gaming laptop serve that kind of purpose just because I needed a portable workstation with a GPU anyway, so it could double as a desktop replacement for gaming with someone else at home, but of course that depends on your needs.

        And in that scenario you could also just run all that LLM/SD stuff in the background and make it accessible across your network, I think that’s pretty trivial whether it’s inside a VM or running directly on the same environment as everything else as a background process. Trivial compared to a fully virtualized gaming computer sharing a pool of GPUs, anyway.

        Feel free to tell us where you land, it certainly seems like a fun, quirky setup etiher way.