已解析题目
C/C++ 工程师相关题目
把 FP16 权重量化为 INT8 并保留 FP32 scale 时,scale factor 如何计算,为什么常用绝对值最大值定标?
这题考权重量化的基础闭环:从 FP16 到 signed INT8 的映射、scale 的计算、absmax 定标的原因、反量化误差,以及 per-tensor/per-channel 和 outlier 取舍。
手写 CUDA vector add kernel 时,为什么需要边界判断,为什么通常不用 shared memory,block size 和 warp 有什么关系?
这题考 CUDA 入门 kernel 的工程基本功:线程索引、越界保护、全局内存合并访问、shared memory 是否有复用收益、block size 与 warp/occupancy 的关系。
手写 CUDA All-Reduce/归约 kernel 时,如何设计线程内与 block 内归约,并说明 block 间同步和跨 GPU AllReduce 通常为什么需要多 kernel、cooperative groups 或 NCCL?
这题要先澄清 All-Reduce 在面试手写题里的边界:单 GPU 内通常先写归约 kernel,再解释 block 间同步为什么不能靠普通 __syncthreads 解决;真正跨 GPU AllReduce 属于通信 collective,通常交给 NCCL 或多阶段通信算法。
FlashAttention 为什么更适合 Prefill,Decode 阶段的瓶颈是什么,Flash Decoding 如何优化?
这题考 GPU 推理性能分析能力。好的回答要区分 Prefill 和 Decode 的计算形态:Prefill 是长 query 的大矩阵注意力,FlashAttention 能提高 IO 效率和并行度;Decode 是单 token 迭代生成,瓶颈常在 KV cache 读取、显存带宽和 SM 利用率,Flash Decoding 通过切分 KV 序列提升并行读取和长上下文吞吐。