原粒半导体 - AI 高性能算子工程师 - 技术面

1. 介绍项目。巴拉巴拉...

2. 说说 Reduction 算子调优实现策略;Conv 呢,是滑窗实现的还是怎么;其它的算子知道吗,比如 Softmax,Droupot。

- Reduction。巴拉巴拉...

- Conv 按滑窗策略实现。还有 img2col 方式,不过我没看过源码。

- Gemm、Transpose,其它不了解,只知道有通用现成的解决方案,没时间学。

3. C++ 重载;单例模式。

- C++ 重载是与 C 相区别的为人称道的特性之一。上层根据传输参数不同执行不同版本;底层通过函数联合签名定义为不一样的 函数名,实际为不同函数。

- 私有化或 delete 构造函数,提供静态共有接口。每次调用静态接口成员函数都检测一下类是否已经实例化,否则创建并返回实 例对象,是则直接返回已有实例对象。

4. 问会什么语言。答 C++/CUDA,Python/matlab 会调。给两个例子进行说明。

class Parant:
    x = 1

class Child1(Parant):
    pass
class Child2(Parant):
    pass

print(Parant.x, Child1.x, Child2.x)
Child1.x =2
print(Parant.x, Child1.x, Child2.x)
Parant.x = 3
print(Parant.x, Child1.x, Child2.x)
## 面试官:和 C++ 类似,print 里面的调用会实例化对象。
## 我:沉默...勉强答对。

a = a^b
b = b^a
a = a^b
// 我:交换 a 和 b。从数学上是环上的运算;从计算机上是按位异或。

5.本科专业,硕士研究方向。"你这本硕都是搞算法"。

6.反问。

- 公司是做多模态 AI 的,说是特点为芯片可插拔组装,我是不是可以理解为拼积木?我可以理解为给予客户更高的自由度,和降 低升级换代成本吗?

- 不同版本的芯片也是可以插拔的吗?会不会有木桶效应存在?(说是基于统一接口协议,类似于 PCIe x16; 高速互联,类似于 N vlink)。

- 总共几面。“一面,接下来就是 HR 面了。”

总共面了 35 分钟。

******************************************

9 月 20日后续来了:技术面挂了,跟我的感觉一致。

" HR 打电话说当时面试官挺犹豫的,最后给我挂了。最近又跟她说了说,问问我能不能去实习,面试官想先带带我。"

拒绝。

一方面是我确实是不能去实习;另一方面就是 HR 的话都是鬼话,一个字都不能信。

这操作也挺离谱的,白激动了。

*****************************************

2023/10/25 补更

首先介绍深鉴科技科技。由清华大学孵化,后被 AMD 赛灵思收购。

原粒半导体则是由原成员分化出来再成立的一家企业,同样的企业还有一家叫做[无问苍穹](https://mp.weixin.qq.com/s/0eUBGAQ1-9uGfb5IMegOSQ)。

然后重点信息来了。由内部消息得知,无问苍穹计划发展起来后被计划卖给其它企业(是不是一样的套路?),入职可能会给分红激励,但多少不知。

同样推测,原粒半导体可能也走这个路子,意向入职的话请考虑或问清楚。若真是这样,那么你必须要考虑的是:打算拿多点钱然后再找工作 or 想找个稳定的跳板。

全部评论
Python的题跟我一样,我还给答错了,对 Python 的类太不熟了,以为还会在类间保持一个实例
点赞 回复 分享
发布于 2023-09-07 23:07 湖北
“你这本硕都是搞算法”,面试官是什么意思啊?,怎么感觉怪怪的
点赞 回复 分享
发布于 2023-10-12 15:37 湖南
大佬的八股是自己整理的吗?
点赞 回复 分享
发布于 2023-10-25 09:51 广东
有推荐的Github总结吗 高性能八股
点赞 回复 分享
发布于 2023-12-20 11:59 浙江

相关推荐

1. C++中的构造函数和析构函数的作用是什么?2. 什么是C++中的命名空间?如何使用?3. C++中的虚析构函数有什么作用?4. C++中如何实现抽象类和接口?5. 什么是多态的静态绑定和动态绑定?6. C++中的默认参数是什么?如何使用?7. 什么是C++中的强制类型转换?8. C++中如何使用std::vector和std::list的区别?9. 什么是C++中的std::map和std::set?10. C++中的异常安全性分为哪几种级别?11. 什么是C++中的内存对齐?12. C++中如何使用std::pair和std::tuple?13. C++中的friend类和friend函数有什么区别?14. C++中如何实现模板类?15. 什么是C++中的类型推导(decltype)?16. C++中的智能指针如何防止内存泄漏?17. C++中如何使用std::shared_ptr和std::weak_ptr?18. C++中的std::mutex和std::lock_guard有什么区别?19. 什么是C++中的线程安全容器?20. C++中如何实现条件变量的使用?21. 什么是C++中的移动语义?22. C++中的std::function和函数指针有什么区别?23. C++中如何使用std::algorithm库?24. C++中的std::initializer_list是什么?25. C++中如何使用模板元编程?26. 什么是C++中的类型特征(type traits)?27. C++中如何实现自定义的迭代器?28. C++中的std::unique_ptr和std::shared_ptr的使用场景是什么?29. C++中如何处理字符串和字符数组的区别?30. C++中如何使用std::string和C风格字符串?31. 什么是C++中的析构函数的虚函数?32. C++中如何实现运算符重载的友元函数?33. C++中的std::array和C风格数组有什么区别?34. C++中如何使用范围for循环遍历容器?35. C++中的std::optional是什么,如何使用?嵌入式C++面经推荐大佬面经  链接在下边  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
10-29 11:50
东北大学 C++
分布式缓存,你的分布式key是怎么分桶的?分桶规则是什么?节点的增减会不会影响你的数据分布?有没有主节点?没有主节点来管理整个数据的一个分布规则,如果有一个节点挂了,客户端怎么感知的?假设正在请求中,down了一个节点,比如原来5个down之后变成4个,那这个时候你请求的有部分数据,它的数据分布就变了,你的客户端怎么知道这个事情?怎么会路由到其他节点上去呢?你这个数据可能正在迁移,你数据正在迁移,假设你的第五个节点宕机了,那么你的第五个节点的数据从哪里取出来?你这个节点宕机了,其他节点怎么拿到他这个宕机的数据?相当于你存的节点的数据在数据库都有?缓存有副本吗?平时都建议把C++模板类的实现,放到头文件中,基于什么考虑?C++一个虚函数可以定义成模板函数吗?如果我在一个头文件中定义一个函数,这里会有什么问题吗?一个类的大小有什么有关?如果一个类本身有一个虚函数,再加一个虚函数它的大小怎么变化?unordered_map和map的区别有unordered_map查找时间复杂度是O(1),既然有基于哈希表的map,为什么还要有基于红黑树的map?解决哈希冲突的一些方法C++三种智能指针unique_ptr怎么做到的单独拥有一块内存,而不是和别人共享一块内存?手撕:字符串相乘,没撕出来,挂
腾讯一面1582人在聊 查看17道真题和解析
点赞 评论 收藏
分享
6 27 评论
分享
牛客网
牛客企业服务