<?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>Transformer Engine on Echo的技术博客</title><link>https://cybersecurityerial.github.io/echo_blog/tags/transformer-engine/</link><description>Recent content in Transformer Engine on Echo的技术博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 21 May 2026 06:10:00 +0800</lastBuildDate><atom:link href="https://cybersecurityerial.github.io/echo_blog/tags/transformer-engine/index.xml" rel="self" type="application/rss+xml"/><item><title>LLM System: Transformer Engine 00 - 学习地图</title><link>https://cybersecurityerial.github.io/echo_blog/posts/llm-system-te-00-roadmap/</link><pubDate>Thu, 21 May 2026 06:00:00 +0800</pubDate><guid>https://cybersecurityerial.github.io/echo_blog/posts/llm-system-te-00-roadmap/</guid><description>&lt;blockquote&gt;
&lt;p&gt;这篇文章是 LLM System 系列里 Transformer Engine 子专题的第 0 篇，也是这个主题的学习入口。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我准备用这个系列系统学习 &lt;a href="https://github.com/NVIDIA/TransformerEngine"&gt;NVIDIA Transformer Engine&lt;/a&gt;。目标不是只会调用几个 &lt;code&gt;te.*&lt;/code&gt; API，而是把 TE 放到大模型训练系统里理解：它为什么存在、如何利用 FP8 / FP4 和 fused kernel、怎么被 Megatron-LM 接入，以及后续如何用 profiler 分析和改进它。&lt;/p&gt;
&lt;h2 id="0-学习目标"&gt;0. 学习目标&lt;/h2&gt;
&lt;p&gt;这组笔记会围绕四件事展开：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1. TE 在 AI Infra 技术栈中的位置
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2. TE 的核心加速策略：低精度、融合算子、Attention、MoE、通信重叠
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;3. Megatron-LM / Megatron-Core 如何接入 TE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;4. 如何 benchmark、trace 并尝试改进 TE
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="1-技术定位"&gt;1. 技术定位&lt;/h2&gt;
&lt;p&gt;Transformer Engine 不是训练框架，而是 NVIDIA 为 Transformer 训练/推理提供的高性能 building block 库。它大致位于训练框架和底层 CUDA/cuBLAS/cuDNN kernel 之间。&lt;/p&gt;
&lt;p&gt;这一阶段要回答的问题：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1. TE 和 PyTorch AMP 的关系是什么？
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2. TE 和 Megatron-LM 的边界在哪里？
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;3. TE 为什么不是一个完整训练框架？
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;4. TE 为什么不只是 FP8，而是 Transformer 优化库？
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;5. TE 在 AI Infra 技术栈里更靠近 compiler/runtime/kernel，还是更靠近 model framework？
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2-核心加速策略"&gt;2. 核心加速策略&lt;/h2&gt;
&lt;p&gt;核心加速策略先按五条线学习：&lt;/p&gt;</description></item><item><title>LLM System: Transformer Engine 01 - 在 AI Infra 技术栈中的位置</title><link>https://cybersecurityerial.github.io/echo_blog/posts/llm-system-te-01-ai-infra-position/</link><pubDate>Thu, 21 May 2026 06:10:00 +0800</pubDate><guid>https://cybersecurityerial.github.io/echo_blog/posts/llm-system-te-01-ai-infra-position/</guid><description>&lt;blockquote&gt;
&lt;p&gt;本篇目标：了解 Transformer Engine 的技术定位，搞清楚它为什么存在，以及它和 PyTorch、cuBLAS、Megatron-LM 的边界。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="基本接口"&gt;基本接口&lt;/h2&gt;
&lt;p&gt;Layer 类定义接口非常直接，最表层的使用方式就是把 &lt;code&gt;torch.nn&lt;/code&gt; 模块替换成 &lt;code&gt;transformer_engine.pytorch&lt;/code&gt; 模块。&lt;/p&gt;
&lt;p&gt;普通 PyTorch 写法：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;self&lt;span style="color:#f92672"&gt;.&lt;/span&gt;linear &lt;span style="color:#f92672"&gt;=&lt;/span&gt; torch&lt;span style="color:#f92672"&gt;.&lt;/span&gt;nn&lt;span style="color:#f92672"&gt;.&lt;/span&gt;Linear(hidden_size, &lt;span style="color:#ae81ff"&gt;4&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt; hidden_size)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;TE 写法：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; transformer_engine.pytorch &lt;span style="color:#66d9ef"&gt;as&lt;/span&gt; te
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;self&lt;span style="color:#f92672"&gt;.&lt;/span&gt;linear &lt;span style="color:#f92672"&gt;=&lt;/span&gt; te&lt;span style="color:#f92672"&gt;.&lt;/span&gt;Linear(hidden_size, &lt;span style="color:#ae81ff"&gt;4&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt; hidden_size)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;量化上下文：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; transformer_engine.pytorch &lt;span style="color:#f92672"&gt;import&lt;/span&gt; fp8_autocast
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; fp8_autocast(enabled&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; y &lt;span style="color:#f92672"&gt;=&lt;/span&gt; module(x)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;进入 TE 的 FP8 上下文之后，TE 会围绕量化、反量化、fused path、tensor cache 和 backend 选择做一系列处理。相较于纯 PyTorch 计算图优化，TE 会拿到更多信息 tensor parallel、sequence parallel、FP8 recipe 等。这些额外信息给底层算子优化留下了空间。&lt;/p&gt;
&lt;p&gt;这一点目前还是比较 general 层面 的认知，后面要继续顺着源码和 profiler trace 去验证。&lt;/p&gt;
&lt;h2 id="te-和-megatron-的边界"&gt;TE 和 Megatron 的边界&lt;/h2&gt;
&lt;p&gt;Megatron-Core 负责模型并行、训练 loop、optimizer、activation checkpoint、MoE routing、pipeline schedule 和 config。&lt;/p&gt;</description></item></channel></rss>