The emergence of IoT and Machine Learning (ML) has seen an increase in systems that deploy sensors to collect data and analyze the data using ML algorithms in the cloud.
However, running the ML classifiers directly on the IoT device has advantages like reduced latency, improved battery usage, reduced privacy concerns, and so on.
Implementing such ML inference algorithms on IoT devices is hard for two reasons.
1. The resources on these devices are very limited with just a few kilobytes of RAM making it hard for developers to write efficient code.
2. The hardware on these devices does not support floating-point operations, which is essential for ML applications.
The SeeDot project addresses these two issues.
1. SeeDot is a programming language that allows developers to specify ML algorithms at a mathematical-level. Our compiler generates efficient device-specific code for microcontrollers and FPGAs.
2. SeeDot uses novel compilation strategies to replace floating-point operations with fixed-point operations.