AK-1 · Aditya Kurniawan · 8 notes since 2018
Taking things apart to find out why they're slow. GPU profiling, CPU caches, and market data that won't behave.
Hi, I’m Aditya Kurniawan — Akur to most people.
I like taking things apart to find out why they’re slower than they should be. Lately that’s meant GPU timelines and CPU cache misses, with occasional detours into market data that breaks most of the assumptions I bring to it.
AN-008 · systems
I Set Out to Learn NRVO and Ended Up Measuring My Command Line
I wanted to understand named return value optimisation, got curious what the pessimised version costs, and my first numbers were reproducible to 0.01% and wrong. Instructions and cycles instead of wall-clock, and the pointer question turned out to be an allocator question.
- published
- 2026-09-14
- length
- 11 min · 2,191 words
- terms
- cpp, benchmarking, compilers, performance, arm
Your browser is repeating the experiment from AN-007 right now. It reads the same 16 MiB of memory twice: once in order, and once jumping 8 KiB at a time. Jumping defeats the CPU cache, so it is slower. The question is by how much, on whatever you are reading this on.
Starts once the page has finished loading.
Method: a 2048 × 2048 int32 matrix summed along rows, then down columns, in a background worker. Three untimed warm-ups, then 15 interleaved samples of 4 passes; median reported. cv is the spread between samples: above 5% the run can't be trusted, and a browser can't pin itself to one core. For reference, AN-007 measured jumping 5.4× slower on a GB10 performance core and 18× slower on an efficiency core.
| parameter | min | typ | max | unit |
|---|---|---|---|---|
| read time | 1 | 11 | 13 | min |
| length | 172 | 2,164 | 2,650 | words |
| gap | 1 | 21 | 1,869 | days |
| index terms | – | 26 | – | tags |
Over 8 published notes, computed at build time (2026-10-14).
| AN | Date | Change | Category | min |
|---|---|---|---|---|
| 008 | I Set Out to Learn NRVO and Ended Up Measuring My Command Line | systems | 11 | |
| 007 | How I Benchmark on the GB10 CPU | systems | 11 | |
| 006 | NVLink-C2C Removes the Copy, Not the Synchronization | systems | 13 | |
| 005 | CUDA Performance, Part 1: Device Busy Is Not GPU Busy | systems | 11 | |
| 004 | Bitcoin Regime Analysis, Part 2: What Each Feature Buys You | quant | 11 | |
| 003 | Bitcoin Regime Analysis, Part 1: What the Data Looks Like Before You Model It | quant | 8 | |
| 002 | Hello, welcome, and stay tuned! | personal | 1 | |
| 001 | Indonesian Language Model | nlp | 10 |