Subscribe
Sign in
Home
Podcast
Notes
CPython Internals
AI
Computer Architecture
Linux Internals
x86-assembly
Contact Me
Archive
About
Latest
Top
Discussions
Why do we need virtual memory?
Understanding virtual memory from first principles
May 24
•
Abhinav Upadhyay
12
1
17:34
Virtual Memory: A Deep Dive into Page Tables, TLBs, and Linux Internals
From page faults to NUMA topology: how the Linux kernel manages memory, and what that means for the performance of data-intensive systems.
May 10
•
Abhinav Upadhyay
148
1
35
December 2025
How PyTorch Generates Random Numbers in Parallel on the GPU
A deep dive into Philox and counter-based RNGs
Dec 18, 2025
•
Abhinav Upadhyay
26
5
November 2025
x86 Addressing Modes, Part 1 — Immediate and Direct Access
The foundations of memory access: static allocation, addressing modes, and the first steps toward low-level thinking.
Nov 12, 2025
•
Abhinav Upadhyay
11
2
October 2025
A Systems Engineer’s Guide to Benchmarking with RDTSC
A deep dive into rdtsc, instruction stream serialization, and memory fences for precise cycle-level performance measurement.
Oct 23, 2025
•
Abhinav Upadhyay
18
3
My Top 5 Favourite Features in Python 3.14
Exploring the concurrency, debugging, and performance upgrades that make Python 3.14 special.
Oct 11, 2025
•
Abhinav Upadhyay
19
2
4
September 2025
Understanding Weak References in Python
Understanding Python’s memory management with weak references
Sep 30, 2025
•
Abhinav Upadhyay
13
1
Compiling Python to Run Anywhere
A guest post on building a Python compiler that generates optimized kernels while preserving the language’s simplicity.
Sep 23, 2025
•
Abhinav Upadhyay
and
Yusuf Olokoba
39
7
9
What Makes System Calls Expensive: A Linux Internals Deep Dive
An explanation of how Linux handles system calls on x86-64 and why they show up as expensive operations in performance profiles
Sep 16, 2025
•
Abhinav Upadhyay
75
4
9
August 2025
How to Leverage the CPU’s Micro-Op Cache for Faster Loops
Measuring, analyzing, and optimizing loops using Linux perf, Top-Down Microarchitectural Analysis, and the CPU’s micro-op cache
Aug 15, 2025
•
Abhinav Upadhyay
21
1
1
45:32
Big O vs Hardware: Better Complexity ≠ Better Performance
Why Your O(log n) Algorithm Might Lose to O(n)
Aug 3, 2025
•
Abhinav Upadhyay
51
6
July 2025
x86 Assembly Exercise #1: Toy kill Program (Solution)
A step-by-step walkthrough of the toy kill program using raw Linux syscalls.
Jul 19, 2025
•
Abhinav Upadhyay
6
8:42
This site requires JavaScript to run correctly. Please
turn on JavaScript
or unblock scripts