北京骑行路线及爬坡大赏

本文及图片版权归 laekov 所有, 谢绝转载 前言, 符号及约定 本文总结了 aoao 骑过的北京周边的骑行路线, 以爬山为主. 对于坡度的描述可参考如下列表. 超缓: 坡度不超过 3%. 缓坡: 3-5% 普通: 不太缓也不太陡, 没有给 aoao 留下深刻印象. 陡: 7% 及以上. 对于坡度, 难度和风景好坏的评价较为主观, 且受到当时季节, 天气, 状态等影响. aoao 本人偏好不缓的爬坡, 不喜缓上缓下和平路. 喜欢壮丽的高山大川景象, 对人文风光 (比如寺庙) 没有兴趣. 故请谨慎参考本文的内容. 欢迎在评论区讨论批评指正. 本文配图使用的脚本开源在 GitHub, 主要使用 Matplotlib. 有能力的看官可以自行使用脚本绘制自己的轨迹. 西边和北边群山, 以及市区 国道, 省道的坡度多半不会超过 10%, 多数在 5% 左右. 路面通常为柏油路, 可以放心前往. 但乡道, 防火道等的坡度和路况就很难有保障了. (0) 清华大学新民路大坡 搞笑的 西边系列 以 108, 109 两条国道为主线展开. 国道本身较平, 向西缓上. 其间有众多支线, 包含了很多大小爬坡. (1) 灵山 北京公路爬坡最高峰 (指绝对海拔), 长度约 20km, 最高海拔快到 2k....

March 10, 2022 · 5 min · laekov

Island 剧情解析

元旦假期花一个下午补了 Island 这部番, 时间线烧脑程度颇有云图的感觉, 再进一步就要信条了. 虽然有各种弹幕解说, 但还是看得很茫然, 而且网上的解析也比较少, 没有把 laekov 讲明白. 于是 laekov 决定自己整理一下时间线. laekov 倾向于认为人类只造出了睡眠仓, 而没有造出能逆转时间的机器. 所以人类文明以 20000 年为周期不断从石器时代到高度文明再退回, 这和 Island 上的科技退化也很吻合. 动画的故事发生在其中一个 夏1 - 冬1 - 夏2 周期中. 为了简便称三家的女主为白毛, 黄毛和炸毛. 实际上进行了时间旅行的只有男主和老小两白毛. 在夏篇见光死的是骨科切纳和他爹. (这俩人家产全被没有血缘的人吞了好惨) 在冬篇见光死的是黄毛, 炸毛未知. 一些疑问 男主在 夏1 的梦为啥和 冬1 不一样? 男主在夏 1 的时候做的梦来源于 冬0, 其中 大版炸毛被火烧掉 和 跟黄毛kiss(?) 的事件在 冬1 中也发生了, 只是剧情有所不同, 因为 冬0 中男主的记忆可能和 冬1 并不相同 (蝴蝶效应). 很可能在 冬0 中白毛的冷冻仓有 bug, 从而导致男主记忆缺失. 骨科切那为啥变成了白骨? 切那和白发魔女的交易是什么? 骨科切那是把小白毛塞进机器之后独自在岛上生存的过程中饿/病死的. 和白发魔女交易 这个传说来源于老白毛造了时光机把男主送回来....

January 4, 2022 · 1 min · laekov

Assetto Corsa G值球只有半个 bug 修复

laekov 最近在玩 assetto corsa 并试图学习循迹刹车, 因此需要一个加速度轨迹显示插件. 在 GitHub 上发现了一个上古仓库 竟然还能用, 但是卖家秀是 而 laekov 这里是 为啥参考线只剩小半个了??? 由于 assetto corsa 的插件都是 python, 于是 laekov 愉快地看起了代码, 并发现了如下一段. def drawCircumference(self, radius, center): ac.glBegin(1) nlines = max(4, int(100.*radius)) for i in range(nlines+1): x, y = self.gPlotter.plotG(center['x'] + (sin(2*pi*i/nlines)*radius), center['z'] + (cos(2*pi*i/nlines)*radius)) ac.glVertex2f(x, y) ac.glEnd() 大胆猜想是 python 或者 ac.gl 性能不足以支撑在一个渲染周期内画完整个圆. 于是想找一个 native 的 circle 的 api. 然而翻阅了一下上古的 python plugin document (竟然还是 google docs) 发现 ac 的 gl 只支持画点和多边形 (挠头)....

December 20, 2021 · 1 min · laekov

FasterMoE: 对大 MoE 模型训练的性能建模及优化

版权声明: 如需转载请先与 laekov 联系, 侵权必究. 序 Jiaao He 在 24 岁生日那一天收到邮件, 他在 ppopp 投稿的这篇文章被接收了. 这是他以一作身份投的第一篇 A 类会文章. laekov 当时脑子一热, 开了一个坑, 决定把这篇文章的主要内容用中文写出来, somehow 地促进中文学术. (虽然多半并没有什么帮助) 在过去的小半年里他又经历了 artifact evaluation, camera ready, 制作 presentation slides 和录制视频 (很遗憾因为疫情没法去韩国开会了) 等等一系列事情, 对这个项目也有了更多的理解. 在 4 月的第一天终于把写文章时候的 prototype 变成了看起来还不错的代码, 并准备合并进 FastMoE. 正好写完这篇文章, 也当作是在 FastMoE 里使用 FasterMoE 的中文版文档了. 这篇文章的 pdf 正文在 ACM DL 上可以找到. (有 open access, 在任何地方都可以下载, 并用于非商业目的) 开会的时候用的 slides 和视频链接 在这里. 背景和简介 我假设看这篇文章的人已经知道什么是 MoE 模型了, 大规模的 MoE 模型现在有多重要 (也可能并不)....

November 16, 2021 · 3 min · laekov

slurmdbd 配置失败的坑

花了一晚上修的一个 bug. 记录一下. 先讲结论再讲故事. slurmdbd 在更新 account 配置的时候, 有可能出现更新成功了, dump 出来是对的, 但跑程序失败 (requested resources not available) 的情况. 其中一个可能原因是 mysql 并没有成功写入, 于是认证失败. 解决方案是修改 slurmdbd 的配置文件, 使得其以 root 用户身份执行. 故事是实验室有同学要赶 PLDI, 需要独占某一些节点, 并防止懵懂的小朋友和他们抢占节点后不释放. laekov 给出的解决方案是在 slurm 中单独划分一个队列, 并仅对指定 account 开放. 这个操作 laekov 在另一个集群上已经熟练使用了. 但是 laekov 在用 sacctmgr 配置好 account 和 user 之后, 尝试 srun 任务, 发现提示 resources not available. 之前遇到过这种情况, 通过重启 slurmdbd 解决了问题. 但是这次重启任何 slurm 组件都没有解决问题. laekov 查看了 /var/log/slurm-llnl/slurmctld, 发现提示 part_policy_valid_acct: job's account not known, so it can't use this partition....

November 10, 2021 · 1 min · laekov

吐槽一下 windows 11

(背景是 laekov 因为迟迟没有等到黑色的 arm macbook 而转投了 x1c, 然后闲来无事升了个 win11 然后发现想吐槽这个东西 怎么和 chromeos 如此 相似! app icon 放中间! chromeos! 点开 电池 wifi 那个条, 跳出来的系统配置 panel! chromeos! 然后四指左右划动切换 workspace 的动画直接是断的. 任务栏的一部分根本没有被渲染出来, 于是会在动画放完之后突然跳出来?????? windows 这个 ui 真是… 明明是个 configurable 的东西, 非要搞得万众瞩目. 有毒吧. btw 一个小细节, 升级完之后默认给我 enable 了 微软拼音. 我又不会打拼音啊喂. 而且在输入法 enabled 列表里面竟然没有这个选项? 解决方案是先加进去再删掉 ovo 还是 kde 好. btw, 吐槽一下 x1c 9gen 的键盘, g 键的键帽被我按掉下来了. 虽然可以按回去, 但只要敲这个键的左下部分就会又翘起来, 不爽ing.感觉是为了给小红点让位置而在键的机械强度上做了牺牲?回头有空再去联想保修一下 ovo

October 3, 2021 · 1 min · laekov

laekov 的桌面环境配置

laekov 终于闲下来了并开了这么一篇一直都想写的文章. 之前摸鱼的时候在某乎, 某小破站上都有各种晒桌面的就蠢蠢欲动. 最近终于闲下来了可以用新买的 niz 打打不是正事的字了. 实验室(办公室) laekov 很追求简洁的所以桌上除了俩显示器俩键盘以外没有什么大块的东西. 从左到右说. (laekov 在实验室有四台电脑.) 最左边是夏天赖以生存的小风扇 (虽然从隔壁机房吹空调速冻效果其实更好). 左边是 27 寸显示器, 连了一台从实验室各处捡垃圾凑出来的 windows 台式机在桌子底下. 机箱上面还堆了 gyc 赞助的 24 口千兆交换机给所有设备供网. 上面还有俩键盘盒子, 一个装了之前北大校赛赚来的黑轴键盘暂时没用了. 还有一个是空的. 台式机的配置是奇怪的 i5-6500 + gtx 1080 ti.插了高二的时候 laekov 爹送 laekov 的生日礼物 ducky 混光青轴键盘. 虽然键盘挺老了甚至有些轴都开始咯吱响了但还是岗岗的好用. 因为这台电脑的主要用途是: 挂微信 使用 M$ office 套件处理不得不用它们处理的东西 摸鱼(打游戏) 显示器后面有一个 hp 的 chromebook g1, 八百块从闲鱼收的, 介绍见这篇文章, 主要用途是组会的时候放 slides 和移动干活. 偶尔也用作掌托. 13.5mm 的厚度和 3k x 2k 的屏幕还是很香的. 插线板后面有一个树莓派, 是某年的生日礼物. 上面放了一些神奇的东西, 可以用来调一些神奇的硬件, 比如折腾一下网络什么的, 不过最近用得不多....

August 16, 2021 · 2 min · laekov

FastMoE: 一个高效 MoE 模型训练系统 - 初版之路

laekov 在 3月1号下午 3点1分 开源了 FastMoE 系统的代码。合作者是 KEG 实验室 的 xptree 和 sengxian。 简单讲,MoE 模型就是把神经网络里的一层复制若干份,称它们为专家(experts)。在计算时,引入一个额外的门(gate)网络来对于每个输入决定它被哪个专家所计算。 举个例子,一个 nlp 模型里的动词和名词可能会被不同的 expert 处理。这样可能会得到更精准的模型。模型部分 laekov 不太懂,不做更多讨论。 FastMoE 这个名字是 laekov 起的,包含了 laekov 关注的两层问题: 训练这样的模型怎么训得快(fast training)。 如何使得这个系统像吃快餐一样(fastfood-like)开箱即用。 训练性能 通常,expert 网络是一个 MLP,即多层全连接,即矩阵乘。一个值得注意的问题是,gate 会使得一个 batch 被打散。若简单地用 pytorch 来实现,则会导致 GeMM 运算降级为 GeMV 运算,这对 GPU 这样的现代并行计算设备来说是十分不友好的。测试发现朴素的实现在 V100 上仅能达到 500GFLOPs, 即峰值性能的 3% 左右。 注意到 expert 的数量不会太多,故 batch size / expert,即平均每个 expert 处理的 batch 中的元素依然是一个较大的值。因此考虑对 batch 中的 samples 按照 expert 进行重排,每个 expert 依然以 batch 形式处理输入。这样会更充分地利用硬件资源。...

March 1, 2021 · 2 min · laekov

HiDPI on XFCE4, Chromebook

由于众所不知的原因 laekov 在一处办公环境使用自己的 chromebook 进行办公. 之前的博客提到 laekov 的 chromebook 具有一块 3200x1800 的高分(瞎眼)屏. 而 laekov 在办公室开心地借来了一块和实验室那块看起来一样的 34 寸的带鱼屏, 然而插上之后才发现它的分辨率竟然是 2560x1080, 完全被 13 寸的笔记本屏幕给包含了. 本着屏幕 dpi 不重要, 面积才是王道的思路, laekov 十分容易地 disable 了笔记本的屏幕, 单独使用一整块 34 寸屏幕来进行工作. laekov 在经历了 chromeos 的 ro rootfs 各种无语之后, 终于决心使用 crouton 的 xfce 环境作为自己的主力工作环境, 并配上了 i3lock 锁屏和熟悉的 urxvt. 然后问题来了: laekov 要抱着 chromebook 去开会! 当 laekov 拔掉 type-c dock, 看向 13 寸小屏幕的时候, 多年前在 laekov 的 (已经死掉的) mbp 上装 kde 之后出现的神奇一幕又出现了! 所有东西变得奇小无比, 需要配合放大镜才能分辨出屏幕上的字是 1 还是 l....

February 3, 2021 · 1 min · laekov

Chrome book 初体验

不久之前听说可能要出去背锅, 然而自从 macbook 死亡之后就一直在用实验室的台式机/宿舍买的新的游戏本. 都不太适合背着去干活, 于是考虑买一台轻薄的工作笔记本. 看了一些 ryzen 4 代的轻薄本, 比如 x13, 战x, 灵耀14, 什么的. 然而因为贵所以买不起没买. 后来某天逛闲鱼的时候发现了 chromebook 很便宜, 于是一番研究之后买了个二手 hp g1 chromebook, 1k 块不到. 转身围观一下这台本子,深灰色金属壳还挺高端。最厚的地方只有 12mm,几乎满足了我对薄本的所有想象,但是拿在手里挺沉,可能是压扁了的重型本。 cpu 是六代 m5 skx, 四个物理核默认只开了两个,8 GB mem + 32 GB ssd, 多开几个 chrome 窗口应该都挺好的。最惊人的是居配了一块 3200x1800 的屏幕,观感很不错。 然而还是有一些问题的。屏幕边框宽到跑马车,毕竟是便宜本,键盘键程短到手指疼,只能轻轻打字。触摸板比较小,而且可能由于前任主人用得比较多,所以油油的,而且有点松。考虑之后买个触摸板膜。接口方面带了一个 usb a 两个 usb c包括充电,还有耳机口。考虑到现在 typec 的本子到处飞,转接头很普遍,这也还ok。这个 cpu 最高支持到 4k 屏幕,想要外接显示器也没有问题,赞。 软件方面自然是 chrome os,费了一番力来搞开开发者模式用 crounton 装了一个 debian, 和搞上 play store. 比较无语的是 play store 并不用 chrome os 里面设置的 socks5 代理,于是只好临时搞了一个二层的有隧道的网关,才成功搞开了 play store, 然后立即在里面下了一个 android 版本的 ss, 然后用它就能给 android app 供应网络了。...

January 7, 2021 · 1 min · laekov