Designing an Autograd System with Rust - First Steps

Why do it? Well, there is certainly a gap in the ecosystem currently and at least some people are interested. In theory, Rust can do whatever C/C++ does given enough effort. Since most of Pytorch/Tensorflow is C++/CUDA, at least the C++ part should be doable. Also, I’m too naive to not try it, but as alluded in a previous post I’m aware that it might not be so easy to follow Rust’s ownership and borrowing rules while providing similar ergonomics as Pytorch. [Read More]

Current Deep Learning Ecosystem from a Rust Developer Perspective

How I got involved After experimenting with Yolo for an university project I got really curious and excited about the whole computer vision field, and since most of it now based on deep convolutional networks I started reading up on them. This quickly lead me to two fields: Tensorflow and Pytorch, both built to be used through the Python API. I followed some tutorials from Pytorch’s official website and took some classes from Fast. [Read More]

Machine Learning, Rust and SIMD - II

It’s been a while and a lot happened since the last time. The plan with this post was to show the results of optimizing Yolo’s hot path for the Raspberry Pi 3B+ I did get into Yolo’s codebase and did some profiling. Turns out, most (85%+) of the time was spent in a single function. Which is great news, we can focus our optimization efforts! The weird named function didn’t seem to be doing much: [Read More]

Machine Learning, Rust and SIMD - I

In the last post about Botejão, my Telegram Menu Bot, I discussed a feature I would like to add to it: allow the user to see how many people are in the restaurants line. I also mentioned that the university itself would only install and allow the use of the camera if the processing was done on-device and the images never left it. The only output would be how many people are in the line, through an API, for privacy reasons. [Read More]

Botejão - An excuse to write Rust

When learning Rust I started many toy projects. One of them was Botejão. It was never meant to be anything more than a Telegram Bot to check my universities (UNICAMP) daily menu. In the beginning users asked the bot for the menu and then got a reply. Later it got a few upgrades and now it sends the day’s menu every night to a channel. However, I always felt like this bot could do more. [Read More]