CANN AscendC MakeLayout布局构造

发布时间:2026/7/16 23:00:54

CANN AscendC MakeLayout布局构造
MakeLayout【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品不支持Atlas A2 训练系列产品/Atlas A2 推理系列产品不支持Atlas 200I/500 A2 推理产品不支持Atlas 推理系列产品AI Core不支持Atlas 推理系列产品Vector Core不支持Atlas 训练系列产品不支持功能说明需要包含的头文件为#include tensor_api/tensor.h。MakeLayout用于根据Shape和Stride构造Layout对象描述数据张量在逻辑维度上的形状以及各维对应的步长信息。MakeLayout支持以下两种构造方式传入shape和stride直接按用户指定的布局信息构造Layout。仅传入shape接口会根据shape自动推导stride并构造紧凑布局。当shape为一维或多维普通元组时按连续行优先存储方式推导步长。函数原型template typename T, typename U __aicore__ inline constexpr auto MakeLayout(const T shape, const U stride) template typename ShapeType __aicore__ inline constexpr auto MakeLayout(const ShapeType shape)参数说明表1模板参数说明参数名称类型描述T输入shape的类型要求为元组tuple类型。U输入stride的类型要求为元组tuple类型。ShapeType输入单参数重载中shape的类型要求为元组tuple类型。表2参数说明参数名称输入/输出描述shape输入描述逻辑形状的元组对象可由MakeShape构造。stride输入描述各维步长的元组对象可由MakeStride构造。返回值说明返回LayoutShape, Stride类型对象。约束说明MakeLayout构造的Layout类型不显式携带LayoutPattern和LayoutTrait信息。对于Shape和Stride类型结构可识别的标准布局可通过GetLayoutPattern自动推导LayoutPattern无法推导或需要显式指定完整类型信息时请使用MakePatternLayout。调用示例using namespace AscendC::Te; // 示例1显式指定Shape和Stride auto layout1 MakeLayout(MakeShape(8, 16), MakeStride(16, 1)); // 示例2仅指定Shape自动推导连续布局的Stride auto layout2 MakeLayout(MakeShape(8, 16, 32)); // 推导得到stride (16 * 32, 32, 1) (512, 32, 1) // 示例3嵌套Shape自动推导嵌套Stride auto layout3 MakeLayout(MakeShape(MakeShape(2, 4), MakeShape(8, 16))); // 推导得到stride为嵌套结构用于描述FrameLayout【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Vue.js and Go example project性能优化:7个提升响应速度的技巧

Vue.js and Go example project性能优化:7个提升响应速度的技巧

2026/7/16 23:00:54

Vue.js and Go example project性能优化:7个提升响应速度的技巧 【免费下载链接】vue-go-example Vue.js and Go example project 项目地址: https://gitcode.com/gh_mirrors/vu/vue-go-example Vue.js and Go example project是一个结合Vue.js前端和Go后端的…

BUUCTF 编码与调制实战:从曼彻斯特到差分曼彻斯特的CTF信号解码

BUUCTF 编码与调制实战:从曼彻斯特到差分曼彻斯特的CTF信号解码

2026/7/16 23:00:54

1. 曼彻斯特编码的CTF实战解码技巧 第一次在BUUCTF遇到曼彻斯特编码的题目时,我盯着那串"5555555595555A65556AA696AA6666666955"的十六进制数据发了半天呆。后来才发现,这类题目其实有规律可循,只要掌握几个关键点就能轻松破解。 …

Golang实现高可靠进程保活:基于Linux文件锁的双进程互保与托孤机制

Golang实现高可靠进程保活:基于Linux文件锁的双进程互保与托孤机制

2026/7/16 23:00:54

1. 项目概述:当渗透测试遇上进程永生在安全研究和软件开发领域,有两个看似不相关,实则底层逻辑相通的技术方向常常让从业者着迷:一个是Metasploit这类强大的渗透测试框架所代表的“攻防艺术”,另一个则是应用层&#x…

Rust 类型状态模式:用类型系统在编译期保证状态转换的正确性

Rust 类型状态模式:用类型系统在编译期保证状态转换的正确性

2026/7/17 0:30:58

Rust 类型状态模式:用类型系统在编译期保证状态转换的正确性 做自学转码最大的痛苦之一,就是频繁碰到"运行时 bug"——状态机少写了一个状态判断、忘记在某步操作前检查条件、非法状态被意外访问……Rust 的"类型状态模式"&#xff…

Tokio 多运行时模式:什么场景值得开多个 runtime 各管一滩的实践分析

Tokio 多运行时模式:什么场景值得开多个 runtime 各管一滩的实践分析

2026/7/17 0:30:58

Tokio 多运行时模式:什么场景值得开多个 runtime 各管一滩的实践分析 初学 Rust 异步编程时,几乎所有教程都会告诉你:"创建 Tokio runtime 时用 #[tokio::main],整个程序一个就够了。" 这句话在小项目里完全正确&#x…

浏览器端模型预加载策略:用户还没点按钮,推理已经准备好了

浏览器端模型预加载策略:用户还没点按钮,推理已经准备好了

2026/7/17 0:30:58

浏览器端模型预加载策略:用户还没点按钮,推理已经准备好了 把 AI 模型跑在浏览器里,最大的用户体验瓶颈是什么?不是推理速度,不是准确率——是加载等待时间。你满怀期待地点开一个 Web AI 应用,结果看到一个…

Rust AI Agent 的分布式协同:多个 agent 实例用消息队列通信的完整方案

Rust AI Agent 的分布式协同:多个 agent 实例用消息队列通信的完整方案

2026/7/17 0:30:58

Rust AI Agent 的分布式协同:多个 agent 实例用消息队列通信的完整方案 当你的 AI Agent 从一个单一实例进化到需要同时管理多个独立 agent 协同工作的阶段时,你迟早会面对一个核心问题:这些 agent 之间怎么通信? 我作为一个自学转…

Python reduce函数:一行代码搞定累加累乘,你还傻傻写循环?

Python reduce函数:一行代码搞定累加累乘,你还傻傻写循环?

2026/7/17 0:30:58

作为一个函数, 它在其中是极为有用的, 它能够把属于一个序列里的全部元素, 进行累加或者累乘的操作从而组合起来, 还能够借助自定义的函数达成别的操作。函数的运用是特别简洁的, 仅仅需要传入一个函数以及一个序列, 函数就会针对序列里头的元素开展操作进而返回结果。接下来, …

中国地质图SHP|断层/岩性|含Mxd/Lyr符号文件

中国地质图SHP|断层/岩性|含Mxd/Lyr符号文件

2026/7/17 0:20:57

🔍 数据简介 本次分享1:250万中国地质图SHP矢量数据集,含完整断层、岩性与多类地质点位数据,配套Mxd工程文件Lyr图层符号数据说明书,开箱即用、直接出图,适用于地质科研、灾害评估与工程勘察制图。📦 数据详…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/16 0:35:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/16 14:29:31

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/16 14:18:17

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Cursor终端插件生态避坑指南:23个实测低效插件黑名单,附3个自研轻量替代方案

Cursor终端插件生态避坑指南:23个实测低效插件黑名单,附3个自研轻量替代方案

2026/7/17 0:00:57

更多请点击: https://intelliparadigm.com 第一章:Cursor终端插件生态避坑指南概览 Cursor 作为基于 VS Code 内核构建的 AI 原生编辑器,其终端插件生态虽活跃,但存在兼容性断层、权限策略突变与调试链路断裂等典型风险。开发者常…

ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表)

ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表)

2026/7/17 0:00:57

更多请点击: https://codechina.net 第一章:ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表) 提示词工程已从经验试错迈入变量驱动的科学阶段。实证研究表明,影响…

DeepSeek V4替换Codex底座模型的实践与优化

DeepSeek V4替换Codex底座模型的实践与优化

2026/7/17 0:00:57

1. 为什么选择用DeepSeek V4替换Codex的底座模型去年我在开发一个智能代码补全工具时,发现Codex的默认底座模型在复杂业务逻辑场景下表现不尽如人意。经过多次测试对比,DeepSeek V4在以下几个关键指标上展现出明显优势:代码补全准确率&#x…