近年來在人工智能領(lǐng)域,算子開發(fā)的價值日益凸顯,算子開發(fā)也受到越來越多年輕開發(fā)者的青睞。對于高校開發(fā)者,如何從零開始學(xué)習(xí)算子開發(fā),提升軟硬結(jié)合的AI開發(fā)能力?成功已舉辦兩個賽季的昇騰AI原生創(chuàng)新算子挑戰(zhàn)賽,為開發(fā)者提供了絕佳平臺。
2024年9月20日,昇騰AI原生創(chuàng)新算子挑戰(zhàn)賽(S2賽季)在上海圓滿收官。自6月啟動以來,憑借百萬獎金池、兩大賽道賽題設(shè)置、全面的賽事賦能資源,S2賽季吸引了來自全國500支參賽隊伍、761名開發(fā)者報名參賽。
來自北京交通大學(xué)計算機(jī)科學(xué)與技術(shù)專業(yè)的肖勛鵬同學(xué)(Tangefly戰(zhàn)隊)獲得了基礎(chǔ)算子開發(fā)命題金獎。
僅用1個月時間,肖勛鵬就從一名算子開發(fā)小白,一路過關(guān)斬將殺入決賽奪得金獎。與很多其他開發(fā)者一樣,肖勛鵬通過邊學(xué)邊賽、積極實踐,走出了一條從零開始學(xué)習(xí)算子開發(fā)的加速成長之路。
基礎(chǔ)算子開發(fā)命題金獎團(tuán)隊:重生之我在昇騰摸魚、Tangefly(右2)
從0到1,初嘗算子開發(fā)的樂趣
算子開發(fā)一直是肖勛鵬很感興趣的領(lǐng)域之一。出于對更底層的計算機(jī)體系結(jié)構(gòu)的興趣,大二時肖勛鵬從原來的軟件學(xué)院轉(zhuǎn)到了計算機(jī)學(xué)院。當(dāng)?shù)弥獣N騰AI原生創(chuàng)新算子挑戰(zhàn)賽S2賽季的消息,他毫不猶豫報了名。
雖然從未接觸過算子開發(fā)和Ascend C語言,但是通過昇騰官方的Ascend C算子開發(fā)教學(xué)視頻以及API文檔,算法基礎(chǔ)優(yōu)秀的肖勛鵬很快掌握了算子開發(fā)基礎(chǔ)技能。
“我認(rèn)為對于新手來說,學(xué)習(xí)算子開發(fā)最困難的在入門階段。一方面,對于沒有深入學(xué)習(xí)過計算機(jī)體系結(jié)構(gòu)等硬件架構(gòu)知識的同學(xué),對硬件架構(gòu)的剖析會比較困難。另一方面,官網(wǎng)的API文檔比較難讀,需要根據(jù)硬件架構(gòu)去理解它的一些變量特性?!?/p>
肖勛鵬突破的方法在于積極動手實踐?!霸陂_發(fā)板上,我照著官網(wǎng)上的代碼一步一步去嘗試,去理解代碼是怎么跑在底層硬件架構(gòu)上的。在邊學(xué)邊練的過程中,對昇騰的硬件架構(gòu)和Ascend C編程特點有了進(jìn)一步的了解?!?/p>
S2賽季,昇騰在賦能賽事資源方面進(jìn)一步升級。在完善指導(dǎo)文檔基礎(chǔ)上,還通過直播進(jìn)行賽制解讀、工具分享,并發(fā)放云資源券(性能賽道),還有專門的賽事賦能專家團(tuán)隊隨時解答開發(fā)者的問題。
“在參賽者群里,我們可以隨時向賦能比賽的老師提問,他們都是來自華為的工程師。通過他們及時專業(yè)的解答,幫助我對硬件方面有了更多的了解?!?/p>
邊學(xué)邊賽,暢游算子開發(fā)的海洋
昇騰AI原生創(chuàng)新算子挑戰(zhàn)賽(S2賽季)采用“線上預(yù)賽+線下決賽”的賽制,預(yù)賽共10個算子,比賽時間為7月1日-8月31日,肖勛鵬只用了不到一個月時間就完成了預(yù)賽。
“為了參賽,我自費購入了一塊OrangePi AIpro開發(fā)板,大約1200元。預(yù)賽剛開始時,我一道題都沒有做出來,當(dāng)時還有點擔(dān)心本錢都賺不回來。”
不過,挑戰(zhàn)正激發(fā)了肖勛鵬迎難而上的鉆研勁頭?!拔冶旧韺儆诒容^喜歡克服困難的一個人,初中高時就喜歡做難題。解決挑戰(zhàn)確實能帶來給我?guī)肀容^多的快樂。”
預(yù)賽中,肖勛鵬合理規(guī)劃時間,采取了穩(wěn)扎穩(wěn)打的策略:前半段時間先實現(xiàn)算子的基礎(chǔ)解法,后半段時間集中精力做性能優(yōu)化。
S2賽季采用實時榜單,每一次提交作品后,大賽官網(wǎng)都會實時顯示參賽者每個算子的成績明細(xì):幾次提交、通過幾個用例、耗時多少等等。根據(jù)總體實時榜單,參賽者不但可以直觀了解自己的成績與不足,還能合理地制定比賽策略。
“預(yù)賽的10個算子各有各的難點,每個算子的實現(xiàn)方法都不一樣。Histogram這個算子,有一天晚上我比較有靈感,一直做到凌晨4點,把它AC了?!保款}有5個驗收用例,包括4個功能精度用例,1個性能用例,AC是指每題5個驗收用例全部通過)
值得一提的是,S2賽季基礎(chǔ)算子開發(fā)命題的預(yù)賽還設(shè)置了豐富的單項獎:每個算子都設(shè)置了“最佳性能獎”和“最快通過獎”,AC≥3個題還將獲得“潛力無限獎”。每個單項獎都可獲得獎金1000元,極大鼓舞了開發(fā)者參賽的積極性。
“ThreeNN這個算子,初期我只是實現(xiàn)了基礎(chǔ)解法。但是一直沒有放棄性能優(yōu)化的可能,差不多是在最后幾天才實現(xiàn)了性能最佳的解法。”
最終,肖勛鵬成功AC 5個算子、以預(yù)賽第三名的成績闖入決賽,并拿到了一個“最佳性能獎”和一個“最快通過獎”。
挑戰(zhàn)極限,不放棄最后一分鐘的機(jī)會
9月20日,昇騰AI原生創(chuàng)新算子挑戰(zhàn)賽(S2賽季)決賽在華為上海研究院拉開帷幕。與S1賽季不同的是,S2賽季預(yù)賽僅為選拔決賽資格,預(yù)賽成績不計入決賽總分。
決賽時間從早9點到晚20點,除了短暫的吃飯時間,開發(fā)者們都在爭分奪秒展開智力對決?!拔覀兌贾怀粤宋绮?,晚餐都沒吃。”
“決賽我也制定了一個策略,就是盡可能拿到更多的分?jǐn)?shù)。決賽共5個算子,每個算子同樣是4個功能樣例,1個性能樣例。我先拿到功能樣例,再優(yōu)化性能?!?/p>
晚上19:30,距離決賽結(jié)束只剩半小時,大部分參賽團(tuán)隊都在復(fù)盤檢查,提交作品的次數(shù)越來越少。此時排名第三的肖勛鵬依然沒有放棄,他還在跟一個算子死磕,希望找到性能優(yōu)化的最佳解法。
“在決賽最后10分鐘,我才找到了正確的解法,然后花了5分鐘把它實現(xiàn)了。當(dāng)時比較緊張,心跳非常快,但是我還是盡量保持冷靜,在最后關(guān)頭提交了一次。比賽時間截止后,榜單最后刷新了一次,我跑到第二了?!?/strong>
肖勛鵬認(rèn)為,此次參賽不僅提升了自己的編程能力和比賽經(jīng)驗,也進(jìn)一步認(rèn)識到了自己的不足。同時,有機(jī)會與其他團(tuán)隊切磋交流,也讓他收獲滿滿。
“算子開發(fā)對我是一個全新的領(lǐng)域。從最開始對它一無所知,到能夠完成這件對自己比較困難的事,并且取得一些成果,這種進(jìn)步還是很開心很有成就感的?!?/p>
對于想要從零開始學(xué)習(xí)算子開發(fā)的開發(fā)者,肖勛鵬的建議是:思考與實踐缺一不可。“首先需要去真正的理解它。另一個關(guān)鍵是一定要多多嘗試,我們可能有很多想法,但要真正實現(xiàn)算子的精度和性能,都需要去嘗試去驗證?!?/p>
肖勛鵬認(rèn)為,這次大賽堅定了他接下來進(jìn)一步學(xué)習(xí)算子開發(fā)的信心,他也愿意推薦更多同學(xué)去接觸昇騰AI基礎(chǔ)軟硬件與算子開發(fā)。
“目前學(xué)校老師帶的一些項目,也有與昇騰合作的。雖然還在校園中,也能感受到昇騰生態(tài)蓬勃發(fā)展的大勢所趨。從個人層面,我認(rèn)為學(xué)習(xí)算子開發(fā)對未來的職業(yè)發(fā)展也有一定幫助。”
結(jié)語
在昇騰AI的舞臺上,每一位開發(fā)者都是主角。
開發(fā)者的每一個故事,每一步成長,都共同編織著昇騰的未來。
接下來,面向全體開發(fā)者的昇騰AI原生創(chuàng)新算子挑戰(zhàn)賽(S3賽季)即將拉開帷幕。感興趣的開發(fā)者可以關(guān)注華為計算公眾號和昇騰社區(qū)官網(wǎng),加入這場巔峰對決,與全國頂尖高手一決高下。
我們期待更多像肖勛鵬這樣的開發(fā)者,能夠在充滿機(jī)遇的算子開發(fā)海洋中,揚帆起航,追逐屬于自己的AI夢想。
本文為「智能進(jìn)化論」原創(chuàng)作品。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.