太初元基面经

一面(7后天过):

1、自我介绍
2、介绍一下推理框架这个项目
3、说一下推理项目中的项目难点
4、说说maxpool、conv的算子定义
5、C++11/14/17的新特性
6、说说左值与右值
    - 左值(lvalue):
      1. 可寻址、有持久状态
      2. 有名称的变量
      3. 可出现在赋值左侧
    - 右值(rvalue):
      1. 临时对象或字面量
      2. 即将销毁的对象
      3. 只能出现在赋值右侧
    - C++11扩展:
      1. 右值引用(&&)
      2. 移动语义(std::move)
      3. 完美转发(std::forward)
    - 应用场景:
      1. 移动构造函数
      2. 避免不必要的拷贝
7、讲讲C++中封装、继承、多态
    - 封装:
      1. 数据与操作绑定
      2. 访问控制(private/protected/public)
      3. 隐藏实现细节
    - 继承:
      1. 代码复用机制
      2. 类型:单继承/多继承
      3. 继承方式:public/protected/private
    - 多态:
      1. 同一接口不同实现
      2. 实现方式:
        - 编译时:函数重载、模板
        - 运行时:虚函数(virtual)
      3. 虚函数表机制
8、C++中继承中析构函数、构造函数顺序
     - 构造函数顺序:
      1. 基类构造函数(从最顶层开始)
      2. 成员对象构造函数(按声明顺序)
      3. 派生类构造函数
    - 析构函数顺序(完全相反):
      1. 派生类析构函数
      2. 成员对象析构函数(逆序)
      3. 基类析构函数(从最底层开始)
    - 重要注意:
      1. 基类析构函数应声明为virtual
      2. 多继承时按继承列表顺序构造/逆序析构
9、TensorFLow深度学习介绍一下
    - 基本概念:
      1. Google开发的开源深度学习框架
      2. 基于数据流图(Data Flow Graphs)
      3. 节点为操作,边为张量(tensor)
    - 核心特性:
      1. 跨平台支持(CPU/GPU/TPU)
      2. 自动微分机制
      3. 高级API(Keras/Estimator)
    - 主要组件:
      1. TensorFlow Core
      2. TensorFlow Lite(移动端)
      3. TensorFlow.js(浏览器)
      4. TFX(端到端平台)
    - 应用领域:
      1. 计算机视觉
      2. 自然语言处理
      3. 语音识别
      4. 推荐系统
10、gdb调试的一些基本命令
11、使用Cmake多一点还是makefile多一点
12、OpenMP与CUDA中多线程的区别
    - OpenMP:
      1. CPU多核并行
      2. 共享内存模型
      3. 指令式并行(#pragma)
      4. 适合粗粒度任务
    - CUDA:
      1. GPU并行计算
      2. 异构架构(CPU+GPU)
      3. 显式内存管理
      4. 适合细粒度数据并行
    - 主要区别:
      1. 硬件平台(CPU vs GPU)
      2. 内存模型(共享 vs 分离)
      3. 并行粒度(数十 vs 数千线程)
      4. 编程复杂度(简单 vs 复杂)
13、讲讲gtest
14、线程与进程的区别
     进程:
      1. 资源分配单位
      2. 独立地址空间
      3. 创建/销毁开销大
      4. 通信复杂(IPC)
    - 线程:
      1. CPU调度单位
      2. 共享进程资源
      3. 创建/销毁开销小
      4. 通信简单(共享变量)
    - 主要区别:
      1. 资源占用(多 vs 少)
      2. 切换开销(大 vs 小)
      3. 安全性(高 vs 低)
      4. 独立性(高 vs 低)
15、推理框架中如何使用cuda的构建算子的。
16、终端文件浏览器中如何使用ffmpeg进行图片解码的
17、知不知道github上有一个终端的框架。
18、知道gdb中调试时产生的cored文件。
  - 是程序崩溃时生成的内存转储文件
  - 包含了程序崩溃时的内存状态、寄存器值、堆栈信息等
  - 文件名通常为core或core.<pid>
19、如何进行算子上的性能的测试的。
20、一些关于公司业务的问题,实习的位置、时间。
21、关于比赛的一些好处
22、C++中程序的内存的分布
     - 五大内存分区:
      1. 栈区:局部变量、函数参数(自动管理)
      2. 堆区:动态分配内存(手动管理)
      3. 全局/静态区:全局/静态变量
      4. 常量区:字符串常量等(只读)
      5. 代码区:程序指令(只读)
    - 内存布局特点:
      1. 栈向低地址增长,堆向高地址增长
      2. 全局/静态变量在程序启动时初始化
      3. 常量区和代码区为只读区域
23、C++中可以将内联函数设置为虚函数吗
    - 语法上可以,但实际不会内联
    - 原因:
      1. 虚函数需要运行时动态绑定
      2. 内联需要在编译期确定具体实现
    - 结果:
      1. 编译器会忽略inline关键字
      2. 仍通过虚函数表调用
    - 建议:
      1. 避免这种写法(没有优化效果)
      2. 只有final类的虚函数可能被内联
24、Linux使用的是什么发行版
25、笔记本的显卡配置
#面试问题记录##牛客创作赏金赛#
全部评论
佬,膜,投的是提前批吗?
点赞 回复 分享
发布于 07-04 10:44 北京

相关推荐

07-03 15:36
已编辑
门头沟学院 Java
鼠鼠自从进了百度那会,发现一天不如一天,刚进百度得前几天,每天早上珠穆朗玛峰都会变成第二高峰,看到穿着漂亮得集美也会多看几眼,可是过了两个月后,发现他软塌塌得,每天都是,无时无刻,见到鼠鼠最喜欢得jk妹妹也不想多看几眼,原因是啥呢,在北京压力有点大,无论是生活,还是工作,在一想和女朋友得未来&nbsp;,鼠鼠晚上都会睡不着,压力太大,鼠鼠不得不飞一下,释放压力,日复一日,每月都满勤,当时已经飞到对女人没有啥感觉了,在加上每天晚上很晚才睡,鼠鼠不抽烟,所有就喝一喝小啤酒&nbsp;和吃小美食来释放压力,和朋友去撸串喝酒,放假在家吃饭也要来两瓶,导致我在北京那段时间胖了30+。从百度离职后准备不颓废,戒了,买了一些补品去吃,每天去跑步,发现睡觉也能睡得很好了。每天都很有精神,但是最近秋招快开始了,鼠鼠才暑期实习开始,同组得实习生比我早来半个月一个月,鼠鼠好害怕这边转正失败加上秋招0offer,可能女朋友也会跟别人跑了,鼠鼠这几天emo都很晚才睡,也飞了好多,发现自己有点回到百度的那种颓废了,百度的时候还认识好几个朋友可以每天说说话,鼠鼠在西安,跟同组4个实习生不做在一起,自己一个人在工位上工作,每天也没有说话的人,最近刚认识几个朋友,说说话,喝喝小啤酒,发现自己每一天活在自我压力中,想要摆脱内耗,怕自己越来越颓废,想吃点放松放松,鼠鼠女友会嫌弃我太胖了,学院仔的我好苦
ResourceUt...:樯橹灰飞烟灭
投递百度等公司8个岗位
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务