【GCU体验】基于PyTorch + GCU跑通ResNet50模型并测试GCU性能

news2024/10/6 8:35:55

一、环境

地址:启智社区:https://openi.pcl.ac.cn/

二、计算卡介绍

在这里插入图片描述
云燧T20是基于邃思2.0芯片打造的面向数据中心的第二代人工智能训练加速卡,具有模型覆盖面广、性能强、软件生态开放等特点,可支持多种人工智能训练场景。同时具备灵活的可扩展性,提供业界领先的人工智能算力集群方案。

优势特点

  • 澎湃算力 高精训练
  • 专属通道 算力扩展
  • 广泛支持 生态友好
  • 工具开放 高效开发

三、代码仓

https://openi.pcl.ac.cn/Enflame/GCU_Pytorch1.10.0_Example

四、模型+数据集

Resnet+imagenet_raw

五、运行结果

单卡单Epoch

    "model": "resnet50",
    "local_rank": 0,
    "batch_size": 256,
    "epochs": 1,
    "training_step_per_epoch": -1,
    "eval_step_per_epoch": -1,
    "acc1": 6.467013835906982,
    "acc5": 20.52951431274414,
    "device": "dtu",
    "skip_steps": 2,
    "train_fps_mean": 706.7805865954374,
    "train_fps_min": 668.1171056579481,
    "train_fps_max": 755.529550208285,
    "training_time": "0:12:27"

fps_mean:706.78
acc1:6.47
运行时间:12分27秒

8卡单Epoch

    "model": "resnet50",
    "local_rank": 5,
    "batch_size": 256,
    "epochs": 1,
    "training_step_per_epoch": -1,
    "eval_step_per_epoch": -1,
    "acc1": 3.02734375,
    "acc5": 12.5,
    "device": "dtu",
    "skip_steps": 2,
    "train_fps_mean": 704.4055937610347,
    "train_fps_min": 702.2026238348252,
    "train_fps_max": 706.744240295003,
    "training_time": "0:07:04"

fps_mean:704.41
acc1:3.03
运行时间:7分04秒
8卡线性度:99.72%

单卡100Epoch

    "model": "resnet50",
    "local_rank": 0,
    "batch_size": 64,
    "epochs": 100,
    "training_step_per_epoch": -1,
    "eval_step_per_epoch": -1,
    "acc1": 87.13941955566406,
    "acc5": 97.31570434570312,
    "device": "dtu",
    "skip_steps": 2,
    "train_fps_mean": 488.19604076742735,
    "train_fps_min": 249.3976374646114,
    "train_fps_max": 568.624496005538,
    "training_time": "4:45:13"

fps_mean:488.19604076742735
acc1:87.14
运行时间:4小时45分钟13秒

8卡100Epochs

    "model": "resnet50",
    "local_rank": 0,
    "batch_size": 64,
    "epochs": 100,
    "training_step_per_epoch": -1,
    "eval_step_per_epoch": -1,
    "acc1": 82.2265625,
    "acc5": 96.875,
    "device": "dtu",
    "skip_steps": 2,
    "train_fps_mean": 481.25022732778297,
    "train_fps_min": 267.4726081053424,
    "train_fps_max": 509.6326762775301,
    "training_time": "1:18:22"

fps_mean:481.25
acc1:82.22
运行时间:1小时18分22秒
线性度:98.58%

六、代码迁移示例

https://openi.pcl.ac.cn/OpenIOSSG/MNIST_PytorchExample_GCU/src/branch/master/train_for_c2net.py

七、心得建议

心得
通过查阅代码示例很快就可以掌握从CPU/GPU迁移代码到GCU上运行的方法。除了运行燧原科技提供的代码外,在前阵子学习李沐老师d2l pytorch代码的时候自己也尝试过迁移到gcu上运行,总体来说大部分都可以顺利迁移,此外有时候自己以前跑过的一些基于torch的notebook代码有些根据示例修改成gcu运行也能成功跑起来。
唯一遇到的问题就是有时候运行会出现一长串在编译的运行提示,不知道这是什么情况,而且这类情况通常运行时间会比GPU要久一点,也许可能是代码哪里不对,后期在看看,这类情况遇到的不多。
对于GCU的运行速度总体感觉还是可以的,根据README运行DEMO代码也非常方便。

建议

  1. 使用GCU总体感觉速度还是蛮快的,后期准备有时间做一下和CPU以及GPU平台的速度精度对比看看。
  2. 现在的脚本训练没有过程输出,可以通过修改py文件添加log输出,但是个人建议如果能有个教程指导初学者如何去添加log输出的代码示例会更好,初学者不一定知道如何去修改
  3. GCU平台有没有可能在未来支持更多的框架,例如tensorflow,mindspore等等
  4. 唯一不方便的就是demo代码如果需要修改超参必须找到对应的sh脚本文件修改,如果能够实现创建任务的时候直接修改超参的话感觉会方便一点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/424717.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win10 64位 环境下安装CUDA 11.8和 cuDNN v8.6.0

win10 64位 环境下安装CUDA 11.8和 cuDNN v8.6.0 1 安装 NVIDIA 显卡驱动程序 下载地址:http://www.nvidia.cn/Download/index.aspx?langcn ​​​​​​ 下载文件:531.41-desktop-win10-win11-64bit-international-nsd-dch-whql 选择适合自己电脑的显…

DeepFM论文翻译

1.摘要 为了最大化推荐系统的CTR,学习用户行为的复杂交叉特征很关键。 尽管有很大进步,现有的方法无论对低阶还是高阶的交叉特征,似乎还是有很强的bias, 或者需要专门的特征工程。 本文,我们证明了得出一个能强化高阶和低阶交叉特…

前端实现自动化测试

什么是前端测试 我们经常说的单元测试其实只是前端测试的一种。前端测试分为单元测试,UI 测试,集成测试和端到端测试。 ● 单元测试:是指对软件中的最小可测试单元进行检查和验证,通常指的是独立测试单个函数。 ● UI 测试&#…

2023美赛Y题二手帆船价格--成品论文、思路、数据、代码

2023美赛Y题二手帆船价格 第一时间在CSDN分享 最新进度在文章最下方卡片,加入获取一手资源:2023美赛Y题二手帆船价格–成品论文、思路、数据、代码 可以提供关于帆船特性的信息: BoatTrader (https://www.boattrader.com/):一个网站,允许您根…

WindowsGUI自动化测试项目实战+辛酸过程+经验分享

WindowsGUI自动化测试项目实战辛酸过程经验分享一、前言⚜ 起因⚜ 项目要求⚜ 预研过程⚜⚜ 框架选型⚜⚜ 关于UIaotumation框架⚜ 预研成果二、项目介绍💓 测试对象💓 技术栈💓 项目框架说明三、项目展示🤣 界面实现效果&#x1…

【深度学习】windows10环境配置详细教程

【深度学习】windows10环境配置详细教程 文章目录【深度学习】windows10环境配置详细教程Anaconda31.安装Anaconda32.卸载Anaconda33.修改Anaconda3安装虚拟环境的默认位置安装cuda/cudnn1.安装合适的CUDA2.安装对应的CUDNN3.卸载CUDA/CUDNNconda虚拟环境独立安装cuda/cudnn1.搭…

随想录Day55--动态规划: 392.判断子序列 , 115.不同的子序列

392.判断子序列 思路 (这道题也可以用双指针的思路来实现,时间复杂度也是O(n)) 动态规划五部曲分析如下: 1.确定dp数组(dp table)以及下标的含义 dp[i][j] 表示以下标i-1为结尾的字符串s,和…

基线配置管理在网络中的重要性

在网络环境中,配置通常被认为具有不可估量的价值,因为设备配置的微小变化可以在几分钟内成就或破坏整个网络基础设施。 这些配置分为两部分:启动配置和运行配置。在网络设备中,默认情况下,第一个配置版本被视为运行和…

el-input-number的精度问题

前言 el-input-number 饿了么的数字输入框组件,在项目中听常用的。而这个组件比较常用的属性就是精度设置,给组件添加属性precision 。 其实吧,之前一直没怎么研究,保留几位小数就直接填几就好了,比如保留两位小数&am…

4.mysql内置函数

目录 日期函数 字符串函数 数学函数 其它函数 日期函数 获得当前年月日:

<点云>Bin-picking数据集

题目:工业料仓拣选的大规模6D物体姿态估计数据集 Abstract 介绍了一种新的公共数据集,用于6D对象姿态估计和用于工业bin-picking的实例分割。数据集包括合成场景和真实场景。对于这两者,提供了包括6D姿势 (位置和方向) 的点云、深度图像和注…

【华为机试真题详解JAVA实现】—从单向链表中删除指定值的节点

目录 一、题目描述 二、解题代码 一、题目描述 输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。 链表的值不能重复。 构造过程,例如输入一行数据为: 6 2 1 2 3 2 5 1 4 5 7 2 2 则第一个参数6表示输入总共6个节点,…

C++基础语法(内存管理)

我们在学习C语言的时候,可以在栈区中使用内存空间,但栈区的空间毕竟很有限而且随着栈的销毁,该栈里的数据都会被销毁掉。因此我们学习了堆,堆的空间比栈要大很多很多,并且堆区空间的数据,只要我们不主动释放…

STM32 学习笔记_2 下载,GPIO 介绍

下载 Keil 编译例程 编译两个按钮,一个向下是部分编译,两个向下箭头是全部编译。对于未编译文件两个按钮等效。 点击编译后,linking 是链接,结果里面的几个数据的意义代表大小: 数据类型占用Flash or SRAM说明Code…

测试:腾讯云3年轻量2核4G5M服务器CPU内存带宽流量系统盘性能

2核4G云服务器可以选择腾讯云轻量应用服务器,自带5M公网带宽,5M带宽下载速度峰值可达640KB/秒,系统盘为60GB SSD盘,每月500GB流量包,折合每天16GB流量,2核4G5M轻量服务器一年168、198元15个月、三年628元&a…

从存算分离说起:金融行业数据库分布式改造之路

从上世纪90年代正式起步至今,中国数据库发展已走过近30年岁月。以2000年前后为拐点,以MySQL为首的开源数据库,在互联网厂商的推动下,逐步进入生产业务;而为了使单实例能力平庸的MySQL能够满足高性能要求,互…

Vulnhub:Digitalworld.local (JOY)靶机

kali:192.168.111.111 靶机:192.168.111.130 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --scripthttp-enum 192.168.111.130 使用enum4linux枚举目标smb服务,发现两个系统用户 enum4linux -a 192.168.111.130 ftp可以匿名登陆&#xff…

基于CH32F203利用TIM1 同时输出4通道固定PWM占空比波形

基于CH32F203利用TIM1 同时输出4通道固定PWM占空比波形📌相关篇《关于CH32F203程序下载方式说明》📍有关CH32F203资料手册以及SDK资料:https://www.wch.cn/products/CH32F103.html🌴《树莓派RP2040 100M 24通道逻辑分析仪开源项目…

相关系数python实现

皮尔逊相关系数的python实现一、相关系数公式二、python实现法1:直接按公式算法2:调用numpy中的corrcoef方法法3:调用scipy.stats中的pearsonr方法法4:调用pandas.Dataframe中的corr方法一、相关系数公式 R的值在-1和1之间&#…

AJAX | 拦截器、文件上传和下载

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! AJAX Ajax即Asynchronous Javascript And XML(异步JavaScript和XML);Ajax技术网页应用能够快速地将增量更新呈现在用户界面上&…