🤖 AI Summary
An MNIST neural network has been implemented and trained entirely in x86 assembly (NASM), packaged to run inside a lightweight Debian Slim Docker container. The project builds and links multiple .asm modules (_start.asm, backprop.asm, gradient.asm, layers_buffer.asm) with libc/libm for exp() and log(), and provides a build.sh to assemble, link and run the final executable. The net architecture is a straightforward feedforward model: 784 input → 128 (ReLU) → 64 (ReLU) → 10 (softmax), trained for 10 epochs on 60,000 samples with batch size 64 and learning rate 0.01, then tested on 10,000 held-out images.
This is significant as a hands-on, low-level exploration of neural-network mechanics: matrix multiplies, ReLU/softmax, loss, backpropagation and weight updates implemented at the CPU-instruction and memory-layout level. Technical trade-offs are explicit—register pressure vs stack usage, hand-rolled buffer management, and reliance on the C math library for costly functions—while debugging was done with GDB and cross-checked against a Python reference implementation. For the AI/ML community, the project is an educational tool and a proof-of-concept that demystifies high-level frameworks by exposing performance and implementation realities, useful for teaching, micro-optimization studies, and understanding how high-level operations map to machine instructions.
Loading comments...
login to comment
loading comments...
no comments yet