如何快速上手openEuler/sra_test?3分钟完成编译与首次测试的完整指南

📅 2026/7/8 7:36:08
如何快速上手openEuler/sra_test?3分钟完成编译与首次测试的完整指南
如何快速上手openEuler/sra_test3分钟完成编译与首次测试的完整指南【免费下载链接】sra_testFor testing the Kunpeng SRA feature项目地址: https://gitcode.com/openeuler/sra_test前往项目官网免费下载https://ar.openeuler.org/ar/想要快速测试鲲鹏SRA特性的召回算法性能openEuler/sra_test项目为您提供了终极解决方案这是一个专门用于测试鲲鹏SRA特性的统一测试框架支持Faiss、hnswlib、KBest等多种常见召回算法。本文将为您提供简单快速的3分钟上手指南让您轻松完成编译与首次测试。什么是openEuler/sra_testopenEuler/sra_test是一个专为测试鲲鹏SRA特性设计的统一测试框架。它支持多种主流召回算法包括FaissHNSW、IVFPQ、IVFPQFS、PQFS、IVFFLAT、hnswlib和KBest。该框架不仅支持单查询并发测试还支持批量测试模式让您可以灵活调整算法参数和运行参数如线程数、NUMA节点数等。快速开始3分钟完成编译与测试第一步获取项目代码首先克隆项目仓库到本地git clone https://gitcode.com/openeuler/sra_test.git cd sra_test第二步编译可执行文件项目提供了多种编译选项您可以根据需要选择对应的算法进行编译# 编译Faiss算法 make hnsw_test # HNSW算法 make ivfpq_test # IVFPQ算法 make ivfflat_test # IVFFLAT算法 # 编译hnswlib算法 make hnswlib_test # 编译KBest算法 make kbest_test # 高级编译选项 make xxx_test_nopin # 不进行线程绑核 make xxx_test_split # query平均分配首次编译时系统会提示您输入对应算法的动态库路径和头文件路径。这些信息会自动保存在build文件夹中后续编译无需重复输入。第三步准备测试数据集创建数据目录并下载测试数据集mkdir data cd data wget http://ann-benchmarks.com/glove-100-angular.hdf5 --no-check-certificate wget http://ann-benchmarks.com/sift-128-euclidean.hdf5 --no-check-certificate wget http://ann-benchmarks.com/deep-image-96-angular.hdf5 --no-check-certificate项目支持多种数据集您可以根据需要选择下载。第四步配置测试参数配置文件位于configs目录下按算法和数据集分类。例如HNSW算法的SIFT数据集配置文件在configs/hnsw/hnsw_sift-128-euclidean.config中# Faiss HNSW 配置 k_f 16 efs 120 efc 500 metric L2 nloop 5 num_threads 32 top_k 10 batch_mode false batch_size 100 save_or_load save index_path indexes/hnsw/sift.faiss您可以根据测试需求调整这些参数。第五步运行首次测试最简单的测试方式是使用提供的测试脚本# 测试HNSW算法 sh test.sh hnsw # 测试IVFPQ算法 sh test.sh ivfpq或者直接运行编译好的可执行文件./hnsw_test hnsw sift高级功能多NUMA测试对于支持多NUMA的系统您可以使用多NUMA测试脚本# 测试HNSW算法在sift数据集上使用NUMA节点0-1 sh test_muti-numas.sh hnsw sift 0-1NUMA输入支持连字符和逗号分隔如0-1,3表示使用NUMA节点0、1和3。项目结构详解为了更好地理解项目让我们看看主要目录结构configs/: 包含所有算法的配置文件按算法类型和数据集分类src/: 源代码目录包含核心算法实现include/: 头文件目录定义算法接口和数据结构scripts/: 构建脚本目录包含scripts/build.sh等indexes/: 索引文件存储目录常见问题解答Q: 编译时提示找不到库文件怎么办A: 首次编译时会提示输入库路径请确保已安装对应算法的开发库。例如Faiss需要先安装libfaiss-dev或从源码编译。Q: 如何测试不同的数据集A: 在configs目录中找到对应数据集的配置文件修改参数后重新运行测试即可。Q: 支持哪些算法变体A: 项目支持多种算法变体包括FP16精度的HNSWhnsw_fp16、IVFPQFS等具体可通过查看Makefile了解所有支持的目标。性能优化建议线程配置: 根据CPU核心数调整num_threads参数内存绑定: 使用NUMA绑定提升内存访问性能批量模式: 对于大规模测试启用batch_mode可以提升吞吐量索引复用: 设置save_or_load load可以复用已构建的索引节省构建时间结语openEuler/sra_test为鲲鹏SRA特性的算法测试提供了完整、易用的解决方案。通过本文的3分钟指南您已经掌握了从编译到首次测试的完整流程。无论是算法研究者还是系统优化工程师都可以利用这个框架快速验证和比较不同召回算法的性能表现。项目采用Apache 2.0许可证支持代码修改和再开源。如果您在使用过程中遇到任何问题或有改进建议欢迎参与项目贡献记住实践是最好的学习方式现在就动手尝试一下吧祝您测试顺利【免费下载链接】sra_testFor testing the Kunpeng SRA feature项目地址: https://gitcode.com/openeuler/sra_test创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考