3 Most Prevalent Themes
1. Debate on the Scope of AI Optimizations
Users debated whether AI optimization techniques fall under universal computer science principles or are a distinct category. One user claimed AI researchers have only discovered inlining and caching, while others argued for unique, performance-focused optimizations specific to AI.
- "There are only 4 optimizations in computer science: inlining, partial evaluation, dead code elimination, & caching. It looks like AI researchers just discovered inlining & they already knew about caching so eventually they'll get to partial evaluation & dead code elimination." —
measurablefunc - "AI actually has some optimizations unique to the field. You can in fact optimize a model to make it work; not a lot of other disciplines put as much emphasis on this as AI" —
mxkopy - "RLHF is one that comes to mind" —
mxkopy
2. Classification of Algorithmic and Mathematical Optimizations
Discussion centered on where algorithmic optimizations (e.g., FFT, Strassen algorithm) fit within the proposed universal categories, with some arguing they are instances of caching or common subexpression evaluation.
- "Which categories do algorithmic optimizations fall under? For example: Strassen algorithm for matrix multiplication, FFT convolution, Winograd convolution..." —
johndough - "FFT is the classic case of common subexpression evaluation (its mathematically equivalent), which I think by OPs definition would fall under caching." —
torginus
3. Practical Feasibility of Applying Compiler Optimizations to AI
Several users questioned the practical utility of applying classical optimizations like partial evaluation and dead code elimination to neural networks, citing technical hurdles like activation functions and fixed architectures.
- "You can't do any partial evaluation of a neural network because the activation functions are interrupting the multiplication of tensors." —
imtringued - "Dead code elimination is even more useless since most kernels are special purpose to begin with and you can't remove tensors without altering the architecture." —
imtringued - "I think you can. If you have a neuron whose input weights are 100,-1,2, with threshold 0, you can know the output of the neuron if the first input is enabled... so you can skip evaluating those." —
torginus