Will a 486 run Crysis? No, of course not. Will it run a large language model (LLM)? Given the huge buildout of compute power to do just that, many people would scoff at the very notion. But [Yeo Kheng Meng] is not many people.
He has set up various DOS computers to run a stripped down version of the Llama 2 LLM, originally from Meta. More specifically, [Yeo Kheng Meng] is implementing [Andreq Karpathy]’s Llama2.c library, which we have seen here before, running on Windows 98.
Llama2.c is a wonderful bit of programming that lets one inference a trained Llama2 model in only seven hundred lines of C. It it is seven hundred lines of modern C, however, so porting to DOS 6.22 and the outdated i386 architecture took some doing. [Yeo Kheng Meng] documents that work, and benchmarks a few retrocomputers. As painful as it may be to say — yes, a 486 or a Pentium 1 can now be counted as “retro”.
The models are not large, of course, with TinyStories-trainedย 260 kB model churning out a blistering 2.08 tokens per second on a generic 486 box. Newer machines can run larger models faster, of course. Ironically a Pentium M Thinkpad T24 (was that really 21 years ago?) is able to run a larger 110 Mb model faster than [Yeo Kheng Meng]’s modern Ryzen 5 desktop. Not because the Pentium M is going blazing fast, mind you, but because a memory allocation error prevented that model from running on the modern CPU. Slow and steady finishes the race, it seems.
This port will run on any 32-bit i386 hardware, which leaves the 16-bit regime as the next challenge. If one of you can get an Llama 2 hosted locally on an 286 or a 68000-based machine, then we may have to stop asking “Does it run DOOM?” and start asking “Will it run an LLM?”
In principle, it would also be possible to use an 64-Bit DOS Extender and run it on an AMD Athlon 64 or similar PC.
i386 aka x86_32 architecture has the conveniance of V86, but it’s not required.
Concurrent DOS 286 could multitask well-behaved 16-Bit DOS applications on a 286 in 16-Bit Protected-Mode, without help of V86.
And interstingly, x86_64 would support clean 16-Bit Protected-Mode code in Long Mode, too.
– Just saying, not that Long Mode would be required per se.
A lot could be done by utilizing Intel VT or AMD-V, too, I guess.
https://en.wikipedia.org/wiki/X86-64#DOS
https://en.wikipedia.org/wiki/Multiuser_DOS#Concurrent_DOS_286_and_FlexOS_286
Has anyone actually made a 64-bit DOS extender?
I haven’t heard of such a thing, but I like the idea. It’s such an incredibly niche and unnecessary piece of software, but that makes it exactly the sort of thing someone would do just because they can.
I suppose if it was designed to support windows console applications, it could even run some existing programs (HX DOS Extender does this for PE32 programs, so it’s not a completely crazy idea).
And of course the idea of running a >4GB LLM in DOS is also even more niche than just managing to run an LLM on old hardware.
Not exactly sure, maybe DX64?
https://board.flatassembler.net/topic.php?p=199375
But anyway, I really like your idea about the Win64 console programs! ๐๐
Considering how useful HX DOS Extender really is, it would be really really neat!
The closest I’ve found so far is “Dos64-stub”:
https://github.com/Baron-von-Riedesel/Dos64-stub
(HX DOS Extender can also run full-screen Win32/GDI programs such as DOSBox for Win32/SDL,
vMac 0.18b Win32 or older versions of Neko Project II, such as v0.15).
Also Amiga, Atari ST, Mac SE:
https://x.com/VulcanIgnis/status/1881382738697367615
And C64 too:
https://x.com/VulcanIgnis/status/1893420241310335329
wow, are these guys really old people? I mean, I am 42, started using computer when I was 13 (1996), I don’t exactly know the spec of my first computer (I think it’s a pentium 2), tbh, it’s my elder brother’s computer. I don’t know where it is now, maybe in the basement or attic, I should try out something with those old computer someday. (coz I think it’s not broken, the CRT monitor died and we just replaced with pentium 4).
“wow, are these guys really old people?”
Good question. Not sure, I think about anyone born in early to mid 90s still remembers DOS,
even if it was just merely being the base of Windows 9x in later years.
To give an idea, Windows 98 was being supported until 2006.
And many PC users working with Windows 98SE had a couple of DOS programs or games, still.
Programs like QEMM also supported Windows 9x,
so optimizing autoexec.bat and config.sys didn’t end with MS-DOS 6.2x.
Especially DOS based games that didn’t run on Windows 9x still needed DOS drivers for CD-ROM, mouse and sound cards.
So fiddling with autoexec.bat and config.sys was still needed from time to time.
So I assume these guys are somewhere between 27 and 65. ;)
That means it was 2004 when some of them could have been ~7,
an age in which some kids had an old PC in their bed room already.
That being said, they might also being younger guys with an interest in vintage computing. Who knows?
It’s not as if kids or teens these days don’t have an interest in their parent’s technology.
The NES and its game library is still cool and full of timeless classics, same goes for GBA or Sega Genesis/MD.
DOS, QBASIC, and Windows 3.1 are how I first stared learning computers beyond “open this menu, click that button” type of stuff. This was around 2010 for me.
That’s cool! ๐๐ Especially QBasic, I think. The “full version” was/is QuickBASIC 4.5.
Though Turbo Basic, PowerBASIC, PDS 7.1 and Visual Basic/DOS share same language.
There also was a special version of QB, Microsoft Game Shop.
It contained the interpreter from QB45 and some game samples.
There’s also a Macintosh version of QuickBASIC.. And QB64, of course.
Could be as old as 75 or even 80 (gasp)… Knew a bunch of retirees back after win 95 who could smoke the pants off you youngsters
“Youngsters”, okay gramps. ;) But yes, maybe you’re right.
I’m afraid it’s not that common, though, that they’re still actively contributing something.
At age 65+, they rather tend to start to loose mental flexibility, begin to develop a little superiority complex etc.
I saw it on a grand aunt. Was a teacher, but learned nothing herself about life. Yet still tells old platitudes. Sigh.
(I hope I won’t be like that at high age!)
Also, many older people (or guys rather) on the net talking about their first PC/XTs and 20MB MFM/RLL fixed-disk drives do mess up certain facts.
Sure, certain details can be forgotten after such a long time, that’s human.
They don’t have to perfectly memorize the debug command to run low-level routine of their 1986 era MFM controller, for example.
But they could at least just try to double-check something before spreading false information. Sigh.
Because sometimes they tell nonsense, such as that XTs ran up to DOS 2.11 only and that DOS 3 ran on ATs only.
While in reality, all IBM PC generations (PC/XT/AT/PS2) can run MS-DOS up to version 6.22 no problem (it’s plain 8086 instruction compatible).
They don’t know about PTS-DOS, DR-DOS or PC-DOS 2000, either. Too new.
They also forget the difference between PC compatibles vs MS-DOS compatibles,
thus making certain vintage PCs look worse to the youth than they really were.
Of course, there are exceptions, too.
Personally, I knew a ham age 89 that was mentally fresh.
More young than some hams age ~40, even.
I really respected that oldtimer and and told him he was doing very well.
I’m younger than you, and started on VIC-20 (not even a C64!) and then a 286 in the early 90s. I’m pretty sure my parents got them free, which is about what we were willing to pay at that point. ยฏ_(ใ)_/ยฏ
Wealth may or may not trickle down, but technology does.
I’m not sure if the typo, it it is, was intended as humour.
Which (potential) typo?
Just as Persian rug makers deliberately include one flaw in recognition that only Allah can create perfection, I will always leave at least one typo to prove that I am but a fleshy meat bag, and show humility before our future AI overlords.
I’m pretty sure a P3 is retro anymore. The original Xbox I remember as such a leap from the PlayStation is also Retro, especially when I can emulate it on a SteamDeck.
Hi, I probably shouldn’t comment so much but I would like to mention
that I think there’s a subtle difference between retro and vintage or classic.
“Retro” is more of fad, a trend, a phenomenon of a given time.
It literally means “looking back” or “backwards turned”.
The SNES Mini is retro, for example. It’s a hommage to the real old thing.
Vintage computing or classic computing is about the real old stuff, rather.
Also, it’s more of a generational thing vs a years thing maybe.
If, say, the previous game console was around for 15 years then it’s old but not retro or vintage.
By contrast, if there had been a new game console on market each year, then a 5 year old console might be considered retro or vintage.
But of course, that always depends on point of view.
Some measure in years, some in generations..
Sorry to make you feel older, but 486 and Pentium 1 have been retro for a LONG time. In fact, hardware/software released AFTER 486 was already retro, is itself retro.
“Retro” is anything sufficiently old, outdated, and different to the current way of making/doing something, that it becomes a quaint reminder of those old methods.
A Core2duo is retro.
Windows XP is retro.
Playstation 2 is retro.
MySpace is retro.
Newspapers and Magazines are retro.
It doesn’t matter that some of those things are still used.
What matters is they are old ways of doing things that people/industry has replaced with different ways of doing the same thing.
I donโt think that situation is exactly new, though.
Way back in the 90s, the NES in many homes was about a decade old already, but no one really cared.
The video tape and the audio cassette about two decades (both from 70s).
And a PC was jokingly being called “obsolete” after 6 months.
Albeit it didn’t feel like a joke, I must say. 6 months in 90s was a time period in which a lot did happen sometimes.
Just look at the big jumps in MHz of 486 CPUs at the time and the “overdrive sockets” on many motherboards.
Or let’s take the rappidly increasing HDD capacity and CD-ROMdrive speeds (from double-speed to ca. 48x).
Some said that a PC was obsolete at exactly the moment it left the doors of the computer store. And there was some truth within.
So I’m not exactly shocked about the requirements of, say, Win 11.
In the 90s, you didn’t come far with a PC from 3 to 5 years ago,
unless it was being upgraded (mainly RAM, then motherboard).
And that was just feeling natural, IT life simply was like this.
So thanks for your emphanthy, but the current developments rather make someone like me feel young again rather than feeling old.
It’s nice to see some development im computing again, finally! :)
What’s also interesting is the current development of ARM and RISC V.
ARM architecture is very old (from mid-80s, Acorn Archimedes; Compaq iPAQ used intel StrongARM in ~2000 etc) but new on PC platform.
There’s a parallel to the RISC movement of the 90s, you know.
When Windows NT got ports to Alpha APX, MIPS R4000, PowerPC.
This little expedition had ended with Windows 2000 again, sadly.
For the past 20 years we’ve been “stuck” to x86 and x86_64 (x64) on PC, thus (Itanium didn’t make it).
So yeah, x64 is “retro”, too. Thanks to modern Apple Silicon, as well. ;)
To be really modern, someone has to run macOS or Windows 11 on ARM, maybe.
You forgot the smartphone, I think. t’s retro to..
It still looks an 2006 iphone from 20 years ago.
No development in ergonomics, at all.
Still same old pocket mirror form factor.
No new materials, either. It’s a stand still.
By contrast, the progress and diversity in late 90s/early 2000s was insanely huge.
The various PDAs (Palms, Pocket PCs etc) also underwent more development at the time than the smartphone did in past 20 years.
“Sorry to make you feel older, but 486 and Pentium 1 have been retro for a LONG time.
In fact, hardware/software released AFTER 486 was already retro, is itself retro.”
The 486 core was very beloved, though, since it was sufficiently advanced and had already RISC-like elements, internal FPU, on-CPU cache and a simple form of pipelining.
Things like Excel, PowerPoint or AutoCAD ran smoothly on that generation first time.
Many Pentium competitors such as 5×86 were being based on i486 design, thus.
They spent work on optimizing integer performance, also.
The Pentium’s FPU alone was more complex than the whole i486 processor design.
The only truely new design at the time was the NexGen 586, maybe.
It was a RISC chip with a programmable front-end.
So 80×86 instructions could be translated/broken down into smaller RISC instructions.
Which made parallelism more practical.
https://en.wikipedia.org/wiki/NexGen
The Transmeta Crusoe was similar interesting, I think.
It had similar issues to Pentium Pro when it comes to 16-Bit code.
Thus, Windows Me was probably best suited at the time.
Same lightweightness as Windows 98SE, but with less 16-Bit files.
(It had borrowed large parts of Win2000 files. VXDs/DRVs had been
reduced in favor of WDM files)
Windows 9x didn’t require such strict x86 compatibility, either.
Ask PC emulator writers, Windows NT and OS/2 are really picky about highly accurate processor behavior.
https://en.wikipedia.org/wiki/Transmeta_Crusoe
Nowadays, i486 cores are still to be found in microcontroller sector and in stuff like digital cameras.
The Vortex86DX basically is a i486/i586 derivative, albeit at high clock rate.
Technically, in terms of instructions set, it’s i686 already, but misses one or two common instructions needed, AFAIK.
https://www.vortex86.com/
Then there’s DOS.. It seems highly archaic at first, but it isn’t really.
By 1994 (about 30 years aho), for example, Novell DOS 7 had 32-Bit preemptive multitasking, built-in networking, a disk cache, DPMI support etc.
Also DOS isn’t DOS. There are over 20 versions of DOS, at least.
It ran in emulation countless of times, too.
Flex OS and Real/32 are professional multitasking/multiuser versions of it.
Here’s an incomplete list of DOSes with MS-DOS ABI compatibility.
https://en.wikipedia.org/wiki/Comparison_of_DOS_operating_systems
Unix workstations by companies such as SGI and NeXT had run DOS emulation to run professional applications.
In communications and car industry, DOS application continued to be support in Unix like OSes via special sandboxes (German L3 OS, for example).
Even today, DOS is still running secretly behind the scenes in certain applications, such as digital cameras (Canon PowerShot A70 comes to mind).
ArcaOS for example can run OS/2, Windows 3.11 and DOS applications on UEFI PCs.
Long story short, DOS systems were/are as diverse as BSD and Linux distributions.
MS-DOS 6.22 maybe is old nowadays, but FreeDOS, SvarDOS and PC-MOS v5 are open source projects that continue to be around for a while.
Thanks to x86/x64 hardware virtualization and nowadays emulation culture in general, old systems continue to still stay relevant.
If you’ve working with Virtualbox on an x86/x64 PC, for example,
then using DOS environment with your favorite vintage development tools still makes sense.
To the VM, it’s not fundamentally different than running Minix, BSD or Linux.
You DOS applications still run natively on a given CPU core, are being executed “in hardware”.
You can also directly access LPT and serial port pins from inside the VM.
The emulated parallel port or 16550A FiFo are being mapped to the physical equivalent.
So you can write a DOS application in QBasic, Turbo C or Turbo Pascal that accessed your Bluetooth device on host side.
You can blink an LED wireless, from DOS, by toggling a data pin.
Since this is Hackaday, a site about hardware hacking, it’s spot on, I think. ๐
That being said, I donโt try to deny that things from 80s or 90s are considered obsolete or vintage nowadays.
But so is the bicycle, too, depending on how we look at it (bike vs e-bike etc).
In the end, age doesn’t really matter so much, I think.
When I was young, I did the mistake of overrating modern technology.
(- I remember how in early 2000 I was being pi.. upset by the fact that oldtimers continued to write DOS programs in debug or whatever on Windows 98,
rather than writing proper Win32 console programs for Windows.
I found it very backwards and stubborn, and “quick and dirty”.
Not that I didn’t like DOS, though.
But I ran DOS applications the “clean” way on real MS-DOS with Norton Commander – not on Windows!
To me, Windows and DOS were separate platforms, really.)
Nowadays, being slightly wiser, I think that some concepts are simply being very useful, elegant or ingenious no matter when they had been invented.
Certain buildings or techniques from 5000 years ago might have been more “advanced” in some ways than what we have in use now.
Likewise, Davinci was smarter than the average tinkerer of today.
His ideas and concepts are still high class, no matter how long ago he had lived.
As a human being, he and his mind was very sophisticated, I mean.
Even if he technically had been an older “model” (generation) of a human.
The concrete mixture of ancient Rome, for example, did last very long.
The old recipe, once rediscovered, might help us improved our cities.
But these are just my two cents.
My apologies for the long comments, also!
I just found this article very fascinating, because LLAMA vs DOS is a great example about new meets old.
Another one would be tube technology vs transistor, I suppose.
In radio technology, an electron tube can be a great companion to a transistor design, rather than being an obsolete predecessor.
At the receiving stage of a transceiver, an electron tube can be used as protection against very strong signals.
Because electron tubes do go into saturation, rather than becoming deaf like transistors do.
So a minature tube can be used as a protection, the power consumption would be low.
So despite tube technology being old, it might be still worth of being improved.
By using modern technology, who knows if tube technology could be used to reach higher operating frequencies?
Maybe future computer chips will use nano tubes or organic synapses and parallel computing? :)
It would be cool if such technology was running a form of DOS, maybe? :D
https://en.stargatewiki.com/index.php/DOS
The nice thing about DOS, such as FreeDOS, is that there’s no backdoor.
DOS itself won’t talk home, all memory is being visible to the operator.
It’s also comparable easy to understand its internals (uses software interrupts such as int21h rather than a complex, file-based API).
You can imagine what it’s doing right now, way down to register level.
PS: Happy Easter, everyone! ๐๐