<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>性能优化 on Hellokitty&#39;s Blog</title>
    <link>https://yangyang233333.github.io/tags/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/</link>
    <description>Recent content in 性能优化 on Hellokitty&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Mon, 31 Aug 2026 10:30:00 +0800</lastBuildDate>
    <atom:link href="https://yangyang233333.github.io/tags/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CUDA Event：GPU 时间线上的事件、同步原理与实战</title>
      <link>https://yangyang233333.github.io/posts/cuda-event-principles-demo/</link>
      <pubDate>Mon, 31 Aug 2026 10:30:00 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/cuda-event-principles-demo/</guid>
      <description>&lt;p&gt;CUDA kernel launch 通常是异步的：CPU 把 kernel、内存拷贝等操作提交到 stream 后便继续执行。由此产生两个常见问题：如何准确测量 GPU 工作耗时，以及如何让不同 stream 在不阻塞 CPU 的情况下建立依赖？&lt;/p&gt;
&lt;p&gt;CUDA Event 就是解决这类问题的基础设施。它可以理解为插入 GPU stream 时间线中的一个标记：当 event 之前的工作全部完成，event 才进入完成状态。借助这个状态，我们可以做 GPU 计时、CPU 等待、跨 stream 同步和异步资源回收。&lt;/p&gt;
&lt;h2 id=&#34;1-event-不是-cpu-事件而是-gpu-时间线标记&#34;&gt;1. Event 不是 CPU 事件，而是 GPU 时间线标记&lt;/h2&gt;
&lt;p&gt;一个 CUDA stream 是按序执行的 GPU 工作队列：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CPU 提交： Kernel A → memcpy → Event E → Kernel B
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                         异步提交
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;GPU 执行： Kernel A ── memcpy ── E 完成 ── Kernel B
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;调用 &lt;code&gt;cudaEventRecord(event, stream)&lt;/code&gt; 时，CPU 通常只是向 &lt;code&gt;stream&lt;/code&gt; 提交一个 event 记录操作，并不会等待 GPU 执行到该位置。只有当这个 stream 中排在 event 前面的操作完成后，event 才会被标记为完成。&lt;/p&gt;</description>
    </item>
    <item>
      <title>从朴素循环到硬件极限：GEMM / GEMV 高性能算子优化指南</title>
      <link>https://yangyang233333.github.io/posts/gemm-gemv-optimization/</link>
      <pubDate>Wed, 26 Aug 2026 14:20:00 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/gemm-gemv-optimization/</guid>
      <description>从 Roofline、数据布局和分层分块出发，逐步分析如何在 CPU 与 GPU 上优化 GEMM/GEMV，并建立可复现的性能验证方法。</description>
    </item>
  </channel>
</rss>
