This post was rejected for the following reason(s):
Difficult to evaluate, with potential yellow flags. We are sorry about this, but, unfortunately this content has some yellow-flags that historically have usually indicated kinda crackpot-esque material. It's totally plausible that actually this one is totally fine. Unfortunately, part of the trouble with separating valuable from confused speculative science or philosophy is that the ideas are quite complicated, accurately identifying whether they have flaws is very time intensive, and we don't have time to do that for every new user presenting a speculative theory or framing (which are usually wrong).
Our solution for now is that we're rejecting this post, but you are welcome to submit posts or comments that are about different topics. If it seems like that goes well, we can re-evaluate the original post. But, we want to see that you're not just here to talk about this one thing (or a cluster of similar things).
Introduction
This is a preliminary report on Finite Field Assembly (FF-ASM), a programming language designed to emulate GPUs on regular CPUs using Number Theory and Finite Field Theory.
Finite Field Assembly (FF-ASM) empowers programmers to utilize Number Theory to invent their own math and solve their most immediate tasks.
Use Cases
Finite Field Assembly Language Features
Low-level systems language - no garbage collector so user handles memory allocation.
Is AI Compute a Hardware or a Software Problem
Sam Altman, the CEO of OpenAI, believes that access to computational resources will become the world's most valuable commodity. His views align with the growing demand for AI and machine learning capabilities among consumers and businesses. A multitude of companies offer hardware-first solutions to satisfy this demand for compute.
The market is saturated with hardware startups focused on delivering compute power for the next generation of AI inference. Custom hardware like Nvidia's GPUs, Groq's TPUs, and Etched's Transformer ASICs aim to address this growing demand for computational resources.
But what if hardware isn't the real bottleneck? Perhaps all our calculations are correct, and the issue lies in the possibility that we're computing in the wrong number system?
Finite Field Assembly: A Language for Inventing Your Own Mathematics
Finite Field Assembly is built on the thesis that mathematics is largely invented rather than discovered. For example, while binary digits (0 and 1) are discovered concepts, binary floating-point arithmetic—the mathematical framework for storing fractions on computers—is entirely invented.
Finite Field Assembly is a programming language designed to empower users to define their own mathematical systems. We provide a framework for creating custom rules, operations, and structures to enable entirely new ways of computation.
The language is built around number theory, congruences and the divisibility properties of primes.
Prime numbers and finite fields serve as fundamental data structures in Finite Field Assembly. This focus permits a unique approach to computation, rooted in mathematical principles rather than conventional programming paradigms.
Getting Started with Finite Field Assembly
Finite Field Assembly (FF-asm), much like CUDA, is an extension of the C programming language. It is built on top of C89, commonly referred to as ANSI C or ISO C, with the goal of ensuring compatibility wherever a standard C compiler is available. This design allows FF-asm to be highly portable and accessible across a wide range of systems.
Installing Dependencies
01_HelloWorld
.c in the same directory that contains ff_asm_runtime.h and ff_asm_primes.hSample Directory Structure
Writing Hello World in FF-asm
Remember, FF-asm, just like CUDA, is an extension of C. It's super low-level so you need to hande memory allocations.
This Hello World Program creates an 8-bit unsigned integer finite field. You can find the source code here.
Compiling a FF-asm module using GCC
Remember to link libGMP.
Understanding the output of our Print Function
You should observe this output once you compile and run your code.
Int_8_U_Field
: This is the field data type, an unsigned 8-bit integer in this case.(8,9,11)
: Field order (the number of elements your field can hold). i.e you can store 8 * 9 * 11 elements in the field .658
: This is a unique integer that represents your specific the set of finite field elements. It is the solution to a linear congruence.Next step : Emulating a GPU on a CPU using Number Theory
If you've made this far, we invite you to look further into our documentation here.
You can also
https://gmplib.org/
https://www.benzinga.com/news/24/03/37841813/compute-not-fiat-or-bitcoin-will-be-the-currency-of-the-future-says-sam-altman-as-nvidias-jensen-hua
https://groq.com/
https://www.etched.com/