Genesis 性能基准测试报告¶
欢迎访问 Genesis 框架性能基准测试报告。此目录包含 Genesis 与 PyTorch 的全面性能对比分析。
关于 Genesis 基准测试¶
Genesis 基准测试提供详细的性能分析,帮助用户了解: - 操作级性能:单个操作与 PyTorch 的比较 - 端到端模型性能:包含内存使用的完整模型基准测试 - 优化机会:详细的性能改进建议
基准测试类别¶
📊 操作基准测试¶
单个操作和操作类别的详细性能分析: - 逐元素操作:加法、减法、乘法、除法等 - 激活函数:ReLU、sigmoid、tanh 等 - 归约操作:求和、平均、最大值等 - 矩阵操作:矩阵乘法 - 内存操作:转置、重塑等
🤖 模型基准测试¶
完整模型的端到端性能分析: - Qwen 语言模型:前向/反向传播时间和内存分析 - 可扩展性测试:不同批量大小和序列长度的性能表现
性能指标¶
我们使用标准化的性能评分系统:
- 🟢 优秀 (≥90%):Genesis 性能达到 PyTorch 的 90% 或更高
- 🟡 良好 (70-90%):可接受的性能差距
- 🟠 一般 (50-70%):明显的性能差距,建议优化
- 🔴 较差 (20-50%):需要重大优化
- ❌ 严重 (<20%):存在需要关注的重大性能问题
如何运行基准测试¶
快速开始¶
特定基准测试¶
操作基准测试¶
# 测试所有操作(全面)
python bench_ops.py
# 测试特定操作类别
python bench_ops.py --category element
# 测试特定操作
python bench_ops.py --op add
# 快速模式(减少迭代次数)
python bench_ops.py --fast
模型基准测试¶
# 测试 Qwen 模型(如果可用)
python bench_qwen.py --size 0.5B --batch-size 1,2,4 --seq-len 128,256,512
# 快速测试
python bench_qwen.py --size 0.5B --batch-size 1,2 --seq-len 128,256 --fast
理解报告¶
操作报告¶
每个操作基准测试报告包括: - 系统信息:GPU 详情和理论性能限制 - 性能摘要:总体统计和成功率 - 类别细分:按操作类型的性能表现 - 详细结果:包含加速比和带宽的单个操作结果 - 最佳表现:性能最好和最差的操作 - 优化建议:具体的改进建议
模型报告¶
模型基准测试报告提供: - 模型配置:模型大小、测试的批量大小、序列长度 - 性能摘要:总体加速比和内存效率 - 操作分析:按模型操作的性能细分 - 可扩展性分析:不同输入大小的性能表现 - 内存分析:内存使用模式和效率 - 优化优先级:集中的改进建议
基准测试基础设施¶
可靠性功能¶
- 统计异常值检测:稳健的时间测量
- 自适应迭代:自动调整迭代次数
- 内存带宽分析:理论性能比较
- 错误处理:优雅处理失败的操作
计时模式¶
- 实际计时:包含所有开销(真实用户体验)
- 纯计时:最小化开销(峰值计算性能)
开始使用¶
- 安装依赖:确保正确安装 Genesis、PyTorch 和 CUDA
- 运行快速测试:
cd benchmark && python bench_ops.py --fast
- 生成报告:
./run.sh
运行所有基准测试并生成文档 - 查看结果:检查此目录中生成的报告
持续改进¶
这些基准测试旨在: - 跟踪 Genesis 性能改进的进展 - 识别优化机会 - 验证新功能和优化 - 提供性能特征的透明度
注意:要生成最新的基准测试报告,请从 benchmark 目录运行 ./run.sh
。这将创建带有最新性能数据的时间戳报告。
有关基准测试实现的技术细节,请参见 benchmark/
目录中的源代码。