<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Easton&#39;s Mailing list</title>
    <link>https://newsletter.eastonman.com</link>
    <description>Mailing list archive</description>
    <item>
      <title>Performance, Microarchitecture and More: #1</title>
      <link>https://newsletter.eastonman.com/archive/performance-microarchitecture-and-more-1</link>
      <description></description>
      <content:encoded><![CDATA[<!doctype html>
<html>
    <head>
        <title>Performance, Microarchitecture and More: #1</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
        <base target="_blank">
        <style>
            body {
                background-color: #F0F1F3;
                font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, sans-serif;
                font-size: 15px;
                line-height: 26px;
                margin: 0;
                color: #444;
            }

            pre {
                background: #f4f4f4f4;
                padding: 2px;
            }

            table {
                width: 100%;
                border: 1px solid #ddd;
            }
            table td {
                border-color: #ddd;
                padding: 5px;
            }

            .wrap {
                background-color: #fff;
                padding: 30px;
                max-width: 525px;
                margin: 0 auto;
                border-radius: 5px;
            }

            .button {
                background: #0055d4;
                border-radius: 3px;
                text-decoration: none !important;
                color: #fff !important;
                font-weight: bold;
                padding: 10px 30px;
                display: inline-block;
            }
            .button:hover {
                background: #111;
            }

            .footer {
                text-align: center;
                font-size: 12px;
                color: #888;
            }
                .footer a {
                    color: #888;
                    margin-right: 5px;
                }

            .gutter {
                padding: 30px;
            }

            img {
                max-width: 100%;
                height: auto;
            }

            a {
                color: #0055d4;
            }
                a:hover {
                    color: #111;
                }
            @media screen and (max-width: 600px) {
                .wrap {
                    max-width: auto;
                }
                .gutter {
                    padding: 10px;
                }
            }
        </style>
    </head>
<body style="background-color: #F0F1F3;font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, sans-serif;font-size: 15px;line-height: 26px;margin: 0;color: #444;">
    <div class="gutter" style="padding: 30px;">&nbsp;</div>
    <div class="wrap" style="background-color: #fff;padding: 30px;max-width: 525px;margin: 0 auto;border-radius: 5px;">
        <p><strong>Hi Name,</strong></p>
<p>本期是 Performance, Microarchitecture and More News Letter 的第一期。很高兴与大家分享，我们将一起关注 AMD Zen5 的新闻，访存操作消除等一些有趣的话题。<br /><br /></p>
<p style="text-align: center;"><br /><strong>新闻</strong></p>
<hr />
<p style="text-align: left;">近期比较热门的新闻是 AMD Zen5 核心的处理器上市了，新增了很多测评：</p>
<p style="text-align: left;"><a href="https://newsletter.eastonman.com/link/275d381c-412d-459d-ad53-7245b9dbbdb3/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">Chips and Cheese</a> (移动平台)</p>
<p style="text-align: left;"><a href="https://newsletter.eastonman.com/link/2c7d8e37-5c6a-48a8-af25-26d2043a4656/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">极客湾-Bilibili</a> (移动平台)</p>
<p style="text-align: left;"><a href="https://www.bilibili.com/video/BV1FU411S7cb" target="_blank" rel="noopener">极客湾-Bilibili</a> (桌面平台)</p>
<p style="text-align: left;"><a href="https://newsletter.eastonman.com/link/7bc425c8-4d7f-44d6-806d-cf3a38757b4d/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">Edison Chen - 知乎</a> (桌面平台)</p>
<p style="text-align: left;"><a href="https://newsletter.eastonman.com/link/ef03f5b9-c27a-45ab-9d14-7d7829de155d/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">David Huang - 1</a> <a href="https://newsletter.eastonman.com/link/4aea54af-97ab-4cba-a3fa-77ad97046d7e/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">David Huang - 2</a> <a href="https://newsletter.eastonman.com/link/383b20cc-df40-4681-a81d-328aece9f10c/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">David Huang - 3</a> (移动平台)</p>
<p style="text-align: left;"><a href="https://newsletter.eastonman.com/link/4016f238-0be7-4b46-afb5-dee3a9cced98/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">万扯淡 - Bilibili</a> (Strix Point Die Shot)</p>
<p style="text-align: center;"><br /><strong>博客</strong></p>
<hr />
<p style="text-align: left;">AWS 的 <span class="s1"><strong>Graviton 4 </strong>CPU 已经可以在 ECS 中使用了。<strong>Graviton 4 </strong>的 CPU IP 使用的是 ARM 的数据中心 IP Neoverse V2，Neoverse V2 是由 Cortex X3 发展而来的，具有一个现代高性能核的规模和性能，详细的测试分析可见 </span><a title="Arm’s Neoverse V2, in AWS’s Graviton 4" href="https://newsletter.eastonman.com/link/5cccd38a-ff79-4812-8131-6a28ef6fa0f1/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">Chips and Cheese</a></p>
<p style="text-align: left;"> </p>
<p style="text-align: left;">AMD Zen5 架构的前端取指模块和分支预测有较大的改动，最重要的改动是支持了较大范围（限制较少）的 2-taken 2-fetch 结构，关于这个，有两篇博客做了一定的分析 <a href="https://newsletter.eastonman.com/link/95d01886-5a95-45ae-af31-0dee94f3fcd1/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">Chips and Cheese</a>  <a href="https://newsletter.eastonman.com/link/e43beaeb-6a98-4827-a377-060308d080b2/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">杰哥的{运维，编程，调板子}小笔记</a></p>
<p style="text-align: left;">然而以上两篇分析的博客都有一些不详尽之处，由于我恰好参与过高性能CPU前端取指模块的开发，因此可以找时间写一篇博客与大家分享（咕咕咕）。</p>
<p style="text-align: left;"> </p>
<p style="text-align: left;"><strong>Value Prediction（值预测</strong>）在硬件上也还是一个新鲜话题，然而软件也可以参考这一思路，在某些特殊情况下提高性能：例如语意上是 Pointer Chasing 的数据结构，但是实际数据为结构化的，则有优化的空间  <a href="https://mazzo.li/posts/value-speculation.html" target="_blank" rel="noopener">https://mazzo.li/posts/value-speculation.html</a></p>
<p style="text-align: left;"> </p>
<p style="text-align: center;"><strong>学术论文</strong></p>
<hr />
<p style="text-align: left;"><strong>ISCA 2024 </strong>不久前在阿根廷布宜诺斯艾利斯召开了，有一些令人兴奋的新工作发表，我们一起来看看。</p>
<p style="text-align: left;"> </p>
<p style="text-align: left;"><strong>Alternate Path Fetch</strong> (<a title="Alternate Path Fetch" href="https://newsletter.eastonman.com/link/4a1768be-ca96-4b6d-bb5b-2de1729d993a/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">ISCA 2024 Slides</a>)</p>
<p style="text-align: left;">现代处理器对于任意重复 pattern 的分支已经能较好的预测了，但是有一类数据依赖性的难预测分支本身的可预测性弱，因此 TAGE / Perceptron 类的预测器无法很好地预测。 Alternate Path Fetch 一文重新讨论了实现一个有限的 Multi-Path 处理器的可行性和性能收益。该文章将 Multi-Path 限制在了前端部分，因此不需要处理乱序 + Multi-Path 引入的巨大复杂性。然后通过 SRAM Banking 解决了前端各预测器和 Cache 的冲突问题，在几乎没有额外的面积开销的情况下，能够等效地降低分支误预测的延迟。</p>
<p style="text-align: left;"> </p>
<p style="text-align: left;"><strong>AVM-BTB: Adaptive and Virtualized Multi-level  Branch Target Buffer </strong>(<a href="https://newsletter.eastonman.com/link/9cf84185-6e96-4c35-a688-ca26f029de21/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">IEEE Computer Society Digital Library</a>)</p>
<p style="text-align: left;">BTB 在现代解耦前端中扮演着重要的角色，然而 BTB 的容量似乎从来没有够用过，AVM-BTB 一文讨论了将 uOP Cache 和 L1 ICache 的 SRAM 挪用作为 BTB 的存储空间后对性能的影响。文章为龙芯相关的博士生工作，模拟器平台为 LoongArch 的 ChampSim，使用了 CVP、IPC 两个近年竞赛的 trace 和一批真实应用的 trace 作为评估的测试集。在 BTB 存储容量明显不足时，借用其他组件的存储有显著的好处，最高平均提升了 18.22% 的性能（IPC）。</p>
<p style="text-align: left;"> </p>
<p style="text-align: left;">过去一段时间，访存操作的消除一直是一个神秘的话题，HPCA 2024 和 ISCA 2024 的两篇论文向我们展示了一点这一技术实现的细节，一篇为正向，一篇为逆向。</p>
<p style="text-align: left;"><strong>Constable: Improving Performance and Power Efficiency by Safely Eliminating Load Execution</strong> (<a href="https://newsletter.eastonman.com/link/8d5f94fe-8075-41c1-8a6f-be936fd8aad5/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">arxiv.org PDF</a>)</p>
<p style="text-align: left;"><strong>Uncovering and Exploiting AMD Speculative Memory Access Predictors for Fun and Profit</strong> (<a href="https://newsletter.eastonman.com/link/3e781ed5-0574-45c8-ba2d-42ed3295f601/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">IEEE Explor</a>)</p>
<p style="text-align: center;"><strong>其他</strong></p>
<hr />
<p style="text-align: left;"><a href="https://newsletter.eastonman.com/link/324a0e07-65c7-429b-8967-dfce8688f641/b902cc40-7cbe-49a2-8ce6-11e198db4902/" target="_blank" rel="noopener">What are the ways compilers recognize complex patterns?</a> StackExchange 上关于编译器优化 Pass 如何识别 Pattern 的讨论。</p>
<p style="text-align: left;"><a href="https://blog.cr.yp.to/20240803-clang.html" target="_blank" rel="noopener">https://blog.cr.yp.to/20240803-clang.html</a> 编译器优化导致的 timing 侧信道问题。</p>
<p style="text-align: center;"> </p>
<p style="text-align: center;"> </p>
<p style="text-align: center;"> </p>
<p style="text-align: center;"><span style="font-size: 12px;"><em>Copyright © 2024 EastonMan, All rights reserved.</em></span></p>
    </div>
    
    <div class="footer" style="text-align: center;font-size: 12px;color: #888;">
        <p>Powered by <a href="https://listmonk.app" target="_blank" rel="noreferrer" style="color: #888;">listmonk</a></p>
    </div>
</body>
</html>
]]></content:encoded>
      <pubDate>Tue, 13 Aug 2024 02:00:00 +0000</pubDate>
    </item>
  </channel>
</rss>