标签:分析 常见 譬如 编程 什么样 学习 cuda 熟悉 知识结构
作者:袁进辉
链接:https://www.zhihu.com/question/315611053/answer/676815240
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
以开发深度学习框架为例:
1,熟悉常见深度学习模型,CNN, GAN, RNN/LSTM, BERT, Transformer;
2,熟悉后向误差传播算法(BP),完成从标量求导到矩阵求导思维方式的转换,熟悉常见算子的梯度推导(矩阵乘,卷积, 池化,Relu,如果会batch normalization 就一步到位了);
3,熟悉autograd的基本原理,能自己手撸一个最好;
4,熟悉cuda编程(举一反三),熟悉cuda高阶用法,event, stream, 异步/同步,会优化常见cuda kernel, element-wise, reduce, broadcast, MatMul, conv, pooling 等;
5,熟悉c++和python, 对c++高级用法感到舒服,各种模式,惯用法,模板;熟悉vim, gdb 程序调试;
6,熟悉socket, RDMA编程,熟悉常见collective operation代价分析,譬如ring allreduce, tree allreduce 代价分析;
7,熟悉多线程编程,熟悉锁,条件变量,内核线程,用户级线程,对actor, CSP(coroutine)各种技术熟悉;
8,熟悉编译器基本原理,parser什么的不重要,主要是dataflow分析,灵活运用;熟悉多重循环程序优化技巧,譬如polyhedral 模型;
9,熟悉常见分布式系统原理,mapreduce, spark, flink, tensorflow 等;
10,熟悉计算机体系机构,量化分析方法,Amdahl' Law, Roofline Model, 流水线分析(譬如David Patterson 那本书);
11,熟悉操作系统原理及常用系统诊断工具,譬如各种资源利用率分析;
12,programming language 原理,命令式编程,函数式编程,逻辑编程,入门书《程序的构造与解释》?
以上只是知识和技能,我认为最重要的是直觉,洞见,创造能力。
暂时先想到这些,如果都符合,绝对挺多企业想要你。我们也需要:)
标签:分析,常见,譬如,编程,什么样,学习,cuda,熟悉,知识结构
来源: https://www.cnblogs.com/focus-z/p/10835910.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。