📘 RDMA · 原子操作 & MPI
30章 完整目录
🎯 风格 · 轻快明亮
01
RDMA概述
技术背景
传统网络对比
核心优势
应用场景
02
RDMA硬件基础
InfiniBand vs RoCEv2
RNIC
GID/LID
QP/CQ
03
RDMA软件栈
libibverbs
rdma-core
内核/用户态
上下文创建
04
PD & MR
保护域
ibv_reg_mr
内存权限
内存锁定
05
QP状态机
RC/UC/UD
状态转换
ibv_modify_qp
配置坑
06
CQ与事件处理
ibv_poll_cq
WC结构
轮询 vs 中断
高并发优化
07
Send/Recv操作
工作流程
WR/SGE
ibv_post_send
同步/异步
08
RDMA Read/Write
远程直接访问
opcode设置
RKey传递
性能对比
09
原子操作基础
概念与动机
Fetch-and-Add
Compare-and-Swap
分布式锁
10
原子操作API详解
ibv_atomic_cmp_swp
ibv_atomic_fetch_add
内存对齐
踩坑经验
11
原子操作与消息传递协同
混合使用
消息队列头指针
保证有序性
实践
12
连接管理
CM API vs 手动
ibv_connect_qp
超时重试
负载均衡
13
UD不可靠数据报
特点与场景
GRH处理
多播通信
Allreduce应用
14
SRQ共享接收队列
概念与优势
创建配置
性能对比
内存受限经验
15
内存窗口 (MW)
Type 1/2/3
绑定与释放
动态权限
与MR配合
16
多线程与RDMA
QP线程安全
锁机制
独立QP模式
常见bug
17
性能调优基础
带宽/延迟测量
PCIe影响
NUMA亲和性
CPU绑定
18
高级性能调优
WR批处理
内联数据
零拷贝接收
页面大小
19
拥塞控制
DCQCN
ECN/CNP
参数调优
PFC死锁
20
错误处理与调试
QP错误状态
ibv_async_event
错误码解析
调试工具
21
RDMA与GPU通信
GPUDirect RDMA
cudaIpcGetMemHandle
数据路径
AI训练应用
22
分布式锁实现
原子操作设计
获取/释放
超时死锁
高性能锁库
23
MPI over RDMA
MPI与RDMA映射
Send/Recv实现
Allreduce优化
OpenMPI vs MVAPICH
24
键值存储系统
RDMA KV架构
Get/Put原子化
哈希表配合
Redis over RDMA
25
分布式事务
2PC RDMA实现
原子操作事务日志
回滚恢复
延迟对比
26
安全与隔离
PD隔离
内存窗口访问控制
QP信任模型
安全最佳实践
27
多路径与故障转移
MP-RDMA
主备QP切换
链路故障检测
故障演练
28
RDMA与容器化
SR-IOV/VF
设备直通
Kubernetes集成
网络策略
29
性能基准测试
perftest工具
微基准测试
结果分析
性能报告模板
30
未来趋势与总结
NVMe over Fabrics
CXL融合
智能网卡/DPU
学习路径