尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
PyPTO:View与Assemble操作图成环问题解析
同一个Tensor进行View和Assemble导致图成环报错【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto问题现象描述示例代码如下pypto.frontend.jit def foo_kernel(x, y): pypto.set_vec_tile_shapes(16, 16) a pypto.zeros([32, 32]) b a[:16, :16] # 从a中view获取数据 a[16:, 16:] b.exp() # 计算后assemble写回a y[:] x a torch.npu.set_device(0) x torch.ones(32, 32, dtypetorch.float32) y torch.empty(32, 32, dtypetorch.float32) foo_kernel(pypto.from_torch(x), pypto.from_torch(y))执行时报错ASSERTION FAILEDERROR:root:Record function foo_kernel failed: ASSERTION FAILED: outDegree[opToIndex[op.get()]] 0详细报错如下ERROR:root:Record function foo_kernel failed: ASSERTION FAILED: outDegree[opToIndex[op.get()]] 0 Operation not fully processed: /* /home/pypto-dev/a.py:9 */ 32 x 32 x DT_FP32 / 32 x 32 x DT_FP32 %02#(-1)MEM_UNKNOWN::MEM_UNKNOWN !10000 VEC_DUP(g:-1, s:-1) #SCALAR{0.000000} #op_attr_shape{[32, 32]} #op_attr_validShape{[32,32]} , func GetSortedOperations, file function.cpp, line 1105 libtile_fwk_interface.so(npu::tile_fwk::Function::GetSortedOperations() const0xb3c) [0xffff9c2f6650] libtile_fwk_interface.so(npu::tile_fwk::Function::SortOperations()0x38) [0xffff9c2f6f28] libtile_fwk_interface.so(npu::tile_fwk::Function::EndFunction(std::shared_ptrnpu::tile_fwk::TensorSlotScope const)0x960) [0xffff9c31b8d0] libtile_fwk_interface.so(npu::tile_fwk::Program::FinishCurrentFunction(std::shared_ptrnpu::tile_fwk::TensorSlotScope const, bool)0x1b0) [0xffff9c532274] libtile_fwk_interface.so(npu::tile_fwk::Program::EndFunction(std::string const, bool)0x10c) [0xffff9c536dcc] libtile_fwk_interface.so(npu::tile_fwk::Program::EndHiddenLoop(npu::tile_fwk::Function*, bool)0xb0) [0xffff9c537384] libtile_fwk_interface.so(npu::tile_fwk::Program::EndFunction(std::string const, bool)0x5c) [0xffff9c536d1c] libtile_fwk_interface.so(npu::tile_fwk::RecordLoopFunc::IterationEnd()0x44) [0xffff9c5399c4] libtile_fwk_interface.so(npu::tile_fwk::RecordLoopFunc::Iterator::operator!(npu::tile_fwk::RecordLoopFunc::IteratorEnd const)0xfc) [0xffff9c539ea0]原因分析该报错的原因是内部在对基本算子做拓扑排序时发现存在环路的报错。这是由于数据从a中读取又写回a导致的。由于PyPTO描述的是一个图表达在读取和写入的时候当前认为a是一个整体因此创建的连接关系会形成一个环路即a → b → b.exp() → a而PyPTO不允许构造出的图内存在环路必须为DAG有向无环图所以才有这个报错。解决措施当前需要将读取和写入a的逻辑拆分成两个图去定义避免一个图内存在环路。后续等Assemble的SSA语义上线后使用该写法不会有问题。【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

终极免费方案:让你的普通鼠标在macOS上超越苹果触控板!

终极免费方案:让你的普通鼠标在macOS上超越苹果触控板!

终极免费方案:让你的普通鼠标在macOS上超越苹果触控板! 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 还在为macOS上第…

📅 2026/10/21 13:04:41
问卷数据可视化怎么做?2026年五款平台图表功能对比

问卷数据可视化怎么做?2026年五款平台图表功能对比

导语 问卷调研是市场、人事、学术研究的常用手段,但原始问卷数据杂乱零散,人工整理制表耗时易错。 数据可视化是高效盘活问卷数据的核心方式,选对工具能一键生成专业图表、直观呈现数据规律。 本文结合2026年主流工具实测,对比包含…

📅 2026/10/22 9:49:07
Light-Weight RefineNet性能优化:提升实时语义分割速度的7个技巧

Light-Weight RefineNet性能优化:提升实时语义分割速度的7个技巧

Light-Weight RefineNet性能优化:提升实时语义分割速度的7个技巧 【免费下载链接】light-weight-refinenet Light-Weight RefineNet for Real-Time Semantic Segmentation 项目地址: https://gitcode.com/gh_mirrors/li/light-weight-refinenet Light-Weight…

📅 2026/10/22 9:24:39
MORE NEWS

更多资讯

📰

给智慧园区加一个“自然语言问数“层:架构设计、数据建模与落地实践

智慧园区一体化管理平台沉淀了大量经营数据,但临时取数仍依赖人工。本文基于一套已在园区落地的方案,拆解如何在不改动原业务系统的前提下,叠加一层 AI 问数能力,并给出数据建模与查询治理的实操要点。一、背景:事务系…

📰

供热数采网关总在几个月后死机?一次从封闭网关换成 Linux + Node-RED+AI平台 的实践

# 供热数采网关总在几个月后死机?一次从封闭网关换成 Linux Node-REDAI平台 的实践 供热和工控项目的数据采集,现场常见两种做法。 一种是 DTU。很多低功耗、低成本的 DTU 不运行 Windows、Linux 这类通用操作系统,程序只跑一个采集固件、循…

📰

《Java并发编程之美》第 3 章 Java 并发包中 ThreadLocalRandom 类原理剖析 阅读笔记 6

《Java并发编程之美》第 3 章 Java 并发包中 ThreadLocalRandom 类原理剖析 阅读笔记 6 第二部分 Java 并发编程高级篇 在第一部分中我们介绍了并发编程的基础知识,而本部分则主要讲解并发包中一些主要组件的实现原理。 第 3 章 Java 并发包中 ThreadLocalRandom 类…

📰

第3篇 · 使用 PyQt5 实现 2048 桌面版游戏:MVC 架构与撤销和重做

第3篇 使用 PyQt5 实现 2048 桌面版游戏:MVC 架构与撤销和重做 前两篇为纯 Python 实现:第 1 篇的数学模型、第 2 篇的带历史记录的控制台版。控制台版适合验证逻辑,但交互体验并不好:每执行一步都要 cls 清屏、光标闪烁&#x…

📰

Linux进程篇(六):穿过底层看本质,深入理解底层进程切换与 O(1) 调度算法

目录 一、 进程切换与 CPU 寄存器原理 1.1 死循环进程如何运行?——深入理解时间片 1.1.1 现代操作系统的公平调度 1.2 聊聊 CPU 寄存器与临时数据 1.2.1 寄存器的诞生背景与核心作用 1.2.2 常见的核心寄存器分类 1.3 核心结论:区分“空间”与“内…

📰

人机协同:用 interrupt 把控制权交给你

个人主页&#xff1a;> for_ever_love__ <&#xff08;欢迎各位大佬莅临&#x1f60a;&#xff09; 其他栏目: > 大模型开发从0到1 < 其他栏目: > iOS项目总结大全 < 其他栏目: > 我想学python了 < 其他栏目: > iOS UI < 文章目录人机协同&#…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬