太乙峰下格纳秒

文章讲述了作者在庐山开设《低延迟设计与优化》课程的经历,包括教学内容、实地考察和登山活动,展示了IT技术教学与实际环境的结合,以及对优化技术的实践应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在盛格塾小程序里,曾经有一门独特的课,题目叫《低延迟设计与优化》,它的最初价格是3600。这门课上线本来是给一家企业客户的,他们年底预算剩余,预购课程。但是课程上线后,一些个人用户也下了单。因为内容还未上线,为了避免更多人下单,后来就把价格调整到了9万8(^_^)。

今年春季杭州研习班上,几位老朋友又谈起这门课,促使我下定决心在今年开这门课。

DAY 0

上周四一大早,我带着一大箱装备,从上海南站奔赴九江,就为了上这门课。

a1e80ae8c0302a62bd494a227613f8c1.jpeg

与我同一趟动车的还有三个人和我是完全相同的目的地,他们也是从上海出发,参加研习班。我们四个人,有三位在一号车厢,有一位在八号车厢。

下午三点半,火车准时到达九江站,几分钟后,我们在出站口与前来接站的寒啸会合,一共五个人,刚好一辆车。

寒啸是登山圈里的名人,曾登顶珠峰,穿越四大无人区,我与他在微信中认识多年,这一次是第一次见面。微信群里,大家喜欢称他为韩队,我也用这个称呼。

车子很快出了九江市,进入连接九江市和庐山市(原来的星子县)的庐山大道。此时左侧是鄱阳湖,右侧是五老峰,路两边的风景让人目不暇接。

为了让我们更好地领略五老峰的风采,到了白鹿镇后,韩队特别把车转到白鹿洞书院方向,过书院售票处后左转,上了新修好的绕庐山绿道。

五老峰太迷人了,我如此说,韩队也如此说。于是我们禁不住五老峰的诱惑,把车停下来,在茶园边的摄影框附近拍了些照片。

cd8122eb75ab58f52f06f1817e381355.jpeg

车子过了观音桥景区后,山路就变得更狭窄了,只允许6坐以下车行驶。

大约在下午五点钟,我们到了韩队的登山基地。以前我看过很多基地的照片,这一次终于到了实地。基地有1、2号两栋楼,1号楼就在太乙公路路边,靠近林场的一个进山检查站。2号楼在山坡上面,更临近太乙峰。

韩队直接把我们带到2号楼,那里有会议室,我们把东西放到会议室后,韩队还特别带我们到楼顶,向北看,太乙峰就在眼前,连山顶的石门形状巨石都看得清楚。向西看,可以遥望庐山第一高峰——大汉阳峰。东面是白鹿洞书院方向,可以看到五老峰。向南,则可以遥望鄱阳湖。

d5907305e227dc898d0bc98248a18dfb.jpeg

当晚,我们就住在韩队的登山基地。三位年轻的小伙伴在桂花树下聊到深夜,我考虑到第二天会很忙,十点多便睡了。

010660ccd8c75ea0999d9230b961c64f.jpeg

DAY 1 

第二天一早6点多,我从鸟鸣中醒来,走到园中,看到他们昨晚喝茶的茶具还在石桌上。

9f447d79b3f29f9d3084a294804a5e51.jpeg

抬头天气晴朗,周围的山峰清晰可见。 

ba11eab1614ccb0103f1a2f618a6b026.jpeg

6496273a29a9f40164d7922453870f22.jpeg

早上9点40左右,余下的同行乘坐三辆车几乎在相同时间到了基地。大家稍事休整后,课程在10点钟正式开始。

整个课程分为五篇:中枢、发微、法门、噪声和匠心,每一篇3-4章。

8518fe81c30917d4485b5298f127f967.png

我介绍课程大纲后,便开始第一讲《IA大局观》。

在庐山上的每一秒时间都很宝贵,首要的任务是学习,同时又想抽时间爬山和欣赏庐山的美景,另外,还要考虑大家旅途劳顿,要休息好。

趁着课间休息时间,我为大家安排好了就寝的房间,为午睡做好准备。

在介绍了Intel CPU的大局观、Core和UnCore后,进入第二篇,大家一起深入讨论测量时间的RDTSC指令后,进入充满不确定的CPU的工作频率,我把它比喻为人的心率,不同时间不一样,不同人不一样,高低范围不一样,几乎每时每刻都在变化。

580e8e3531213cb2a9199d2f2a7a17a4.png

午饭后,进入第三篇:发微,记忆系统。从寄存器开始,介绍了INTEL今年夏天刚推出的APX。

吃过晚饭,第一天挑灯野战的内容是DRAM,回顾内存的发展经过,深究DRAM的原理和组织方法,目的是让大家认识到内存很愚蠢,是优化的关键目标。

aed80ea5379bfc3d58e2a86bb36c19c6.png

DAY 2 

按最初的行程安排,爬山活动安排在第二天上午。但根据韩队的建议,调整为第二天上午。

因为从基地到爬山的步行路,还有2公里多的车程,但是不允许走6坐以上车,我们一辆车不够,只好分为几批。我和翅膀决定先出发,步行一段。不想我们走了不到500米,就有一辆轿车停下来,主动要我们搭车,我们坐上去,很快就到了太乙公路的尽头。

坐车的大部队一路上看不见我们两个以为我们走错方向了。打电话信号不好,我们说我们到了,他们还不信,坚持说我们走错方向了。

韩队不愧是专业的登山家和登山向导。在上山前,先给我们培训了登山杖的用法,登山的步伐,用腿的方法,还有呼吸的技巧。大家听了受益匪浅。后来证明,韩队的方法的确好,登山一圈回来,很少有人感到腿酸。

爬到差不多半程时,大家停下来休息,在队伍最后面压阵的翅膀抓住时机,拍了下面这张照片。

424e21ccadc1ddf07289f9d14ac7dbc1.jpeg

我很早就听说从太乙峰有一条路上含鄱口,是最近的上山路但是一直没有机会体验。这一次实地走一次,果然很近,用了一个多小时,大家就都到了山顶。

3702eef47118e134ea665917c916e4f3.jpeg

下山午饭后,大家小睡片刻,开始下午课程。

按照讲义的顺序,第二篇有一讲:《CPU工厂的硬指标》,我故意将其延后,结合试验来讲。下午上课时,我先花了几分钟时间修复perf工具,然后便带领大家一起使用perf来测量CPI/IPC。

1314f7f816417a7723be550610a01836.png

IPC的基本含义是每个时钟执行的指令数,是衡量CPU工厂效率的关键指标。在Intel的VTune工具里,有个类似的指标,叫CPI,Cycles Per Instruction,刚好是IPC的倒数。

0945e0206f94d7690a09544df01c16cd.png

在VTune关于CPI指标的提示里,说CPI的理论最好值是0.25,转换成IPC就是4。但我觉得这个描述过时了,需要更新。

f3562f44ce4f65ce3cdfe443313ec298.png

上课的小伙伴使用我提供的geipc代码到他的强大机器上测试,果然测试出了IPC为5,证明了我的推测。bc1751795493ed85075dbbba98c789d2.png

后来,还有同学在他的XEON系统上测出了IPC大于6的情况。进一步说明了VTune的提示信息亟待更新。

第二天晚上,我带着大家一起写代码,构造特别的跨行访问实例,然后使用perf record等工具进行各种测试。因为白天一起登山,彼此已经很熟悉,起初的陌生感消失,大家相互开玩笑,课堂上常常笑声一片。大家兴趣高昂,一直挑灯夜战到夜里十点。

10点后,大家一起下楼,到太乙公路上避开灯光,关闭手电筒,调整视觉,抬头看星星。白天大家还担心看不到,事实证明不然,仰望夜空,满天星斗,有的暗一些,有的很亮。

DAY 3 

第三天一早,开讲第四篇:《噪声》,首先讲中断和异常的干扰,特别是顽固不化的TLB Shooting down中断,关于这个中断机制,大家还进行了一场小小的辩论,一方觉得硬件做好,另一方觉得硬件实现有无法克服的困难,必须由系统软件做。

考虑到有同学需要提前离开,所以我故意把第五篇进程间通信的内容提前来讲。使用烽火戏诸侯的故事建模,设计了两个小程序:一个叫uking,一个叫noble。诸侯可以运行很多个,uking发信息,看哪个诸侯先收到,用时多久。

c5789db1a6010fdad7b8b3e33abd4656.png

经过不同环境的实测,双方通信的最快速度可以达到几十个时钟,有经验的同学觉得已经很快了。

3be1d8a4137dfc530d2b1bdcce6d1ee4.png

下午三点,预定的课程内容刚好按计划结束,问答环节里,老朋友Horizon希望演示一下VTune。对于这个要求,我欣然答应,用Nano Display将试验机的小盒子界面显示到Windows上,然后打开终端窗口,准备启动VTune的图形界面。

起初,忙中出错,走错了目录,找不到合适的脚本文件。

后来,切换到/opt/intel/oneapi下,source setvars.sh,再vtune-gui,熟悉的界面出现了。

但是在配置优化项目时,VTune还是报了几个错。于是,先按VTune提示设置虚文件,又手工构建和加载了VTune的驱动。

6631f7da8a74a7fe35021ee42d4686dd.png

终于VTune顺利开始采集数据,并分析数据,给出了结果。

a4292e7f4cfd709cf3c00caf310ec71d.png

VTune的演示不算顺利,但在紧张中仍然以成功的结果完成,也给三天两晚的研习班画上了句话。我宣布课程结束后,大家快速行动,准备返程。

大多数格友都乘车下山后,我独自返回教室,收拾东西,把带来的装备放在一起,拍照留念。

7e7bef54cdb2727bb01b4a407dc8be43.jpeg

DAY 4 

第四天上午,上午和韩队一起看了七彩瀑布和太乙村民国将领别墅群。吃过午饭又一起探访了基地附近的古万寿寺遗迹。在竹林中寻访了清代大学者顾贞观题写的“万寿”二字。

韩队把我送到九江站后,我找了个座位,写了下面这条朋友圈。

f9a1ab0b17bc4d12f421e1eb6d7e62b7.jpeg

酝酿多年,延迟许久的“纳秒级优化训练营”终于完成了,非常感谢参加的小伙伴们,也感谢韩队的全力相助。与韩队一见如故,在基地的大桂花树下,我们相互激发,很快想出了一个新的活动计划。这便是将在国庆长假举行的《LINUX平台高级调试与优化》国庆特别版。在庐山太乙峰下安营扎寨,四天三晚,文武二“教头”通力合作,言传身教,与大家一起劳逸结合,修炼身心。

01245d77f05fcceb611a38e1984168f3.png

(写文章很辛苦,恳请各位读者点击“在看”,也欢迎转发)

*************************************************

正心诚意,格物致知,以人文情怀审视软件,以软件技术改变人生

扫描下方二维码或者在微信中搜索“盛格塾”小程序,可以阅读更多文章和有声读物

23bd0400a2bed7e9eb34c5f8f9d7e31c.png

也欢迎关注格友公众号

892baec5735e1bc1693c6a889700dd4d.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值