清華姚班本科生連發兩作,十年來最大改進:矩陣乘法接近理論最優

机器之心發表於2024-03-08
透過消除「隱藏的低效」問題,電腦科學家提出了一種比以往更快的大型矩陣相乘新方法。

矩陣乘法作為眾多 GPU 運算元的基礎操作,是高效能運算的重要問題之一,也是 AI 等應用的基石。它的演算法機制本身相當簡單,但為了達到更快的速度,人們多年來不懈努力,最佳化程度卻一直有限。

今日,在《量子雜誌》的一篇報導中,我們看到了推動矩陣乘法速度進一步提升的兩篇論文,其中清華姚班一位大四本科生全程參與了兩篇論文的撰寫,為該領域的演算法改進帶來了全新的希望。

清華姚班本科生連發兩作,十年來最大改進:矩陣乘法接近理論最優

矩陣乘法改進出現新「奇點」

電腦科學家是一群要求很高的人。對於他們來說,僅僅獲得問題的正確答案是不夠的,往往還要儘可能高效地獲得答案。

我們以矩陣或數字陣列相乘為例,1812 年,法國數學家 Jacques Philippe Marie Binet 提出了一套人們至今仍在教授學生的基本規則。這套規則執行得很好,但已經有數學家找到了簡化和加速該過程的方法。

圖片

法國數學家 Jacques Philippe Marie Binet。

現在,加速矩陣乘法過程的任務成為數學和電腦科學的交叉點。研究人員至今仍在繼續改進該過程,儘管近幾十年來進展相當有限。名古屋大學電腦科學家 François Le Gall 表示,自 1987 年以來,矩陣乘法的數值改進「一直很小,而且極其難以實現」。

最近,來自清華大學的段然(Ran Duan)、周任飛(Renfei Zhou)和加州大學伯克利分校的 Hongxun Wu 在解決這個長期存在的問題上邁出了重要一步,撰寫的論文足足有 87 頁。對於三位研究者的成果, Le Gall 表示儘管改進本身相對較小,但是「從概念上講比以往的改進都大。」

該論文被電腦科學領域的頂會 FOCS 2023 接收。

圖片

論文 v1 釋出在 2022 年 10 月,v5 在 2023 年 11 月。論文地址:https://arxiv.org/abs/2210.10173

其中,段然為清華大學交叉資訊研究院副教授,主要研究方向為圖論演算法、資料結構、計算理論。Hongxun Wu 為加州大學伯克利分校二年級博士生,也是清華姚班出身。

周任飛為清華姚班 2020 級的大四本科生,主修理論電腦科學(TCS)。他主要研究(簡潔)資料結構和快速矩陣乘法,並對 TCS 的其他領域具有廣泛興趣,比如流演算法、博弈論和線上演算法等。

此前,周任飛曾在理論電腦科學頂級會議 FOCS/SODA 上發表多篇論文。

圖片

三位研究者的論文揭示了以前未知且未開發的潛在改進來源,並且已經取得了成果。2024 年 1 月發表的第二篇論文(周任飛同樣參與撰寫)以此為基礎,展示瞭如何進一步增強矩陣乘法。

圖片

論文地址:https://epubs.siam.org/doi/10.1137/1.9781611977912.134

哈佛大學理論電腦科學家 William Kuszmaul 對此表示,這是一項重大的技術突破,是十多年來我們所看到的矩陣乘法的最大改進。

矩陣乘法要改進什麼問題

矩陣乘法可能看起來是一個晦澀的問題,但它是一種基本的計算操作。它被融入了人們每天使用的大部分演算法中,用於各種任務,從顯示更清晰的計算機圖形到解決網路理論中的物流問題。就像在計算的其他領域一樣,速度至關重要。即使是微小的改進最終也可能大大減少所需要的時間、計算能力和金錢。但目前,理論家主要感興趣的是弄清這個過程到底能夠有多快。

傳統的兩個 n×n 矩陣相乘的方法 —— 即將第一個矩陣中每一行的數字與第二個矩陣中每一列的數字相乘 —— 需要進行 n³ 次獨立的乘法操作。對於 2 乘 2 的矩陣而言,這意味著需要進行 2³,也就是 8 次乘法操作。

圖片

1969 年,數學家 Volker Strassen 發現了一種更精巧的方法,只需 7 個乘法步驟和 18 個加法步驟,就能完成 2×2 矩陣的乘法運算。兩年後,電腦科學家 Shmuel Winograd 證明,對於 2×2 矩陣來說,7 步乘法確實是絕對最小值。

圖片

Strassen 利用同樣的想法證明,所有較大的 n×n 矩陣也可以用少於 n3 步的方法進行乘法運算。這一策略中的一個關鍵因素涉及一個稱為分解的程式:將一個大矩陣分解成一個個更小的子矩陣,這些子矩陣最終可能小到 2×2 甚至 1×1(只是單個數字)。

對於將巨型陣列分解成小塊的理由相當簡單,麻省理工學院的電腦科學家 Virginia Vassilevska Williams 說:「對於一個大矩陣(比如 100×100 的矩陣),人類很難想到最佳的演算法。」即使是 3 乘 3 的矩陣也還沒有完全解決。「然而,人們可以使用已經為小矩陣開發的快速演算法來獲得更大矩陣的快速演算法。」

研究人員確定,速度的關鍵在於減少乘法步驟的數量,儘可能將指數從 n3(傳統方法)降低。可能的最低值 n² 基本上就是寫出答案所需的時間。電腦科學家把這個指數稱為 Ω,即 ω。nω 是當 n 越來越大時,成功將兩個 n×n 矩陣相乘所需的最少步驟。同為 2024 年 1 月論文合著者的周任飛說:「這項工作的重點,是看你能接近 2 多少,並且是否可以在理論上實現。」

鐳射法

1986 年,Strassen 取得了另一項重大突破,他推出了矩陣乘法的鐳射法。Strassen 用它確定了 ω 的上限值為 2.48。雖然該方法只是大型矩陣乘法的一個步驟,但卻是最重要的步驟之一,因為研究人員一直在不斷改進它。

一年後,Winograd 和 Don Coppersmith 推出了一種新演算法,對鐳射法進行了完美的補充。這套工具的組合在後來幾乎所有加速矩陣乘法的研究中都得到了應用。

下面是一個簡化的方法,讓我們來看看這些不同的元素是如何結合在一起的。讓我們從兩個大型矩陣 A 和 B 開始,將它們相乘。首先,你要把它們分解成許多較小的子矩陣,有時也叫塊。接下來,你就可以使用 Coppersmith 和 Winograd 的演算法,將其作為處理並最終組裝這些塊的指導手冊。Vassilevska Williams 說:「它告訴我在乘積矩陣 C 中要乘什麼、加什麼,以及哪些元素在哪裡。」「它只是一個從 A 和 B 建立 C 的『配方』」。

然而,這裡有一個問題:有時你會得到具有共同元素的塊。保留這些共同元素會相當於將這些元素計算兩次,因此在某個時候,需要消除這些重疊部分。研究人員透過「消滅」它們所在的塊來解決這個問題 —— 將它們的分量設定為零以將它們從計算中移除。

圖片

Virginia Vassilevska Williams 是改進矩陣乘法新方法的團隊成員之一,她提出了目前最快的方法。

這就是 Strassen 的鐳射法最終發揮作用的地方。Le Gall 說,「鐳射法通常非常有效,並且通常能找到消除重疊的子塊的好方法」。在鐳射消除了所有重疊之後,你就可以構建最終的乘積矩陣 C。

將這些各種技術結合起來,就得到了一種用盡量少的乘法總數來乘兩個矩陣的演算法,至少在理論上是這樣。鐳射法並不是為了實際應用;它只是一種思考矩陣相乘的理想方式。周任飛表示,「我們從未在計算機上執行這種方法,我們進行對它的分析。」

正是這種分析促成了 ω 十多年來的最大改進。

被發現的「隱藏損失」

在段然、周任飛和 Hongxun Wu 的第一篇論文《Faster Matrix Multiplication via Asymmetric Hashing》中,他們表明,施特拉森演算法的程序可以大大加快。這一切要得益於他們稱之為「隱藏損失」(hidden loss)的概念。周任飛表示,該概念深深地隱藏在以前的分析中,是無意中消除了太多塊的結果。

鐳射法的工作原理是將重疊的塊標記為垃圾,並安排處理,而其他塊被認為有價值並將被儲存。不過,選擇過程有些隨機。事實上,被標記為垃圾的塊可能最終還是有用的。

這並不完全令人驚訝,但透過檢查許多隨機選擇,段然團隊確定鐳射法系統性地低估了塊的價值,因此應該儲存更多的塊,減少扔掉的塊。而且,正如通常的情況一樣,更少的浪費可以轉化為更高的效率。

對於段然團隊的做法,Le Gall 認為,「能夠保留更多塊而不重疊,這種做法實現了更快的矩陣乘法演算法。」

在證明了這種損失的存在後,段然團隊修改了鐳射法標記塊的方式,從而大大減少了浪費。他們將 ω 的新上限設定在了 2.371866 左右,這要比 Josh Alman 和 Vassilevska Williams 在 2020 年設定的上限 2.3728596 有所改進。

這看起來是一個不大的變化,將上限降低了大約 0.001,但這是自 2010 年以來科學家們看到的最大進步。相比之下,Vassilevska Williams 和 Alman 2020 年的結果只比之前的結果提高了 0.00001。

圖片

當然,對研究人員來說,最令人興奮的不僅僅是新紀錄本身,該記錄並沒有持續多久。事實上,這篇論文揭示了一種新的改進途徑,而在此之前,這種途徑完全沒有被注意到。

Le Gall 稱,近四十年來,每個人都依賴相同的鐳射法。隨著段然等三位研究者的論文出現,我們可以做得更好。

因此,周任飛參與撰寫的 2024 年 1 月的論文改善了這種新方法,進一步減少了隱藏損失。他們又進一步提高了 ω 的上限,使它降低到了 2.371552

圖片

研究者還使用同樣的方法來改進矩形(n×m)矩陣的乘法過程,該乘法過程在圖論機器學習和其他領域均有廣泛應用。

沿著這些方向取得一些進一步的進展幾乎是肯定的,但這是有限度的。2015 年,Le Gall 和兩位合作者證明,目前的方法,也就是鐳射法,再加上 Coppersmith 和 Winograd 的方法,無法得到低於 2.3078 的 ω。

Le Gall 說:「要想進一步改進,就必須在 Coppersmith and Winograd 的原始方法基礎上加以改進,而這種方法自 1987 年以來就沒有真正改變過。」但到目前為止,還沒有人提出更好的方法。也許根本就沒有。

周任飛說:「改進 ω 實際上是理解這個問題的一部分。如果我們能很好地理解這個問題,就能設計出更好的演算法。不過,人們對這個古老問題的理解還處於非常初級的階段。」

原文連結:

https://www.quantamagazine.org/new-breakthrough-brings-matrix-multiplication-closer-to-ideal-20240307/

相關文章