(此岗位为外包岗位)
岗位职责:
1.参与自研异构芯片上包括Linux驱动、运行时、编译器、应用层等组件在内的软件栈规划、需求分析、以及软件栈设计的可行性评估;
2.与硬件工程师合作,评估异构芯片在上述基础软件栈可实现性上的表现,作为优化硬件设计的依据;
3.芯片核心模拟器、应用软件框架SDK的选型,以及基于SDK的适配开发;支持应用软件团队基于SDK框架的算法和应用开发;
4.参与分析和解决芯片研发和验证过程中的问题,包括指令流水、离散和DMA访存、IO、计算等方面;
5.参与分析和解决硅后板级应用调试中遇到的各类问题,通过分析和实验有效收敛问题范畴。
岗位要求:
1.熟悉Linux开发环境和常用命令行,熟悉git、vim等开发工具;
2.了解Linux系统中从顶层应用、解释性语言、高级语言、运行时库、系统调用、驱动、内核、直到底层芯片和板级的多层软硬件栈构成,了解GPU等异构芯片的多层软硬件栈的常规组建方式;
3.熟悉编译器从前端、中端、后端、链接到加载的一般性流程;
4.熟悉计算机体系结构和各级硬件并行化设计方法者优先,了解常见的硬件并行化性能挖掘和评估方法;
5.熟悉CUDA、OpenMP、OpenCV等并行编程模型者优先;
6.具有Linux驱动、内核、虚拟化等领域开发经验者优先;
7.具有LLVM或GCC、MLIR等编译器开发经验者优先;
8.有良好的学习能力、沟通能力和团队合作能力,工作态度端正。