阿里巴巴 云 AI Infra 实习 二面 (1)
Q: 推理/训练中遇到显存异常和长稳问题如何排查?
排查思路:
- 拉日志对照计算图逐条定位链路。
- 检查图优化后的数据流——shape tensor是否被错误处理(如host tensor被当作device tensor传递)。
- 定位是否有host/device内存语义混乱(读取到错误地址导致维度异常)。
修复方式:在图优化链路中显式约束shape信息的内存路径(确保host memory),避免优化pass将shape tensor错误地放到device memory上。
Q: 算子性能优化的工程思路是什么?
以一个加法类算子为例,核心不在算子本身复杂度,而在工程角度:
- Buffer复用:检查输入buffer的生命周期和依赖关系,若无其他依赖可直接复用输入作为输出buffer,省去malloc/free。
- 减少内存管理开销:省去额外内存分配和管理的时间。
- 优化效果例:21us → 12us(43%提升),极限约6-7us(受shape规整程度和调度开销影响)。
Q: AWQ量化(W4A16)的实现细节?
实现要点:
- 权重量化为INT4,激活保持FP16。
- Linear层需改造:存储INT4权重+scale+zero_point。
- 执行时反量化INT4→FP16后做矩阵乘。
- 访存优化:向量化加载(一次读多个INT4权重打包的int32),减少内存事务。
- 正确性验证:与非量化版本对比,确认精度在可接受范围(perplexity增加<0.5)。
Q: 多卡协同和卡间通信的技术栈?
- NVLink:机内GPU间高带宽互联(如NVLink 4.0 900GB/s双向),适合TP等通信密集场景。
- NVSwitch:全互联交换机,任意GPU间等带宽通信。
- RDMA/InfiniBand:机间高速网络(400Gbps+),绕过CPU直接访问远端内存。
- NCCL:NVIDIA集合通信库,自动选择最优通信路径。
- 层次化设计:机内NVLink做TP(频繁通信),机间IB做DP/PP(通信量少)。
Q: 算子融合和图优化有哪些工作?
算子融合:将连续的memory-bound算子合并为一个kernel(如bias+activation+residual add),减少中间结果的全局内存读写。GEMM epilogue融合后处理操作。
图优化:常量折叠、死代码消除、布局转换、内存规划(buffer复用/生命周期分析)、子图替换(pattern matching将低效子图替换为高效实现)。
Q: 如何看待用AI Agent辅助Infra开发?
Agent可以辅助:代码审查(发现常见错误模式)、性能优化建议(根据profile结果推荐优化策略)、Boilerplate代码生成(如CUDA kernel模板)、问题排查(分析日志定位异常)。但核心架构决策、极致性能优化、底层微架构利用仍需人类专家。Agent更适合提效而非替代。