# amdtest **Repository Path**: yangecool/amdtest ## Basic Information - **Project Name**: amdtest - **Description**: testamdcard - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-16 - **Last Updated**: 2026-07-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AMD Radeon AI PRO R9600D 基准测试套件 > 16×R9600D | gfx1201 (RDNA4) | ROCm 7.2.4 | PCIe Gen5 ## 目录结构 ``` amdtest/ ├── scripts/ # 主测试脚本 │ ├── gpu_benchmark_unified.sh # 统一基准: GEMM 峰值 + RCCL + 带宽 │ └── hw_monitor.sh # GPU 频率/PCIe 链路监控 (仅记录变化 + 异常存dmesg) ├── diag/ # 精度诊断脚本 (定位 GEMM 偏低根因) │ ├── fp8_diag.sh # FP8 布局×epilogue×尺寸 诊断 │ ├── FP16_diag.sh # FP16/BF16 布局×Dtype路线 诊断 │ └── INT8_diag.sh # INT8 布局×Dtype路线×API 诊断 ├── py/ # Python 工具 │ ├── pytorch_bench.py # PyTorch GEMM 峰值验证 (对标 hipblaslt-bench) │ ├── gpu_monitor.py # GPU 状态监控 (rocm-smi 采样, 脱落/dmesg) │ ├── topo_detect_r9600d.py # 16 卡 PCIe 拓扑检测 │ └── verify_tunableop.py # TunableOp 行为验证 ├── docs/ # 文档 │ ├── BENCHMARK_REPORT.md # 测试报告 (实测数据 + 根因分析) │ ├── CHECKLIST.md # 检查清单 + 预期结果矩阵 │ ├── AMD_REVIEW_REQUEST.md # 待 AMD 确认事项 (稀疏/INT4/标称差距) │ ├── SCRIPT_APPENDIX.md # 脚本设计决策 + 源码核查记录 │ ├── SPARSE_INT4_PYTORCH.md # 稀疏/INT4 在 PyTorch 上的可行性核查 │ ├── COMM_BENCHMARK_DESIGN.md # 通信测试设计 (对齐汇报表格 + topo) │ └── P2P_ASYMMETRY_ANALYSIS.md # P2P 单向带宽矩阵方向不对称分析 └── README.md # 本文件 ``` ## 快速开始 ```bash # 完整测试 (GEMM + RCCL 4区块通信 + P2P带宽) bash scripts/gpu_benchmark_unified.sh # 仅 GEMM 峰值 (all 全解遍历, 取 Winner 块最优, ~2min) bash scripts/gpu_benchmark_unified.sh gemm # 仅 RCCL (两两矩阵 ②③ + 4/8/16 三级卡间通信 ④) bash scripts/gpu_benchmark_unified.sh rccl # 仅带宽 (P2P 16×16 矩阵 ①) bash scripts/gpu_benchmark_unified.sh bw # 精度诊断 (16 GPU 并行, ~3min/个) bash diag/fp8_diag.sh bash diag/FP16_diag.sh bash diag/INT8_diag.sh # PyTorch 对照验证 python3 py/pytorch_bench.py --both --gpus 0-15 # GPU 频率/PCIe 监控 (测试时后台跑, 变化记录+异常存dmesg) bash scripts/hw_monitor.sh # 默认 5s 间隔, 日志写 hwlog/ bash scripts/hw_monitor.sh 2 # 2s 间隔 ``` ## 核心结论 (2026-06-23) 三个 diag 锁定 GEMM 偏低根因为 **transA/transB 布局**: - hipblaslt-bench 默认 N/N → 命中小 tile kernel (MT32×32/MT64×16) - 改 T/N → 命中 MT128×128 大 tile, 性能提升 3~4 倍 (FP8/INT8) 或 10% (FP16/BF16) unified 脚本已全部加 `--transA T --transB N`, 四精度实测 (`r9600d_bench_20260623_141329`, all 模式取 Winner): | 精度 | K=2048 | K=3072 | K=4096 | 峰值 | 标称 | 效率 | |---|---|---|---|---|---|---| | FP16M | 83.5 | **87.4** | 81.3 | 87.4 TF | 99 TF | 88% | | BF16 | 82.5 | **88.4** | 85.2 | 88.4 TF | 99 TF | 89% | | FP8 | 142.1 | **163.4** | 159.2 | 163.4 TF | 199 TF | 82% | | INT8 | 139.4 | 159.3 | **163.2** | 163.2 TOPS | 199 TOPS | 82% | > FP16M/BF16/FP8 峰值尺寸 K=3072, INT8 峰值尺寸 K=4096。各精度取三尺寸 max 对标称。 详见 `docs/BENCHMARK_REPORT.md`。