【2023·CANN训练营第一季】昇腾AI入门课(PyTorch)学习笔记
在对CANN和昇腾有了一个基础的了解认知后,下面我们就来学习了解一下PyTorch和AscendCL的相关知识。
PyTorch
它是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。
高级功能:
1.具有强大的GPU加速的张量计算(如Numpy);
2.包含自动求导系统的深度神经网络。
优点:
1.支持GPU;
2.灵活,支持动态神经网络;
3.底层代码易于理解;
4.命令式体验;
5.自定义扩展。
PyTorch适配昇腾AI处理器方案
选择在线对接适配方案原因有以下几点:
* 最大限度继承PyTorch框架动态图
*最大限度继承GPU在PyTorch上的使用方式
*最大限度继承PyTorch原生的体系结构
*扩展性好,对于新增网络类型或结构,只需涉及相关计算类算子的开发和实现
*指定device为昇腾AI处理器
PyTorch模型迁移
三种方式:
自动迁移,训练脚本引入库代码;
工具迁移,使用脚本转换工具(msFmkTransplt)
手工迁移,迁移前的准备修改相关原始代码,单卡模型迁移,多卡模型迁移,Extra报错排查。
AscendCL基本功能
运行资源管理:指定硬件资源,创建管理对象容器,创建维护执行顺序的Stream。
内存管理:申请各阶段数据的内存,释放内存,通过内存拷贝实现数据传输。
三大关键功能:
图形图像预处理(视频图像编解码,图片抠图、缩放等)
深度学习推理计算(模型加载,执行)
单算子加速计算(单算子加载,执行)
AscendCL推理应用的开发流程
1. 准备环境
2. 创建代码目录
3. 构建模型(将训练好的模型转换昇腾AI处理器识别的*.om模型文件)
4. 开发应用(AscendCL初始化,运行管理资源申请,运行管理资源释放,AscendCL去初始化)
5. 编译及运行应用(具备数据,离线模型、源码和CMake文件)
开发关键功能主要有以下三点:
1. 图形图像预处理
2. 模型推理计算
3. 单算子加速计算
温馨提示
文章内容如果写的存在问题欢迎留言指出,让我们共同交流,共同探讨,共同进步~~~
文章如果对你有帮助,动动你的小手点个赞,鼓励一下,给我前行的动力。
- 点赞
- 收藏
- 关注作者
评论(0)