雁栖湖一年记

这周搬了两次家,从雁栖湖搬到中关村,再从中关村搬到环保园,总算是安定下来了,可以记录一下雁栖湖集中教学的一年。

感觉也没有什么可记的,但是还是发生了一些事情,算是比较特殊的一年,还是做个总结吧。

先说说上课。入学的时候打定主意要少上课,多写代码。主要原因是经过本科的学习,深刻感受到了计算机是实践的学科。虽然如此,还是有很多课程和老师给我留下了深刻的映像。

秋季学期上了两门专业课,体系结构课的胡老师和汪老师平易近人,没有大佬的架子。但是比起听老师讲处理器的设计技术,我还是更喜欢听一听龙芯开发过程中的奇闻轶事。看着电视新闻上看到过的人在自己面前上课,有种不可思议的感觉,学期中间,还发布了龙芯3A6000;卜老师的算法课非常精彩,第一节课上讲的“问题求解树”就让我惊艳。不单讲算法,还探讨了算法是怎么想出来的,他经常在介绍了一个算法和作者之后说“我们没有xx那么聪明,那么我们可以怎么做呢”。我不才,只记得了一个可以通过神经网络来替代算法过程“拍脑袋”的经验决策。卜老师在每节课后会写一段“take home message”,颇有授业传道之风,在上课的时候,也会讲一些从前所里人的事迹,也很有意思;除了专业课,还选修了杜老师的英语美文赏析,当做休闲课来上,老师每节课会选一些经典的英文诗歌或者文章的供我们阅读。感觉自己随着学习的深入,越来越功利,不愿意分精力去关注自己专业无关的东西了,有时候还是需要一些人文的东西陶冶一下情操。

对于春季课程的映像反倒没有秋季那么深刻。选了一门模式识别,没怎么去。我更喜欢把一些机器算法的推理当做数学练习来做。比如支持向量机和主成分分析,都有直观的几何解释和优雅的证明,可以当做线性代数的练习,对于一样不理解原理的东西,用起来总觉得有些心虚;智能计算系统课程非常出名,实验量很大。虽然作业全靠github,但是也算是建立了比较系统的概念;一直想多学点数学,还选了一门应用近世代数,讲群和环的时候还能跟得上,讲到域就弃疗了。感觉一直很难平衡理论和工程的学习,学习一些比较抽象的东西没啥耐心去想,有点浮,很多概念浅尝辄止,虽说东西是学不完的,有些东西用到了现学一下好了,但是感觉一些基础的东西还是要有所了解;并行处理很硬核,谭老师和王老师水平很高,助教也很幽默,写了大量课程配套代码。但是感觉这种实践性很强的课程还是要自己做一做才能掌握,前面上课没怎么听,最后做大作业学到的比整个学期多。

夏季学期的课程就很轻松了,第一周都结束掉,一门作为小组代表做了presentation,一门做了组长组织写文章。

对于上课基本上没怎么花时间,不少次没有去,大量时间还是花在做project上。秋季学期还是主要在推一生一芯进度,7月开始学习chisel,12月勉强能看果壳处理器的源码。这期间正好也在上体系结构课,想着上完一部分内容,就去实现相关的部分,后来上课的速度太快了,每周一个大主题,实在是跟不上。记得写axi4总线和cache很困难,看着满屏花花绿绿的波形,debug到快头秃。春季学期继续做一生一芯,混成了见习助教,感谢社区的认可。

自己对于机器学习系统有些兴趣,除了智能计算系统的实验,还在做CMU的dlsys课程实验,内容是搭建一个类似于pytorch的深度学习框架;也用cpp写了一个简版的,支持导入权重后进行MNIST的推理。

春季学期快结束的时候,开始做并行处理的大作业,具体内容是优化HPCG程序,一个超算的benchmark,通过这个任务学习到了很多并行相关的内容。虽然是第一次接触openmp,mpi,cuda这些并行框架,但是上手起来没有感受到太过陡峭的学习曲线,多亏以前学习操作系统的积累。最后把其中高斯赛德尔算法由原来的串行使用染色法改为了可以使用openmp进行线程并行,取得了一些优化效果,可惜最后有个矩阵重排的bug没有找出来。

在做这些东西时候,也感悟出了一些方法论。对于一个复杂的需求,先凭借直觉快速做出一个原型系统出来,保证功能的正确性,然后再在这个基础迭代优化。

但是这些project自我感觉做的不太理想,做事之前,总是容易乐观的高估自己的能力和毅力,低估任务的难度。当然也跟划了不少水有关,每天到点下班,回去刷刷视频,睡到自然醒,如果再肝一肝,再勤奋一些,应该可以做的更好点,完成度更高一些,但是感觉却没啥动力。

生活方面,吃的东西有点乏善可陈,二食堂吃的最多。起的比较晚,就早午饭一起吃了,有时候懒得想吃啥,就连续三四天晚上去二食堂一楼吃面。住宿方面,学校把两个单间打通改成三人间,我的床位又在里面,想要在座位前坐着的话,几乎和室友背靠背,在寝室呆着显的拥挤吵闹,尽量到外面去。进市区可以乘坐城郊火车,作为一个宅男,没事也不出学校,所以交通不便这点倒不介意。

周边景色很不错,没有市区里的高楼大厦,视野开阔,天高云淡。校园依山而建,可惜都被围了起来,不然没事可以去山上逛逛。天气好的时候,从西区的主干道就能直接看到山上的长城。体育馆有游泳池,非常实惠;本来想着多去游泳,买了泳装,结果一次也没有去。冬天挺冷的,所幸室内有暖气,12月份有几天雪下的很大,一直在南方,印象中好多年没有看到这么大的雪了,雪后看到很多有创意的雪人,坚持了很多天,最后都被铲掉了。不过雪很干,凝聚不起来,搓个雪球,一扔出去就散成粉了。夏天喜欢晚上在空荡荡的校园里跑步,迎着山风,耳机里放着躁动的音乐,昏黄的路灯把影子拉的很长。不好的地方是仍然有很多地方在搞基建,学校和工地仅有一墙之隔。

经常去图书馆里自习,在16寸的笔记本上写代码debug不太方便,一开始想着用ipad当个副屏,原理就是给笔记本插个虚拟HDMI,然后ipad使用向日葵等远程软件监视虚拟屏幕的输出,就这样将就着用了几个月,但是有网络延迟,体验不好。后来买了个便携屏幕,外接带上,使用体验很好。

最后有不少同学都脸熟了,一些也有眼神交流,却不知道名字。这种熟悉又陌生的感觉很奇妙。本想去认识下,但是想了想,留了联系方式之后也就寒暄两句,离湖之后大家各奔前程,后续也几乎不会有什么交集,还是不打扰了。

也认识了一些很有想法和能力的朋友,交流下来颇多感触。有些同所的还能在环保园里面经常见到,有些别的所的却难以相见了。

学校的学术资源很多,各类讲座络绎不绝,宣传栏里面,海报经常更换,可以看到各个领域的大佬;文艺活动也丰富多彩,各个学院都会组织晚会,你方唱罢我登场,但是作为一个不太喜欢热闹的人,没有怎么参加。

科研没啥进展,但是也没有什么横向,比较轻松,可以学习一些自己感兴趣的内容。

离湖前抽宿舍,手气很好,喜提科一招豪华公寓,享受两小时通勤时间。走在具有年代感的楼道内,脑海中不禁涌现出前辈们在此奋斗的模样。搬家那天上午搬完行李,坐上大巴,从学校里开出来,回头又看了一眼校门,我的校园生活从此结束了。

拉到科一招放下人和行李,正式入住。早上起来,从科一招出来是中关村大街,看着拥挤繁忙的车辆人群,有种格格不入的感觉,虽说还是学生的身份,但是今后也要以社会人自居了。

来到环保园,搭了两个同学。周围跑了两天,看了十间房,终于选定了一处交了定金,隔天又重新搬家,可以安稳的开启牛马生涯了。算算付好房租时候之后所剩的余额,提醒自己要为了米粒而努力。环保园工位很宽敞,键盘有点吵。园区里面设施很完善,食堂刚吃几天感觉还不错。和师兄混熟,聊聊天,又有了些新的认知。

研究生已经过去一年了,某种意义上还是一事无成,接下来希望做出点有意义的东西出来。还是想所做的研究能够有实用价值,不单单是纸上谈兵。