主要观点:GPU 之间的通信方式至关重要,关系到工作负载的快慢,需理解 GPU 内部及多个 GPU 之间的通信。
关键信息:
- GPU 有数千个小核心,擅长并行处理数据;CPU 核心少但每个更强更通用,负责顺序工作等。
- 多个 GPU 组成节点和集群,用于高性能计算。
- GPU 内部工作结构包括线程、warp、流多处理器(SM)等,数据需通过互连(如 PCIe、NVLink)传输。
- 通信重要性在于应对不断增大的 AI 等工作负载,系统需高效数据移动,否则无实际增益。
- GPU 内部数据可在不同内存层次移动,从快到慢依次为寄存器、warp 洗牌、共享内存、全局内存。
- 多个 GPU 协作时,有主机介导通信、点对点通信、NVLink、统一虚拟寻址等四种数据传输方式。
重要细节: - 曾有八块顶级 GPU 因依赖慢主机介导传输而运行缓慢,改用 NVLink 后训练时间大幅下降。
- 寄存器私有,warp 内线程可直接交换数据,共享内存需小心同步,全局内存容量大但延迟高。
- 主机介导通信简单但慢,涉及 CPU 增加开销;点对点通信需硬件支持,NVLink 高速低延迟但仅 NVIDIA 支持,统一虚拟寻址方便但不保证性能。
- 单个 GPU 内优先用寄存器和 warp 洗牌,共享内存需同步,全局内存为最后选择;多个 GPU 间 NVLink 最佳,点对点次之,主机介导为 fallback。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。