CANN/pypto:Loop原理详解
📅 2026/7/10 20:22:25
👁️ 次浏览
Loop原理及其描述【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto在编译阶段会将loop编译为控制流将loop body转换为计算流分别对应kernel_aicpu/kernel_aicore。kernel_aicpu负责控制流的执行创建kernel_aicore任务包括使用到的内存分配以及执行参数准备同时分析输入输出的依赖将kernel_aicore任务合并成一个更大的调度单元然后提交给调度单元进行调度。原型介绍def loop(start, end, step1, nameNone, idx_nameNone, unroll_list[1], submit_before_loopFalse): def loop_roll(start, end, step1, nameNone, idx_nameNone, unroll_list[1], submit_before_loopFalse):参数说明start,end,step分别表示循环的起始值、结束值和步长类型可以为SymbolicScalar或者int和Python中的range语法基本保持一致。name循环的名称默认值为loop_{id}对实际使用运行效果无影响仅用于调试和生成代码中注释信息。idx_name循环索引的名称默认值为loop_idx_{id}对于嵌套的Loop使用相同的idx会产生覆盖行为目前会在前端进行检查报错。unroll_list主要用于循环展开产生更大的loop body降低调度开销。对于unroll_list2loop大概会产生如下代码new_start start for k in unroll_list: left (stop - start) % k for idx in loop(new_start, stop - left, k): for i in range(k): body(idx) # 需要用户一次处理step1的步长 new_start stop - leftloop_unroll大概会产生如下代码new_start start for k in unroll_list: left (stop - start) % k for idx in loop(new_start, stop - left, k): body(idx, k) # 需要用户一次处理k的步长 new_start stop - left原则上如果可以一次处理多个i使用loop_unroll会更高效如果一次只能处理1个i则需要使用loop。submit_before_loop表示是否在循环开始前提交任务默认值为False。如果设置为True则循环前的任务会先提交到调度队列中等待后续任务完成后再开始执行。过多的设置submit_before_loop会增加调度开销建议仅在必要时设置为True。unroll_list对pypto.cond的影响通常一个循环中有一个pypto.cond会产生两个分支。当unroll次数为4次时会产生2⁴ 16个路径分支通常每个分支都需要单独编译因此会大量增加编译时间和编译出的代码量。为了支持关键算子FA的编译优化提供了两个特殊的函数pypto.is_loop_begin()和pypto.is_loop_end()用于优化条件分支。考虑到对外层loop进行loop_unroll不能提升loop body的大小当前仅支持最内侧循环进行unroll。隐式loop示例框架会在编译阶段前端隐式地在function开始的位置插入一个loop(1)。循环直到下一个循环开始前结束pypto.frontend.jit def foo(a, b, c): c[:] a b # 等价于 pypto.frontend.jit def foo(a, b, c): for i in pypto.loop(1): c[:] a b pypto.frontend.jit def foo(a, b, c): t a 1 for i in pypto.loop(1): c[:] t b # 等价于 pypto.frontend.jit def foo(a, b, c): for i in pypto.loop(1): t a 1 for i in pypto.loop(1): c[:] t b框架当前不会自动进行loop(1)合并因此在实际使用中建议用户手动合并loop(1)以提高效率。【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
国产 LLM 7 月涨价潮 + 缓存机制普及:5 个 row_key 模型的开发者选型新指南 适用读者:正在用 Qwen / GLM / Kimi / 阿里百炼 API 做生产或 Agent 的开发者 阅读时长:约 10 分钟 测试时间:2026 年 7 月 7 日(基于 炻光 AI 接入文档站 公开 API 文档) 一、7 月第一周发生了什么…
📅 2026/7/10 20:22:25
这段时间我集中测了几种学生常用的AI工具,结论比我想得更直接:论文场景里,真正拖时间的不是“写不出来”,而是参考文献真假难辨、全文格式反复返工。尤其毕业论文和期刊返修阶段,标题层级、摘要关键词、目录页码、参考…
📅 2026/7/10 20:22:25
1.1 Overview 【免费下载链接】infrastructure 本仓库用于托管CANN社区基础设施团队的公开信息,包括不限于:会议日程,成员信息,服务文档和配置等信息 项目地址: https://gitcode.com/cann/infrastructure
CANNLab is a one…
📅 2026/7/10 20:22:25
Tambo AI完全指南:构建智能生成式UI的React开发神器 【免费下载链接】hydra-ai Generative UI SDK for React 项目地址: https://gitcode.com/GitHub_Trending/hy/hydra-ai
Tambo AI(原名Hydra-ai)是一款革命性的开源生成式UI工具包&a…
📅 2026/7/10 21:34:46
2026年六大企业级AI大模型API中转站横向测评:企业与个人开发者选型关键指标解析
大模型从实验室走向生产线已满四年,企业对底层API的诉求早已越过"能调用"的及格线,进入"稳、快、可控、可审计"的工业化阶段。直接对接单一…
📅 2026/7/10 21:34:46
J-Runner终极指南:高效完成Xbox 360改装与固件编程 【免费下载链接】J-Runner-with-Extras Source code to the J-Runner with Extras executable. Requires the proper support files, package can be found in README 项目地址: https://gitcode.com/gh_mirrors…
📅 2026/7/10 21:34:46
如何用GBrain在30分钟内构建你的个人AI大脑:终极快速入门指南 【免费下载链接】gbrain Garrys Opinionated OpenClaw/Hermes Agent Brain 项目地址: https://gitcode.com/gh_mirrors/gb/gbrain
想在短短30分钟内拥有一个能24小时工作的个人AI助手吗ÿ…
📅 2026/7/10 21:34:46
在当代细胞生物学研究中,精确追踪分子在活细胞中的内化过程一直是一项重大挑战。传统荧光标记技术往往面临高背景信号、需要洗涤步骤以及难以区分细胞内外信号等问题。pHrodo™荧光探针技术的出现彻底改变了这一局面,为科学家们提供了一种无需洗涤步骤、…
📅 2026/7/10 21:34:46
企业级无审查推理模型Qwythos-9B:百万token上下文与混合注意力架构的终极指南 【免费下载链接】Qwythos-9B-Claude-Mythos-5-1M 项目地址: https://ai.gitcode.com/hf_mirrors/empero-ai/Qwythos-9B-Claude-Mythos-5-1M
Qwythos-9B-Claude-Mythos-5-1M是基于…
📅 2026/7/10 21:33:46
一、为什么接口自动化测试,适合用AI赋能?
大家可自行先思考一个问题:
AI赋能测试全流程,为什么优先推荐从接口自动化切入?
有三个典型原因:
接口输入结构化,AI最擅长"吃"
接口有OpenA…
📅 2026/7/10 0:00:53
终极原神FPS解锁器完整指南:轻松突破60帧限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock
原神FPS解锁器是一款专为《原神》玩家设计的开源工具,通过先进的Wri…
📅 2026/7/10 0:00:53
YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?🎵 【免费下载链接】YesPlayMusic 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: 项目地址: https://gitcode.com/gh_mirrors/ye/YesPlayMusic…
📅 2026/7/10 0:00:53
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/9 15:10:35
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/9 14:14:01
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/9 15:10:36
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/9 15:10:36
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/9 15:10:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/9 15:10:36