Programming machine learning algorithms in hardware, sanely, using Haskell and Rust!
summary
Clash (a Haskell-like language) compiles a dependently-typed neural network (GADTs, type-level naturals) into FPGA logic and a Cyclone V runs a five-layer point classifier that labels quadrants using SFix fixed-point arithmetic; pipelining uses registers to split dot products so large nets meet clock timing. A Rust session API exposes memory-mapped IO with type states for read-only/read-write resources, a singleton session plus Drop-based cleanup, and compile-time checked data encoding preventing mismatched reads/writes.
AI-written summary · about
chapters (12)
- 0:00Intro
- 1:30Overview
- 2:48Neural Network Basics
- 4:32Vector Addition
- 8:23Generating a Network
- 13:25Registers
- 16:18Interface
- 16:57Rust
- 18:32Traits Type States
- 22:39Session Type
- 23:26Drop Tray
- 28:16Summary
related talks
26mThe Feynman Machine: AI architecture in Clojure/Neanderthal
20mFour Years of Embedded Haskell in Critical Real-Time Systems: Lessons and Insights
20mData-oriented Design for Differentiable, Probabilistic Programming
21mA Functional Approach to Synthesizing Routable Programmable Accelerators for Neural(…)
28mHardware implementation of OCaml using a synchronous functional language
01h 00mFrom Tiny Chips to Server Racks: Deploying AI Everywhere with Rust
31mCFU Playground
13mHardware/Software Co-Programmable Framework for Computational SSDs to Accelerate Deep...
