<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
    <channel>
      <title>fxlin&#039;s Blog</title>
      <link>https://fxlin0261.github.io</link>
      <description>最近的10条笔记 on fxlin&#039;s Blog</description>
      <generator>Quartz -- quartz.jzhao.xyz</generator>
      <item>
    <title>CUDA GEMM：从基础写法到工程优化</title>
    <link>https://fxlin0261.github.io/cuda/CUDA-GEMM%EF%BC%9A%E4%BB%8E%E5%9F%BA%E7%A1%80%E5%86%99%E6%B3%95%E5%88%B0%E5%B7%A5%E7%A8%8B%E4%BC%98%E5%8C%96</link>
    <guid>https://fxlin0261.github.io/cuda/CUDA-GEMM%EF%BC%9A%E4%BB%8E%E5%9F%BA%E7%A1%80%E5%86%99%E6%B3%95%E5%88%B0%E5%B7%A5%E7%A8%8B%E4%BC%98%E5%8C%96</guid>
    <description><![CDATA[ CUDA GEMM：从基础写法到工程优化 SGEMM 要做的事很简单： C = alpha * A * B + beta * C A 是 M x K B 是 K x N C 是 M x N 默认约定： 矩阵按 row-major 存储 后面的高性能版本主要面向大矩阵 benchmark，很多 kernel 默认 M/N 按 block tile 对齐、K 按 BK 对齐、N 满足 float4 对齐 真正工程里如果要通吃任意尺寸，还要补边界判断和尾块处理 参数记号： BM / BN / BK：thread block 级别 tile TM / TN：每个线程在寄存器里负责的输出 tile WM... ]]></description>
    <pubDate>Wed, 15 Apr 2026 15:10:02 GMT</pubDate>
  </item><item>
    <title>CUDA性能优化思想</title>
    <link>https://fxlin0261.github.io/cuda/CUDA%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%80%9D%E6%83%B3</link>
    <guid>https://fxlin0261.github.io/cuda/CUDA%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%80%9D%E6%83%B3</guid>
    <description><![CDATA[ CUDA 性能优化思想 算子kernel 核心思路：少访存、访存连续、多复用、少分支。 Global Memory 连续访问，尽量触发 coalescing。 利用局部性，提高 L1/L2 缓存命中率。 必要时调整数据布局，例如矩阵乘中先转置 B，让读取更连续。 使用 float4、int4 等向量化加载，提高带宽利用率。 Shared Memory 热数据先搬到 shared memory，减少 global memory 访问。 注意 bank conflict；必要时通过 padding 避免冲突。 Register 线程私有的高频数据尽量放寄存器里，例如 thread tile。 寄存... ]]></description>
    <pubDate>Wed, 15 Apr 2026 15:10:02 GMT</pubDate>
  </item><item>
    <title>Random算子范式</title>
    <link>https://fxlin0261.github.io/ops/Random%E7%AE%97%E5%AD%90%E8%8C%83%E5%BC%8F</link>
    <guid>https://fxlin0261.github.io/ops/Random%E7%AE%97%E5%AD%90%E8%8C%83%E5%BC%8F</guid>
    <description><![CDATA[ Random 算子范式 所有 random 算子本质上都是同一条流水线的变体： ① 确定性种子 → ② Philox RNG → ③ 归一化随机数 → ④ 数学变换 → 目标分布 RNG = Random Number Generator，随机数生成器 Philox 是 counter-based RNG，不像传统 RNG 有状态依赖链。每个核只需知道自己的 counter 起始值（通过 Skip 跳转），就能独立生成不重叠的随机数序列。核间零通信。算子之间的唯一本质区别就是最后一步”数学变换”。 ① 确定性种子 // seed → key（拆成两个 uint32） key[0] = stat... ]]></description>
    <pubDate>Wed, 15 Apr 2026 15:10:02 GMT</pubDate>
  </item><item>
    <title>浮点数表示与精度</title>
    <link>https://fxlin0261.github.io/ops/%E6%B5%AE%E7%82%B9%E6%95%B0%E8%A1%A8%E7%A4%BA%E4%B8%8E%E7%B2%BE%E5%BA%A6</link>
    <guid>https://fxlin0261.github.io/ops/%E6%B5%AE%E7%82%B9%E6%95%B0%E8%A1%A8%E7%A4%BA%E4%B8%8E%E7%B2%BE%E5%BA%A6</guid>
    <description><![CDATA[ 有符号整数范围 最高位符号位，正数为 0，负数为 1。对于计算机，补码才是数，正数的补码是本身，负数的补码是取反 + 1。 int8 举例 正数：00000000 ～ 01111111 → 最大值 01111111 = 127 负数：10000000 ～ 11111111 → 最小值 10000000 → 补码 -1 为 01111111 → 取反为 10000000 → 所以真实值为 -128（负数 1 越多数字越大，因为取反之后为 0，越接近 0） 浮点数范围 float32 举例 最大：+3.4028235 × 10^38 最小：-3.4028235 × 10^38 是对称的 为什么要有... ]]></description>
    <pubDate>Mon, 13 Apr 2026 15:55:53 GMT</pubDate>
  </item><item>
    <title>关于</title>
    <link>https://fxlin0261.github.io/about</link>
    <guid>https://fxlin0261.github.io/about</guid>
    <description><![CDATA[ 关于 fxlin ]]></description>
    <pubDate>Mon, 13 Apr 2026 15:34:07 GMT</pubDate>
  </item><item>
    <title>FlashAttention原理与CUDA实现</title>
    <link>https://fxlin0261.github.io/ml/FlashAttention%E5%8E%9F%E7%90%86%E4%B8%8ECUDA%E5%AE%9E%E7%8E%B0</link>
    <guid>https://fxlin0261.github.io/ml/FlashAttention%E5%8E%9F%E7%90%86%E4%B8%8ECUDA%E5%AE%9E%E7%8E%B0</guid>
    <description><![CDATA[ flash attention 干了什么 template &lt;typename Ty, int kBc = 4, int kBr = 4, int kDim = 128&gt; __global__ void flash_attention_v2_kernel(Ty* Q, Ty* K, Ty* V, Ty* O, int seqlen, // M int stride_head, // M*N Ty smScale) { int groupSeq = (seqlen + kBc - 1) / kBc; int groupTx = (kDim + kBc - 1) / kBc; int ... ]]></description>
    <pubDate>Mon, 13 Apr 2026 15:34:07 GMT</pubDate>
  </item><item>
    <title>Llama</title>
    <link>https://fxlin0261.github.io/ml/Llama</link>
    <guid>https://fxlin0261.github.io/ml/Llama</guid>
    <description><![CDATA[  LLaMa LLaMA 1: 7B / 13B / 33B / 65B Llama 2: 7B / 13B / 70B Llama 3: 8B / 70B Llama 3.1: 8B / 70B / 405B Llama 3.2: 1B / 3B（文本）, 11B / 90B（视觉） Code Llama: 7B / 13B / 34B / 70B 核心配方一直不变 decoder-only Transformer RMSNorm SwiGLU RoPE 小变化 llama1→Llama 2：context length 提高 + 引入 GQA tokenizer 明显变大（32K → 12... ]]></description>
    <pubDate>Mon, 13 Apr 2026 15:34:07 GMT</pubDate>
  </item><item>
    <title>sincos正余弦和RoPE旋转位置编码</title>
    <link>https://fxlin0261.github.io/ml/sincos%E6%AD%A3%E4%BD%99%E5%BC%A6%E5%92%8CRoPE%E6%97%8B%E8%BD%AC%E4%BD%8D%E7%BD%AE%E7%BC%96%E7%A0%81</link>
    <guid>https://fxlin0261.github.io/ml/sincos%E6%AD%A3%E4%BD%99%E5%BC%A6%E5%92%8CRoPE%E6%97%8B%E8%BD%AC%E4%BD%8D%E7%BD%AE%E7%BC%96%E7%A0%81</guid>
    <description><![CDATA[  为什么需要位置编码：因为计算注意力中，没有区分词的顺序，没办法区分 “你爱我”和“我爱你”，位置编码就来解决这一问题 为什么不直接使用顺序编码，比如1 2 3 4 5 6，序列太长影响，并且不能固定序列长度 Transformer位置编码 Input(pos)=Embedding(token_{pos})+PositionalEncoding(pos) 第 pos 个 token 的输入 = 第 pos 个 token 的词向量 + 第 pos 个位置的位置编码向量 PositionalEncoding是个什么计算： PE(pos)= \begin{bmatrix} \sin(0) &amp... ]]></description>
    <pubDate>Mon, 13 Apr 2026 15:34:07 GMT</pubDate>
  </item><item>
    <title>NPU Tiling切分基础公共逻辑</title>
    <link>https://fxlin0261.github.io/npu/NPU-Tiling%E5%88%87%E5%88%86%E5%9F%BA%E7%A1%80%E5%85%AC%E5%85%B1%E9%80%BB%E8%BE%91</link>
    <guid>https://fxlin0261.github.io/npu/NPU-Tiling%E5%88%87%E5%88%86%E5%9F%BA%E7%A1%80%E5%85%AC%E5%85%B1%E9%80%BB%E8%BE%91</guid>
    <description><![CDATA[ 核间切分 需要核心数 = CeilDiv(总长度, 每个核心目标处理x个) 使用核心数 = min(需要核心数, 实际物理核数) 每个核心处理的个数 = CeilDiv(总长度, 使用核心数) 尾核处理的个数 = 总长度 - 每个核心处理的个数 * (使用核心数 - 1) 核内切分 一次L0能装多少个 = FloorDiv(L0级缓存大小, 元素大小) 正常核心循环次数 = CeilDiv(核心处理的个数, 一次L0能装多少个) 最后一次要处理的个数 = 核心处理的个数 - 一次L0能装多少个 * (正常核心循环次数 - 1) 尾核心循环次数和尾核心最后一次处理个数同理 基础对齐运算 Ceil... ]]></description>
    <pubDate>Mon, 13 Apr 2026 15:34:07 GMT</pubDate>
  </item><item>
    <title>npu</title>
    <link>https://fxlin0261.github.io/npu/</link>
    <guid>https://fxlin0261.github.io/npu/</guid>
    <description><![CDATA[ 记录 NPU（主要是 Ascend）相关编译链路与执行流程的文章 ]]></description>
    <pubDate>Mon, 13 Apr 2026 15:34:07 GMT</pubDate>
  </item>
    </channel>
  </rss>