郑泽康:一名热爱技术的“保安”|OneFlow U
郑泽康,一流科技研发工程师。2021 年,他毕业于深圳大学通信工程专业。业余爱玩英雄联盟,用 FL Studios“瞎鼓捣”电子音乐。
2020 年 7 月,他开始了在 OneFlow 的实习之旅,期间一个人“solo”过所有文档,并尝试写 CUDA 算子。2021 年正式毕业后,他全职加入 OneFlow,主要负责 CUDA 开发和优化,并且随着不断解决技术挑战,逐步构建起了技术自信,从最初的“脚本小子”成为了独当一面的 CUDA 工程师。现在,他又把自己的学习心得传递给了正在 OneFlow 实习的同事们。
由于他每天早上第一个去 OneFlow 办公室开门上班,因此自诩为“一名热爱技术的保安”。不过,由于近期深圳疫情限制,OneFlow 大门已经很久没等到“保安”来开门了。
以下为郑泽康自述。
高考完的那个暑假,我买了一本《C Primer Plus》自学 C 语言,也就是那时开始接触编程的。
到大学后觉得黑客很酷,当时也学了一些 Kali Linux 和网络安全的知识,不过也只是“脚本小子”的水平。当时正是数据分析和爬虫的热潮,网络上各种铺天盖地的广告,也是那时候开始接触 Python,学习爬虫,用 Scrapy 做了个爬取论坛照片的应用。再到后面就是进入学校实验室,对着 D2L 学习计算机视觉知识。
基础知识其实会贯穿程序员生涯,所以大学时,打好编程基础很重要,编程基础牢固后,学习新知识也会比较快。不用过分追逐新兴热点,编程书其实不用看特别多,只需要看比较经典的如《C++ Primer》、《CSAPP》就可以了。
真正上手做项目就是一个建立技术自信的过程。它的重要性一方面在于能更好地帮助你完成任务,如果一直抱着畏难心态,很多事情推进不下去。另一方面,对于一些看似花哨的技术方案,有了技术自信后也能把握它的重点。
当然,一些比较困难的项目有人指导你就更好了。你可以选择投简历去企业实习,也可以在 GitHub 上为 OneFlow 这样的开源项目做贡献。
当初,我就是在一个线上讲座了解到 OneFlow 的,德澎面试的我,针对我的简历问了一些问题,感谢德澎哥没有为难我。入职后,从 2020 年 7 月底到 2021 年 3 月,我在实习期间做的工作还挺杂的,大到一个人 solo 完所有文档,小到帮忙画论文图例,还有补充 API 文档,写一些 Python 代码拼接的算子,再到后面用 cpp、CUDA写一些简单的Elementwise算子。
我认为,这期间我是在"赚取"别人的信任。只有别人信任你,觉得你靠谱,才会带你参与更有技术难度的任务。每次攻坚难题说不痛苦那是假的,但是带来的成长是巨大的。
那是我第一次也是最后一次在企业实习。在深圳大学正式毕业后,2021 年 7 月 1 日,我也正式全职回归,一方面是因为 OneFlow 的技术氛围比较浓厚,另一方面我敬仰很久的高手如德澎、建浩都在 OneFlow,很想和他们一起共事。
转变为全职以后,身上的责任更重,工作难度也有提升。期间很高兴的一件事是实习期间我敬仰的俊丞找到我,让我做 Batch Permute 的优化(还好没白看那本 CUDA C PROGRAMMING GUIDE),想到自身卷不动算法领域,而国内的 CUDA 资料不是很丰富,CUDA 算子还有很大的优化空间去挖掘,就入坑 CUDA 了。
我开始主要负责 CUDA 算子开发和优化,根据算法组的需求补充缺失的算子,有时候还要支持算法组同事 Profile 模型性能,优化具体实现,处理事情需要更加靠谱才能被人信任。
我的技术自信也是在俊丞、郭冉带我完成Permute算子优化开始逐渐建立的。第一次做算子优化工作,对 CUDA 编程不是很熟悉,Profile 工具也不太会使用,还经常写 Bug。那两三周确实很煎熬,我每天都是愁眉苦脸,只有俊丞天天笑嘻嘻。当然,最后算子测试效果非常好,远超其他框架的实现,自己也更有信心了。
近期,我们研发的一套关于推荐系统的组件 OneEmbedding 即将推出,敬请关注。
OneFlow 是一家技术氛围浓厚,相对自由的公司,特别还支持远程办公,这意味着你需要有强大的自驱力,足够自律。也欢迎你的加入。
其他人都在看
OneFlow v0.7.0 已发布,欢迎下载体验:
https://github.com/Oneflow-Inc/oneflow
评论