第120章 矩陣運算的Tile分割【1/4】

投票推薦 加入書籤 小說報錯

  第120章 矩陣運算的Tile分割【1/4】

  次日中午,陳默在是食堂剛吃完飯,手機郵箱的提示音就響了。

  他點開一看,發件人是鄭濤,標題是【面試結果通知】,他的心猛地跳了一下,點開郵件。

  【陳默同學,恭喜你通過面試選拔,誠邀你加入實驗室,參與相關課題研究,請於7月3日下午兩點前,攜帶學生卡前往實驗室報到,面談後續事宜。】

  我中了!

  短短一句話,陳默反覆看了兩三遍,心裡那叫一個激動啊。

  7月3日,那不就是今天嗎?正好學生卡就在身上,他直接騎車前往實驗室。

  一點左右,他來到實驗室門口,敲了敲門。

  實驗室里周昀起身開門。

  「坐吧。」他指了指自己位置旁邊的空位。

  陳默依言坐下,身體下意識地挺得筆直,能看的出來陳默還是有點緊張的。

  「別緊張,咱們就隨便聊聊。」周昀看著臉色緊繃的陳默笑了笑,起身給他倒了杯水。

  「謝謝老師。」陳默雙手接過水杯。

  周昀坐回自己的椅子,語氣隨和地問道:「郵件里時間寫得急,沒耽誤你別的安排吧?」

  「沒有沒有,」陳默連忙搖頭,「正好下午沒事。」

  「那就好。」周的點點頭,切入正題,「找你過來,一是正式歡迎你加入,二是想和你聊聊之後的打算,畢竟進了實驗室,就意味著要投入大量的時間和精力,和你自己平時看書學習不太一樣,需要有個規劃,首先一個比較現實的問題,你對未來怎麼考慮的?是打算本科畢業就工作,還是有意向繼續讀研,甚至讀博?」

  陳默來之前就想過了這個問題,稍微組織了一下語言:「老師,我個人是希望繼續深造的,本來我也有考研的打算。」

  實驗室一個月四千的工資,他現在直接工作拿到手的也未必有這麼多,而且他對科研還是很有興趣的。

  周的點點頭:「嗯,你的天賦很好,我個人也希望你能一直深造下去,至於日常開銷方面你也不用擔心,咱們實驗室的成員,不會產生這方面的顧慮,既然你也願意深造,那我們接下來就談談研究方向的問題,從你的筆試和面試來看,我個人感覺你好像對算法這一塊比較感興趣?」

  「是的。」

  「好,那我先給你一個課題,你先試著做一做?」像是這種科研小白最好的培養方式就是直接讓他參與到某一個具體的問題,在這過程中,去培養他的科研素養。

  否則一個科研小白什麼都不懂,讓他自己去鑽研,浪費時間不說,還不一定有效果。

  「好。」

  周的拉過一塊空白的白板,「線性代數學過吧?」

  「學過。」

  周昀拿起白板筆,在板面上畫了兩個大方塊,分別標上A和B。

  「假設現在有兩個巨大的矩陣A和B,我們要計算它們的乘積C,這是最基礎的計算,但直接按教科書上的三重循環做,效率會非常低,尤其是在GPU這類並行處理器上,所以我們在GPU上做矩陣乘法的時候,需要把大矩陣拆成小塊也就是一個個tieS,讓硬體並行計算,但tiles怎麼切分,決定了計算速度和內存效率。

  假如把它抽象成一個數學問題,假設A是mXk矩陣,B是k×n矩陣,C是mXn矩陣,我們要計算C=A×B,就要選擇一個tile用來分塊計算,那麼問題來了,我們該如何選擇這個Tile的大小?也就是這三個參數一一」他在白板上寫下(t_m,t_n,t_k)。

  「這本質上是一個優化問題,我們需要一個衡量標準,這裡引入一個概念:算術強度。」

  他在白板上寫下公式:AI=(計算量FLOPs)/(內存訪問量Bytes)。

  「計算量很好理解,對於矩陣乘,每個Tile的計算量大約是2×t_m×t_n×t_k次浮點運算。

  內存訪問量,粗略估計,我們需要將這三個小塊讀進來,所以大約是(t_m×t_k+t_k×t_n

  +t mXtn)× sizeof(float)字節。

  AI越高,意味著我們每從內存搬運一個字節的數據,能完成的計算就越多,我們就越接近處理器理論算力的上限,所以,我們的優化目標,簡單說就是在硬體限制下,最大化這個AI。」


  這個問題看上去沒什麼用,實際上意義巨大,如果有了一種最佳的切割方案,就能得到一張「調優表」或緩存,每一種矩陣大小都能對應一種tie配置。

  這個表可以直接被編譯器調用,生成最高效率的矩陣乘法內核。

  這個內核通過一定的處理可以運行在不同的矩陣單元中,比如NVIDIA的TensorCore,AMD的MFMA,InteI的XMX,這些矩陣單元單從硬體上看其實差距並不大,真正能讓CUDA一家獨大的,是其對硬體的利用率,如果周昀能開發出一個高效的算子庫,並且通過編譯器運行在不同內核上,就能一定程度打破CUDA的壟斷,而矩陣運算的Ti1e分割,就是他邁出的第一步,不過他自己最近的心思都放在教師智能體上,這方面打算先讓陳默自己試試看,按他的估計,這個問題,陳默花點時間應該可以做的出來。

  這個工作如果做出來,發一篇頂會沒什麼問題的。

  寫完這些,周昀放下筆,轉過身看著陳默:「你的第一個課題,就是深入研究這個問題,怎麼樣?有信心嗎?」

  「這個.....」陳默看著黑板上的公式,「我試試!「

  「大膽嘗試就好,這是個很難的問題,你不必有壓力,把它當作一個長期項目來嘗試,我們實驗室不會強制要求你發多少論文,只要你的工作是有意義的,我都看在眼裡,遇到問題,先自己思考,如果卡殼了,隨時可以來問我,自己選個位置,然後到一樓104去找一下後勤的趙老師,讓他幫你把門禁錄一下,再把你的銀行卡號學號發給我,以後你的勞務費就從這上面走。」

  「好!那我收拾一下東西就搬過來?」

  「這都隨你。」

  實驗室有了新人加入,周昀也按照承諾,讓鄭濤又採購了一台5090滿配的電腦,外設,屏幕也全都配好。

  陳默的動作也很快,下午的時候就收拾好東西搬了過來,他們大三課本來就不多,有大把的時間可以泡在實驗室里。

章節目錄