近年來在人工智能領域,算子開發的價值日益凸顯,算子開發也受到越來越多年輕開發者的青睞。對于高校開發者,如何從零開始學習算子開發,提升軟硬結合的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夢想。
本文為「智能進化論」原創作品。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.