Post

划水年记·2022

讲道理,把自己的划水经历赤裸裸地摆在台面上让人公开处刑,还蛮是一种催人奋进的方法。

总结

PhD学习的第一年(或者说头四个月)一下子就过去了。做得好的地方有:

  1. 对课题还是越来越感兴趣的。
  2. 除了项目内的工作,Linux和Vim之类的技能也大有提高。
  3. 没有忽略老本行,反而还稍微巩固提高了点。
  4. 视野也是大有开拓的!

一些反思:

  1. 学术交流收获不大:一者组里所里数电方向的不多,二者还是有些不熟悉也不太擅长社交环境。慢慢来吧。
  2. 需要多读文献:刚开始读当然会慢,都是量上来了才越读越快的。因为做的不是纯技术的内容,得看看能不能安排点固定时间读读文献,总结点找文献和安排文献阅读的方法论。
  3. 口口声声说需要有明晰的路径图,但是碰到大茬还是进度非常慢:多和Alex讨论讨论,把控会议的关键点。每周目标要明晰,也得用一用甘特图之类的。
  4. 没特殊情况周五白天不出门玩了,有些打乱节奏。作息也不能太不规律。

第十四周

上周纯码农,进度正常。

下周没有下周了,下周圣诞节假加上出行安排,没有正经工作时间了。这两周干了太多代码,带哥们都不在加上文献储备问题,ASOCat是没有推进的。

假期主要工作:

  1. 多读点文献,至少每个方面都读到

次要工作:

  1. chmod和VSCode Neovim
  2. 年记

第十三周

上周没啥好说的,RTL进度还行,testbench还是不熟练。

这周主要做ASOCA,ASOCat看看荷兰人的文献。

主要工作:

  1. (100%)COMP BUF sign-off
  2. (0%)梳理HDPROC情况
  3. (100%)整理荷兰人的文献

次要工作:

  1. (100%)学习用proxyjump搭载远程目录并更改权限
  2. (100%)准备lr和accom。

第十二周

经典低估工作量。简单的都搞定了,难的下不了手。

这周有出行计划,剩下的时间里就做COMP好了。codelet list和slipnet接口慢慢来吧。

下周起更新调整为周三,以跟原进度会保持步调。

主要工作:

  1. (150%)COMP做好初版
  2. (100%)不要奢望法国队能走很远。

次要工作:

  1. (50%)优化sshfs配置,更新相关笔记
  2. (100%)配置coc-commentarycoc-surround

第十一周

虽然要做的都做了,但是上周任务比较肤浅,其实没太多实质性进展。这周必须开冲!

但话说回来,今天又接到了COMP的新需求,asocadb的interface问题也悬而未决有点无从下手(大概得跟Chris及Adrian好好聊聊),加上slipnet迭代和coderack整理。需要调整一下安排,任务量太重会极大打击工作信心的。

主要工作:

  1. (100%)设计pandas到pydot的接口
  2. (0%)直接从codelet list出发,尝试理解相关机制(有成果就好)
  3. (40%)向COMP模块添加mask输入和模式选择功能

次要工作:

  1. (100%)整理一下vim本体的配置
  2. (0%)配置coc-commentarycoc-surround

第十周

严格分割工作和业余时间之后晚上时间瞬间不够用了,次要工作推进比较慢,所以周二才更新周记————不过这是一件好事!

COMP模块总算要sign off了。因为以往经验根本没人管testbench怎样,上周好好地学习了一波正经testbench的写法,收获很多也花了许多时间。这周专心ASOCat。

主要工作:

  1. (100%)重拾codelet:无论怎样要理出一两个micro op开个头。
  2. (100%)完成slipnet文档的outline

次要工作:

  1. (0%)尝试推进codelet文档
  2. (70%)配置完coc.nvim,阅读coc-commentary说明

第九周

周五六日虽然干了活但效率比较低,得整点方法,比如做好todo list

休息好后下周开始多锻炼一下,其他无功无过。

主要工作:

  1. (100%)再迭代一版slipnet。
  2. (100%)完成COMP的testbench。
  3. (50%)根据周三的technical开始规划下一部件的设计。

次要工作(别花太多时间):

  1. (30%)学会Verilator。
  2. (40%)配置coc.nvim。

第八周

第一次翘班,经验不足(你懂我意思)……除了这一点,上周其实没啥毛病。

路线diverge了很多,进度有些慢了,后面真得赶一赶。所以晚上积累理论这个东西可以先不那么着急。

主要工作(可能超额):

  1. (100%)其实我也不知道工作量有多少但是得把slipnet完成
  2. (30%)slippage前后置/description二选一梳理并初步文档化
  3. (50%)COMP模块收尾

次要工作:

  1. (100%)学点Vim
  2. (20%)学点Verilator

第七周

还凑合,出现的岔子跟预想的差不多,并且堆了不少代码以量取胜了。

总结一下问题的话,现在需要从积累技术向积累理论转变,工作不够深入。

主要工作:

  1. (100%)总结并完成一版sliplink设计。
  2. (100%)基于1.,搭建slipnet alpha。
  3. (70%)改进COMP模块以支持输出后6位。

次要工作:

  1. (0/10)Kanerva

第六周

有点难以置信,上周的工作内容和原定任务几乎不搭边……并且现在看来,上周完全是低估了Slipnet设计的工作量。

必须明确,至少目前而言工作日晚上和周末不能拿来完成正式工作,除非真的非常琐碎。不在这两个时间安排工作一者可以提高工作时间的效率,二者可以有时间学点杂七杂八的。

本周的工作安排得保守一些吧(希望这些足够保守):

  1. (4/10)按照README改进图数据库代码。
  2. (40/40)把slipnet都放上去。

次要:

  1. (0/1)完成slipnode representation的说明文档。
  2. (0/20)Kanerva。

第五周

没什么好评价的上周,中规中矩跟上了节奏,基本上要做的都做完了。

可能工作日晚上还可以优化一下,现在莫名其妙一个晚上就过去了。

本周任务:

  1. (0/1)完成Slipnet设计。
  2. (1/1)尽量完成Plan的草稿。
  3. (0/24)初步整理每个codelet。

次要:

  1. (0/20)Kanerva

第四周

上周收获不少,但是博客,vim,verilator之类应该是业余工作而非搁置主要工作的理由。而作为真正的part-time work,阅读的推进可以说是十分之慢了。

本周会议事项较多,重要会议应该保障同步,力求领先。

另外,这周的周末就别想工作了。所以要紧的事项,一定记得要周中完成,下周一好好交差。

本周任务:

  1. (2/2)通过两次会议总结出Slipnode和object的存储representation思路。
  2. (1/1)至少有实质性地再次推进文档工作。

次要:

  1. (8/20)20页Kanerva!

第三周

甚至不清楚到底是因为自己确实划,还是起步有断层所以显得进度很慢了。

总结问题:primer没落到实处->完成工作耗时太长+没有正确的工作顺序->频繁更换手头任务+没有任何实质推进

暂停彻底分解Copycat具体机制,转战成效更直接的codelet在接口的micro op上。另外,周中可以做点DIC工作分散一下压力。

注意不要跟去年一样逼得自己啥都搞不定。

本周任务:

  1. (0/1)完成codelet在硬件上的micro op解析
  2. (2/1)至少初步地了解COMP接口

次要:

  1. (2/20)20页Kanerva

第二周

没能完成coderack,甚至主函数都只完成了部分入口。文档的编写让自己意识到Copycat的具体实现实际上非常动态且复杂。例如,Slipnet和Workspace有着相当复杂的互动,主流程之外有着非常多的自定义函数还不清楚原理。

然而,当前版本的Slipnet应当是相对静态的。这一问题和软硬件界面的位置成了已知的两大问题。

本周任务:

  1. (0/1)完成可读的文档第一版草稿,i.e.,理解Copycat的具体实现方法。
  2. (0.7/1)尽量推进完成Cat()和Coderack()。

次要:

  1. (0/2)完成Workspace和EasyCopy。
  2. (9/20)推进20-30页Kanerva。

第一周

讲道理,工作上不是很成功的一周:入学手续意外地拖拉,暂时无法适应居家办公,周末花费了太多时间在化学实验入门(做饭)上。学了不少python内容,虽然这语言本身语法也烂简单。

根据以往的经验来看,作息和生活事务的阵痛很快就会过去,这一点不需要太担心。但是下周得慢慢学会居家办公,看看能不能网上找点辅助工具。

手头工作是写一个简单版Copycat,整体不复杂。目前遇到的难点有这几个:

  1. workspace到底是个什么?文献读得有点迷糊:好像没有workspace也能跑?而且Alex也说软硬件交界面就在workspace上。这似乎就是一个可以被处理掉的部件。
  2. codelets的运行方式没有非常搞懂,包括:本身的内容,调用的逻辑。这个可以结合现有的项目照猫画虎搞定,只是bug和性能肯定血烂。
  3. 长远地看,codelets list应当是要结合interface的反馈采用非监督学习完成。目前看起来非常复杂,并且暂时也不是需要考虑的问题。

本周任务:

  1. (0.75/2)分析co.py.cat代码,作为EasyCopy和文档的参考,完成主函数和coderack。
  2. (1/1)推进文档草稿工作,在文献里找找描述codelets的文件,完成skeleton。

抱着让别人看懂的想法,一边学一边给自己的问题写备忘就很够了。

次要任务:

  1. (0/2)完成Workspace和EasyCopy。
  2. (15/20)推进20-30页Kanerva。
This post is licensed under CC BY 4.0 by the author.