高性能计算实习生面经
面试了3个公司的的高性能计算实习生,有商汤,壁仞,寒武纪,过了后两个,现在来补补面经。我一共做了两个项目,一个是给大型开源社区做的贡献(cuda加速相关的),一个是经典的gemm。现在考虑去哪个公司实习,求大佬们给给建议吧(最好说说原因)!
1.商汤科技
第一轮面试:
全程视频,只问了项目。
全程视频,只问了项目。
关于gemm项目:
1. 怎么做的?口述。我建议手写,边写边说。面试官同意了,但写到一半说由于时间关系,还是要求我口头叙述。中间还问到了为啥一个线程要计算C矩阵8*8个元素。寄存器会溢出吗?有自己的创新点吗? #pragma unroll作用?一个tile内做了几次计算?做过卷积优化吗?
2. 与cutlass相比,你这个会更快吗?(没比过,唉,应该补充一下,和cublas比较过的!)
3.了解ppl吗?
4.了解tensorCore吗?
5.做过低比特位的GEMM吗?
2. 与cutlass相比,你这个会更快吗?(没比过,唉,应该补充一下,和cublas比较过的!)
3.了解ppl吗?
4.了解tensorCore吗?
5.做过低比特位的GEMM吗?
6.能实习多久?
7.反问
面试官很和谐,全程很轻松,因为除了第一个其他都答不上来。商汤还是硬核,一眼就看出我是铁菜鸡,所以直接挂了,哈哈哈。
7.反问
面试官很和谐,全程很轻松,因为除了第一个其他都答不上来。商汤还是硬核,一眼就看出我是铁菜鸡,所以直接挂了,哈哈哈。
2.壁仞科技
第一轮面试:
全程微信语音
面试官一:
1.开源项目pr描述
2.GEMM描述(总体比较满意)。如果K与M或N相比,值太大,会对循环体产生什么影响?我回答不太清楚。面试官说寄存器可能不够用(不太理解,因为寄存器是重用的,K值太大,顶多tile多一点,循环次数多点,寄存器使用的还是那几个呀。有大佬解释下吗?)
面试官二:
1.项目描述
2.neon汇编指令(写在简历中,但是忘了。)
3.cuda调试工具用的啥(print大法,问有推荐的吗?面试官说他们有专门的)
4.反问(学习cuda要往哪发展?答:指令集和硬件架构要清楚,才能有所做为)
全程微信语音
面试官一:
1.开源项目pr描述
2.GEMM描述(总体比较满意)。如果K与M或N相比,值太大,会对循环体产生什么影响?我回答不太清楚。面试官说寄存器可能不够用(不太理解,因为寄存器是重用的,K值太大,顶多tile多一点,循环次数多点,寄存器使用的还是那几个呀。有大佬解释下吗?)
面试官二:
1.项目描述
2.neon汇编指令(写在简历中,但是忘了。)
3.cuda调试工具用的啥(print大法,问有推荐的吗?面试官说他们有专门的)
4.反问(学习cuda要往哪发展?答:指令集和硬件架构要清楚,才能有所做为)
第二轮面试:
主要谈谈工作内容,由于是实习生,做测试等打杂的事务比较多。
2.寒武纪
第一轮面试:
全程电话语音
1.开源项目。
2.gemm 为啥一个线程算8*8。用cuda实现算子难点在哪(开放性问题), cuda实现过前缀和吗?
3.bank conflict概念 怎么减少?little law(访存延迟和计算延迟相关的)
反问:我应该往哪里深入?深入理解计算机系统以及英伟达的开源资料。如果做编译器,需要搞懂ptx
2.gemm 为啥一个线程算8*8。用cuda实现算子难点在哪(开放性问题), cuda实现过前缀和吗?
3.bank conflict概念 怎么减少?little law(访存延迟和计算延迟相关的)
反问:我应该往哪里深入?深入理解计算机系统以及英伟达的开源资料。如果做编译器,需要搞懂ptx
第二轮面试:
主要谈谈工作内容,由于是实习生,与壁仞一样,做测试等打杂的事务比较多。