Cache Coherence Demystified: The MESI Protocol on Intel Granite Rapids

Deep dive into cache coherence and the MESI protocol on a 256-core Intel Granite Rapids system: microbenchmarks for ping-pong latency, false sharing, atomic contention, and lock primitives.

March 3, 2026 · 25 min · Sandeep Kumar

Everything on Precision: Numeric Formats in Modern ML and HPC

A walkthrough of numeric formats that matter today — FP32, TF32, FP16, BF16, FP8, INT8, INT4 — how they behave, when to use each, and where the pitfalls hide.

March 3, 2026 · 13 min · Sandeep Kumar

LLM Inference Introduction: the end-to-end flow and vector math

LLM Basic

February 10, 2026 · 16 min · Sandeep Kumar

Understanding Linux perf: stat and record

What really happens in the kernel when you run perf stat or perf record.

December 4, 2025 · 8 min · Sandeep Kumar

Fat File System

In this post, we discuss the internals of a FAT based file system. FAT stands for File Allocation Table, which is also the name of the central data structure of this design. It is one of the oldest file system designs still in use – your pen drive is probably formatted with some variant of it (FAT32 or exFAT). The layout A FAT file system has a fairly simple on-disk layout: ...

May 16, 2020 · 5 min · Sandeep Kumar

Library Calling in C

In this post we are exploring how different types of binaries are generated, how function calls work when code is split across multiple files, and how the toolchain (compiler, linker, loader) helps. We’ll also cover how to build and install a custom libc for testing and debugging purposes. File Types and High-Level Flow Difference in types of files: .c / .cpp: source files .o: object files (compiled but not yet linked) .a: static library (archive of .o files) .so: shared library (dynamically linked at runtime) Typical build pipeline: ...

May 1, 2019 · 9 min · Sandeep Kumar

Installing Intel SGX on Ubuntu 18.04

Test

April 27, 2019 · 4 min · Sandeep Kumar

The VNNI layout, and why your AMX kernel is silently wrong

Notes from getting Intel AMX to do a matrix multiply: the VNNI memory layout, why skipping it gives silently wrong answers, and LIBXSMM’s dispatch model.

March 8, 2026 · 13 min · Sandeep Kumar

Adding a counter to the *proc* interface

A practical guide to instrumenting the Linux kernel by adding custom counters to /proc/vmstat

April 8, 2021 · 9 min · Sandeep Kumar

Inode File system

In this post, we are going to discuss the internals of an inode based file system. There are different variants of inode: i-node, I-node, and, of course, inode. We are going to be using “inode” for this post. What is an inode? Inode is a data structure, used by modern file systems, such as ext4, to track the contents of a file across the disk. An inode is associated with every file and directory. Technically, from the point of view of a file system, there is no difference between the inode of a file or a directory. They are basically the same, with a flag in the inode stating whether it is pointing to a file or a directory. ...

May 16, 2020 · 3 min · Sandeep Kumar

Intel SGX Internals

Status: In Progress In this post, we are going to discuss the latest Intel SGX technology from Intel. Intel SGX is from the suite of TEE solutions that has technologies from various vendors such as ARM TrustZone from ARM, XX from XX, and much more. These solutions enable a capability in the latest computer chips that have been missing until now. It allows the hardware of the system to guarantee the CFI property of an execution. CFI stands for control-flow integrity and is used to determine the security of an executing program. ...

May 14, 2020 · 7 min · Sandeep Kumar

Installing custom LibC

Glibc is the standard library that is linked against all the linux applications. It provides the necessary functionality like printf. It also provides wrappers for most used system calls like open, read, write, close. Manually building and installing libc. Example from a StackOverflow answer export glibc_install="$(pwd)/glibc/build/install" git clone git://sourceware.org/git/glibc.git cd glibc git checkout glibc-2.28 mkdir build cd build ../configure --prefix "$glibc_install" make make install Followed by a test c code ...

March 9, 2020 · 4 min · Sandeep Kumar

GPU Memory Profiling Tools (NVIDIA and Intel)

A practical guide to observing GPU memory stats on NVIDIA and Intel GPUs (monitors, profilers, and attribution).

February 10, 2026 · 7 min · Sandeep Kumar

Install Graphene SGX

In this brief post, we will be installing GrapheneSGX on a real machine with support for Intel SGX. We will be using Ubuntu 20.04 and kernel version: 5.12. There are other great tutorials out there. They are more general and can be used by anyone. Here, we are focusing on a particular machine. Our expectations: We will be using the latest stable version that was released in 2020. v1.1 The master branch is in between transition from make to meson. Though it builds successfully, I have faced some issues in running some examples. As there are no major functional changes as of now, we will wait for it to become stable before switching to it. Graphene with SGX support. All features working as expected, with all the PATH variables correctly set up. Run an example: Maybe Iozone Not focusing on: ...

April 8, 2021 · 2 min · Sandeep Kumar

Dyninst

This is a tool for binary instrumentation. Clone the repository using the command: git clone https://github.com/dyninst/dyninst.git Some useful links: https://github.com/BinaryAnalysisPlatform/bap/ https://studylib.net/doc/5617117/dyninst-tutorial-slides http://www.paradyn.org/tutorial/

April 27, 2018 · 1 min · Sandeep Kumar