My Road Map¶
未来一段时间的规划
map¶
算法(不关心)
---------------------------------------------上层
神经网络 (核心领域)
Lenet
Resnet
Bert
LSTM
---------------------------------------------下层
关注点
关注网络结构,不关注公式原理
关注网络的OP组成
关注网络的执行流程
---------------------------------------------基础
语言 驱动 框架
------------- --------------- --------------
C/C++ PCIE TensorFlow
Python Cache TVM
汇 编 DMA GCC
2020年11月的现状与规划¶
事与愿违,有时候路不完全是自己选择的,现在我的主要工作是开发SOC模拟器。我也有了新的方向规划
在开发SOC模拟器的过程中,我觉得可以学习很多CPU微架构方面的知识。这是很宝贵的,这让我在对代码执行的理解上有了更深的层次。 我想目前需要做的应该有如下几点
- 熟悉掌握现代主流CPU微架构
- 结合微架构,加深对代码的理解
- 熟悉了解编译器的原理
- 增加对linux内核重点模块的学习
- 分析freeRTOS的原理与实现
必须清楚的认识到,学习微架构是为了更好的开发软件,而编译器是软件与最终执行程序的纽带,这中间有很多处理,有必要了解。 回到根本,必须将linux内核作为一个立足点。
总结一下,需要抓住CPU微架构,linux内核,设备驱动这三个立足点,在c++,python,编译器,神经网络等细节领域保持开垦,逐渐形成较为宽阔的知识面,同时选择一个核心竞争力。
2020.11.26 增加一个目标¶
从内核接口出发,结合汇编指令和工具链,分析CPU实现。完成从系统到指令到CPU硬件的贯穿,比如内存屏障,自旋锁,原子操作等,都可以贯穿整个流程来分析。
2021.2 技术方向的思考¶
神经网络应用¶
目前各大互联网公都有这方面的需求,主要关注神经网络的应用, 需要熟练的掌握各种神经网络,以及tensorflow等深度学习框架,可能会涉及到 网络优化,行业内容日新月异,需要时刻拥抱变化。
这个领域最大的吸引力在于能够与实际问题紧密结合,由于政策引导,目前各大 传统业务都有转向AI处理的需求,比较容易产生合作机会。
技术方面,目前技术积累不多,网络优化是难点,自身水平不太容易达到能够优化 网络的程度。进入这个领域后,基本会抛弃掉之前积累的底层技术,完全转换到应用端, 好在近几年积累了Python和C++基础。很有可能会出现能力不足影响进阶的问题。
这个方向,好的机会可遇而不可求,因为在这个领域目前没有太多积累,没有任何技术和 经验优势,需要机遇也面临挑战。
技术需求:
- 各种神经网络
- TVM等编译器框架
- tensorflow、pytorch等神经网络框架
- 传统编译器理论
RISCV指令集与微架构方向¶
目前芯片行业也是热门行业,长期看好,目前政策支持,riscv的热度估计会持续。做 riscv相关的芯片公司也越来越多,机会越来越多。行业内容本身相对稳定,可以持续。
这个领域的吸引力在于报酬不低并且技术能够得到延续。 从微架构和指令集到uboot,linux都可以围绕这riscv来操作,之前积累的技术能够持续发挥作用。 经验优势能够得到发挥,年老体衰仍然能够有一席之地。
技术方面,能够充分发挥自身逻辑清晰的技术特点,而且基本不会出现能力不足的问题, 当然,技术广度需要扩展,深度需要提高,但终归不会因为潜力不足而影响进阶。
这个方向,自身有一定的经验优势和技术积累,需要较好的机会,同时需要警惕技术广度变窄。
技术需求:
- RISCV架构
- 微架构
- 硬件描述语言
驱动与内核方向¶
传统方向,行业通吃,万金油的技术方向也意味着不管去哪个行业,都属于边缘部门。 行业需求稳定,可以蹭新型热门行业红利。
这个领域最大的吸引力在于舒适,挑战性相对较小,经验优势能够得到充分发挥。
技术方面,仍然需要拓展和进阶,但不会出现因能力不足影响进阶的情况。但这不是一个好 选择,不到万不得已不会考虑回归这个方向。
技术需求:
- 重点模块驱动
- linux内核重点机制
芯片领域模拟器方向¶
这是一个很小的领域,涉及到芯片微架构和指令集架构,同时又需要硬件基础,预估行业报酬不低, 但需要有IC设计方面的技术积累。小众但能掌握芯片核心,需求量较小。
这个领域最大的吸引力在于与现在的工作完全接合,可以凭借经验优势索要较高报酬。
技术层面,需要学习目前主流模拟器语言,比如shisel,systemc。而且需要补充IC相关知识
这个方向很小众,而且很难与应用挂钩,后续发展空间可能比较局限
技术需求:
- 主流模拟器语言
- IC相关理论
2021年9月技术方向的思考¶
以架构设计和分析为目标,以模拟器为基本能力,以RTL coding为附加能力,成为熟练掌握整个CPU软硬件系统的全能选手
能力罗列:
- 掌握主流CPU架构和微架构相关知识
- 掌握IC产业相关知识
- 掌握乱序多发射CPU的各个要素
- 掌握以gem5为核心的模拟器开发能力
- 掌握以RISCV指令集架构为核心,以ARM微架构为参考架构的基础知识
- 掌握关键的操作系统与CPU的联系,比如内存管理,进程调度,多核通信,中断控制等重点模块
- 掌握RTL开发基础,掌握基本的Verilog,chisel编写调试能力