<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/rss-styles.xsl"?>
<rss version="2.0">
  <channel>
    <title>Works on My GPU</title>
    <link>https://worksonmygpu.com</link>
    <description>Notes on GPU computing, AI inference, and ML research — from low-level performance optimization to new developments in AI.</description>
    <language>en</language>
    <atom:link xmlns:atom="http://www.w3.org/2005/Atom" href="https://worksonmygpu.com/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Why FP8 Needs Register Shuffles in WGMMA</title>
      <link>https://worksonmygpu.com/posts/fp8-wgmma-register-shuffle</link>
      <guid>https://worksonmygpu.com/posts/fp8-wgmma-register-shuffle</guid>
      <pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate>
      <author>Beyzanur Zeybek</author>
      <description>FP16 lets you feed one WGMMA&apos;s output straight into the next — the layouts already match. FP8 doesn&apos;t get that for free: the accumulator and the next operand disagree on which thread owns which value, and fixing that costs real shuffle instructions.</description>
    </item>
    <item>
      <title>WGMMA and Register Fragments, Explained</title>
      <link>https://worksonmygpu.com/posts/wgmma-register-fragments</link>
      <guid>https://worksonmygpu.com/posts/wgmma-register-fragments</guid>
      <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
      <author>Beyzanur Zeybek</author>
      <description>WGMMA showed up unexplained in two earlier posts — as a row in a diagram, then as a building block of FlashAttention-3. Here&apos;s what it actually is: an async, 128-thread-wide matrix multiply, and the register layout that makes it usable.</description>
    </item>
    <item>
      <title>FlashAttention: From v1 to v3, What Each Version Actually Fixed</title>
      <link>https://worksonmygpu.com/posts/flashattention-versions</link>
      <guid>https://worksonmygpu.com/posts/flashattention-versions</guid>
      <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
      <author>Beyzanur Zeybek</author>
      <description>Three papers, three years, three different bottlenecks. FlashAttention wasn&apos;t &apos;made faster&apos; three times in a row — each version targeted something the previous one left on the table.</description>
    </item>
    <item>
      <title>Understanding CuTe Layouts: Shape and Stride</title>
      <link>https://worksonmygpu.com/posts/cute-layouts</link>
      <guid>https://worksonmygpu.com/posts/cute-layouts</guid>
      <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
      <author>Beyzanur Zeybek</author>
      <description>Every CuTe layout is just a pair — a Shape and a Stride. That one idea, applied recursively, is what lets CUTLASS 3.x describe a whole GEMM&apos;s tiling — from the full matrix down to a single thread&apos;s registers — with one abstraction instead of a class per level.</description>
    </item>
    <item>
      <title>What Is CUTLASS, and Why Does It Exist?</title>
      <link>https://worksonmygpu.com/posts/what-is-cutlass</link>
      <guid>https://worksonmygpu.com/posts/what-is-cutlass</guid>
      <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
      <author>Beyzanur Zeybek</author>
      <description>cuBLAS gives you a fast, opaque matrix multiply. CUTLASS gives you the same speed as composable C++ building blocks, so you can fuse, customize, and specialize — matched to the GPU&apos;s own execution and memory hierarchy.</description>
    </item>
    <item>
      <title>A Short History of GPU Architectures: From Volta to Blackwell</title>
      <link>https://worksonmygpu.com/posts/gpu-architecture-history</link>
      <guid>https://worksonmygpu.com/posts/gpu-architecture-history</guid>
      <pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate>
      <author>Beyzanur Zeybek</author>
      <description>Tensor Cores in Volta, sparsity in Ampere, a Transformer Engine in Hopper, FP4 in Blackwell — the architectural changes that actually mattered, one generation at a time.</description>
    </item>
  </channel>
</rss>