Actually you don't need an old version of emscripten, hit me up for the Makefile and pdf templates or wait till offical release. My build script will make the pdf work both on chrome and firefox, adobe support is pending.
One super upvote!I used used this cray ack to some demo code. I really admire kej715 for adding a backend to ack just from reading specification and limited access to hardware as there are no loving cray 1's anymore. I had to try it! Did't build at first so I even contributed a tiny fix to make it work on my sys.
This is also the guy who wrote a DtCyber that emulates many vintage super computers and stuff. Pretty cool! Thank you man!
Download the header image from my repo, which is a Polyglot PNG (both a PNG and a PDF). Rename the extension from .png to .pdf and open it in Firefox to run llama2.c inside the PDF! Note that this doesn't work in Chrome.
Pure PDF versions of the smaller and smol models are compatible with both Chrome and Firefox, but Adobe Acrobat is not yet supported. I created the PDF part back in November, planning to turn it into a self-regenerating comic demo and add Acrobat support. If Adobe doesn't update their JS engine or improve documentation, I might fork my own reader with WASM for better performance and AI capabilities in PDFs.
Emscripten was used to compile this to something between ASM.JS and JS. Enjoy experimenting with this, though remember it's a tiny 260k model, not super intelligent.
I am passionate about PDFs and frustrated with Adobe's JS engine, which isn't true JS 1.3. This project represents running LLMs inside documents, turning documents into LLM OS. If Adobe doesn't fix JS in PDF, I'm motivated to enhance PDF capabilities myself. This is not the thermodynamic god, just pee/acc where we accelerate peedf :)
I did something similar ie llama2.c in a PDF in a PNG before:
https://news.ycombinator.com/item?id=42721805
https://x.com/VulcanIgnis/status/1879649889178837025
The non polyglot ie PDF only versions could run both in chrome and firefox.
I'll have a look at your github, you seem to have done it more elegantly.