-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
136 lines (95 loc) · 32.4 KB
/
Copy pathindex.html
File metadata and controls
136 lines (95 loc) · 32.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=2"><meta name="theme-color" content="#222"><meta http-equiv="X-UA-COMPATIBLE" content="IE=edge,chrome=1"><meta name="renderer" content="webkit"><link rel="icon" type="image/ico" sizes="32x32" href="/assets/favicon.ico"><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon.png"><link rel="alternate" href="/rss.xml" title="Пусть этот камень будет более крепким, чем человек" type="application/rss+xml"><link rel="alternate" href="/atom.xml" title="Пусть этот камень будет более крепким, чем человек" type="application/atom+xml"><link rel="alternate" type="application/json" title="Пусть этот камень будет более крепким, чем человек" href="https://forcheetah.github.io/feed.json"><link rel="preconnect" href="https://lf9-cdn-tos.bytecdntp.com"><link rel="preconnect" href="https://at.alicdn.com"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Mulish:400,400italic,700,700italic%7CFredericka%20the%20Great:400,400italic,700,700italic%7CNoto%20Serif%20JP:400,400italic,700,700italic%7CNoto%20Serif%20SC:400,400italic,700,700italic%7CInconsolata:400,400italic,700,700italic&display=swap&subset=latin,latin-ext" media="none" onload="this.media='all'"><link rel="stylesheet" href="/css/app.css?v=0.4.2"><link rel="modulepreload" href="/js/chunk-FJ7AJ5BW.js"><link rel="modulepreload" href="/js/chunk-MQTNP6EI.js"><link rel="modulepreload" href="/js/chunk-QAWHJ5B3.js"><link rel="modulepreload" href="/js/index.esm-SU253EAQ.js"><link rel="modulepreload" href="/js/post-SZ2V6ERD.js"><link rel="modulepreload" href="/js/quicklink-GO25OZIT.js"><link rel="modulepreload" href="/js/siteInit.js"><link rel="preload" href="https://forcheetah.github.io/assets/harrypotter.webp" as="image" fetchpriority="high"><link rel="preload" href="https://forcheetah.github.io/assets/girl.webp" as="image" fetchpriority="high"><link rel="preload" href="https://forcheetah.github.io/assets/lunbo11.webp" as="image" fetchpriority="high"><link rel="preload" href="https://forcheetah.github.io/assets/lunbo4.webp" as="image" fetchpriority="high"><link rel="preload" href="https://forcheetah.github.io/assets/lunbo12.webp" as="image" fetchpriority="high"><link rel="preload" href="https://forcheetah.github.io/assets/lunbo10.webp" as="image" fetchpriority="high"><meta name="keywords" content="AI, CNN, Inference"><meta name="description" content="有自己的博客很帅,但是我很懒,要命!!!"><link rel="canonical" href="https://forcheetah.github.io/"><title>暮冬Z羡慕的博客 = Пусть этот камень будет более крепким, чем человек = 神经网络推理、加速、AI编译。 我必须立刻开始挣扎!</title><meta name="generator" content="Hexo 7.0.0"></head><body itemscope="" itemtype="http://schema.org/WebPage"><div id="loading"><div class="cat"><div class="body"></div><div class="head"><div class="face"></div></div><div class="foot"><div class="tummy-end"></div><div class="bottom"></div><div class="legs left"></div><div class="legs right"></div></div><div class="paw"><div class="hands left"></div><div class="hands right"></div></div></div></div><div id="container"><header id="header" itemscope="" itemtype="http://schema.org/WPHeader"><div class="inner"><div id="brand"><div class="pjax"><a class="logo" href="/" rel="start"><p class="artboard">暮冬Z羡慕的博客</p><h1 class="title" itemprop="name headline">Пусть этот камень будет более крепким, чем человек</h1></a><p class="meta" itemprop="description">= 神经网络推理、加速、AI编译。 我必须立刻开始挣扎! =</p></div></div><nav id="nav"><div class="inner"><div class="toggle"><div class="lines" aria-label="Toggle navigation bar"><span class="line"></span><span class="line"></span><span class="line"></span></div></div><ul class="menu"><li class="item title"><a href="/" rel="start">暮冬Z羡慕的博客</a></li></ul><ul class="right" id="rightNav"><li class="item theme"><i class="ic i-sun"></i></li><li class="item search"><i class="ic i-search"></i></li></ul></div></nav></div><div class="pjax" id="imgs"><ul><li class="item" style="background-image: url("https://forcheetah.github.io/assets/harrypotter.webp");"></li><li class="item" style="background-image: url("https://forcheetah.github.io/assets/girl.webp");"></li><li class="item" style="background-image: url("https://forcheetah.github.io/assets/lunbo11.webp");"></li><li class="item" style="background-image: url("https://forcheetah.github.io/assets/lunbo4.webp");"></li><li class="item" style="background-image: url("https://forcheetah.github.io/assets/lunbo12.webp");"></li><li class="item" style="background-image: url("https://forcheetah.github.io/assets/lunbo10.webp");"></li></ul></div></header><div id="waves"><svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto"><defs><path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"></path></defs><g class="parallax"><use xlink:href="#gentle-wave" x="48" y="0"></use><use xlink:href="#gentle-wave" x="48" y="3"></use><use xlink:href="#gentle-wave" x="48" y="5"></use><use xlink:href="#gentle-wave" x="48" y="7"></use></g></svg></div><main><div class="inner"><div class="pjax" id="main"><div class="index wrap"><h2 class="divider">Sticky Posts</h2><div class="segments sticky"><article class="item"><div class="cover"><a href="/2024/05/24/category/" itemprop="url" title="博客汇总目录"><img loading="eager" decoding="async" src="https://forcheetah.github.io/assets/lunbo11.webp" alt="article cover"></a></div><div class="info"><div class="meta"><span class="item" title="Created: 2024-05-24 21:25:53"><span class="icon"><i class="ic i-calendar"></i></span><time itemprop="dateCreated datePublished" datetime="2024-05-24T21:25:53+08:00">2024-05-24</time></span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i></span><span>5.7k</span><span class="text">words</span></span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i></span><span>5 mins.</span></span></div><h3><a href="/2024/05/24/category/" itemprop="url" title="博客汇总目录">博客汇总目录</a></h3><div class="excerpt"># 暮冬 Z 羡慕 的博客 文章汇总
# 加速算法
【Im2Col】卷积加速算法【1】 NCHW
【Im2Col】卷积加速算法【2】NHWC
【im2col】AScend conv accelerate
【Winograd】卷积加速算法原理及实现
【gemm】Gemm 计算加速
【gemm】内存对齐
【Halide】调度优化【1】
【Halide】调度优化【2】
【conv 加速】NVDLA 卷积加速算法
# AI 推理引擎
【推理引擎】常见推理引擎
【推理引擎】NCNN 和 Tengine 量化推理逻辑对比
【量化】连续卷积层首尾量化的可</div><div class="meta footer"><span><a href="/categories/%E7%9B%AE%E5%BD%95/" itemprop="url" title="目录"><i class="ic i-flag"></i>目录</a></span></div><a href="/2024/05/24/category/" class="btn" itemprop="url" title="博客汇总目录">more...</a></div></article></div><h2 class="divider">Post List</h2><div class="segments posts"><article class="item"><div class="cover"><a href="/2026/09/12/mlir07/" itemprop="url" title="【MLIR】Transform Dialect【0】保持计算结构"><img loading="lazy" decoding="async" data-src="https://forcheetah.github.io/assets/lunbo12.webp" alt="article cover"></a></div><div class="info"><div class="meta"><span class="item" title="Created: 2026-09-12 14:06:06"><span class="icon"><i class="ic i-calendar"></i></span><time itemprop="dateCreated datePublished" datetime="2026-09-12T14:06:06+08:00">2026-09-12</time></span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i></span><span>15k</span><span class="text">words</span></span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i></span><span>13 mins.</span></span></div><h3><a href="/2026/09/12/mlir07/" itemprop="url" title="【MLIR】Transform Dialect【0】保持计算结构">【MLIR】Transform Dialect【0】保持计算结构</a></h3><div class="excerpt"># 前言
本篇是学习 MLIR 中的 Transform Dialect 的第一篇,主要讲解 MLIR 为何及如何保持计算结构。内容来自 MLIR 官方教程 《Chapter 0: A Primer on “Structured” Linalg Operations》。
相关链接: LLVM Project ,MLIR 官方文档,MLIR 官网教程, 《Chapter 0: A Primer on “Structured” Linalg Operations》。
作为初学者,错误在所难免,还望不吝赐教。
# 基本简介
本章节主要内容是在阐述 : 为什么编译器不直接把高级计算(如矩阵乘)转成低级</div><div class="meta footer"><span><a href="/categories/compile/" itemprop="url" title="compile"><i class="ic i-flag"></i>compile</a></span></div><a href="/2026/09/12/mlir07/" class="btn" itemprop="url" title="【MLIR】Transform Dialect【0】保持计算结构">more...</a></div></article><article class="item"><div class="cover"><a href="/2026/09/05/mlir06/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【6】支持复合结构类型"><img loading="lazy" decoding="async" data-src="https://forcheetah.github.io/assets/lunbo4.webp" alt="article cover"></a></div><div class="info"><div class="meta"><span class="item" title="Created: 2026-09-05 13:58:50"><span class="icon"><i class="ic i-calendar"></i></span><time itemprop="dateCreated datePublished" datetime="2026-09-05T13:58:50+08:00">2026-09-05</time></span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i></span><span>18k</span><span class="text">words</span></span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i></span><span>16 mins.</span></span></div><h3><a href="/2026/09/05/mlir06/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【6】支持复合结构类型">【MLIR】跟着Toy语言学习MLIR【6】支持复合结构类型</a></h3><div class="excerpt"># 前言
现在开启 MLIR 学习系列。本篇是跟着 Toy 语言学习 MLIR 的第六篇,前述章节已经完整介绍了 toy 语言经 MLIR 降级到 llvm ir,并通过 JIT 进行编译执行的过程,本章节是教程中增添复合类型章节。前述内容请参考【MLIR】跟着 Toy 语言学习 MLIR【1】Toy 语言和 Toy Dialect,【MLIR】跟着 Toy 语言学习 MLIR【2】pattern 匹配和重写,【MLIR】跟着 Toy 语言学习 MLIR【3】通过接口实现通用转换。
相关链接: LLVM Project ,MLIR 官方文档,MLIR 官网教程,【编译器】使用 llvm 编译自</div><div class="meta footer"><span><a href="/categories/compile/" itemprop="url" title="compile"><i class="ic i-flag"></i>compile</a></span></div><a href="/2026/09/05/mlir06/" class="btn" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【6】支持复合结构类型">more...</a></div></article><article class="item"><div class="cover"><a href="/2026/08/29/mlir05/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【5】降级到LLVM及CodeGen"><img loading="lazy" decoding="async" data-src="https://forcheetah.github.io/assets/girl.webp" alt="article cover"></a></div><div class="info"><div class="meta"><span class="item" title="Created: 2026-08-29 18:27:33"><span class="icon"><i class="ic i-calendar"></i></span><time itemprop="dateCreated datePublished" datetime="2026-08-29T18:27:33+08:00">2026-08-29</time></span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i></span><span>18k</span><span class="text">words</span></span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i></span><span>16 mins.</span></span></div><h3><a href="/2026/08/29/mlir05/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【5】降级到LLVM及CodeGen">【MLIR】跟着Toy语言学习MLIR【5】降级到LLVM及CodeGen</a></h3><div class="excerpt"># 前言
现在开启 MLIR 学习系列。本篇是跟着 Toy 语言学习 MLIR 的第五篇,前述章节已经介绍到 toy dialect 降级到 Affine dialect,本章节主要介绍将其降级到 LLVM 及 Codegen 生成可执行文件的过程。前述内容请参考【MLIR】跟着 Toy 语言学习 MLIR【1】Toy 语言和 Toy Dialect,【MLIR】跟着 Toy 语言学习 MLIR【2】pattern 匹配和重写,【MLIR】跟着 Toy 语言学习 MLIR【3】通过接口实现通用转换,【MLIR】跟着 Toy 语言学习 MLIR【4】部分降级到低层方言。
相关链接: LLVM P</div><div class="meta footer"><span><a href="/categories/compile/" itemprop="url" title="compile"><i class="ic i-flag"></i>compile</a></span></div><a href="/2026/08/29/mlir05/" class="btn" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【5】降级到LLVM及CodeGen">more...</a></div></article><article class="item"><div class="cover"><a href="/2026/08/28/mlir04/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【4】部分降级到低层方言"><img loading="lazy" decoding="async" data-src="https://forcheetah.github.io/assets/lunbo4.webp" alt="article cover"></a></div><div class="info"><div class="meta"><span class="item" title="Created: 2026-08-28 22:38:29"><span class="icon"><i class="ic i-calendar"></i></span><time itemprop="dateCreated datePublished" datetime="2026-08-28T22:38:29+08:00">2026-08-28</time></span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i></span><span>12k</span><span class="text">words</span></span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i></span><span>11 mins.</span></span></div><h3><a href="/2026/08/28/mlir04/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【4】部分降级到低层方言">【MLIR】跟着Toy语言学习MLIR【4】部分降级到低层方言</a></h3><div class="excerpt"># 前言
现在开启 MLIR 学习系列。本篇是跟着 Toy 语言学习 MLIR 的第四篇,主要介绍高层级 toy dialect 降级到低层方言的过程,前述内容请参考【MLIR】跟着 Toy 语言学习 MLIR【1】Toy 语言和 Toy Dialect,【MLIR】跟着 Toy 语言学习 MLIR【2】pattern 匹配和重写,【MLIR】跟着 Toy 语言学习 MLIR【3】通过接口实现通用转换。
学习 MLIR 最好的方式还是照着官方教程来,但是只看 MLIR 官网教程,Ch1 到 Ch6,没有基础的话又让人学着有点吃力。现发现好多细节,不看教程认识不到,所以当前内容跟随官网教程。
相</div><div class="meta footer"><span><a href="/categories/compile/" itemprop="url" title="compile"><i class="ic i-flag"></i>compile</a></span></div><a href="/2026/08/28/mlir04/" class="btn" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【4】部分降级到低层方言">more...</a></div></article><article class="item"><div class="cover"><a href="/2026/08/22/mlir03/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【3】通过接口实现通用转换"><img loading="lazy" decoding="async" data-src="https://forcheetah.github.io/assets/lunbo1.webp" alt="article cover"></a></div><div class="info"><div class="meta"><span class="item" title="Created: 2026-08-22 22:47:33"><span class="icon"><i class="ic i-calendar"></i></span><time itemprop="dateCreated datePublished" datetime="2026-08-22T22:47:33+08:00">2026-08-22</time></span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i></span><span>15k</span><span class="text">words</span></span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i></span><span>14 mins.</span></span></div><h3><a href="/2026/08/22/mlir03/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【3】通过接口实现通用转换">【MLIR】跟着Toy语言学习MLIR【3】通过接口实现通用转换</a></h3><div class="excerpt"># 前言
现在开启 MLIR 学习系列。本篇是跟着 Toy 语言学习 MLIR 的第三篇,主要介绍如何实现通过接口进行通用转换,前述内容请参考【MLIR】跟着 Toy 语言学习 MLIR【1】Toy 语言和 Toy Dialect,【MLIR】跟着 Toy 语言学习 MLIR【2】pattern 匹配和重写。
学习 MLIR 最好的方式还是照着官方教程来,但是只看 MLIR 官网教程,Ch1 到 Ch6,没有基础的话又让人学着有点吃力。现发现好多细节,不看教程认识不到,所以当前内容跟随官网教程。
相关链接: LLVM Project ,MLIR 官方文档,MLIR 官网教程,【编译器】使用 l</div><div class="meta footer"><span><a href="/categories/compile/" itemprop="url" title="compile"><i class="ic i-flag"></i>compile</a></span></div><a href="/2026/08/22/mlir03/" class="btn" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【3】通过接口实现通用转换">more...</a></div></article><article class="item"><div class="cover"><a href="/2026/08/18/mlir02/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【2】pattern匹配和重写"><img loading="lazy" decoding="async" data-src="https://forcheetah.github.io/assets/lunbo4.webp" alt="article cover"></a></div><div class="info"><div class="meta"><span class="item" title="Created: 2026-08-18 22:23:34"><span class="icon"><i class="ic i-calendar"></i></span><time itemprop="dateCreated datePublished" datetime="2026-08-18T22:23:34+08:00">2026-08-18</time></span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i></span><span>13k</span><span class="text">words</span></span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i></span><span>12 mins.</span></span></div><h3><a href="/2026/08/18/mlir02/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【2】pattern匹配和重写">【MLIR】跟着Toy语言学习MLIR【2】pattern匹配和重写</a></h3><div class="excerpt"># 前言
现在开启 MLIR 学习系列。本篇是跟着 Toy 语言学习 MLIR 的第二篇,主要介绍 toy dialect 高层级方言的匹配重写,前述内容请参考【MLIR】跟着 Toy 语言学习 MLIR【1】Toy 语言和 Toy Dialect。
学习 MLIR 最好的方式还是照着官方教程来,但是只看 MLIR 官网教程,Ch1 到 Ch6,没有基础的话又让人学着有点吃力。所以本教程没有直接参照官网 Toy 教程,而是以 MLIR 工程的 toy 相关代码入手。欢迎参考。
相关链接: LLVM Project ,MLIR 官方文档,MLIR 官网教程,【编译器】使用 llvm 编译自定义语</div><div class="meta footer"><span><a href="/categories/compile/" itemprop="url" title="compile"><i class="ic i-flag"></i>compile</a></span></div><a href="/2026/08/18/mlir02/" class="btn" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【2】pattern匹配和重写">more...</a></div></article><article class="item"><div class="cover"><a href="/2026/08/07/mlir01/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【1】Toy语言和 Toy Dialect"><img loading="lazy" decoding="async" data-src="https://forcheetah.github.io/assets/lunbo10.webp" alt="article cover"></a></div><div class="info"><div class="meta"><span class="item" title="Created: 2026-08-07 22:52:09"><span class="icon"><i class="ic i-calendar"></i></span><time itemprop="dateCreated datePublished" datetime="2026-08-07T22:52:09+08:00">2026-08-07</time></span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i></span><span>16k</span><span class="text">words</span></span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i></span><span>15 mins.</span></span></div><h3><a href="/2026/08/07/mlir01/" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【1】Toy语言和 Toy Dialect">【MLIR】跟着Toy语言学习MLIR【1】Toy语言和 Toy Dialect</a></h3><div class="excerpt"># 前言
现在开启 MLIR 学习系列。本章介绍 Toy 语言和 Toy Dialect 这一步骤的转换。当然,是从 Toy AST 到 Toy Dialect 这一过程得转换。从 Toy 文本语言到 AST 这个转换过程,需要编译原理的知识和非常麻烦的词法分析器,且这个过程与 MLIR 无关,所以该文章不会包含这个过程。
学习 MLIR 最好的方式还是照着官方教程来,但是只看 MLIR 官网教程,Ch1 到 Ch6,没有基础的话又让人学着有点吃力。所以本教程没有直接参照官网 Toy 教程,而是以 MLIR 工程的 toy 相关代码入手。欢迎参考。
相关链接: LLVM Project ,ML</div><div class="meta footer"><span><a href="/categories/compile/" itemprop="url" title="compile"><i class="ic i-flag"></i>compile</a></span></div><a href="/2026/08/07/mlir01/" class="btn" itemprop="url" title="【MLIR】跟着Toy语言学习MLIR【1】Toy语言和 Toy Dialect">more...</a></div></article><article class="item"><div class="cover"><a href="/2026/07/31/Suoji02/" itemprop="url" title="【琐记】你的爱好能坚持多少年"><img loading="lazy" decoding="async" data-src="https://forcheetah.github.io/assets/lunbo2.webp" alt="article cover"></a></div><div class="info"><div class="meta"><span class="item" title="Created: 2026-07-31 23:23:33"><span class="icon"><i class="ic i-calendar"></i></span><time itemprop="dateCreated datePublished" datetime="2026-07-31T23:23:33+08:00">2026-07-31</time></span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i></span><span>587</span><span class="text">words</span></span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i></span><span>1 mins.</span></span></div><h3><a href="/2026/07/31/Suoji02/" itemprop="url" title="【琐记】你的爱好能坚持多少年">【琐记】你的爱好能坚持多少年</a></h3><div class="excerpt"># It's A Rain Day 足球
雨天 足球
踢足球,开始于高中入学...
# 血遗术之谜
推荐一下我的小说:
《血遗术之谜》
更偏向于严肃小说。写小说,开始于研究生时代。
# 另外
还有博客和 3D 建模。
</div><div class="meta footer"><span><a href="/categories/%E6%9D%82%E8%B0%88/" itemprop="url" title="杂谈"><i class="ic i-flag"></i>杂谈</a></span></div><a href="/2026/07/31/Suoji02/" class="btn" itemprop="url" title="【琐记】你的爱好能坚持多少年">more...</a></div></article><article class="item"><div class="cover"><a href="/2026/07/05/Suoji01/" itemprop="url" title="【琐记】烟火与尘埃"><img loading="lazy" decoding="async" data-src="https://forcheetah.github.io/assets/lunbo3.webp" alt="article cover"></a></div><div class="info"><div class="meta"><span class="item" title="Created: 2026-07-05 11:25:06"><span class="icon"><i class="ic i-calendar"></i></span><time itemprop="dateCreated datePublished" datetime="2026-07-05T11:25:06+08:00">2026-07-05</time></span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i></span><span>1.3k</span><span class="text">words</span></span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i></span><span>1 mins.</span></span></div><h3><a href="/2026/07/05/Suoji01/" itemprop="url" title="【琐记】烟火与尘埃">【琐记】烟火与尘埃</a></h3><div class="excerpt"># 凌乱
专门定好闹钟,在日出的时候爬到甲板上,拍一张海上日出的样子。
💬 "[我他妈去看海了,我他妈是一个人,海他妈也是一片海。]"
本科时足球课老师对我的评价是,速度快,真快!但现在是真跑不动了。毛毛雨的天气适合做各种事情,比如踢场足球,我的双色足球鞋很个性!
谁能明白倒在黎明前的痛苦。明明只差那么一点点,但结果是一样的。它带来的影响,远比一次又一次的失败要多得多。 失败模拟器不好玩。
💬 "[只有赢,才能治好我所有的阴郁和病痛。]"
————《百米。》
烟火,灿烂但短暂。
💬 "[失败总是贯穿人生始终。]"</div><div class="meta footer"><span><a href="/categories/%E6%9D%82%E8%B0%88/" itemprop="url" title="杂谈"><i class="ic i-flag"></i>杂谈</a></span></div><a href="/2026/07/05/Suoji01/" class="btn" itemprop="url" title="【琐记】烟火与尘埃">more...</a></div></article><article class="item"><div class="cover"><a href="/2026/06/21/triton01/" itemprop="url" title="【Triton】Triton实现矩阵乘"><img loading="lazy" decoding="async" data-src="https://forcheetah.github.io/assets/lunbo13.webp" alt="article cover"></a></div><div class="info"><div class="meta"><span class="item" title="Created: 2026-06-21 01:06:28"><span class="icon"><i class="ic i-calendar"></i></span><time itemprop="dateCreated datePublished" datetime="2026-06-21T01:06:28+08:00">2026-06-21</time></span><span class="item" title="Symbols count in article"><span class="icon"><i class="ic i-pen"></i></span><span>16k</span><span class="text">words</span></span><span class="item" title="Reading time"><span class="icon"><i class="ic i-clock"></i></span><span>14 mins.</span></span></div><h3><a href="/2026/06/21/triton01/" itemprop="url" title="【Triton】Triton实现矩阵乘">【Triton】Triton实现矩阵乘</a></h3><div class="excerpt"># 前言
本篇介绍 Triton 实现的矩阵乘运算。本文结合 Triton 官方文档和官方 triton 矩阵乘实现方式,以绘图的方式介绍其加速算法和原理。比这对 NVIDIA GPU 架构理解尚浅,肯定存在理解偏差和错误,请批判性阅读,互相学习。
参考 Triton 中文官方文档、Triron 矩阵乘实现方式
作为初学者,错误在所难免,还望不吝赐教。
# 一点 CUDA 必备知识
# 流式多处理器 SM
一块 GPU 拥有多个流式多处理器 SM。
原子性绑定:一个线程块(Thread Block)中的所有线程,会被绑定到且仅绑定到同一个 SM 上执行。
一对多复用:一个 SM 在同一时刻</div><div class="meta footer"><span><a href="/categories/Triron/" itemprop="url" title="Triron"><i class="ic i-flag"></i>Triron</a></span></div><a href="/2026/06/21/triton01/" class="btn" itemprop="url" title="【Triton】Triton实现矩阵乘">more...</a></div></article></div></div><nav class="pagination"><div class="inner"><span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><span class="space">…</span><a class="page-number" href="/page/8/">8</a><a class="extend next" rel="next" href="/page/2/"><i class="ic i-angle-right" aria-label="Next page"></i></a></div></nav></div><div id="sidebar"><div class="inner"><div class="panels"><div class="inner"><div class="contents panel pjax" data-title="Contents"></div><div class="related panel pjax" data-title="Related"></div><div class="overview panel" data-title="Overview"><div class="author" itemprop="author" itemscope="itemscope" itemtype="http://schema.org/Person"><img class="image" loading="lazy" decoding="async" itemprop="image" alt="XianMu" src="/assets/avatar.webp"><p class="name" itemprop="name">XianMu</p><div class="description" itemprop="description">有自己的博客很帅,但是我很懒,要命!!!</div></div><nav class="state"><div class="item posts"><a href="/archives/"><span class="count">75</span><span class="name">posts</span></a></div><div class="item categories"><a href="/categories/"><span class="count">21</span><span class="name">categories</span></a></div><div class="item tags"><a href="/tags/"><span class="count">26</span><span class="name">tags</span></a></div></nav><div class="social"><a target="_blank" rel="noopener" href="https://github.com/ForCheetah" class="item github" title="https://github.com/ForCheetah"><i class="ic i-github"></i></a><a href="/huasen.w@foxmail.com" class="item email" title="huasen.w@foxmail.com"><i class="ic i-envelope"></i></a></div><div class="menu"><li class="item"><a href="/" rel="section"><i class="ic i-home"></i>Home</a></li></div></div></div></div><ul id="quick"><li class="prev pjax"></li><li class="up"><i class="ic i-arrow-up"></i></li><li class="down"><i class="ic i-arrow-down"></i></li><li class="next pjax"><a href="/page/2/" rel="next" title="Next Post"><i class="ic i-chevron-right"></i></a></li><li class="percent"></li></ul></div></div><div class="dimmer"></div></div></main><footer id="footer"><div class="inner"><div class="widgets"><div class="rpost pjax"><h2>Random Posts</h2><ul><li class="item"><div class="breadcrumb"><a href="/categories/%E5%8D%B7%E7%A7%AF%E5%8A%A0%E9%80%9F/" title="In卷积加速">卷积加速</a></div><span><a href="/2024/12/20/conv5/">【gemm】Gemm计算加速</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/tvm/" title="Intvm">tvm</a></div><span><a href="/2024/06/10/deployTVM/">【TVM】C++部署运行TVM</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E6%8E%A8%E7%90%86%E5%BC%95%E6%93%8E/" title="In推理引擎">推理引擎</a></div><span><a href="/2024/06/16/engine2/">【推理引擎】常见AI推理框架</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/compile/" title="Incompile">compile</a></div><span><a href="/2025/01/14/aicompile02/">【AI编译】如何进行layer-group</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/compile/" title="Incompile">compile</a></div><span><a href="/2026/01/25/Cache01/">【AI编译】Cache缓存地址映射</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/tvm/" title="Intvm">tvm</a></div><span><a href="/2024/10/21/tvm04/">【TVM】通过代码学习编译流程【4】BuildRelay</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E8%BD%AC%E8%BD%BD/" title="In转载">转载</a></div><span><a href="/2025/12/14/Article03/">【转载】我来了——持续低熵</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/Tengine/" title="InTengine">Tengine</a></div><span><a href="/2025/04/27/Tengine02/">【Tengine】推理流程脑图【2】</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E7%9B%AE%E5%BD%95/" title="In目录">目录</a></div><span><a href="/2024/05/24/category/">博客汇总目录</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/compile/" title="Incompile">compile</a></div><span><a href="/2026/03/10/aicompile06/">【AI编译】多级流水线Tile调度策略</a></span></li></ul></div><div class="rpost pjax"><h2>Recent Comments</h2></div></div><div class="status"><div class="copyright">© 2010 -<span itemprop="copyrightYear">2026</span><span class="with-love"><i class="ic i-sakura rotate"></i></span><span class="author" itemprop="copyrightHolder">XianMu @ 暮冬Z羡慕的博客</span></div><div class="count"><span class="post-meta-item-icon"><i class="ic i-chart-area"></i></span><span title="Symbols count total">528k words</span><span class="post-meta-divider"> | </span><span class="post-meta-item-icon"><i class="ic i-coffee"></i></span><span title="Reading time total">8:01</span></div><div class="powered-by">Powered by <a target="_blank" rel="noopener" href="https://hexo.io/">Hexo</a> & Theme.<a target="_blank" rel="noopener" href="https://github.com/theme-shoka-x/hexo-theme-shokaX/">ShokaX</a></div></div></div></footer></div><script data-config="" type="text/javascript">var LOCAL = {
ispost: false,
path: ``,
favicon: {
show: `(●´3`●) Here we go again.`,
hide: `(´Д`) It's a disaster!`
},
search: {
placeholder: "Search for Posts",
empty: "We didn't find any results for the search: ${query}",
stats: "${hits} results found in ${time} ms"
},
copy_tex: false,
katex: false,
mermaid: false,
audio: undefined,
fancybox: true,
nocopy: false,
outime: true,
template: `<div class="note warning"><p><span class="label warning">Article Timeliness Alert</span><br>This is an article published {{publish}} days ago and last updated {{updated}} days ago. Some information may have changed, so please be careful to screen it.</p></div>`,
quiz: {
choice: `Multiple Choice`,
multiple: `Multiple Answer`,
true_false: `True/False`,
essay: `Questions`,
gap_fill: `Gap Filling`,
mistake: `Wrong Answer`
},
ignores: [
(uri) => uri.includes('#'),
(uri) => new RegExp(LOCAL.path + '$').test(uri),
[]
]
};
</script><script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-6-M/pace/1.2.4/pace.min.js" async=""></script><script src="/js/siteInit.js?v=0.4.2" type="module" fetchpriority="high" defer=""></script></body></html>