TTK开发者指南:如何贡献代码和扩展功能的10个实用技巧 TTK开发者指南如何贡献代码和扩展功能的10个实用技巧【免费下载链接】ops-test-kitTTKOps Test Tool Kit是CANN算子库提供的全链路、自动化、批量化算子测试框架帮助开发者快速完成算子批量功能验证、性能评估以及Golden值比对提升算子开发质量和效率。项目地址: https://gitcode.com/cann/ops-test-kitTTKOps Test Tool Kit是CANN算子库提供的全链路、自动化、批量化算子测试框架帮助开发者快速完成算子批量功能验证、性能评估以及Golden值比对。作为昇腾AI计算平台的算子测试工具TTK不仅提供了强大的测试能力还设计了完善的扩展机制让开发者能够轻松贡献代码和自定义功能。本文将为您详细介绍如何参与TTK开源项目贡献以及如何扩展测试功能的完整教程。 TTK项目架构概览在开始贡献之前了解TTK的整体架构至关重要。TTK采用模块化设计主要分为以下几个核心模块模块名称功能描述主要文件路径CLI模块命令行接口支持Kernel、ACLNN、E2E三种测试模式ttk/cli/核心测试模块包含算子测试、精度比对、运行时管理等核心功能ttk/core_modules/用户自定义模块支持插件扩展包括Golden函数和输入生成函数ttk/user_defined_modules/工具函数模块提供各种工具类和辅助函数ttk/utilities/ 准备工作环境配置与代码获取1. 环境要求检查Python 3.8及以上版本CANN环境昇腾计算架构Git版本控制工具2. 获取源代码git clone https://gitcode.com/cann/ops-test-kit.git cd ops-test-kit pip install -r requirements.txt3. 项目结构熟悉建议先阅读官方文档了解项目的基本使用用例生成.md - 学习如何编写CSV测试用例任务执行.md - 了解测试执行流程结果分析.md - 掌握结果分析方法 代码贡献流程详解第一步发现问题或改进点在贡献代码前首先需要确定要解决的问题。可以通过以下途径查看现有Issues列表使用过程中发现的功能缺陷性能优化需求文档完善建议第二步Fork项目并创建分支# Fork项目到个人账户 # 克隆个人fork的仓库 git clone https://gitcode.com/your-username/ops-test-kit.git cd ops-test-kit # 创建功能分支 git checkout -b feature/your-feature-name第三步代码开发与测试开发时请遵循以下规范代码风格符合PEP 8规范添加必要的单元测试更新相关文档确保向后兼容性第四步提交Pull Request完成开发后提交清晰的PR描述包括问题描述解决方案测试结果相关文档更新️ 功能扩展实战教程1. 自定义Golden生成函数Golden生成函数用于生成测试的期望结果。TTK支持通过插件系统扩展自定义Golden函数。创建Golden函数步骤在user_defined_modules/op/golden_funcs/目录下创建Python文件使用装饰器注册函数实现Golden生成逻辑示例代码片段# user_defined_modules/op/golden_funcs/custom_golden.py from ttk.user_defined_modules.op.golden_funcs import register_golden register_golden([custom_op]) def generate_custom_golden(inputs, attributes): 自定义算子Golden生成函数 # 实现Golden生成逻辑 return expected_output2. 自定义输入数据生成函数输入数据生成函数控制测试用例的输入数据生成方式。创建输入函数步骤在user_defined_modules/op/input_funcs/目录下创建Python文件使用装饰器注册函数实现输入数据生成逻辑3. 扩展新的精度比对方法TTK内置了多种精度比对方法您也可以扩展自定义比对方法现有比对方法路径ttk/core_modules/comparison/is_close.py - 数值近似比对ttk/core_modules/comparison/cosine_similarity.py - 余弦相似度比对ttk/core_modules/comparison/binary_equal.py - 二进制精确比对扩展新比对方法在comparison模块中创建新文件实现比对逻辑在registry.py中注册新的比对方法 测试用例贡献指南CSV用例格式规范TTK使用CSV文件定义测试用例贡献测试用例需要遵循以下格式字段名描述示例testcase_name测试用例名称add_01op_name算子名称addinput_shapes输入形状((128, 1024), (1, 1024))input_dtypes输入数据类型(float32, float32)precision_tolerances精度容差((0.001, 0.001),)贡献测试用例的最佳实践覆盖多种场景包括边界条件、特殊值、大规模数据明确测试目标每个用例应有明确的验证目标提供详细注释在remark字段说明测试意图遵循命名规范使用有意义的用例名称 调试与问题排查技巧常见问题解决方法环境配置问题检查CANN环境是否正确配置验证Python版本兼容性确认依赖包完整安装测试执行失败使用--dump-on-fail参数获取详细错误信息检查CSV格式是否正确验证算子名称和参数匹配精度比对问题调整precision_tolerances参数尝试不同的比对方法close/cosine/binary检查输入数据范围是否合理调试工具使用# 查看设备信息 python3 -m ttk info # 预览测试用例 python3 -m ttk list -i cases.csv # 单用例调试模式 python3 -m ttk kernel -i cases.csv -t testcase_name --single-log 文档贡献指南文档结构说明TTK文档采用Markdown格式主要分为使用指南基础使用文档测试指南各类算子测试详细说明FAQ常见问题解答API文档接口说明待完善文档贡献要点清晰准确确保技术描述准确无误示例丰富提供可运行的代码示例结构合理使用清晰的标题层级中英对照重要术语提供英文对照 贡献者权益与认可贡献者权益在项目贡献者列表中署名获得社区技术专家的指导参与项目技术决策讨论优先获得新功能体验机会贡献类型认可TTK社区认可多种类型的贡献代码贡献功能开发、Bug修复、性能优化测试贡献测试用例编写、测试框架改进文档贡献使用指南、API文档、教程编写社区贡献问题解答、经验分享、推广宣传 进阶扩展思路1. 支持新的硬件后端TTK目前主要支持NPU设备但架构设计允许扩展其他硬件后端。您可以参考以下模块进行扩展ttk/core_modules/framework_api/backends/ - 后端抽象层ttk/core_modules/runtime/ - 运行时接口2. 集成新的测试框架如果您需要集成其他测试框架可以实现新的测试执行器扩展测试用例管理器适配结果分析模块3. 开发可视化工具基于TTK的测试结果可以开发测试报告生成工具性能分析可视化界面测试覆盖率统计工具 开始您的第一个贡献适合新手的贡献任务文档完善补充缺失的使用示例测试用例为常用算子添加测试用例Bug修复修复简单的代码问题代码优化改进代码注释和文档字符串快速入门任务示例任务为Add算子添加一个新的测试用例步骤在examples/case_store/kernel/目录下创建新的CSV文件编写Add算子的测试用例测试用例执行验证提交Pull Request 获取帮助与支持官方资源项目文档docs/ 目录下的详细指南示例代码examples/ 目录中的实用示例问题反馈通过GitCode Issues提交问题社区交流参与技术讨论分享使用经验关注项目更新了解最新功能与其他贡献者协作共同完善项目 总结与展望TTK作为CANN算子测试工具集为开发者提供了强大的算子测试能力。通过参与项目贡献您不仅可以提升自己的技术能力还能为昇腾AI生态建设贡献力量。无论您是初学者还是经验丰富的开发者都能在TTK项目中找到适合自己的贡献方式。记住开源贡献是一个持续学习和成长的过程。从简单的文档改进开始逐步深入到核心功能开发您将成为TTK社区的重要成员。现在就开始您的贡献之旅吧立即行动Fork TTK项目到您的账户选择一个简单的入门任务提交您的第一个Pull Request加入TTK开发者社区期待您的贡献【免费下载链接】ops-test-kitTTKOps Test Tool Kit是CANN算子库提供的全链路、自动化、批量化算子测试框架帮助开发者快速完成算子批量功能验证、性能评估以及Golden值比对提升算子开发质量和效率。项目地址: https://gitcode.com/cann/ops-test-kit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考