当前位置: 首页 > article >正文

TTK插件系统扩展指南:自定义Golden生成函数和输入数据生成函数的完整教程

TTK插件系统扩展指南自定义Golden生成函数和输入数据生成函数的完整教程【免费下载链接】ops-test-kitTTKOps Test Tool Kit是CANN算子库提供的全链路、自动化、批量化算子测试框架帮助开发者快速完成算子批量功能验证、性能评估以及Golden值比对提升算子开发质量和效率。项目地址: https://gitcode.com/cann/ops-test-kitTTKOps Test Tool Kit是CANN算子库提供的全链路、自动化、批量化算子测试框架帮助开发者快速完成算子批量功能验证、性能评估以及Golden值比对提升算子开发质量和效率。本文将详细介绍如何通过TTK的插件系统扩展自定义Golden生成函数和输入数据生成函数让你的算子测试流程更加灵活高效一、TTK插件系统简介 TTK插件系统允许开发者通过自定义函数扩展框架功能主要支持两类扩展Golden生成函数用于生成算子的标准输出结果Golden值输入数据生成函数用于生成特定算子的测试输入数据插件系统的核心优势在于无需修改框架源码即可扩展功能支持算子级别的个性化测试逻辑保持测试代码与业务代码分离相关模块路径Golden函数注册ttk/user_defined_modules/op/golden_funcs/registry.py输入函数注册ttk/user_defined_modules/op/input_funcs/registry.py二、自定义Golden生成函数开发指南 ✨2.1 Golden生成函数基础Golden生成函数负责计算算子的预期输出结果用于与实际运行结果进行比对。TTK默认提供了多种常用Golden函数如golden_funcs { floor_div: numpy.floor_divide, neg: numpy.negative, acos: numpy.arccos, # 更多内置函数... }2.2 创建自定义Golden函数创建自定义Golden函数需遵循以下步骤创建Python文件在ttk/user_defined_modules/op/golden_funcs/目录下创建新文件如custom_golden.py实现函数逻辑定义计算Golden值的函数示例import numpy as np def custom_add_golden(input1, input2): 自定义加法算子的Golden生成函数 # 添加自定义逻辑如特殊数值处理 result np.add(input1, input2) # 对结果进行四舍五入处理 return np.round(result, decimals4)注册函数使用register_golden装饰器注册函数from ttk.user_defined_modules.op.golden_funcs.registry import register_golden register_golden(operator_names[custom_add], need_original_input_arraysFalse) def custom_add_golden(input1, input2): # 实现逻辑同上2.3 注册装饰器参数说明register_golden装饰器支持以下参数operator_names算子名称列表指定该函数适用于哪些算子need_original_input_arrays是否需要原始输入数据未经过预处理的dma_copy_op是否为DMA拷贝算子影响INF/NAN值处理三、自定义输入数据生成函数开发指南 3.1 输入数据生成函数基础输入数据生成函数用于为特定算子生成测试用例输入数据覆盖算子的各种使用场景。TTK通过register_input装饰器管理这些函数。3.2 创建自定义输入函数创建自定义输入函数的步骤与Golden函数类似创建Python文件在ttk/user_defined_modules/op/input_funcs/目录下创建新文件如custom_input.py实现函数逻辑定义生成输入数据的函数示例import numpy as np def generate_sparse_matrix_input(param): 为稀疏矩阵乘法生成输入数据 # 获取参数信息 shape param.get(shape, (1024, 1024)) sparsity param.get(sparsity, 0.9) # 生成稀疏矩阵 matrix np.random.rand(*shape) matrix[matrix sparsity] 0 return [matrix]注册函数使用register_input装饰器注册函数from ttk.user_defined_modules.op.input_funcs.registry import register_input register_input(operator_names[sparse_matmul]) def generate_sparse_matrix_input(param): # 实现逻辑同上四、插件使用与测试流程 4.1 配置插件路径通过命令行参数指定插件路径python -m ttk.cli.kernel --plugin /path/to/your/plugins --operator custom_add4.2 验证插件功能运行测试命令python -m ttk.cli.kernel --testcase case_store/kernel/custom_add.csv --plugin ./user_plugins查看测试报告测试结果将生成在results/目录下可通过 docs/Result_Analysis.md 指南进行结果分析。五、高级扩展技巧 5.1 处理特殊算子需求对于需要特殊处理的算子如需要原始输入数据可在注册时设置相应参数register_golden(operator_names[special_op], need_original_input_arraysTrue) def special_op_golden(original_inputs, processed_inputs): # original_inputs 包含未经预处理的原始输入数据 # processed_inputs 包含经过框架预处理的输入数据 return custom_process(original_inputs)5.2 调试自定义函数可通过以下方式调试自定义函数在函数中添加日志输出使用--debug命令行参数运行TTK查看logs/目录下的调试日志六、常见问题解决 ️Q1: 自定义函数不生效怎么办A: 检查以下几点确认插件路径是否正确指定检查函数注册是否使用了正确的算子名称查看日志文件中是否有注册错误信息Q2: 如何覆盖已注册的函数A: TTK会对重复注册的函数发出警告但后注册的函数会覆盖先注册的函数。建议在开发时使用唯一的算子名称进行测试。Q3: 是否支持为同一个算子注册多个函数A: 不支持每个算子只能注册一个Golden生成函数和一个输入数据生成函数。七、总结通过TTK插件系统开发者可以轻松扩展自定义Golden生成函数和输入数据生成函数满足特定算子的测试需求。这种灵活的扩展机制大大提升了TTK框架的适应性使算子测试工作更加高效和个性化。如果你想了解更多TTK的高级功能请参考官方文档各类算子测试指南任务执行指南用例生成指南开始你的TTK插件开发之旅吧如有任何问题欢迎参与项目讨论或提交Issue。【免费下载链接】ops-test-kitTTKOps Test Tool Kit是CANN算子库提供的全链路、自动化、批量化算子测试框架帮助开发者快速完成算子批量功能验证、性能评估以及Golden值比对提升算子开发质量和效率。项目地址: https://gitcode.com/cann/ops-test-kit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

TTK插件系统扩展指南:自定义Golden生成函数和输入数据生成函数的完整教程

TTK插件系统扩展指南:自定义Golden生成函数和输入数据生成函数的完整教程 【免费下载链接】ops-test-kit TTK(Ops Test Tool Kit)是CANN算子库提供的全链路、自动化、批量化算子测试框架,帮助开发者快速完成算子批量功能验证、性能…...

cann/cann-bench: Softmax算子API描述

Softmax 算子 API 描述 【免费下载链接】cann-bench 评测AI在处理CANN领域代码任务的能力,涵盖算子生成、算子优化等领域,支撑模型选型、训练效果评估,统一量化评估标准,识别Agent能力短板,构建CANN领域评测平台&#…...

从Dubbo超时到内存锯齿:高并发服务JVM调优与大对象排查实战

1. 项目背景与问题初现做后端服务开发,尤其是高并发场景下的核心服务,最怕的就是线上服务“抽风”——平时跑得好好的,一到业务高峰期就出现各种超时、失败。最近我就遇到了一个典型的案例,我们团队负责的一个音乐核心服务&#x…...

告别卡顿!手把手教你用UltraISO给老旧笔记本装上OpenEuler 22.03 LTS(保姆级BIOS设置指南)

告别卡顿!手把手教你用UltraISO给老旧笔记本装上OpenEuler 22.03 LTS(保姆级BIOS设置指南) 老旧笔记本性能跟不上现代操作系统?别急着淘汰它们!OpenEuler作为一款轻量级Linux发行版,特别适合为老设备注入新…...

CANN/cann-bench MHA算子API描述

MHA 算子 API 描述 【免费下载链接】cann-bench 评测AI在处理CANN领域代码任务的能力,涵盖算子生成、算子优化等领域,支撑模型选型、训练效果评估,统一量化评估标准,识别Agent能力短板,构建CANN领域评测平台&#xff0…...

终极Windows和Office激活指南:KMS智能激活工具三步永久激活方案

终极Windows和Office激活指南:KMS智能激活工具三步永久激活方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?Office突然变…...

CANN ops-fft未来规划:51+接口路线图与社区发展蓝图

CANN ops-fft未来规划:51接口路线图与社区发展蓝图 【免费下载链接】ops-fft ops-fft 是 CANN (Compute Architecture for Neural Networks)算子库中提供 FFT 类计算的基础算子库,采用模块化设计,支持灵活的算子开发和…...

IPv6网络规划必看:华为设备上DHCPv6与SLAAC(无状态地址分配)到底怎么选?

IPv6网络规划实战:华为设备地址分配方案深度解析 在IPv6网络部署的浪潮中,地址分配策略的选择往往成为困扰网络架构师的首要难题。当传统IPv4的DHCP方式遇上IPv6全新的SLAAC(无状态地址自动配置)机制,技术决策的复杂性…...

别再死记硬背了!手把手教你玩转COMSOL Desktop的窗口布局与自定义(附效率翻倍技巧)

别再死记硬背了!手把手教你玩转COMSOL Desktop的窗口布局与自定义(附效率翻倍技巧) 作为一名经常与多物理场仿真打交道的工程师,你是否曾因频繁切换窗口而打断思路?或是花费大量时间在菜单栏中寻找某个隐藏功能&#…...

【紧急预警】Perplexity即将下线v1历史索引接口(倒计时≤45天):迁移至Time-Aware Search API的6步合规过渡方案

更多请点击: https://kaifayun.com 第一章:Perplexity历史资料搜索 Perplexity 是一款以实时网络检索与引用驱动为特色的 AI 搜索工具,自 2022 年由 Aravind Srinivas、Denis Yarats、Johnny Ho 和 Andy Konwinski 共同创立以来,…...

别只盯着波特率!深入理解英飞凌MCMCAN的报文过滤与优先级处理机制

别只盯着波特率!深入理解英飞凌MCMCAN的报文过滤与优先级处理机制 在嵌入式系统开发中,CAN总线通信的稳定性和效率往往决定了整个系统的性能表现。许多工程师在配置CAN模块时,常常将注意力集中在波特率设置等基础参数上,却忽略了报…...

CANN/hccl参数面建链阶段故障诊断

参数面建链阶段 【免费下载链接】hccl 集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/cann/hcc…...

用emWin定时器给你的STM32 GUI界面“注入灵魂”:实现动态数据刷新与简易动画(基于WM_TIMER消息)

用emWin定时器为STM32 GUI注入动态交互的灵魂 在嵌入式设备的人机交互设计中,静态界面往往给人呆板的印象。想象一下工业仪表盘上凝固的数字,或是医疗设备上永不变化的指示灯——这种缺乏生命力的呈现方式不仅降低用户体验,还可能掩盖关键数据…...

dialoqbase入门指南:如何在5分钟内创建你的第一个AI聊天机器人

dialoqbase入门指南:如何在5分钟内创建你的第一个AI聊天机器人 【免费下载链接】dialoqbase Create chatbots with ease 项目地址: https://gitcode.com/gh_mirrors/di/dialoqbase dialoqbase是一款强大的开源工具,让你能够轻松创建AI聊天机器人。…...

Python开发者三步完成Taotoken接入并调用多模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Python开发者三步完成Taotoken接入并调用多模型 对于希望便捷使用多种大语言模型的Python开发者而言,通过一个统一的AP…...

Linux串口编程进阶:深入termios2结构体,搞定CH340/FTDI各种转接器的非标准波特率

Linux串口编程实战:破解CH340/FTDI非标准波特率适配难题 当你在工业物联网项目中尝试将某个9600bps的设备升级到115200bps时,可能会发现某些USB转串口适配器死活不配合——明明代码正确,波特率却始终无法生效。这不是你的错,而是…...

百度网盘Mac版终极破解指南:免费解锁SVIP高速下载体验

百度网盘Mac版终极破解指南:免费解锁SVIP高速下载体验 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘Mac版的下载速度限制而…...

setup-java企业级实践:大型项目的依赖缓存和版本矩阵测试

setup-java企业级实践:大型项目的依赖缓存和版本矩阵测试 【免费下载链接】setup-java Set up your GitHub Actions workflow with a specific version of Java 项目地址: https://gitcode.com/gh_mirrors/se/setup-java 在现代软件开发中,Java环…...

如何用ComfyUI-Impact-Pack实现专业级AI图像增强:解决细节缺失的终极方案

如何用ComfyUI-Impact-Pack实现专业级AI图像增强:解决细节缺失的终极方案 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. …...

反向Shell隐藏技术深度解析:从进程伪装到网络隐匿的攻防实践

1. 项目概述:从“隐藏”到“隐匿”的攻防博弈在网络安全领域,反向Shell是一种经典且常见的远程控制手段。简单来说,它让被控端主动连接控制端,从而绕过防火墙等入站限制。然而,一个明晃晃的、持续存在的网络连接或进程…...

企业级应用如何利用Taotoken实现稳定高效的多模型调度

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业级应用如何利用Taotoken实现稳定高效的多模型调度 在构建基于大模型的企业级应用时,开发团队常常面临几个核心挑战…...

华测RTK静态数据解算保姆级教程:从CHC Geomatics Office 2安装到平差报告导出

华测RTK静态数据解算全流程实战指南:从软件配置到精度优化 第一次接触华测RTK静态解算时,面对满屏的专业术语和复杂参数,不少同行都有过这样的困惑:为什么同样的数据,别人处理出来的结果总能一次性通过验收&#xff0…...

如何在Windows电脑上轻松安装安卓应用:APK-Installer终极指南

如何在Windows电脑上轻松安装安卓应用:APK-Installer终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上直接运行安卓应用…...

保姆级教程:在ENVI5.3里搞定高分二号多光谱数据(辐射定标+大气校正+正射)

高分二号多光谱数据预处理全流程实战指南 第一次接触遥感影像处理的研究者,面对国产高分卫星数据时往往既兴奋又忐忑。高分二号(GF-2)作为我国自主研制的高分辨率对地观测系统重要组成部分,其多光谱数据在农业监测、环境评估等领域…...

除了高精度定位,CORS基准站网还能为你提供哪些意想不到的数据服务?

解锁CORS基准站网的隐藏价值:从厘米级定位到时空大数据平台 当大多数人提起CORS基准站网时,第一反应往往是"高精度定位"。确实,这套由数百个地面站点组成的网络系统,能够为各类GNSS设备提供实时厘米级甚至毫米级的定位修…...

深入RPMsg-Lite virtqueue:拆解异构多核芯片共享内存通信的‘黑盒子’

深入RPMsg-Lite virtqueue:拆解异构多核芯片共享内存通信的‘黑盒子’ 在现代异构多核芯片设计中,核间通信(IPC)的效率直接决定了系统整体性能。当你在调试一个基于NXP i.MX RT1170的双核系统时,是否曾好奇过&#xff…...

Abiotic Factor多人生存建筑游戏《非生物因素》 专用服务器搭建教程

Abiotic Factor多人生存建筑游戏《非生物因素》 专用服务器搭建教程 Abiotic Factor 是由 Deep Field Games 开发、2024 年登陆 Steam 的科幻题材多人生存游戏。玩家扮演被困在地下高科技研究设施 GATE Cascade Research Facility 中的科学家,面对异生物入侵、次元裂…...

三极管Ube到底变不变?从静态分析到动态放大,一张图帮你彻底搞懂

三极管Ube到底变不变?从静态分析到动态放大,一张图帮你彻底搞懂 刚接触三极管放大电路时,很多初学者都会被一个看似矛盾的现象困扰:教科书告诉我们三极管的Ube电压恒定为0.7V,但在分析动态放大过程时,又说U…...

探索Harepacker复活版:打造你的MapleStory创意工坊

探索Harepacker复活版:打造你的MapleStory创意工坊 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected 你是否曾经梦想过亲手改造Map…...

3步掌握TransNet V2:从零开始实现智能视频镜头检测

3步掌握TransNet V2:从零开始实现智能视频镜头检测 【免费下载链接】TransNetV2 TransNet V2: Shot Boundary Detection Neural Network 项目地址: https://gitcode.com/gh_mirrors/tr/TransNetV2 想要快速分析视频内容结构,自动识别镜头切换点吗…...