8
submitted 1 year ago* (last edited 1 year ago) by j4k3@lemmy.world to c/selfhosted@lemmy.world

This is an abstract curiosity. Let's say I want to use an old laptop to run a LLM AI. I assume I would still need pytorch, transformers, etc. What is the absolute minimum system configuration required to avoid overhead such as schedulers, kernel threads, virtual memory, etc. Are there options to expose the bare metal and use a networked machine to manage overhead? Maybe a way to connect the extra machine as if it is an extra CPU socket or NUMA module? Basically, I want to turn an entire system into a dedicated AI compute module.

you are viewing a single comment's thread
view the rest of the comments
[-] InvertedParallax@lemm.ee 8 points 1 year ago

Stop. Go back. This is the wrong way.

If you're running python you basically need a full os.

There are projects that run as an rtos, and in fact I worked on an ml soc that ran Linux, but there are 2 levels here:

  1. The ml processing itself, ie the math. This is simple in software and very complex otherwise. The software just says "copy this block and start running a matrix multiply". The hard logic is in moving data around efficiently.

  2. The stack. This is high level, python or so, and has graph processing overhead too. This needs a lot of "overhead" by its nature.

In either case, don't worry about any of this, the overhead won't be very noticeable, you'll be cpu gated hard, the main thing is finding an optimized pytorch library.

If you have an amd cpu or somehow have an nvidia gpu in your laptop you might be able to use their pytorch library which would improve performance by roughly 1.5-2 orders of magnitude.

Unfortunately there isn't a pytorch implementation for Intel igpus, but there is an opencl backend for pytorch, and apparently this madlad got it working through opencl on an Intel igpu: https://dev-discuss.pytorch.org/t/implementing-opencl-backend-for-pytorch/283/9

But don't worry about overhead, it's less than fractions of percents in these kinds of tasks and there are ways to bypass them completely.

[-] j4k3@lemmy.world 3 points 1 year ago

Seems like avoiding context switching and all the overhead associated would make a big difference when pretty much everything in cache is critical data.

I'm more curious about running something like Bark TTS where the delay is not relevant, but it would be cool to have the instructional clarity of the Halo Master Chief voice read me technical documentation, or test the effects of training my own voice, tuned to how I hear it, reading me stuff I find challenging. If the software is only able to process around 10 seconds at a time, just script it and let it run. The old machine will just collect dust otherwise.

Anyways, what's the best scheduler with affinity/isolation/pinning?

[-] spike@discuss.tchncs.de 4 points 1 year ago

Seems like avoiding context switching and all the overhead associated would make a big difference when pretty much everything in cache is critical data.

It's not. Like the commenter above said: It's a fraction of the task at hand. Especially when you design the rest of the system to run only if necessary. Context Switches are what? like 50 CPU Cycles? Store Registers, Store TCB, Load other TCB and load other register states jump back to PC. Maybe some other OS Shenanigans, but that's basically it.

Now Imagine complex calculations on a 25-Dimensional Matrix.

load more comments (4 replies)
load more comments (4 replies)
this post was submitted on 09 Aug 2023
8 points (78.6% liked)

Selfhosted

38709 readers
175 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS