测验:输入输出与总线
每秒收到数十万个数据包的网卡如果只使用中断,会出现什么问题?
- 数据包顺序被打乱,应用必须重新排序
- DMA 被禁用,CPU 必须亲自复制数据
- 中断处理开销不断累积,系统无法完成有用工作
- 跳过校验和验证,损坏的数据包会直接上交
使用 DMA 的主要原因是什么?
- 自动纠正传输错误
- 让 CPU 在数据传输期间可以处理其他工作
- 提高设备本身的带宽
- 彻底消除中断
驱动代码在 while 循环中不断读取设备状态寄存器。从性能角度看,哪项评价最准确?
- 它属于内存访问,会进入缓存,所以第二次起成本很低
- 编译器会自动删除该循环
- MMIO 读取不会被缓存,每次都要往返总线,因此该循环是在反复执行 I/O 往返
- 每次循环都会产生一次中断
把 GPU 安装在 x4 插槽而不是 x16 插槽中,预计会出现什么现象?
- GPU 本身的运算性能降为四分之一
- GPU 显存容量减少
- 主机与 GPU 之间的数据传输带宽下降,传输成为瓶颈
- 没有任何差异
多 GPU 训练为什么使用 NVLink 等专用互连?
- PCIe 完全不支持 GPU 间直接通信
- NVLink 会把多个 GPU 的显存合并为一个
- 卡间交换的数据量很大,PCIe 带宽会成为瓶颈
- PCIe 供电不足
什么情况下轮询比中断更合适?
- 设备只在极少且不可预测的时刻发送数据
- 对延迟极度敏感,而且数据几乎持续到达
- CPU 只有一个核心
- 设备不支持 DMA