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

Ascend Extension for PyTorch是个what?

1 Ascend Extension for PyTorch

Ascend Extension for PyTorch 插件是基于昇腾的深度学习适配框架,使昇腾NPU可以支持PyTorch框架,为PyTorch框架的使用者提供昇腾AI处理器的超强算力。

项目源码地址请参见Ascend/Pytorch。

昇腾为基于昇腾处理器和软件的行业应用及服务提供全栈AI计算基础设施。您可以通过访问昇腾社区,了解关于昇腾的更多信息。

2 为什么需要此扩展?

PyTorch本身是个模型训练和推理的AI框架,与华为的昇思(mindspore)和百度的飞浆(paddlepaddle)等是同样的产品形态。pytorch作为业界的顶流,无论是在业界,还是高校或者说是AI相关社区,其重要性都是无法撼动的。但是,pytorch本身只对cpu和gpu进行了较好的适配,这就导致了新出现的npu硬件产品,如果要在pytorch上进行无缝对接,肯定得进行一些适配。比如:如何调用新npu硬件上配套的高性能算子?

3 Ascend在pytorch上的对接方案

以下架构图来源于昇腾社区。
Ascend Extension for PyTorch
在这里插入图片描述
该在线对接适配方案的特点包含:

  • 最大限度的继承PyTorch框架动态图的特性。
  • 最大限度的继承原生PyTorch的开发方式,可以使用户在将模型移植到昇腾AI处理器设备进行训练时,在开发方式和代码重用方面做到最小的改动。
  • 最大限度的继承PyTorch原生的体系结构,保留框架本身出色的特性,比如自动微分、动态分发、Debug、Profiling、Storage共享机制以及设备侧的动态内存管理等。
  • 扩展性好。在打通流程的通路之上,对于新增的网络类型或结构,只需涉及相关计算类算子的开发和实现。框架类算子,反向图建立和实现机制等结构可保持复用。
  • 与原生PyTorch的使用方式和风格保持一致。用户在使用在线对接方案时,只需在Python侧和Device相关操作中,指定Device为昇腾AI处理器,即可完成用昇腾AI处理器在PyTorch对网络的开发、训练以及调试,用户无需进一步关注昇腾AI处理器具体的底层细节。这样可以确保用户的修改最小化,迁移成本较低。

根据上图,可以获取以下几点内容(全部是个人理解,如果错了还望指正):

  1. 图中标识1的部分,这个是业务层,比如训练,推理等;
  2. 图中标识2的部分,是torch的原有python接口,方便用户侧调用。
  3. 图中标识3的部分,ascend对外提供的python接口,比如在分布式下,ascend是hccl,而gpu是nccl;在用户脚本侧,就得调用对应的接口;
  4. 图中标识4的部分,这个是pybind层。熟悉pytorch的这层作用很明了。python侧只是用户python中脚本呈现的,真正下发到硬件上去执行,都是c++侧下发。从python到c++,就有一个pybind的过程,也就是cpython。
  5. 图中标识5的部分,是框架中的通用层,比如算子关系,tensor实现,memory申请实现等;
  6. 图中标识6的部分,这个是ascend上特有的,如aclop需要编译然后执行(aclop特有),就是将算子的执行逻辑编译成一个.o的执行文件,让c++能够直接调用;
  7. 图中标识7的部分,算子执行库;也就是ACL(Ascend c)编译后的算子执行库;
  8. 图中标识8的部分,hccl(集合通信库)执行库;
  9. 图中标识9的部分,ascend的rumtime。runtime的作用,也就是给你一个op或者说一张图,让其在硬件升运行起来。

下一步,将从源码的角度来看看具体的实现逻辑,相关文章如下:
Ascend Extension for PyTorch的源码解析

相关文章:

Ascend Extension for PyTorch是个what?

1 Ascend Extension for PyTorch Ascend Extension for PyTorch 插件是基于昇腾的深度学习适配框架,使昇腾NPU可以支持PyTorch框架,为PyTorch框架的使用者提供昇腾AI处理器的超强算力。 项目源码地址请参见Ascend/Pytorch。 昇腾为基于昇腾处理器和软…...

学习docker第五弹-----高级篇start-Dockerfile

docker目录 1 Dockerfile是什么2 Dockerfile能干嘛3 如何书写Dockerfile3.1 Dockerfile构建过程解析3.2 小总结3.3 Dockerfile的基本知识3.5 保留字FROMMAINTAINERRUN 有两种方式EXPOSEWORKDIRENVUSERVOLUMEADDCMDENTRYPOINT 4 后记 1 Dockerfile是什么 Dockerfile顾名思义就是…...

【Elasticsearch】Elasticsearch集成Spring Boot

Elasticsearch集成Spring Boot 概述 Spring Data Elasticsearch 介绍一、环境初始化二、实战入门1、定义数据实体类2、定义Dao层3、框架集成-SpringData-集成测试-索引操作4、框架集成-SpringData-集成测试-文档操作5、框架集成-SpringData-集成测试-文档搜索 概述 Spring Data…...

HarmonyOS 移

什么是HarmonyOS HarmonyOS 中文名字是 鸿蒙操作系统 中国神话传说盘古在昆仑山开天辟地之前,世界是一团混沌状的元气,这种自然的元气叫做鸿蒙,那个时代成为鸿蒙时代华为公司的操作系统以鸿蒙取名,是不是有开天辟地之寓意&#x…...

跨子网的WinCC客户机/服务器如何实现通讯?

为了更有效地利用有限的IP地址,为了减少广播对网络带宽的占用从而提高带宽,为了实现在不同子网中应用不同的安全策略从而提高网络安全性,现场通常要求划分子网,将安全等级要求不同的计算机安置在不同的子网中,分开管理…...

java 面向对象高级

1.final关键字 class Demo{public static void main(String[] args) {final int[] anew int[]{1,2,3};// anew int[]{4,5,6}; 报错a[0]5;//可以,解释了final修饰引用性变量,变量存储的地址不能被改变,但地址所指向的对象的内容可以改变} }什…...

递推经典例题 - 爬楼梯

一、题目阅读 题目描述 一段楼梯有n级台阶。你每次可以跨一个、两个或者三个台阶。 请问走上n级台阶有几种方案?答案对998244353取模。 输入格式 一行一个数n。 输出格式 一行一个数,表示方案数。 样例 Input 1 3 Output 1 4 样例解释 1 1 1 3 1 2 …...

OpenCV视觉分析之目标跟踪(12)找到局部的最大值函数meanShift()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在反向投影图像上找到一个对象。 meanShift 是一种用于图像处理和计算机视觉领域的算法,特别适用于目标跟踪、图像分割等任务。该算…...

《数据治理精选案例集2.0(2024版)》592页PDF(已授权分享)

《亿信华辰数据治理精选案例集2.0》是北京亿信华辰软件有限责任公司倾力打造的专业数据治理案例集,汇集了100个一线政企数据治理实践案例,覆盖13大行业和500业务场景,通过深入剖析数据治理难题,提供了新思路和实战经验&#xff0c…...

【51单片机】LED点阵屏 原理 + 使用

学习使用的开发板:STC89C52RC/LE52RC 编程软件:Keil5 烧录软件:stc-isp 开发板实图: 文章目录 LED点阵屏显示原理74HC595 编码LED点阵屏显示笑脸LED点阵屏显示动画 LED点阵屏 点阵屏在开发板的右上角,注意使用前需要…...

Java基于SpringBoot+Vue的宠物共享平台的设计与实现(附源码,文档)

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...

【案例】Excel使用宏来批量插入图片

一、场景介绍 我有一个excel文件,需要通过一列的文件名称,按照规则给批量上传图片附件。 原始文件: 成功后文件: 二、实现方法 1. 使用【wps】工具打开Excel文件,将其保存为启用宏的文件。 2.找到编辑宏的【VB编辑器…...

报名开启|开放原子大赛“Rust数据结构与算法学习赛”

开放原子大赛“Rust数据结构与算法学习赛”报名进行中,报名截止时间为11月17日。 为了进一步促进开源技术的发展,提升国内开源社区的创新能力和国际影响力,开放原子开源基金会与清华大学开源操作系统训练营等单位,共同举办本次Rus…...

[翻译] 创始人模式(Founder Mode)

Founder Mode 上周在一次YC活动中,Brian Chesky发表了一场在场的每个人都难以忘怀的演讲。会后,我与大多数创始人交流时,他们都表示这是他们听过的最好的演讲。连Ron Conway也第一次忘记了记笔记。我不会试图在这里复述演讲内容,…...

拓扑排序(C++类封装+数组模拟队列和邻接表)

拓扑序列 对于任何无回路的AOV网,其顶点均可排成拓扑序列,并且其拓扑序列未必唯一。步骤如下: 1.从网中选择一个入度为0的顶点且输出。 2.从网中删除该顶点及其所有出边。 3.执行1,2,直至所有顶点已输出&#xff0…...

FP独立站引流革命:GG斗篷技术解锁流量新策略

在跨境电商领域,FP独立站的运营者们面临着一个共同的挑战:如何在遵守平台规则的同时,有效地吸引和保持流量。传统的引流方法如SEM、SEO、邮件推广和社交媒体营销,对于FP独立站来说,往往效果有限。但现在,一…...

管道(Pipes)、过滤器(Filters)和拦截器(Interceptors)

在Java中,管道(Pipes)、过滤器(Filters)和拦截器(Interceptors)是三种不同的概念,它们在应用中的作用和实现方式有所不同。以下是它们之间的主要区别: 一、管道&#xf…...

uniapp组件样式运行至小程序失效

文章目录 一、uniapp样式穿透打包运行至微信小程序失效 一、uniapp样式穿透打包运行至微信小程序失效 组件样式隔离文章参考 解决方案 options: {styleIsolation: "shared",},这个配置项改变了小程序组件的样式隔离模式,使得组件的样式能够共享和继承。…...

认识鸿蒙系统

鸿蒙系统作为华为推出的操作系统,近年来在智能手机、智能穿戴、车载和家居等多个领域取得了显著的发展。其独特的分布式技术、高性能和安全性等特点,使其在与安卓和iOS的竞争中逐渐崭露头角,有望形成三足鼎立之势。 从开发者角度来看&#x…...

Docker Compose部署Rabbitmq(Dockerfile安装延迟队列)

整个工具的代码都在Gitee或者Github地址内 gitee:solomon-parent: 这个项目主要是总结了工作上遇到的问题以及学习一些框架用于整合例如:rabbitMq、reids、Mqtt、S3协议的文件服务器、mongodb github:GitHub - ZeroNing/solomon-parent: 这个项目主要是…...

RexUniNLU镜像免配置:预置中文分词增强模块,提升未登录词与新词识别率

RexUniNLU镜像免配置:预置中文分词增强模块,提升未登录词与新词识别率 1. 什么是RexUniNLU? RexUniNLU是一款基于Siamese-UIE架构的轻量级自然语言理解框架。它最大的特点是零样本学习能力——你不需要准备任何标注数据,只需要定…...

第20篇:扩展卡尔曼滤波器实战精讲

本篇前置知识:掌握基础线性代数、了解状态空间方程、会基础Python编程、熟悉标准卡尔曼滤波原理、接触过工控闭环数据采集。 零基础小白也能跟着吃透,全程避开晦涩纯数学推导,所有知识点绑定机器人、自动驾驶、工控实测场景,代码直…...

SDXL 1.0绘图工坊效果展示:多风格高清作品集,看看AI能画出多惊艳的图片

SDXL 1.0绘图工坊效果展示:多风格高清作品集,看看AI能画出多惊艳的图片 1. 开篇:当AI成为数字艺术家 想象一下,你只需要输入一段文字描述,就能在几秒钟内获得一张细节丰富、风格多样的高清图像——这不是科幻电影&am…...

5步实现消息永久可见:微信QQ防撤回设置完全指南

5步实现消息永久可见:微信QQ防撤回设置完全指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com/GitH…...

如何快速解锁网易云NCM加密音乐:ncmdump完整实战指南

如何快速解锁网易云NCM加密音乐:ncmdump完整实战指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经下载了网易云音乐却发现那些.ncm格式的音乐文件只能在特定软件中播放?ncmdump就是你的数字音乐…...

别再搞混了!CTP API生产版、评测版和SimNow环境,新手避坑指南(附最新v6.7.9配置)

CTP API版本选择与SimNow环境实战指南:从配置误区到高效开发 第一次打开CTP官方文档时,那些密密麻麻的版本号和晦涩的参数说明是否让你感到窒息?作为量化交易的基础设施,CTP API的版本选择和环境配置直接决定了开发效率甚至实盘稳…...

Paperxie AI 毕业论文写作,助力大学生高效搞定初稿

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 在本科毕业季的朋友圈里,总能刷到这样的动态:凌晨三点的台灯下,对着空白文档发…...

科研人高效投稿指南:Paperxie AI 期刊论文写作,让你的成果更快见刊

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/期刊论文https://www.paperxie.cn/ai/journalArticleshttps://www.paperxie.cn/ai/journalArticles 一、开篇:被期刊论文困住的科研人,你不是一个人 做实验时可以通宵达旦&#xff…...

WebPlotDigitizer实战指南:从科研图表中智能提取数据的完整方案

WebPlotDigitizer实战指南:从科研图表中智能提取数据的完整方案 【免费下载链接】WebPlotDigitizer WebPlotDigitizer: 一个基于 Web 的工具,用于从图形图像中提取数值数据,支持 XY、极地、三角图和地图。 项目地址: https://gitcode.com/g…...

普冉PY32F071内存紧张?FreeRTOS配置优化全攻略(含heap_4选择与任务栈设置)

普冉PY32F071内存紧张?FreeRTOS配置优化全攻略(含heap_4选择与任务栈设置) 当你在PY32F071这颗Cortex-M0芯片上运行FreeRTOS时,是否遇到过任务莫名崩溃、系统运行不稳定的情况?作为一款仅有20KB RAM的微控制器&#xf…...