A Byte of Coding Issue 349

A Byte of Coding Issue 349

Sponsored by

A Byte of Coding

Howdy,

Hope you all had a nice weekend. I recently built an electrical engineering web tool for a client that allows RF engineers to design signal filters with realistic frequency responses—basically you input some parameters and it spits out a pre-computed graph of what a signal going through the filter would look like across a range of frequencies. Originally we had the data being served via the website server, which had a latency of around ~300 ms (time between user input and graph being plotted). I decided to move the whole data serving / routing portion to a Cloudflare worker. As a result, the latency dropped to ~10 ms and feels real-time (no delay between input and graphed results). It’s super satisfying when an architectural decision works out superbly.

Anyway, here’s dat issue.

Published: 11 February 2024

Tags: c++, machine learning

Alan Wolfe guides us through setting up a version of gradient descent (one way machine learning models “learn”) with called “Adam” in plain C++. This article is a followup on a three part series about machine learning for game devs in C++ (links in article).

Some highlights:

  • learning is essentially an optimization problem

  • requires basic calculus knowledge

  • Adam is meant to be an improvement on plain gradient descent

Published: 25 January 2017

Tags: functional programming

An older article, but a really good one. Li Haoyi uses a tiramisu recipe to explain what functional programming is.

Some highlights:

  • functional programming isn’t helper methods, writing things in haskell, compile-time AST macros, or static types

  • uses a process diagram for the recipe to demonstrate how to think about it functionally

  • “The core of Functional Programming is thinking about data-flow rather than control-flow”

Published: 11 February 2024

Tags: machine learning, computer architecture, hardware, optimization

Nima Badizadegan briefly describes most of the basic computation operations used by machine learning models and then dives into the difficulties of computation for the new wave of large language models.

Some highlights:

  • “the inference of large language models has actually become a computer architecture problem involving figuring out how to coordinate memory and I/O with compute to get the best performance out of the system”

  • “Tomorrow’s AI accelerators will need to focus on memory to contend with the case of streaming weights through data”

  • “The advances required to make LLMs orders of magnitude faster will likely be more system-level than circuit-level”

Stay up-to-date with AI.

The Rundown is the world’s fastest-growing AI newsletter, with over 500,000+ readers staying up-to-date with the latest AI news, tools, and tutorials.

Our research team spends all day learning what’s new in AI, then distills the most important developments into one free email every morning.

Thanks for your Support!

Big thanks to all of the Patreon supports and company sponsors. If you want to support the newsletter you can checkout the Patreon page. It's not necessary, but it lets me know that I'm doing a good job and that you're finding value in the content.