專利名稱:演算法本質(zhì)平行度的分析方法
演算法本質(zhì)平行度的分析方法 技術(shù)領(lǐng)域
本發(fā)明關(guān)于一種分析與量化演算法的本質(zhì)平行度(intrinsic parallelism)的方法。
背景技術(shù):
阿姆達(dá)爾定律(G.M. Amdahl,「以單處理器來達(dá)到大規(guī)模運(yùn)算能力的可行性」, AFIPS會(huì)議期刊,第483-485頁,1967年)提出了一種軟體程式的平行化的理論最大加速。 由于循序部份基于高資料相依性而不能被平行化,此理論最大加速是依程式中的循序部份 的比例來決定。阿姆達(dá)爾定律為特征化平行度提供了一個(gè)簡單且初步的高階想法。然而, 由此技術(shù)所量測(cè)的平行度取決于目標(biāo)平臺(tái),而非演算法本身。所以,這種平行度的量測(cè)對(duì)演 算法是非本質(zhì)的,且會(huì)因目標(biāo)平臺(tái)而偏移。
以相似的方式,以圖為基礎(chǔ)的技術(shù)(V. Escuder, R. Duran、R. Rico,「以圖論量化指 令層平行度」,第二次效能評(píng)估方法與工具國際會(huì)議期刊,2007年)基于圖論將程式的指令 層平行度(instruction level parallelism, ILP)量化。此技術(shù)一開始以資料相依性矩陣 D表示一指令序列。接著,程式的關(guān)鍵路徑長度由D的矩陣乘法決定。此技術(shù)對(duì)于處理器導(dǎo) 向的平臺(tái)更特定。因此,指令層平行度的量化并非演算法本質(zhì)的,而是取決于目標(biāo)平臺(tái)與所 使用的編譯器。
Prihozhy等人基于運(yùn)算復(fù)雜度與演算法的關(guān)鍵路徑長度的比例所定義的平行化 位準(zhǔn)(parallelization potential)也能夠估計(jì)平行度(A. Prihozhy、M. Mattavelli 與 D. Mlynek,「為了有效率的實(shí)現(xiàn)多媒體的平行化位準(zhǔn)的評(píng)估演算法關(guān)鍵路徑的動(dòng)態(tài)評(píng)估」, IEEE影像技術(shù)電路與系統(tǒng)期刊,第593-608頁,第15卷,第5號(hào),2005年5月)。他們使用 運(yùn)算的總數(shù)量來量測(cè)復(fù)雜度。然后,關(guān)鍵路徑長度被定義為必須循序進(jìn)行的運(yùn)算的最大數(shù) 量。與阿姆達(dá)爾定律及指令層平行度方法比較,基于運(yùn)算數(shù)量的平行化位準(zhǔn)顯現(xiàn)了更多的 本質(zhì)平行度量測(cè),但當(dāng)然是在資料粒度較低的情況下。然而,由于運(yùn)算的數(shù)量與關(guān)鍵路徑長 度是基于以C/C++程式所產(chǎn)生的資料流執(zhí)行圖來計(jì)算,可因程式風(fēng)格與資料結(jié)構(gòu)偏移,此 方法不能呈現(xiàn)演算法本質(zhì)上最高平行度。
另一方面,由演算法的資料流模型所產(chǎn)生的因果行跡圖(causation trace graph)可呈現(xiàn)更多演算法本質(zhì)的相依性與運(yùn)算平行度。一般而言,因果行跡圖相對(duì)窄與 線性的部份是由更多的循序運(yùn)算所構(gòu)成,而較寬的部份則包括較高的平行度。在論文中 (J.W. Janneck、D. Miller 與 D. B. Parlour,“剖析數(shù)據(jù)流程式”,IEEE ICME 2008 年期刊,第 1065-1068頁,2008年6月),運(yùn)算的可平行度可以顯現(xiàn)相同時(shí)間內(nèi)的平均完成工作量來量 測(cè)。然而,此方法不能確切地量化平行度。發(fā)明內(nèi)容
有鑒于此,本發(fā)明的一目的為提供一種演算法本質(zhì)平行度的分析方法。
基于本質(zhì)演算法復(fù)雜度萃取與分析同時(shí)開發(fā)演算法與架構(gòu)的演算法/架構(gòu)共同開發(fā)(Algorithm/architecture co-exploration, AAC)方法,在新興的電子系統(tǒng)層級(jí) (electronic system Ievel7ESL)設(shè)計(jì)的時(shí)代已成為一種設(shè)計(jì)典范。演算法的本質(zhì)運(yùn)算平 行度是最重要的復(fù)雜度量測(cè)機(jī)制之一,其可促進(jìn)新興平臺(tái)的開發(fā),包括應(yīng)用特殊應(yīng)用導(dǎo)向 積體電路(application specific integrated circuits,ASIC)、可重構(gòu)電路、大量平行處 理單元(processing element,PE)、以及多核心嵌入CPU等,用于現(xiàn)代與未來的訊號(hào)與資訊 處理應(yīng)用中所采用的越來越復(fù)雜的演算法。因此,演算法所內(nèi)蘊(yùn)的平行度的利用對(duì)于同時(shí) 最佳化演算法與架構(gòu)變成是必要且必須的。本發(fā)明的目的是基于線性代數(shù)理論提供一種系 統(tǒng)化的方法,以量化內(nèi)蘊(yùn)在演算法中的本質(zhì)平行度上限,以促進(jìn)訊號(hào)與資訊處理系統(tǒng)在新 興平臺(tái)上的開發(fā)。換言之,被萃取的平行度對(duì)于演算法本身是本質(zhì)性的,不會(huì)被硬體或軟體 影響,從而能夠協(xié)助訊號(hào)與資訊處理系統(tǒng)的演算法/架構(gòu)共同開發(fā)。
為達(dá)上述目的,依本發(fā)明的演算法的本質(zhì)平行度的分析方法包含由演算法產(chǎn)生 一資料流圖,其由代表計(jì)算的節(jié)點(diǎn)與表示資料相依性與流動(dòng)的有向邊構(gòu)成;建立一代表資 料流圖的矩陣;以及基于代表資料流圖的矩陣的秩與維度量化本質(zhì)平行度。
如上所述,本發(fā)明揭露了一種演算法復(fù)雜度在本質(zhì)平行度上的量測(cè)方法,其用于 新的演算法/架構(gòu)共同設(shè)計(jì)方法,能夠同時(shí)開發(fā)演算法與架構(gòu)進(jìn)而最佳化系統(tǒng)。演算復(fù)雜 度分析與資料流模型化在同時(shí)最佳化演算法與架構(gòu)中扮演重要的角色。為了前瞻與未來 的訊號(hào)與資訊處理,本質(zhì)平行度無疑地是最重要的復(fù)雜度量測(cè)機(jī)制之一。基于演算法的資 料流模型化與以例如相依性與/或拉普拉斯矩陣映射資料流圖到線性方程式,藉由顯現(xiàn)線 性方程式系統(tǒng)的自由度,本發(fā)明可以有系統(tǒng)地量化演算法內(nèi)蘊(yùn)的本質(zhì)平行度。此外,本發(fā) 明中,秩理論被使用以加速量化演算法本質(zhì)平行度。再者,萃取的本質(zhì)平行度可有效地促 進(jìn)新興平臺(tái)之上,包括應(yīng)用特定積體電路(application specific integrated circuits, ASIC)、可重構(gòu)電路、大量平行處理單元(processing element, PE)、以及多核心嵌入CPU 等,用于更復(fù)雜的訊號(hào)與資訊處理應(yīng)用的平臺(tái)的設(shè)計(jì)空間的開發(fā)。
與先前技術(shù)相比,本發(fā)明的方法具有幾個(gè)優(yōu)點(diǎn)。首先,其提供一種理論上可靠的方 法以量化演算法的平行度,而因果行跡(由(J. W. Janneck、D. Miller與D. B. Parlour所說 明)只提供相對(duì)的可平行程度比較資訊。此外,受益于資料流模型化,本發(fā)明的方法也適用 于以不規(guī)則的資料相依度來特征化演算法。另外,相對(duì)于藉由高階程式模型與ILP量化的 分析比較,本發(fā)明的平行度機(jī)制為本質(zhì)性的,因此不會(huì)受限于特定處理器導(dǎo)向的平臺(tái),且可 映射演算法到通用平臺(tái),甚至是分散式系統(tǒng)上。
以下將參照附圖及相關(guān)說明使本發(fā)明更容易理解,但其僅為說明而非為限制本發(fā) 明
圖1為一流程圖,顯示依本發(fā)明較佳實(shí)施例的演算法平行度的分析方法;
圖2為一示意圖,顯示演算法平行度的分析方法的一種狀況;以及
圖3為一實(shí)施例的資料流圖的示意圖。
具體實(shí)施方式
本發(fā)明經(jīng)由以下的詳細(xì)說明并參照附圖將更清楚,附圖中相同的標(biāo)號(hào)關(guān)聯(lián)到相同的元件。
演算法中所蘊(yùn)含的通用平行度的其中之一可以被顯現(xiàn)為彼此獨(dú)立的獨(dú)立運(yùn)算集, 從而可以不同步而平行地被執(zhí)行。然而,獨(dú)立運(yùn)算集系由相依的運(yùn)算所構(gòu)成,其必須循序地進(jìn)行。因此,嚴(yán)格而言,演算法所內(nèi)蘊(yùn)的平行度等于全部獨(dú)立運(yùn)算集的數(shù)量。本發(fā)明的方法的主要目標(biāo)是經(jīng)由分析基于資料流模型與線性代數(shù)所產(chǎn)生的資料流圖來萃取本質(zhì)平行度。 演算法的輸入會(huì)被分析,且輸出包括本質(zhì)平行度的上限以及相關(guān)聯(lián)的以及不需同步就可以平行地被執(zhí)行的獨(dú)立運(yùn)算集。
圖1為一流程圖,顯示依本發(fā)明較佳實(shí)施例的演算法平行度的分析方法,且圖2為一示意圖,顯示分析演算法平行度的一種狀況。如圖1和圖2所示,步驟SOl系從演算法產(chǎn)生一資料流圖,其由代表運(yùn)算的節(jié)點(diǎn)vl到v7,以及表示資料的相依性與流動(dòng)的有向邊el到 e4所構(gòu)成。圖2所示的演算法系作為一簡單的例子以便清楚地說明,其目的并非作為限制。 在實(shí)施例中,資料流圖是由一表示演算法的資料流模型所產(chǎn)生。資料流模型不只能描述演算法的行為或功能,也顯現(xiàn)其架構(gòu)上的特性。
節(jié)點(diǎn)vl到v7代表運(yùn)算,且有向邊el到e4表示資料的相依性與流動(dòng)。例如,節(jié)點(diǎn) vl表示變數(shù)Al和BI的計(jì)算,且從vl到v4的邊el代表節(jié)點(diǎn)vl與v4的資料的相依性與流動(dòng),其余的可以依此類推。
步驟S02建立一代表資料流圖的矩陣?yán)?。矩陣可為,例如,拉普拉斯矩陣或相依性矩陣。拉普拉斯矩陣的形式如?br>
權(quán)利要求
1.一種演算法的本質(zhì)平行度的分析方法,包含 由該演算法產(chǎn)生一資料流圖,其由代表計(jì)算的節(jié)節(jié)點(diǎn)與表示資料相依性程度與流動(dòng)的有向邊構(gòu)成; 建立一代表該資料流圖的矩陣;以及 基于代表該資料流圖的該矩陣的秩與維度量化該本質(zhì)平行度。
2.如權(quán)利要求1所述的演算法的本質(zhì)平行度的分析方法,其中該資料流圖是由代表該演算法的-資料流模型產(chǎn)生。
3.如權(quán)利要求1所述的演算法的本質(zhì)平行度的分析方法,其中該矩陣是從多個(gè)該資料流圖映射于其上的線性方程式所建立。
4.如權(quán)利要求1所述的演算法的本質(zhì)平行度的分析方法,其中該矩陣為一相依性矩陣,其具有以下的形式
5.如權(quán)利要求1所述的演算法的本質(zhì)平行度的分析方法,其中該矩陣為一拉普拉斯矩陣,其具有以下的形式;
6.如權(quán)利要求1所述的演算法的本質(zhì)平行度的分析方法,其中該本質(zhì)平行度等于該節(jié)點(diǎn)的數(shù)量減去該矩陣的秩。
7.如權(quán)利要求1所述的演算法的本質(zhì)平行度的分析方法,更包含 基于演算法所產(chǎn)生的該資料流圖的該矩陣之基底來擴(kuò)充零空間,進(jìn)而指出各獨(dú)立運(yùn)算集。
8.如權(quán)利要求1所述的演算法的本質(zhì)平行度的分析方法,其中若該節(jié)點(diǎn)的數(shù)量未小于該邊的數(shù)量,該矩陣為一相依性矩陣,否則該矩陣為一拉普拉斯矩陣。
全文摘要
一種演算法的本質(zhì)平行度的分析方法,包括由演算法產(chǎn)生一資料流圖,其由代表計(jì)算的節(jié)點(diǎn)與表示資料相依性與流動(dòng)的有向邊構(gòu)成;建立一代表資料流圖的矩陣;以及基于代表資料流圖的矩陣的秩與維度量化本質(zhì)平行度。
文檔編號(hào)G06F9/45GK103003795SQ201180030895
公開日2013年3月27日 申請(qǐng)日期2011年6月21日 優(yōu)先權(quán)日2010年6月22日
發(fā)明者李國君, 林和源 申請(qǐng)人:李國君