边学边赛拿冠军!北邮学子勇夺昇腾AI原生创新算子挑战赛金奖

news2024/10/6 6:30:53

导读

如何从零开始学习算子开发?昇腾AI原生创新算子挑战赛冠军“法宝”大揭秘。

“0xCCCCCCCC团队夺冠!”

2024年5月9日,在首届昇腾AI原生创新算子挑战赛S1赛季决赛现场,来自北京邮电大学0xCCCCCCCC团队的孙明志和梁昊骞以总分第一的成绩夺得冠军,并赢得了5万元奖金。

每年,昇腾AI都会针对高校开发者举办各种类型的开发者大赛。2024年发布的昇腾AI原生创新算子挑战赛是昇腾AI创新大赛的全新子赛事,该赛事旨在培养一批精通Ascend C算子开发的开发者,鼓励开发者基于CANN的基础能力进行深度创新与实践,加速AI与行业融合,促进开发者能力提升。

Ascend C是CANN针对算子开发场景推出的编程语言,原生支持C和C++标准规范,最大化匹配用户开发习惯。通过多层接口抽象、自动并行计算、孪生调试等关键技术,助力AI开发者低成本完成算子开发和模型调优部署。

孙明志和梁昊骞目前是北邮计算机学院研究生二年级的学生。初赛时,他们仅用一周时间就以总分第一的成绩从数百支参赛队伍中脱颖而出。决赛时,又以满分的成绩提前锁定冠军。

然而,仅仅2个月前在报名大赛时,孙明志和梁昊骞还从来没有接触过Ascend C编程语言和算子开发。这么短的时间内,团队是如何从零开始学习算子开发,并夺得全国总决赛冠军的?如果非要说这支冠军团队有什么秘籍,优秀的算法基础和“边学边赛”就是两位同学的法宝。

北京邮电大学0xCCCCCCCC团队

从零开始,边学边赛渐入佳境

在实践中解决问题,是最好的学习方式。孙明志和梁昊骞自身的参赛经历,也是“以赛促学”的榜样。

孙明志和梁昊骞都是典型的计算机学霸成长路径。他们小学时就自学编程,初高中时已经在全国信息学竞赛中崭露头角。2018年考入北京邮电大学后,对程序设计大赛的热情让他们走到了一起,成为配合默契的参赛队友。

“我们都比较喜欢也比较擅长打比赛。队名是来致敬C++中的undefined behavior。”从极具极客元素的队名,就能看出两位同学对编程的热爱。

本科期间,0xCCCCCCCC团队在国际大学生程序设计竞赛(ICPC)亚洲区域赛及中国大学生程序设计竞赛(CCPC)分站赛中共获得8次金奖,6次银奖,是目前北邮最强ACM战队。研究生期间,团队多次参加华为举办的各类大赛,先后获得2023 华为嵌入式软件大赛算法组总决赛冠军、2023 华为算法大赛算法未来之星等荣誉。(0xCCCCCCCC团队由孙明志、梁昊骞、林麒三名同学组成,孙明志和梁昊骞参加了首届昇腾AI原生创新算子挑战赛S1赛季)

虽然拿过很多算法大赛的冠军,但在算子开发领域,孙明志、梁昊骞还是小白。“之前我们打的竞赛都全是算法类的,想换一种类型的竞赛试试,挑战一下之前完全没有接触过的领域。”孙明志表示。

昇腾AI开发者 孙明志

首届昇腾AI原生创新算子挑战赛采用初赛+决赛的赛制。初赛为线上比赛,共12道题目,难度循序渐进。决赛是线下比赛,共2道题目。初赛+决赛总分最高者为冠军。

组委会给定的初赛时间是1个半月,学业紧张的孙明志、梁昊骞直到最后一周才开始学习课程、做初赛题目。两人采用每人每天一道算子的分工,遇到难题就互相讨论,一举拿下初赛总分最高的成绩。

这背后,昇腾社区《Ascend C算子开发》(入门-进阶-高级)等一系列视频课程,提供了很好的入门教材。即使完全没有接触过算子开发的开发者,也可以轻松入门。

“进阶课程还有考试题目,动手实现Sinh算子,只要这个考试过关就算入门了。”孙明志和梁昊骞都是仅用一天时间就完成了入门、进阶课程的学习,并完成了Sinh算子开发。当然,团队的飞速成长也离不开两位同学优秀的算法基础。

“算子优化的过程比较考验对计算机底层的理解,以及算法优化经验。如果C++编程不够熟练,学起来会非常吃力。我们之前的算法基础比较好,两个人也花了挺长时间一起交流才得到满分,还是有一定挑战的。“ 孙明志表示。

勇夺冠军,在实战中加速成长

接下来,从入门到进阶,昇腾社区的官方文档和代码仓库既是进阶学习资料,也可以具体指导算子开发。

“入门之后,阅读文档非常重要。初赛每一道题都会接触到不同的函数,对照函数去看文档,就会越来越熟。如果最后一天去做第一天的题我们可能只要两小时就能写完了。“梁昊骞表示。

“对于初学者,代码仓库也是非常好的学习资料。里面有很多从简单到难的各种算子,一下子就能明白整个过程。初赛最后做InstanceNorm算子优化时,我们也是参考了仓库里的代码。“孙明志表示。

就这样,孙明志和梁昊骞凭借一步步自学+动手实践,顺利打入决赛,与来自全国各地其他9支开发者团队齐聚北京,展开巅峰对决。决赛既是对团队整体算子优化能力的大考,也考验着团队配合与临场发挥。

“非常享受和高手在一起打比赛的过程。”“比赛整体体验还是挺不错的。我打比赛有点上瘾的感觉,所以整个过程都算比较兴奋的状态。”对于孙明志和梁昊骞,线下竞赛恰恰是他们的优势。

昇腾AI开发者 梁昊骞

决赛中,0xCCCCCCCC团队一度被第二名追到只差2分,但凭借沉稳的心态和丰富的比赛经验,团队对算子进一步调优,终于获得了满分。两位同学认为,在荣誉和奖金之外,能够学习全新的算子开发能力是参赛最有成就感的事。

“这次大赛最吸引人的地方是从理论到实践。算子竞赛就是一个真真实实的实践过程。之前自己只会调用算子也就是‘调包侠’,只知道这个东西怎么用,不知道它的原理。对算子开发原理有了更深入的理解后,未来的开发会站在更高的层次,考虑更多底层的问题,这对于自己能力和视野的拓展都非常有帮助。”孙明志表示。

“ Ascend C算子开发主要用来加速AI大模型训练和推理,未来将会有非常广的应用前景。现在AI大模型参数规模越来越大,对加速计算的需求一定会越来越高的。在底层流水线上即使只是优化加速一点,在大模型高频训练迭代时带来的效率提升一定非常可观。”梁昊骞表示。

值得一提的是,目前昇腾AI原生创新算子挑战赛(S1赛季)的作品都已在昇腾社区开源开放,供更多开发者学习交流。

寄语学子:不断挑战,积极拥抱AI新技术

目前,昇腾AI已经与360多家高校院所合作,每年培养超过5万名专业AI人才,昇腾开发者突破300万人。

在孙明志和梁昊骞的身边,接触过或对昇腾感兴趣的同学也越来越多。梁昊骞此前曾在一个项目中接触过昇腾AI基础软硬件,他认为昇腾的表现超出预期。

“第一次接触到昇腾设备的时候,我觉得算力能力已经超出预期了。当时项目对时延的要求是70毫秒,最后借助昇腾设备已经优化到40毫秒,完全没有想到能做到这种程度。我觉得大家可以积极尝试一下昇腾。”梁昊骞表示。

随着昇腾AI生态的不断完善,以昇腾AI创新大赛、昇腾AI原生创新算子挑战赛为代表的赛事,也给了更多高校开发者更大的舞台。越来越多年轻开发者在一次次备战大赛中,不断挑战自我,用算法解决真实世界的难题。

“打比赛最有成就感的,就是当自己的算法具备碾压性优势、或者与别的高手旗鼓相当时,感觉自己的努力都是值得的。通过比赛,学到了很多一般书籍或课程都学不到的东西,而且把过程中锻炼的开发能力变成了自己的看家本领。”孙明志表示。

结语

通过以赛促学、边学边赛,孙明志和梁昊骞将自身对编程的热爱变成了实实在在的本领,也找到了最适合自己的成长之路。

目前,昇腾AI原生创新算子挑战赛(S2赛季)已经启动报名(报名截止时间:2024年8月31日),奖金池达到百万元,已经有全国各地高校的数十个团队报名参赛。

如果你有一定的算法开发基础,又对更底层的算子开发感兴趣,不妨加入昇腾AI原生创新算子挑战赛。在昇腾社区,来自全国的高校开发者将与你一起,解锁更多AI新技能!

END

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

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

相关文章

基于IDEA的Maven(坐标信息介绍和编写)

这篇博客来学习和分析一下: " pom.xml " 所生成的最基本的信息。 之前的博客中讲到,学 Maven 就是学 " pom.xml " 的配置。后面也会围绕这个文件进行学习。 目录 一、分析 pom.xml 文件 (1)分析的 "p…

如何设置文件夹密码?文件夹加密如何操作!分享4款安全加密软件!

在数字化时代,数据安全显得尤为重要。设置文件夹密码和加密操作是保护个人或企业数据不被非法访问的有效手段。本文将为您详细介绍如何设置文件夹密码和加密操作,并分享四款安全加密软件,助您轻松提升数据安全防护能力。 一、如何设置文件夹/…

css布局之flex应用

/*父 100*/.parent-div {/* 这里添加你想要的属性 */display: flex;flex-direction: row; //行justify-content: space-between; //左右对齐align-items: center;flex-wrap: wrap; //换行}/*中 90 10 */.middle-div {/* 这里添加你想要的属性 */display: flex;flex-direction:…

揭开AI大模型的神秘面纱:一文看懂GPT-4的核心技术

近年来,人工智能(AI)技术迅猛发展,特别是AI大模型的崛起,给人们的生活和工作带来了深远的影响。作为其中的佼佼者,GPT-4备受瞩目。那么,GPT-4的核心技术究竟是什么?它是如何运作的&a…

YOLOv10改进 | 主干篇 | YOLOv10引入华为VanillaNet替换Backbone

1. VanillaNet介绍 1.1 摘要: 基础模型的核心是“越多越好”的理念,计算机视觉和自然语言处理领域取得的惊人成功就是例证。 然而,优化的挑战和变压器模型固有的复杂性要求范式向简单性转变。 在这项研究中,我们介绍了 VanillaNet,一种设计优雅的神经网络架构。 通过避免…

ChatGPT 提示词技巧一本速通

目录 一、基本术语 二、提示词设计的基本原则 三、书写技巧 2.1 赋予角色 2.2 使用分隔符 2.2 结构化输出 2.3 指定步骤 2.4 提供示例 2.5 指定长度 2.6 使用或引用参考文本 2.7 提示模型进行自我判断 2.8 思考问题的解决过程 ​编辑 2.10 询问是否有遗漏 2.11 …

快速使用OpenVINO的 Anomalib实现训练和推理

快速使用OpenVINO的 Anomalib实现训练和推理 代码运行的结果截图 代码 import os from pathlib import Path from anomalib.data import MVTec from anomalib import TaskType from anomalib.deploy import ExportType, OpenVINOInferencer from anomalib.engine import Engine…

【第19章】Vue实战篇之主页面

文章目录 前言一、代码1. 主界面代码2. App.vue 二、展示总结 前言 登录完成之后&#xff0c;应该自动跳转到主页面&#xff0c;接下来我们搭建主界面。 一、代码 1. 主界面代码 <script setup> import {Management,Promotion,UserFilled,User,Crop,EditPen,SwitchBut…

IPV6配置一

1、接口配置 IPV6 的单播地址&#xff1b; 1)link-local (1)rl(config)#interface fastEthernet 0/0 rl(config-if)#ipv6 enable (2)手工或自动配置一个IPV6的AGUA&#xff0c;均会生成一个 link-local地址&#xff1b;但无论配置多少个AGUA地址&#xff0c;也只能生产一个link…

AIDL入门学习一

2.1.1、创建 .aidl 文件 // IImoocAidl.aidl package com.test.server; // Declare any non-default types here with import statements interface IImoocAidl { // 计算两个数的和 int add(int num1,int num2); } 然后make project&#xff0c;会生成IImoocAidl.java…

机器学习_SVM支持向量机

引入&#xff1a;在面对线性可分时&#xff0c;即用一条直线就可以区分数据的时候&#xff0c;需要将直线放在距离数据点距离最大化的位置&#xff0c;这个过程需要寻找最大间隔&#xff0c;即为最优化问题。当数据点不能用一根直线区分——线性不可分&#xff0c;就需要用核函…

网页发起 http 请求的全过程详解图

原文地址&#xff1a;https://dev.to/gallau/lifecycle-of-a-url-request-2gan

JDK中线程池(juc编程)

2.3 JDK中线程池 2.3.1 Executors JDK对线程池也进行了相关的实现&#xff0c;在真实企业开发中我们也很少去自定义线程池&#xff0c;而是使用JDK中自带的线程池。 我们可以使用Executors中所提供的静态方法来创建线程池。 获取线程池的方法&#xff1a; //通过不同的方法…

进阶必看,3种灵活操作PyTorch张量的高级方法

大家好&#xff0c;在PyTorch中进行高级张量操作时&#xff0c;开发者经常面临这样的问题&#xff0c;如何根据一个索引张量从另一个张量中选取元素。 例如有一个包含数千个特征的大规模数据集&#xff0c;需要根据特定的索引模式快速提取信息。本文将介绍三种索引选择方法来解…

java基础概念-数据类型-笔记-标识符-键盘录入

数据类型 分为两种&#xff1a;基本数据类型&#xff0c;引用数据类型 基本数据类型&#xff1a; 注意如果定义long类型变量&#xff0c;需要加L做后缀 long n9999999999L float f10.1F FL大小写都可以 练习 实例&#xff1a; 输出个人信息&#xff1a; public class text…

Danikor智能拧紧轴控制器过压维修知识

【丹尼克尔拧紧轴控制器故障代码维修】 【丹尼克尔Danikor控制器维修具体细节】 丹尼克尔拧紧轴控制器作为一种高精度的电动拧紧工具&#xff0c;广泛应用于各种工业生产线。然而&#xff0c;在使用过程中&#xff0c;由于各种原因&#xff0c;可能会出现Danikor扭矩扳手控制…

Graph RAG 的力量:智能搜索的未来

随着世界越来越依赖数据&#xff0c;对准确、高效的搜索技术的需求从未如此高涨。传统搜索引擎虽然功能强大&#xff0c;但往往难以满足用户复杂而细微的需求&#xff0c;尤其是在处理长尾查询或专业领域时。Graph RAG&#xff08;检索增强生成&#xff09;正是在这种情况下应运…

MBR60200PT-ASEMI逆变箱专用MBR60200PT

编辑&#xff1a;ll MBR60200PT-ASEMI逆变箱专用MBR60200PT 型号&#xff1a;MBR60200PT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;60A 最大循环峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;200V…