JI
jinbooooom/ai-infra-hpc
hpc 教程,包含集合通信(mpi、nccl)、cuda 编程、向量化 SIMD、RDMA 通信等
AI-Infra HPC 学习与总结
本仓库用于记录 AI-Infra 与 HPC 技术:
- AI System 的底层技术
- 集群多机多卡互联技术
- 并行计算与高性能计算
- 训练与推理
文件夹说明
各文件夹的内容如下:
├── 01 chip # 芯片硬件
├── 02 hpc # 高性能计算
│ ├── 01 openmp
│ ├── 02 simd
│ └── 05 cuda # GPU 编程
├── 03 link # 多机多卡互联底层通信
│ ├── 01 noc # 片上网络
│ ├── 02 pcie # PCI-Express(peripheral component interconnect express)
│ ├── 03 topo # 多机多卡互联以及拓扑相关
│ ├── 05 gpuDirect # GPU 与 Host、GPU、IB 网卡、NVMe SSD 的底层通信
│ └── 08 infiniband # IB 网卡与 RDMA 通信
├── 04 storage # 存储
├── 05 ccl # 集合通信
│ ├── mpi # MPI 的使用与教程
│ └── nccl # NCCL 的使用、设计
├── 06 trainAndInfer # 训练与推理
├── 99 industryReport # 行业前沿报告CUDA 总结
- CUDA 编程
- 1.CUDA中的异构并行计算
- 2.CUDA 编程模型
- 3.CUDA 执行模型
- 4.内存布局
- 5.共享内存与常量内存
- 6.流和并发
- 其它
- GPU中的内存架构是什么?
- GPU与CPU的同步与内存屏障机制
- Nsight性能分析
- 无图形界面时的性能分析
- CUDA-GDB 调试
- 编译
- 启动调试器
- 基本调试命令
- CUDA 特定命令
- 高级技巧
- 调试场景示例
互联总结
GPUDirect 总结
- GPUDirect
- 设备侧ARM发起RDMA通信
- GDRCopy
- NVSHMEM
- 参考
- 【研究综述】浅谈GPU通信和PCIe P2P DMA
- GPU内存管理
- GPUDirect 技术的演进
- GPUDirect 技术的实现细节(三个关键问题)(核心章节)
- 总结 GPUDirect 技术的实现细节
RDMA 总结
- RDMA 原理
- 基本概念
- DPDK和RDMA的区别
- RDMA的编程模型更贴近硬件的实现
- DoorBell
- 拥塞控制
- SEND & RECV
- WRITE 和 READ
- 立即数的传输方式
- 连接
- 内存注册
- Protection Domain
- Address Handle
- QPC
- CQ & CQC
- 用户态与内核态的交互
- MW(memory windows)
- RDMA 性能优化
- 带宽问题分析
- 降低RDMA延迟波动的方法
- RDMA 链式工作请求与门铃机制分析
- ibv_send_flags
- qp_init_attr.sq_sig_all的作用
- 如果sq_sig_all=0,每隔 N 个请求设置一次IBV_SEND_SIGNALED,发送队列的头尾指针更新过程
- 直接传输网卡设备内存上的数据
- RDMA 环境
- RDMA 环境部署
- 常用命令
- 错误处理
NCCL 总结
- 算法
- 算法原理与实现
- 算法耗时总结
- NCCL源码分析
- UniqueId的创建
- bootstrap网络连接的建立
- 机器内拓扑分析
- 建图过程
- 路径计算
- channel 搜索
- 机器间channel连接
- 数据通信链路transport的建立
- 单机内ncclSend和ncclRecv的过程
- 多机间ncclSend和ncclRecv的过程
- double binary tree
- NCCL Protocol
- 千卡训练经验
- 其它命令
- 查看拓扑
训练与推理总结
On this page
Languages
Cuda78.9%C9.9%C++6.1%Makefile2.8%Python1.3%Shell0.7%CMake0.3%
Contributors
MIT License
Created July 23, 2024
Updated March 9, 2026