“The Analytical Engine weaves algebraical patterns,

just as the Jacquard loom weaves flowers and leaves.”

“分析机编织代数的花样,正如雅卡尔织机编织花与叶。”

(Ada Lovelace《分析机概要》注 A,1843)

“9 月 11 日”

三点四十分。

水塔的影子刚好盖住半张长椅。

蝉还在叫,只是叫得比七月敷衍。

我偶尔会思考这种事情。

比如,一张已经印好的座位表,和一张还没印的座位表,究竟哪一张比较自由。

这个问题我想了三年,还是没有想出答案。

贩卖机的罐装咖啡是一百三十円。

旭座上个月关了门,退票窗口的玻璃上贴着一张纸,说座位表可以自取。

我就取了一张。

对号入座,全场一百四十四个格子,七排十二号被人用铅笔圈过。

不是我的字。

水科:「你在看什么?」

我:「座位表……」

水科:「那间电影院已经没有了……」

我:「嗯!」

水科:「没有了的电影院,座位表还有什么用?」

我:「垫罐子……」

我把那张纸折成四折,压在罐子底下。

纸角被水珠洇软了一小块。

カン、

罐子磕在长椅的铁扶手上,声音很干。

水科把笔记型电脑摊在膝盖上,屏幕转过来朝着我。

上面只有一行字。

llc -mtriple=riscv64

水科:「上一篇你听懂了多少?」

我:「……一半……」

水科:「哪一半?」

我:「改写合不合法的那一半……」

水科:「那叫精化……」

我:「对,就是那个……」

水科:「这一篇的判据不止一条……」

我:「还有哪一条?」

水科:「机器认不认?」

我:「机器不认,会怎么样呢?」

水科:「不会怎么样。编不出来而已」

影子。

水塔的影子又往东挪了两公分,罐子底下那张纸露出来一个角。

我:「就像我这张座位表……」

我:「票卖出去之前,七排十二号可以是任何人的」

我:「卖出去之后呢?」

水科:「之后就不重开了……」

我:「不重开?」

水科:「后面的人只能在不动它的前提下,安排自己那一排」

我:「……」

我:「水科,你今天讲话很像编译器……」

水科:「编译器比我诚实。它至少会说 Cannot select……」

阅读全文 »

题图

I will be,
我将存在,
The light softly touching your body,
那道光芒轻柔地触碰你的身体,
I’ll see you when the sun rises up,
旭日升起时我会去见你,
I will be,
我将,
Everything, in everything,
成为万物 融入万物,
When the mist fades away,
当薄雾散尽的时候,
and the path shows its way,
道路显现它的方向,
the divine in your heart,
你心底的圣洁,
It’s calling out to your name,
正呼唤着你的名姓。

—— 编织光流 (For Your Name) · 铁痕电台-MSR/Edine

后端的每一步都在做同一件事:把 IR 里”以后再说”的部分,变成”现在就是这样”。

题图:@QUASARCAKE 的 X 投稿「回家」

阅读全文 »

“Ever tried. Ever failed. No matter. Try again. Fail again. Fail better.”

“试过。失败过。没关系。再试一次。再失败一次。失败得好一点。”

(Samuel Beckett《Worstward Ho》)

“9 月 13 日”

凌晨一点零五分。

末班电车在零点二十八分开走了。

站台上只剩一盏灯还亮着,另一盏在闪。

我数到第七次的时候,它灭了。

便利店在坡道下面,玻璃门开着一条缝。

冷气从缝里漏出来。

九月中旬的冷气,已经有点不像夏天了。

我买了一罐热的玉米汤。

一百五十八円。

收据从打印机里慢慢吐出来,还带着一点温度。

我把它翻过来。

背面是空的。

收银台旁边有一支拴着绳子的铅笔,是给填彩票的人用的。

我借了它,在收据背面画了三栏。

第一栏写「要做的」。

第二栏写「在做的」。

第三栏写「做完了」。

水科:「你又在搞这种没用的仪式……」

我:「不,此有用……」

水科:「哪里有用」

我:「写下来的话,就不会忘掉」

水科:「热敏纸三个月就白了」

我:「……」

水科:「你的铅笔字倒还在」

啊。

原来是这个意思。

我把收据折了一下,塞进外套口袋。

罐子很烫,我换了三次手。

坡道上面有人走过来。

步子很轻,几乎听不见。

三日月:「呵呵」

三日月:「末班车,已经没有了」

我:「嗯,我知道」

三日月:「那,还站在这里」

我:「∵汤还没喝完……」

她没有再问。

她站在自动贩卖机旁边,看着那排亮着的按钮。

看了很久。

风从坡道下面上来,把她的头发吹到一边。

我偶尔会思考这种事情。

比如,一份清单要写到多少行,才算写完。

比如,划掉一行,和从来没有写过那一行,是不是同一件事。

比如,热敏纸上的字淡掉的时候,是谁把它擦掉的。

……啊哈哈,想太多了。

汤本来就该凉。

我把它喝完,罐子扔进回收箱,发出一声很轻的响。

水科:「回去」

我:「回去干什么」

水科:「你不是要写清单吗……」

我摸了摸口袋。

收据还在。

阅读全文 »

题图

境界線の向こう側で 足掻く人々 嘆く人々 目にしながら,
境界线的那一边 挣扎着的人们 叹息着的人们 如若将之收在眼里,
沈黙することを選択するならば 僕らは共犯者 人たりえたのか,
却还沉默着选择旁观的话 那我们就是共犯 何以称为人类,
存在価値はいつだって自分の中 個々に宿る銘々の色,
存在的价值一直都在自身之中 在每个个体居宿 若我们将各自的颜色,
胸に抱いたなら 微かに灯る火が 最後の星空と どこか似ていたんだ,
抱在怀中 无论是多么微渺的灯火 那连缀的点点火光 正似那最后的星辰满空。

—— 境界線 · amazarashi

clang -O2 的中端流水线上排着相当多的 pass,但其中真正独立的算法不多,真正独立的正确性依据更少:通用理论那一章立起的 T0–T7 支撑了后文每一段证明。本文的结论也在这里——中端的复杂度主要在次序,不在算法。

本文基于 llvm-project main 分支 026e3f3c,文中每一处 file.h:line 都链到该 commit 下的具体位置(绝大多数在 llvm/ 下;少数几处引 clang/lib/CodeGen/BackendUtil.cpp,用来说明 driver 如何设定流水线开关)。谈的是中端(IR 层)优化,前端语义与指令选择不涉及。

题图:pixiv 148848095(Tiarii《Hope》,《86—エイティシックス—》的シン与レーナ)

阅读全文 »

“We shall not cease from exploration
And the end of all our exploring
Will be to arrive where we started
And know the place for the first time.”

“我们不会停止探索。而一切探索的尽头,是回到出发的那个地方,并且第一次认出它来。”

(T. S. Eliot《Four Quartets · Little Gidding》)

“9 月 1 日”

九月的蝉,叫得比八月薄。

薄得像一层纱,盖在坡道上,盖在便利店门口那两台自动贩卖机上。

我:「水科,你在挑什么?」

水科:「蚊香」

我:「……现在已经是九月了呢?」

水科:「九月也有蚊子」

我:「可蝉都快没了?」

水科:「蝉跟蚊子没有排过班……」

啊哈哈。

货架最下面那一层,铁盒装,两盘叠在一起。

我拿了一盒,想把它们分开。

分不开。

一用力,其中一盘从中间断了。

啪。

我:「那、那个……对不起……」

水科:「它们本来就是缠在一起的。你只是先发现了这件事」

我:「这话听起来像在安慰我……」

水科:「没有」

她把断掉的那半盘拿过去,对齐,插回铁架的齿上。

然后点着。

烟很细,直直地往上走了一小段,才开始歪。

我:「这个能烧多久?」

水科:「盒子上写着,十小时……」

我:「你怎么连看都不看就知道?」

水科:「我刚才看了」

我:「那,要是没烧完呢?」

水科:「那就没烧完……」

我:「谁来告诉它该停了?」

水科没有回答。

她只是看着那圈烟。

烟往上走。

灰往下落。

落的灰是白的,很轻,一碰就散。

我:「水科……」

水科:「嗯」

我:「你不觉得这个形状有点奇怪吗?」

水科:「哪里」

我:「为什么要做成一圈一圈的?」

水科:「做成一根直的,要烧十小时,得有手臂那么长」

我:「所以盘起来是为了省地方?」

水科:「为了在这么小的盘子上,放下那么长的东西……」

我:「……」

我:「总觉得这句话,我在哪儿听过?」

风从坡道下面吹上来。

烟歪了一下,又直回去。

我偶尔会想,一圈到底是从哪儿开始的。

阅读全文 »

题图

如 雪落声 将点点落向无名策,
城墙冷冷反光 残局揭果 必须得成望,
走着走着 略过规则,
方圆自成 墨染天地之格,
走着走着 只用双瞳的眼色,
看山河的颜色。

—— 无名策 · 塞壬唱片-MSR/拾贰 12/黎明鑫(阿火)/Mi/骅翎

一个 while 循环的全部设计负担

题图:望送给大家的小道具「形制朴素的棋具」(图源)。背景那盘谱出人机大战第四局——李世石执白,在全盘劣势下第 78 手弈出”神之一手”,就是图中 L11 上被两颗黑子夹住的那颗白子;此后 AlphaGo 如何,用望的话说,”昏招频出”。人类棋手在绝对未知的强大面前,凭借着直觉、灵感和不屈的意志,完成的最后一次、也是唯一一次伟大反击。

本文只谈抽象原理:循环为什么能干活、设计时有哪些选择、每个选择的代价。具体实现一律作为佐证引用——例子取自 pi(v0.84.4),文中每一处 file.ts:line 都直接链到该 tag 下的具体行;但它只是参照物,换掉这套 harness,本文每一条仍然成立。

阅读全文 »

“Pensar es olvidar diferencias, es generalizar, abstraer. En el abarrotado mundo de Funes no había sino detalles, casi inmediatos.”

“思考就是遗忘差异,就是概括,就是抽象。在富内斯那个塞得过满的世界里,除细节之外别无长物,而那些细节,近得迫在眉睫。”

(Jorge Luis Borges《Funes el memorioso》,收于《虚构集》)

“8 月 26 日”

蝉还在叫。

八月的最后几天,蝉声反而更急。

屋顶上只有水塔的影子是凉的。

我躺在那块影子里,想一件很没出息的事。

冰麦茶为什么只有夏天好喝呢。

……不对。

人到底是靠记住活着,还是靠忘掉活着。

啊哈哈,想太多了。

猜拳的结果是我输。

我:「为什么每次都是我?」

水科:「因为你每次都出石头」

水科:「我记着……」

她从书包侧袋里抽出那本笔记本。

方格的,A5,边角已经磨白。

她翻到某一页,在最下面一行添了个正字。

我:「……你连猜拳都记?」

水科:「不记就会输第二次……」

楼下的贩卖机咔了一声。

掉出来的是常温的。

我:「温的……」

水科:「最上面那排被晒了一整天。你输了……」

三日月坐在排风扇旁边,两只脚悬着。

三日月:「呵呵……温的也很好……」

三日月:「温的东西,记得自己凉过……」

我:「喂,你刚那个正字写歪了……」

水科:「不擦」

我:「为什么不擦?」

水科:「写过的地方不许改……」

我:「是规矩?」

水科:「是成本」

水科:「擦掉重写,比在末尾另起一行贵……」

她只在末尾写。

写过的地方不许涂改。

撕掉的页,也还是写过的页。

我:「那本子会越来越厚呢」

水科:「所以后面要撕……」

我:「撕掉不就等于没写过?」

水科:「撕掉的是页」

水科:「不是写过这件事……」

我把瓶身的水珠抹在裤子上,抹出一道深色。

……啊。那不就是我吗。

只在末尾追加,从不回头改,写满就撕,撕了还记得自己写过。

宏大命题一出来,脑子里只剩一条裤子上的水痕。

对我来说,那就只有这种程度。

我:「所以说,你那本子就是 KV cache 吧」

水科:「超1000蠢……」

水科:「不过方向对了一半」

水科:「它确实只写不改……」

阅读全文 »

题图

When voice from the memories call
当旧忆传来声声呼唤
Unresolved the riddles stood ever long
昔日的谜犹然未解
Remember the colours of evergreen
莫忘那恒碧长青
The cherished answer bound in us all
正是你我珍存于心的解答

—— 寻诀

一块只读张量总算混成了对象

题图:pixiv 147576297

阅读全文 »

“The old order changeth, yielding place to new,

And God fulfils himself in many ways,

Lest one good custom should corrupt the world.”

“旧的秩序变换,把位置让给新的。

神以许多方式成就自己。

免得一种好习俗,把世界败坏掉。”

(Alfred Tennyson《Idylls of the King》)

(The Passing of Arthur)

“8 月 29 日”

蝉叫得比上周敷衍,像是知道不会有结果,还是要叫那么几声。

水塔的影子宽了一指。上周 4 指,这周 5 指,用脚量的。

我偶尔会思考这种事情。

一副牌被洗过 1000 次之后,还是不是原来那一副。

……不对。

我真正在想的,是比那没有意义 100 倍的事。比如,为什么换了名字的东西,跑起来还是老样子呢。

水科:「你在数什么呢」

我:「影子……」

水科:「影子有什么好数的」

我:「宽了一指」

水科:「所以呢」

我:「所以夏天要结束了……」

她从裙子口袋里摸出一副牌。便利店买的,380 円。

牌盒上印着一个名字,被胶带盖掉了一半。

我:「纸牌要做什么」

水科:「讲为什么 256 个人里,只叫 8 个起来干活」

我:「听起来很像便当的分法呢……」

水科:「超×1000 蠢!」

牌角的字母被磨掉了,摸上去只剩一道压痕,看不出是 Q 还是 9。

我:「这牌还能用吗……」

水科:「能用。认牌不看字」

我:「那看什么……」

水科:「看它在第几张……」

蝉声停了一拍。

我:「三代模型……」

水科:「三代」

我:「名字全换了……」

水科:「骨架没换」

我:「骨架是指……」

水科:「你数影子的时候,影子的骨架是什么」

我:「水塔吧……」

水科:「水塔没动。动的只是太阳」

我:「所以名字是太阳」

水科:「名字是胶带」

上周贩卖机吞了我一枚硬币。我按了草莓味,出来的是苏打味。

管理人说明天再说。明天就是今天,他也没有说。

对我来说,被换掉的东西,就只有这种程度。

那么,被换掉的名字还算不算数呢。如果动的只是名字,被数着的又是什么。

……啊哈哈,想太多了。

蝉在叫。

比上周敷衍。

水塔的影子,宽了一指。

那副牌还在她口袋里。

阅读全文 »

题图

无声子夜翩跹指间
谁拾获着散落的碎片
你说忘了吧又回头
不舍得远走
如果你迷失在无明中
我会为你守候
等到春暖花开的时候
都会再度重逢

—— 焚蝶 · 铁痕电台-MSR/Aurora Sky

llama2的架构总算演进到了第三代

题图:《明日方舟:终末地》庄方仪潜能三插图

阅读全文 »
0%