RSSAmplifier

Blog

Abdelhadi | عبدالهادي

Abdelhadi' blog

thegeeko.meRSS feed ↗4 posts

Latest posts

AMD GPU-Initiated I/O

Traditionally, NVMe is driven from the CPU side. The CPU sets up the queues, programs BAR0, and rings the doorbells, and the GPU mostly shows up later when it is time to consume the data. Lately I was wondering if we can change that. This experiment started with me reading Dr. Stephen Bates’s work. The main experiment is wire up an NVMe device and an AMD GPU and make them talk directly.…

AMD GPU Debugger

I’ve always wondered why we don’t have a GPU debugger similar to the one used for CPUs. A tool that allows pausing execution and examining the current state. This capability feels essential, especially since the GPU’s concurrent execution model is much harder to reason about. After searching for solutions, I came across rocgdb, a debugger for AMD’s ROCm environment. Unfortunately, its scope is…

Vulkan Foliage rendering using GPU Instancing

I was watching acerola’s video on foliage rendering and I liked the idea of rendering millions of grass blades, it was a good opportunity to play around with GPU instancing and indirect draw. What I’ll Be Using The features and extensions set used in this abroach are: VK_EXT_buffer_device_address This extension allows for using pointers in GLSL and passing them in push constants or buffers, this…

How The WebSocket Server Works

This post is largely inspired by my project zig-ws , it’s an interesting protocol and relatively easy to implement so let’s see how it works on the server side. What Is The WebSocket Protocol it’s a protocol to provide a real-time 2-way connection over a persistent TCP connection it does that by using HTTP handshake and then using the TCP connection used for the handshake to send frames. Frames…