openeuler/sra_test核心功能全解析:从单query并发到多NUMA配置的性能测试秘籍
openeuler/sra_test核心功能全解析:从单query并发到多NUMA配置的性能测试秘籍
【免费下载链接】sra_testFor testing the Kunpeng SRA feature项目地址: https://gitcode.com/openeuler/sra_test
前往项目官网免费下载:https://ar.openeuler.org/ar/
openeuler/sra_test是一款专为鲲鹏SRA特性打造的统一测试框架,支持多种召回算法(如Faiss、hnswlib、KBest等)的性能评估,可灵活配置单query并发、批量测试及多NUMA节点参数,帮助开发者全面验证算法在不同场景下的表现。
🌟 核心功能概览:一站式算法测试解决方案
sra_test框架提供三大核心能力,满足从基础功能验证到复杂性能调优的全流程需求:
1. 多算法支持:覆盖主流召回技术
框架已集成多种业界常用的近似最近邻搜索算法,包括:
- Faiss系列:HNSW、IVFPQ、IVFPQFS、PQFS、IVFFLAT
- hnswlib:高效图索引实现
- KBest:基于聚类的快速检索算法
所有算法配置文件集中存放于configs目录,按算法类型与精度(如FP16)分类,例如:
- HNSW算法配置:
configs/hnsw/hnsw_sift-128-euclidean.config - FP16精度配置:
configs/hnsw_fp16/hnsw_fp16_deep-image-96-angular.config
2. 灵活测试模式:单query并发与批量验证
框架支持两种测试模式,适配不同场景需求:
- 单query并发测试:模拟高并发查询场景,可通过调整线程数参数评估算法吞吐量
- 批量测试:支持大规模数据批量检索,验证算法在海量数据下的稳定性
测试入口代码位于src/bench/目录,核心文件包括:
main_same_nq.cpp:固定查询数量的性能测试main_split_nqk.cpp:分拆查询与召回数量的场景测试
3. 多NUMA配置:优化鲲鹏架构性能
针对鲲鹏处理器的NUMA(非统一内存访问)架构,框架提供精细化的节点配置能力:
- 通过
test_muti-numas.sh脚本指定NUMA节点,格式支持范围(如0-1)与列表(如0,2,3) - 结合
numactl工具实现内存与CPU资源的亲和性绑定,充分发挥硬件性能
🚀 快速上手:从环境搭建到首次测试
1. 环境准备:三步完成框架部署
# 克隆代码仓库 git clone https://gitcode.com/openeuler/sra_test # 进入项目目录 cd sra_test # 编译项目(依赖Makefile自动构建) make2. 配置文件修改:定制测试参数
根据测试目标修改对应算法的配置文件,关键参数包括:
- 数据集路径(如SIFT、GIST等公开数据集)
- 召回数量(k值)
- 线程数与NUMA节点分配
- 算法特定参数(如HNSW的M值、IVFPQ的聚类中心数)
3. 执行测试:单场景与多NUMA示例
单场景测试:
# 使用默认配置运行HNSW算法测试 ./test.sh --config configs/hnsw/hnsw_sift-128-euclidean.config多NUMA测试:
# 在NUMA节点0-1上运行KBest算法测试 ./test_muti-numas.sh --numa 0-1 --config configs/kbest/kbest_sift-128-euclidean.config📊 测试结果解析:关键指标与工具
测试完成后,结果数据通过get_result.py脚本进行解析,生成包括:
- 召回率(Recall@k)
- 查询延迟(Latency)
- 吞吐量(QPS)
核心结果处理代码位于src/core/test_result.cpp,支持自定义指标扩展与数据导出。
📄 许可证与开源支持
sra_test采用Apache 2.0许可证,允许自由修改与二次分发。项目持续维护中,欢迎通过提交Issue或PR参与贡献。算法实现源码位于src/algo/目录,例如:
- Faiss HNSW实现:
src/algo/faiss/faiss_hnsw_index.cpp - hnswlib索引封装:
src/algo/hnswlib/hnswlib_index.cpp
通过本文介绍,您已掌握sra_test框架的核心功能与使用方法。无论是算法性能对比、硬件架构优化,还是大规模数据测试,sra_test都能提供稳定可靠的支持,助力鲲鹏平台上的高效召回算法研发。
【免费下载链接】sra_testFor testing the Kunpeng SRA feature项目地址: https://gitcode.com/openeuler/sra_test
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
