Run Kimi K3 using 29 GB of RAM at 0.50 tok/s
github.com
github.com
I'd rather just shell out the money to offload as much as possible to say 2x 4060ti 16gb with tensor parallelisation. Anything but that low token rate.
This is the sort of thing I'd expect in 20 years for some cyberpunk esque "turtlebot" that thinks at 0.5t/s, is solar powered and performs some menial civic maintenance background task like cutting grass, or scrubbing pavements. Or the "slowbot" that sits in the garden slowly pruning a bonsai, only just keeping up with the growth of the young plant.
I wouldn't even be able to afford buying 29 gigs of ram, or a new video card with hardware prices the way they are now.
Maybe if it was 2016-2018 prices, I'd think about it.
There are definitely some tasks, that if the system can run unsupervised (a largeish if), it doesn't matter as long as the result happens before a deadline.
In that respect it is easy to tell if this works for you or not. As a stepping stone to more efficiency in the future it has more value.
You can get a frontier model subscription for about the same cost as the electricity (heavily subsidised by someone else’s money !) with instant results.
I know there are applications for this and it’s cool people are pushing the boundaries with local models. I run oMLX and Qwen myself, but it’s a toy really. It’s not anywhere near replacing Claude for my purposes.
Probably a useless comparison, but in my NYC studio apartment, my electric bill is usually ~$75 per week during the summer. That includes air conditioning, appliances, etc etc, not to mention the Haswell Desktop PC I keep running 24/7, which is rarely idle because I queue up compile jobs and stuff.
I hope that reasoning is an after-the-fact justification by the LLM that wrote this.
It's a ver interesting idea and I wouldn't mind trying it out, but with a smaller model. At 0.5t/s and reading many gigabytes from the SDD every second... I wonder if this wouldn't be extremely practical if targeting a 500gib or 250gib model, something that is still outside most consumers' laptop.
(Doesn't really get you a BLT but hey... at least you'll have saved the world a bit because they're not from the supermarket)
/s
For all of the other commenters - this project isn't about practicality today. Obviously this isn't gonna be as good as using a cloud provider. But the tool draws a line of what is possible. Combination of making the models more efficient, and making local machines more capable can one day get us to a world where very high quality local models are economically feasible.
The cost to run the machine per month is the cost per million tokens.
I think that's just semantics -- unless you genuinely keep racking up non-redeemable energy bill credits for feed-in.
Cost is not the right mental model here, you can and should count them in the amortization plan of your installation (total cost / (projected generated kWh * lifetime)), so every kWh not used and injected is paying for it, while the kWh consumed should be discounted at the price you would pay for them at that specific moment.
> unless you genuinely keep racking up non-redeemable energy bill credits for feed-in.
I know many many cases of people with overdimensioned PV installations that at some point want to leave their current energy company because prices are changing and have hundreds or more of euros in the "virtual battery".
They give you credits for future consumption. You can only spend this on energy. If you always have a surplus, you will just rack up large amounts of credits.
Is the model you're describing (usage credits) in the European market somewhere ?
what an embarrassment
We used an Elastic license for some projects to protect our work from being used in SASS without a prior agreement. WASTE is and will always be available with a very permissive license.
I really don't understand why some people prefer to spread hate instead of just asking for clarification first.
SQLite code itself is public domain but I’m not sure about the name.
What's the benefit of a custom implementation at all?
In my experience llama-server is better run with --no-mmap on things that will fit entirely into RAM. Though obviously you need a 2TB server for full Kimi k3 and 1M context.
The write workloads are just the context and any K/V cache - llama.cpp does not mmap those to disk, so they would remain in memory or VRAM as space affords.
Optanes are a good option here, right?
I bought mine for $100 for each 128GB DDR4 stick. I believe write performance is off-the-charts on these, besides the fact they're c-h-e-a-p.
Why would it swap? If stuff gets evicted from page cache is just gets reread?
I have stopped using swap a quarter of century ago, and it was for the better.
I have seen swap advocates, but I do not agree with any of their arguments. I have encountered workloads for which the amount of memory in a computer was insufficient, so the OOM was invoked, but in all such cases I preferred to learn immediately about the existing problem and solve it by various means, e.g. increasing the amount of physical memory or reducing the amount of concurrent jobs, than to waste a lot of time because of not knowing why the performance was inadequate.
I stopped using swap on Linux about a quarter of century ago, when it was a great improvement, and since then I have never seen a case when swap would have been useful, and I use Linux on a variety of laptops, desktops and servers.
Even if you do not use swap, you can have memory-mapped files that are much bigger than your physical memory. The LLM weights files must be mapped as read-only. In this case, the pages that have not been used recently will be freed when memory is needed to load other pages from the files.
The weights files must be mapped using huge pages, otherwise an excessive amount of physical memory would be wasted and reading new pages would be very slow.
It is likely that it is not possible to reach a good enough performance with a memory-mapped file without using carefully "madvise", with which it is possible to force the reading of the pages that you know that they will be needed in the future and also the freeing of the pages that you know that they will not be needed soon.
On Linux, it is possible to execute "madvise" asynchronously (with liburing). An alternative to liburing is to execute "madvise" from a concurrent thread, which synchronizes with requests to do "madvise" from the orchestrating thread.
>...
>claude
You don't need to presume. If someone is so lazy that they tell claude to commit their code (ie. they're too lazy to run git commit themselves), the chances they reviewed the code is slim.
Personally I've mostly given in to letting it commit for me now, though I do occasionally take over and hand-write the messages if it's a particularly important concept and Claude's is too verbose.
Codex/GPT-x defaults to one-line commit messages, which are too short. Claude likes to write several paragraphs, which is usually too long.
If you tell it how to commit properly once per session it will stick with your standards for the rest of that session, and you can put that in AGENTS.md if you can be bothered to.
They also write better PR descriptions. At work we have a PR authoring skill and we’ve included an instruction for it to write a reviewer guide that tells the most logical way to review the code and I’ve found that really helps, so much so that I’m creating a tool to have “literate” PR reviews, where it constructs a narrative interwoven with diffs.
This person that you’ve never met and probably never will doesn’t owe any of us anything.
They’re out there doing what they want to do how they want to do it and if you don’t like it the correct response isn’t to insult them in front of a bunch of strangers on the internet for clout or whatever.
I doubt that you’d ever call them lazy to their face — why do it here?
What makes you so sure about that?
Posting LLM generated obviously un-reviewed slop and wasting people's time deserves scorn.
I'm using my skills to orchestrate LLMs and agents, and I can write better code much faster. As developers, we can choose to adapt to new technologies or become extinct.
The fact that the top comment on this thread calls it out, in a negative way, hints at that you aren't.
It's interesting that what I meant as a purely factual question with no prejudice either way has been taken by almost everyone to be explicitly negative & critical.
I need to be a tad less blunt I guess if I don't want to
I don't know how people that shovel AI prose don't realise this. Are they not also reading other people's shitty AI text?
I did see one sloperator who told his agent to copy his writing style. I have no idea if that works but it's got to be better than yet more "Here's the kicker" LinkedIn drivel.
There's no reason any more to read bad documentation. You can feed any docs in and get them in the precise style you want, so don't impose bad prose on others in your repos. Pick a solid technical writing base, jargon free, and go from there. I sometimes generate architecture proposals from the llm in RFC format and it's word perfect.
Done, solved. Never had a problem with a readme or email since.
This is a great idea! How do you do it practically? I assume you don't feed the whole corpus in every prompt - do you condense it somehow?
I started with linguistic analysis to reduce commit message rewriting. That one also used years worth of commit messages as input.
I immediately started doing more though. Sentiment analysis, interlocutors, negativity, positivity, recurring arguments, best and worst threads by voting patterns.
Discovered a lot of fun stuff. For example, it was hilarious and a little terrifying to realize I was randomly interacting with some industry heavy hitters without even realizing who they were. Claude on the other hand seems to know quite a bit about many people on HN.
Mapped out all of my free and open source software contributions. Counted my successes and failures, did post-mortems, saw what I did right and where I could improve. Got some very useful results out of that. For example, I will never attempt to contribute to GNU ever again.
Ask it to steelman every single argument I get into and every single worldview I have. Turned up some excellent literature too. This is great for sharpening my mind, and sometimes Claude even changes my mind.
The database also acts as a preservation archive in case any of these sites get wiped out.
It's also the best search engine I've ever used. Saying something like "I remember posting something along the X and Y lines" is enough to find pretty much anything.
Gets downright nostalgic at times. Claude found my GitHub projects dating to my teenage years.
> I assume you don't feed the whole corpus in every prompt
Claude has the local comment database and runs SQL against it to pull whatever it wants.
Also it looks like English might not be the author’s first language—might not lead to the best training corpus.
Don’t waste your time rewriting it by hand just because keyboard warriors are up in arms on HN.
The material feedback here reflects the questions who might be from someone who’s been running local LLMs, so ask the LLM to update it with that in mind.
Another poster pointed out it’s not clear what the quantization is. There’s that one paragraph but it’s confusing. What I want to know right away is: are you running the unquantized model or is it quantized? If so, how much? Use terms like Q3 or Q4 or 4-bit or 8-bit. Explain why it’s not practical to quantize less. How much precision loss do you think there is at the quantization selected? What if I had 128GB RAM and wanted to have better precision and not higher token speed—would it be a good idea to choose 4-bit instead of 3-bit for some of these layers?
> I'm using my skills to orchestrate LLMs and agents, and I can write better code much faster.
Everyone says that. And most of them are wrong about the better part. Referring to your previous ability to write code is almost an appeal to authority at this point because it's coming with the assumption that you review the code with he same vigor, and that you are just as good as you were before you offloaded these tasks regularly to LLMs. Maybe you do and maybe you are, but I will say that a lot of the people I've worked with who I used to respect and whose code was good now produce absolute crap. The models are getting better so their code is getting a bit better, but I no longer believe they had anything to do with the quality, they no longer seem to care.
How bout we make a new rule: only complain about LLM writing when the product as zero relevents to use with LLMs.
"Where the levers were is not where they are. Overlapping the expert reads with the arithmetic was worth ~1.6x and shipped; the two that looked bigger — reading fewer bytes per token, and keeping more of them in RAM — were both measured and both refused, one because this family's router has no tail to demote and one because a cache the machine will not leave resident cannot be bought at any price."
What the fuck does that mean? Obviously some internal development decision, using the absolutely inscrutable internal terminology that Claude loves. If people would just read what they publish, I'm sure this would stick out immediately.
I'm not an LLM hater, I use them a ton and they work very well for writing complex code, it's undeniable. But they generate absolute dogshit first draft writing.
The transformer does not yet understand the non-transformer.[0]
This is probably because all the data we trained it on was created by non-transformers, so it thinks it's a non-transformer, but it isn't.
I don't think we know how to train a transformer yet. All the training data is linear, but that's not how they think at all.
[0] It's a bit like the communication difficulties experienced between autistic people and neurotypicals. Each follow the Golden Rule, i.e. do unto others as you would have them do unto you -- and it fails in both directions. A Platinum Rule is necessary: do unto others as their API demands.
The thing about documentation though is humans won't actually read any of it. Maybe tailoring the documentation to the needs of LLMs isn't so bad since they're the ones who will actually consume all of those documents.
I care about the craft, well designed systems, good clean architecture and code, etc...
But i also care about reaching goals. Whether i do it working on my own, or with human coworkers or with AI coworkers doesn't matter that much to me. Yes, the result is sometimes the most important thing.
Lately I've been landing on a couple of different reasons but I don’t think it’s one size fits all:
- Ego/identity - “I am the crafter of code. That is what I do.” If someone has their identity deeply wrapped up in the concept of being a “software engineer” or “programmer” then LLMs are a direct threat to that. People don’t tend to do well with this. Think about dogmatically religious people, pseudoscience followers etc who are confronted with evidence directly contradicting their beliefs. Their entire world view revolves around that identity and if you threaten that, you threaten the foundations of their self-perception.
- Career - you can take a lot of what I said above but also map it to threatening someone’s career. What if crafting software by hand becomes a niche, artisanal craft but most software is industrially generated? A lot of people will experience hardship if so and if they can’t find a way to be flexible into the future.
- Passion - the ones who love software purely for the craft see this change as robbing them of the one thing they enjoyed in their career. Work is a big part of our life and if you kill the joy for a large group of people, that’s tough to deal with.
- Lack of understanding their current purpose in role - I often see software engineers who don’t realize why they were hired. It was never to “write good clean code”, that was a means to an end. The end is generating business value for the company that hired you. That’s really it. It’s banal but it’s just a job like bagging groceries only it has required specialized knowledge so it pays well. Only very niche roles have actually hired for the craftsmanship. If someone is working for Groupon and they believe perfectly elegant systems are the value they provide, they are a bit deluded IMO. They build a platform that peddles coupons. That’s hardly comparable to building software that allows a surgeon to remotely operate a robot that does open heart surgery. Most of us do not work on truly mission critical software like that.
Most importantly though, I think this topic needs to be approached with empathy. This is truly a seismic shift in how we, as software developers, work. Change is not easy to cope with especially when it threatens physical safety and identity. Will this change be here to stay and are we in for the extinction of software creation as we have known it? I don’t know. I do know that the world’s financial and governmental systems do seem to be betting on that outcome, however.
No you don't. Buying a table and sanding the edges off doesn't mean you're a carpenter.
I don't know why some people are so angry at AI/software writing with AI. It's just like being a team leader with junior(-ish) devs on the team. You don't write the code yourself, you give directions, you help/refactor/optimize where you can, that's the job.
Yes sometimes you need a team to do something, you can't code everything by yourself.
For reference, i'm not OP.
It looks like some people have a hard time accepting that software written with ai isn't a fad, it's here, it won't go away and it can be interesting and useful for the creator and for users.
Many people on the other hand have moved on and are now team leaders, except their team is mostly AIs instead of junior devs. Trade off: code is usually worse, but in the end AIs are more capable with vast knowledge and speed.
That doesn't mean we have to use AI everywhere, all the time though.
It looks like some people have a hard time accepting that a readme or a documentation is not software.
From what I've read elsewhere, Kimi K3 is quite verbose in its thinking. At the quoted rate, it would generate only a total of 1.8k tokens in 1 hour. Is that enough for it to get any thinking done and produce output on more complicated prompts?
Real world inquiries are gonna be much slower of course, but this setup is still too slow to do anything meaningfully useful I think.
So I could potentially live with this if it was concise.
WASTE reads about 17 GB/token versus Deltafin’s 25.8 GB/pass—roughly. That's 34% less expert traffic, and some could argue a 34% reduction in quality.
Have you tried running it via llamacpp or other software that supports naive SSD offloading to compare speeds?
ftfy.
What about the system prompt you're using? General purpose harness like Claude Code will insert their happy 22k tokens, even before your first useful token is processed. That might make it a no-go even _before_ you can even start, as the maximum context for this seems pretty limited (to make it fast)
And those LLMs are all "thinking", that is, rather that "one-shoting" the answer, they generate a lot of internal use reasoning tokens before starting to generate useful, visible response tokens. You can easily get to 30k tokens when your initial prompt is vague ambiguous garbage (as are naive transcriptions) as your LLM will "But wait, the user might have meant X, let me think more about this" lots of times.
No thinking (therefore much worse answers) will be a requirement.
Yes I'm assuming you one-shot the summary or close to it. A summary doesn't need a zillion tokens of extra processing. I doubt it will be "much worse" for this use case, but I admit I don't know how low you can turn the thinking.
Hopefully resolve incidents faster without people pasting slop into the incident thread.
I could see a future like that.
We need something more sophisticated, but you could just escalate the model quality if if keeps failing the test. Not elegant but it will work.
your readme is overly verbose
agents don't need that and its extremely low signal for humans too
tell your language model to get it to the point
justvugg.github.io/colibri
The concept and the proof of it is great, of course.
# 1. preflight: reachable? how big? does it fit? tools/fetch_weights.sh --dest /Volumes/staging/k3 --dry-run
# 2. download — resumable, safe to kill, safe to re-run tools/fetch_weights.sh --dest /Volumes/staging/k3
# 3. convert into a container uv run --with torch --with safetensors python tools/convert.py \ --src /Volumes/staging/k3 \ --out ~/models/k3.waste --jobs 3
Running Kimi K3 on a M1 Max
https://github.com/gavamedia/deltafin
https://news.ycombinator.com/item?id=49090233
[ok]
29 Jul 2026 02:01:04 UTC
Kimi K3 running on any device locally
https://github.com/RightNow-AI/local-kimi
https://news.ycombinator.com/item?id=49092591
[dead]
29 Jul 2026 13:49:32 UTC
Show HN: Waste Run the full 2.78T-parameter Kimi K3 on a laptop
https://news.ycombinator.com/item?id=49097512
[flagged] [dead]
29 Jul 2026 14:38:35 UTC
Self-hosting Kimi K3: 20% more hardware cost, 20% better task resolution
https://aistack.imec-int.com/blog/gpu-self-hosting
https://news.ycombinator.com/item?id=49098130
[ok]
29 Jul 2026 14:57:14 UTC
Run Kimi K3 on a local computer
https://github.com/sqliteai/waste
https://news.ycombinator.com/item?id=49098395
[ok]
29 Jul 2026 15:41:50 UTC
Show HN: A new engine to run Kimi K3 on a laptop
https://news.ycombinator.com/item?id=49098966
[ok]
29 Jul 2026 19:54:13 UTC
Kimi K3 for local use (1.56TB > 594GB) compressed by Unsloth
https://huggingface.co/unsloth/Kimi-K3-GGUF
https://news.ycombinator.com/item?id=49102192
[ok]
29 Jul 2026 20:02:40 UTC
Kimi k3 now runs on one consumer GPU
https://twitter.com/Akashi203/status/2082555972380401852
https://news.ycombinator.com/item?id=49102291
[ok]
30 Jul 2026 06:12:55 UTC
Show HN: Run Full Kimi K3 with 29 GB of RAM
https://github.com/sqliteai/waste/
https://news.ycombinator.com/item?id=49106591
[ok]
30 Jul 2026 13:05:09 UTC
Kimi k3 run on RTX 5090
https://github.com/RightNow-AI/local-kimi
https://news.ycombinator.com/item?id=49109455
[ok]
30 Jul 2026 14:01:44 UTC
A new inference engine to run Kimi K3 2.78T parameter with 29GB of RAM
https://marcobambini.substack.com/p/the-waste-inference-engi...
https://news.ycombinator.com/item?id=49110183
[ok]
30 Jul 2026 16:52:58 UTC
Running Kimi K3 on a local computer
https://github.com/sqliteai/waste
https://news.ycombinator.com/item?id=49112587
[ok]
I'm not sure how this happens. Reality distortion field?
Like, it is common knowledge at this point right?