Autoregressive Language Model on the 6502 Processor

Posted by nmstoker 3 days ago

Counter119Comment12OpenOriginal

Comments

Comment by derefr 12 hours ago

> The model weights and inference code need to be contained within 25KB of user-space memory

Wouldn’t it be era-appropriate to allow relying on banked memory? You’d still need to hold the inference code, but you could effectively stream(ing page) the weights as you compute on them.

Comment by striking 10 hours ago

From a look at https://en.wikipedia.org/wiki/BBC_Micro#Specifications I think the 6502 versions of the beeb didn't have banked RAM so to keep it loadable from tape the limits might be as stated.

But with substantial additional effort, maybe some banked ROMs could be added..?

Comment by numpad0 11 minutes ago

Banking RAM is most simply done by physically wiring RAMs in parallel and routing Chip Select/Chip Enable pins individually from GPIO. People were doing it in PDAs until late 00s. Also, I/O ports on these old machines and CPUs up until switch to PCI Express were philosophically just DRAM slots in alternate shapes, so RAMs could be more or less simply installed and RAMs on adapter cards just accessed. This is also technically applicable to PCIe from various perspectives other than performance.

Comment by forinti 34 minutes ago

You could buy a board called Integra-B to expand a model B.

https://www.youtube.com/watch?v=lT07uPRRPfU

A few games required some extra RAM.

Comment by froh 8 hours ago

the banking was done via an external ram controller whose bank control register was mapped to some (unbanked) controller address.

Comment by vintermann 6 hours ago

From my experience, modern machine learning models don't scale well down at all, and it's almost certainly better to just use a simple Markov chain variant of some sort - like Niall on the Amiga, or whatever Terry Pratchett used to come up with Foul Ol' Ron's catchphrase, "Millennium hand and shrimp".

Comment by bmc7505 13 hours ago

Cool to think this demo would have been possible over fifty years ago. I wonder what someone from 1975 would have said if you had shown this to them back then.

Comment by tyromaniac 13 hours ago

This is super cool! As someone who's worked a little with NES programming and tried out cc65, I'm surprised he didn't just hand write some assembly, he likely couldve saved a lot of space if I had to guess.

Comment by actionfromafar 13 hours ago

The 6502 is notoriously unfit for a C compiler, so probably there is room for more performance in the future. :)

Comment by torment-nexus 11 hours ago

The biggest win for AI dev efficiency is cutting down what gets loaded into context. Semantically matching tasks to the top tools helps a lot.

Comment by toplinesoftsys 13 hours ago

This is amazing project! I hope it will result in real miniaturization of AI - for example, edge LLM inside of glasses. That will be awesome.

Comment by 13 hours ago

Comment by aghilmort 9 hours ago

really great work

Comment by jkwang 2 hours ago

[flagged]

Comment by 10 hours ago

Comment by leonmeng 10 hours ago

[flagged]