自学1个月拿金奖!北交大学子分享昇腾AI原生创新算子挑战赛金奖之路

news2025/1/19 14:35:41

近年来在人工智能领域,算子开发的价值日益凸显,算子开发也受到越来越多年轻开发者的青睐。对于高校开发者,如何从零开始学习算子开发,提升软硬结合的AI开发能力?成功已举办两个赛季的昇腾AI原生创新算子挑战赛,为开发者提供了绝佳平台。

2024年9月20日,昇腾AI原生创新算子挑战赛(S2赛季)在上海圆满收官。自6月启动以来,凭借百万奖金池、两大赛道赛题设置、全面的赛事赋能资源,S2赛季吸引了来自全国500支参赛队伍、761名开发者报名参赛。

来自北京交通大学计算机科学与技术专业的肖勋鹏同学(Tangefly战队)获得了基础算子开发命题金奖。

仅用1个月时间,肖勋鹏就从一名算子开发小白,一路过关斩将杀入决赛夺得金奖。与很多其他开发者一样,肖勋鹏通过边学边赛、积极实践,走出了一条从零开始学习算子开发的加速成长之路。

基础算子开发命题金奖团队:重生之我在昇腾摸鱼、Tangefly(右2)

从0到1,初尝算子开发的乐趣

算子开发一直是肖勋鹏很感兴趣的领域之一。出于对更底层的计算机体系结构的兴趣,大二时肖勋鹏从原来的软件学院转到了计算机学院。当得知昇腾AI原生创新算子挑战赛S2赛季的消息,他毫不犹豫报了名。

虽然从未接触过算子开发和Ascend C语言,但是通过昇腾官方的Ascend C算子开发教学视频以及API文档,算法基础优秀的肖勋鹏很快掌握了算子开发基础技能。

我认为对于新手来说,学习算子开发最困难的在入门阶段。一方面,对于没有深入学习过计算机体系结构等硬件架构知识的同学,对硬件架构的剖析会比较困难。另一方面,官网的API文档比较难读,需要根据硬件架构去理解它的一些变量特性。”

肖勋鹏突破的方法在于积极动手实践。“在开发板上,我照着官网上的代码一步一步去尝试,去理解代码是怎么跑在底层硬件架构上的。在边学边练的过程中,对昇腾的硬件架构和Ascend C编程特点有了进一步的了解。”

S2赛季,昇腾在赋能赛事资源方面进一步升级。在完善指导文档基础上,还通过直播进行赛制解读、工具分享,并发放云资源券(性能赛道),还有专门的赛事赋能专家团队随时解答开发者的问题。

“在参赛者群里,我们可以随时向赋能比赛的老师提问,他们都是来自华为的工程师。通过他们及时专业的解答,帮助我对硬件方面有了更多的了解。”

边学边赛,畅游算子开发的海洋

昇腾AI原生创新算子挑战赛(S2赛季)采用“线上预赛+线下决赛”的赛制,预赛共10个算子,比赛时间为7月1日-8月31日,肖勋鹏只用了不到一个月时间就完成了预赛。

“为了参赛,我自费购入了一块OrangePi AIpro开发板,大约1200元。预赛刚开始时,我一道题都没有做出来,当时还有点担心本钱都赚不回来。”

不过,挑战正激发了肖勋鹏迎难而上的钻研劲头。“我本身属于比较喜欢克服困难的一个人,初中高时就喜欢做难题。解决挑战确实能带来给我带来比较多的快乐。”

预赛中,肖勋鹏合理规划时间,采取了稳扎稳打的策略:前半段时间先实现算子的基础解法,后半段时间集中精力做性能优化。

S2赛季采用实时榜单,每一次提交作品后,大赛官网都会实时显示参赛者每个算子的成绩明细:几次提交、通过几个用例、耗时多少等等。根据总体实时榜单,参赛者不但可以直观了解自己的成绩与不足,还能合理地制定比赛策略。

“预赛的10个算子各有各的难点,每个算子的实现方法都不一样。Histogram这个算子,有一天晚上我比较有灵感,一直做到凌晨4点,把它AC了。”(每题有5个验收用例,包括4个功能精度用例,1个性能用例,AC是指每题5个验收用例全部通过)

值得一提的是,S2赛季基础算子开发命题的预赛还设置了丰富的单项奖:每个算子都设置了“最佳性能奖”和“最快通过奖”,AC≥3个题还将获得“潜力无限奖”。每个单项奖都可获得奖金1000元,极大鼓舞了开发者参赛的积极性。

“ThreeNN这个算子,初期我只是实现了基础解法。但是一直没有放弃性能优化的可能,差不多是在最后几天才实现了性能最佳的解法。”

最终,肖勋鹏成功AC 5个算子、以预赛第三名的成绩闯入决赛,并拿到了一个“最佳性能奖”和一个“最快通过奖”。

挑战极限,不放弃最后一分钟的机会

9月20日,昇腾AI原生创新算子挑战赛(S2赛季)决赛在华为上海研究院拉开帷幕。与S1赛季不同的是,S2赛季预赛仅为选拔决赛资格,预赛成绩不计入决赛总分。

决赛时间从早9点到晚20点,除了短暂的吃饭时间,开发者们都在争分夺秒展开智力对决。“我们都只吃了午餐,晚餐都没吃。”

决赛我也制定了一个策略,就是尽可能拿到更多的分数。决赛共5个算子,每个算子同样是4个功能样例,1个性能样例。我先拿到功能样例,再优化性能。”

晚上19:30,距离决赛结束只剩半小时,大部分参赛团队都在复盘检查,提交作品的次数越来越少。此时排名第三的肖勋鹏依然没有放弃,他还在跟一个算子死磕,希望找到性能优化的最佳解法。

“在决赛最后10分钟,我才找到了正确的解法,然后花了5分钟把它实现了。当时比较紧张,心跳非常快,但是我还是尽量保持冷静,在最后关头提交了一次。比赛时间截止后,榜单最后刷新了一次,我跑到第二了。”

肖勋鹏认为,此次参赛不仅提升了自己的编程能力和比赛经验,也进一步认识到了自己的不足。同时,有机会与其他团队切磋交流,也让他收获满满。

“算子开发对我是一个全新的领域。从最开始对它一无所知,到能够完成这件对自己比较困难的事,并且取得一些成果,这种进步还是很开心很有成就感的。”

对于想要从零开始学习算子开发的开发者,肖勋鹏的建议是:思考与实践缺一不可。“首先需要去真正的理解它。另一个关键是一定要多多尝试,我们可能有很多想法,但要真正实现算子的精度和性能,都需要去尝试去验证。”

肖勋鹏认为,这次大赛坚定了他接下来进一步学习算子开发的信心,他也愿意推荐更多同学去接触昇腾AI基础软硬件与算子开发。

“目前学校老师带的一些项目,也有与昇腾合作的。虽然还在校园中,也能感受到昇腾生态蓬勃发展的大势所趋。从个人层面,我认为学习算子开发对未来的职业发展也有一定帮助。

结语

在昇腾AI的舞台上,每一位开发者都是主角。

开发者的每一个故事,每一步成长,都共同编织着昇腾的未来。

接下来,面向全体开发者的昇腾AI原生创新算子挑战赛(S3赛季)即将拉开帷幕。感兴趣的开发者可以关注华为计算公众号和昇腾社区官网,加入这场巅峰对决,与全国顶尖高手一决高下。

我们期待更多像肖勋鹏这样的开发者,能够在充满机遇的算子开发海洋中,扬帆起航,追逐属于自己的AI梦想。

END

本文为「智能进化论」原创作品。

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

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

相关文章

IDEA中的快捷键大全--超详细

目录 一、通用类型 1.1 图示 1.2 表格化 二、编写速度提升 2.1 图示 2.1.1 表格化 2.2 图示 2.2.1 表格化: 三、类结构,查找和查看源码 3.1 图示 3.2 表格化 四、查找,替换和关闭 4.1图示 4.2 表格化 五、调整格式 5.1 图示 5.2 表格化 六、快捷键的自主定义…

docker login 命令登录harbor镜像仓库(含报错)

作者:程序那点事儿 日期:2024/02/02 14:10 执行登录命令:docker login -uadmin 192.168.43.106:8880 报错: Error response from daemon: Get "https://192.168.43.106:8880/v2/": http: server gave HTTP response t…

计组-CPU构成(运算器与控制器的组成)

整个计算机,由主机和外设2部分构成 计算机结构中: 主机(这里的主机包含的部分远比我们主机箱里的部件要少):只包括2大部件,一个是CPU,一个是主存储器(即我们平时说的内存&#xff…

专题1:方向导数与梯度

一、回忆偏导数 多元函数(比如有x、y两个变量)在某个点有两个偏导数,一个是关于x的偏导数,一个是关于y的偏导数。如下所示: 所谓偏导数,其实就是某点处函数在x的正方向或y的正方向上的变化率。从图像上来看…

JavaSE--全盘拿下数组的关键要领

嗨嗨大家~我来啦!今天我们来进入数组的学习吧。 目录 一 数组的定义 1 创建数组 2 初始化数组 二 数组的使用 1 数组的访问 2 数组的遍历 2.1 for 循环打印 2.2 for-each 打印数组 三 数组是引用类型 3.1 JVM内存分布 3.2 区分基本类型与引用类型变…

线程相关知识点

一、线程 1.1 线程的概念 线程是轻量级的进程。 进程是分配资源的最小单位,线程是调度的最小单位。 线程不会单独分配内存空间,线程共用进程的资源。 线程之间通信比较方便,但是不安全。 多线程没有多进程安全。 多线程效率比较高。线程创建…

嵌入式学习-I/O-Day01

嵌入式学习-I/O-Day01 IO介绍 IO分类 文件IO 标准IO 标准IO的调用逻辑 标准IO缓存机制 标准IO的特点 * 流 定义 流的分类 流指针FILE * 缓存区的分类 * 全缓存—》基于文件 行缓存-》基于终端stdin/stdout 不缓存:stderr 标准IO的函数接口 ​​​​…

小白都来用这款AI绘画神器,IDEOGRAM2.0,轻松画出高质量图片

大家好!我是宇航,一位喜欢AI绘画的10年技术专家,专注于输出AI绘画与视频内容 今天给大家介绍一款绝对的生图神器——Ideogram2.0! 不论你是AI小白,手残党还是资深玩家,无论你是做网页设计,电商&#xff0c…

React路由 基本使用 嵌套路由 动态路由 获取路由参数 异步路由 根据配置文件来生成路由

文章目录 React-router的三个版本react-router使用嵌套路由动态路由 获取路由参数Params参数Query参数Location信息 控制跳转地址异步路由根据配置文件生成路由 React-router的三个版本 React-router 服务端渲染使用React-router-dom 浏览器端渲染使用React-router-native Rea…

【STM32CubeMX开发】-2.2-TIM_输出一个PWM信号

目录 1 Tim定时器的时钟源 2 Tim定时器的配置 2.1 PWM配置 2.2 中断配置 3 生成代码 4 测试结果 结尾 1 Tim定时器的时钟源 TIM3的时钟来源自APB1 Timer clocks,时钟树上所有总线频率均设置为了STM32F0能达到的最高频率,此时APB1 Timer clocks …

【CTF Web】Pikachu ../../ Writeup(路径遍历)

目录遍历漏洞概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件。 在这个过程中&a…

Diffusion model原理:李宏毅篇(1)

本文是对李宏毅老师相关视频的记录。视频连接:Diffusion Model数学原理(一) 1. 基本概念 slide注释有一个加噪的扩散过程和一个去噪生成图像的过程VAE与Diffusion model有类似的地方。Diffusion model加噪的过程可以看成是VAE的encoder,去噪的过程看成是VAE的decoder2. DD…

【Linux】信号(初版)

信号概念 信号是进程之间发送异步信息的一种方式 在Linux命令行中,我们可以通过ctrl c来终止一个前台运行的进程,其实这就是一个发送信号的行为。我们按下ctrl c是在shell进程中,而被终止的进程,是在前台运行的另外一个进程。…

[2024领航杯] Pwn方向题解 babyheap

[2024领航杯] Pwn方向题解 babyheap 前言: 当然这个比赛我没有参加,是江苏省的一个比赛,附件是XiDP师傅在比赛结束之后发给我的,最近事情有点多,当时搁置了一天,昨天下午想起来这个事情,才开始…

C++容器适配器1-基本使用(stack、queue)

###适配器意思是可以将一种不能用于某种场景的东西经过特殊转换,包装成一个新东西,这个新定西可以用于这个场景,并且还具有之前旧东西的功能作用; stack、queue就是C里面的容器适配器,这两个适配器堆vector和list两个…

前端进阶之路:推荐几本不可错过的前端开发书籍

前端开发是一个不断更新换代的领域,作为一名前端工程师,持续学习和提升自己是至关重要的。阅读专业书籍是系统学习前端知识的一种有效方式。以下是一些前端开发者不可错过的书籍推荐,帮助你巩固基础,拓宽视野,成为更优…

【进阶OpenCV】 (13)--视频物体跟踪

文章目录 物体跟踪一、跟踪器二、代码实现1. 创建CSRT跟踪器实例2. 打开视频文件3. 主循环3.1 读取每一帧3.2 设置跟踪目标3.3 更新跟踪器,获取对象位置3.4 显示视频每一帧 4. 释放资源和关闭窗口5. 完整代码展示 总结 物体跟踪 本篇我们来介绍,如何对移…

Nvidia Jetson Orin平台部署CenterPoint模型

最近尝试将CenterPoint模型部署到Orin平台,网络上教程很多,也很杂乱,于是便整理一版自用。 主要根据NVIDIA Lidar AI Solution进行复现。并在此基础上进行补充 Orin平台: python:3.8 CUDA:11.4 torch:1.14.0 torchvision:0.15.1 TensorRT: 8.5.2.1 在Compile &&a…

第十九篇——复盘:数学给了我什么启示?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 数学带给这个世界什么?数学在我们的人生路上意味着什么&#…

Arthas 介绍,阿里开源线上JVM性能监控工具

1.官网 https://arthas.aliyun.com/ arthas (aliyun.com) Arthas 是一款由阿里巴巴开发并开源的 Java 应用诊断工具,主要用于帮助开发人员实时监控、诊断和调优 Java 应用程序。这款工具对于处理复杂的生产环境问题特别有效,尤其在定位那些难以复现的…