3 releases (breaking)
0.3.0 | Oct 1, 2022 |
---|---|
0.2.0 | Jan 16, 2022 |
0.1.0 | Jan 13, 2022 |
#820 in Programming languages
105KB
2.5K
SLoC
Artificial intelligence that embraces the hardware it runs on.
Instead of relying on huge matrix multiplications and non-linear activation functions,
AIVM
uses a virtual machine with trainable code to directly drive its decision making. The
code can be compiled into native machine code, removing an expensive layer of abstraction from
typical artificial intelligence agents.
Quick start
use aivm::{codegen, Compiler, Runner};
const LOWEST_FUNCTION_LEVEL: u32 = 1;
const MEMORY_SIZE: u32 = 4;
const INPUT_SIZE: u32 = 4;
const OUTPUT_SIZE: u32 = 4;
let gen = codegen::Interpreter::new();
let mut compiler = Compiler::new(gen);
// TODO: train code and memory to make it do something useful.
let code = [0; 16];
let mut runner = compiler.compile(
&code,
LOWEST_FUNCTION_LEVEL,
MEMORY_SIZE,
INPUT_SIZE,
OUTPUT_SIZE,
);
let mut memory = [0; (MEMORY_SIZE + INPUT_SIZE + OUTPUT_SIZE) as usize];
runner.step(&mut memory);
Dependencies
~0–1.7MB
~34K SLoC