行政院國家科學委員會補助專題研究計畫成果報告
均勻相依演算法映射至格狀互連處理機陣列之通道相衝的檢查
Checking Link Conflicts in the Mapping of Unifor m Dependence
Algor ithms into Gr id-Connected Systolic Ar r ays
計畫類別:P個別型計畫 □整合型計畫
計畫編號:NSC
90-2213-E-009-134-執行期間:90 年 8 月 1 日至 91 年 7 月 31 日
計畫主持人:蔡中川
共同主持人:
本成果報告包括以下應繳交之附件:
□赴國外出差或研習心得報告一份
□赴大陸地區出差或研習心得報告一份
□出席國際學術會議心得報告及發表之論文各一份
□國際合作研究計畫國外研究報告書一份
執行單位:國立交通大學資訊工程系
中
華
民
國 91 年 10 月 日
行政院國家科學委員會專題研究計畫成果報告
均勻相依演算法映射至格狀互連處理機陣列之通道相衝的檢查
Checking Link Conflicts in the Mapping of Unifor m Dependence
Algor ithms into Gr id-Connected Systolic Ar r ays
計畫編號:NSC
90-2213-E-009-134-執行期限:90 年 8 月 1 日至 91 年 7 月 31 日
主持人:蔡中川 交通大學資訊工程系
計畫參與人員:黃為霖、張博揚、邱威傑 交通大學資訊工程系
一、中文摘要 通道相衝之檢查為設計格狀互連處理 機陣列上一項無法避免的必要程序。過去 已有許多學者提出通道相衝檢查之方法, 但由於假設的陣列模式之差異,這些方法 大部份皆不可應用於檢查格狀互連處理機 陣列上的通道相衝。在本計劃中,我們深 入研究格狀互連處理機陣列上的通道相衝 問題,並提出了適用的通道相衝檢查方 法。我們的方法較過去方法更有效率且適 用於更一般之處理機陣列模式。我們也進 一步研究了一些特殊情況,並在這些情況 下改進了我們的方法之效率。此外,我們 詳細探討了我們的方法與過去方法之間的 關係,並證明過去方法為我們的方法之特 例。 關鍵詞:格狀互連處理機陣列、通道相衝、 空時映射、均勻相依演算法 Abstr actChecking link conflicts is a necessary process for the design of grid-connected systolic arrays. Although many methods for checking link conflicts have been designed in the literature, they are not suitable for grid-connected systolic arrays due to the difference of the underlying processor array models. In this project, we study the problem of checking link conflicts on grid-connected systolic arrays and propose a checking method for the problem. Our checking method is more efficient and general than the
previous method. Also, for some special cases, the performance of our method is further improved. In addition, our method is compared with the previous method. We show that the previous method is a special case of our method.
Keywor ds: grid-connected systolic array, link conflict, space-time mapping, uniform dependence algorithm
二、緣由與目的 韻律陣列(systolic array)為一類特殊的 平行機器,其由許多排列規律的處理機 (processor)互相鄰近連接而成[6]。由於其在 資料通道連接上的局部性與規律性,韻律 陣列已被大量用於許多演算法的 VLSI 實 作 上 [7] 。 格 狀 互 連 處 理 機 陣 列 (grid-connected systolic array),簡稱格狀陣 列,為一類只允許處理機以正交資料通道 互連之特殊韻律陣列。較一般韻律陣列而 言,格狀陣列在資料通道連接上更為簡單 且規則,因此更適於使用 VLSI 實作[8]。 可在韻律陣列上執行之演算法,通常 可以均勻相依演算法(uniform dependence algorithm)來表示;此類演算法由凸形計算 定義域(index set)與有限數量之常數相依向 量(dependence vector)所組成[15,14],其在 科學計算與信號處理領域中相當常見,如 矩陣相乘、LU 分解等問題之演算法皆屬此 類[7]。 在韻律陣列的設計上,一種常用的方 法是空時映射(space-time mapping)法,其觀
念為利用一空時映射矩陣將一 n 維均勻相 依 演 算 法 直 接 映 射 成 一 k 維 韻 律 陣 列 [7,11,12]。在映射的過程中,為了確保陣列 的正確性,我們必須檢查是否發生通道相 衝(link conflict);所謂通道相衝意指有兩不 同資料元素(token)同時間進出同一資料通 道。過去已有許多關於通道相衝檢查方法 之研究,如文獻[1,2,5,9,10,16,17]中已提出 各種的通道相衝檢查方法。然而,過去這 些 方 法 皆 限 制 了 陣 列 中 一 資 料 流 (data stream)只能往單一方向流動,因而它們皆 無法應用於檢查格狀陣列上的通道相衝, 因為格狀陣列允許一資料流可有多個不同 的流向。 格狀陣列上的通道相衝問題最早是由 Lee[8]所提出。在[8]中,Lee 推導出格狀陣 列發生通道相衝的充要條件,並直接應用 此條件於通道相衝之檢查。然而此條件必 須對計算定義域內O(N2n)對計算點(index point)檢查一資料流內最多k 個不同流向上 的通道相衝,其中 N 為計算定義域之最大 寬度,故此法具有相當高之時間複雜度。 此外,Lee 假設了格狀陣列中之資料通道皆 只能連接鄰近處理機,因而其方法無法應 用於允許非鄰近處理機互連之格狀陣列 上。 有關格狀陣列上的通道相衝問題之研 究甚少,據我們所知,上述結果為目前文 獻中唯一發表之結果,因此我們認為此問 題仍有相當大的研究空間。在本計劃中, 我們提出一更有效率的通道相衝檢查方法 來解決格狀陣列上的通道相衝問題。我們 的方法不但能適用於 Lee 所假設的格狀陣 列,也適用於允許非鄰近處理機互連之格 狀陣列。另外,針對一些特殊的情況,我 們提出了效率更佳的檢查方法。此外,我 們亦探討了我們的方法與 Lee 的方法之間 的關係。 三、結果與討論 本節簡要描述本計劃之研究成果,至 於更詳細之內容,我們將另外撰寫論文發 表。 3.1 格狀陣列模式 我們將[8]中所述之格狀陣列模式加以 擴充延伸,使其成為一允許非鄰近處理機 互連之新陣列模式。新陣列模式定義處理 機定義域(processor space)為包含{ jSv|vj ∈ J}之容納盒(bounding box),其中 S 為空間 映射矩陣,J 為均勻相依演算法之計算定義 域。我們以lvi1,lvi2,… ,lvik表示第 i 資料流之資 料元素在格狀陣列中會依序經過的正交資 料通道,我們允許gcd(lvij)≥1, 1 ≤ j≤k, 以 表示非鄰近處理機的互連。 在空時映射下,每一由處理機 pv計算 出之資料元素須傳到處理機 pv+Sdvi,其中 i dv 為對應第 i 資料流之相依向量,且Sdvi與 1 i lv ,li2 v ,… ,lvik需滿足
(
)
= ik i i ik i i i l l l d S δ δ δ M v K v v v 2 1 2 1, , , 之關係,其中δ ,i1 δ ,… ,i2 δ 為非負整數。上ik 述資料元素在陣列中之流動方式為:先由 處理機 pv經由資料通道lvi1依序通過處理機 pv +lvi1,pv +2lvi1,… ,pv+δi1lvi1,再經由資料通 道 li2 v 依 序 通 過 處 理 機 pv + i1li1 v δ + li2 v , pv +δi1lvi1+2lvi2,… ,pv +δi1lvi1+δi2lvi2,以此類 推 , 最 後 經 由 資 料 通 道lvik 流 至 處 理 機 pv +∑
= k j1 ijlij v δ (= pv +Sdvi)。 上述 非 負 整 數 1 i δ ,δ ,… ,i2 δ 可視為[2]中所提出之連結數ik (linking number)的一個推廣。 3.2 通道相衝發生之充要條件 我們在[2]中提出了虛擬計算點(virtual node)之觀念來解決非格狀陣列的通道相衝 問題。在本計劃中,我們另外提出相依向 量分解(dependence decomposition)之觀念 將虛擬計算點進一步加以延伸,使其可應 用於格狀陣列中。定義相依向量dvi之一相依向量分解為 一 組 整 數 向 量 dvi1 , dvi2 ,… , dvik , 滿 足 i dv =dvi1+dvi2+ … +dvik及
(
)
= ik ik i i i i ik ik i i i i ik i i l l l r r r d d d S H v K v v K v K v v δ δ δ δ δ δ , , , , , , , , , 2 2 1 1 2 2 1 1 2 1 , 其中 H 為時間映射向量,r 為ij lij v 上之暫存 器數加 1。使用相依向量分解,對應第 i 資 料流之虛擬計算點可定義為下列形式之分 數點: ic ic c j ij i i j zc j zd d d vn v v v v v δ λ λ = + +∑
− + = 1 1 ) , , , ( , 其中vj∈J ,z,c,λ∈Ζ,1 ≤c ≤k,0 ≤λ < ic δ 。經由仔細之研究,我們證明了上述虛 擬計算點與格狀陣列上的通道相衝有下列 關係: 定理 1 空時映射 H 與 S 引起格狀陣列上之 通道相衝,若且唯若存在兩有效(valid)虛擬 計 算 點 αv = vni(j1,z1,c,λ1) v 與 βv = ) , , , (j2 z2 c λ2 vni v 滿 足 vj1 ≠ vj2+advi ,∀a∈Ζ , 且使得Hαv=H 與βv S =αv S 。βv 當所有資料元素限制只能由處理機定 義域邊界進出格狀陣列時,定理 1 可進一 步改寫如下: 定理 2 令向量 Lv與Uv表示處理機定義域在 各座標軸上之座標下界(lower bound)與座 標上界(upper bound)。則 H 與 S 引起通道 相 衝 , 若 且 唯 若 存 在 兩 虛 擬 計 算 點 αv =vni(vj1,z1,c,λ1)與βv =vni(vj2,z2,c,λ2)使 得 1. vj1?vj2+advi,∀a∈Ζ, 2. Hαv=H 且βv S =αv S ,βv 3. Lv≤Sαv≤Uv。 3.3 通道相衝之檢查 根據上述結果,我們從三方面發展不 同的通道相衝檢查方法,且每一方法皆較 Lee 的方法更有效率。 首先,相似於[2]之推導,我們利用 Hermite normal form[4,13]與定理 2 證明了 檢查格狀陣列上之通道相衝等價於檢查 k 個 n − k + 1 維且寬度為O(2N)之凸形多面 體(convex polytope)內的 ((2 )n−k+1) N O 個整 數點。再進一步使用[2]中之列舉方法,則 我們最多只要列舉共O(k(2N)n−k)個整數 點,便可檢查出格狀陣列上的通道相衝。 接著,除上述列舉法外,我們也證明 了通道相衝之檢查亦等價於求解 kn 個具有 相同變數與限制式數目的整數規劃問題 (integer linear programming problem)。令s為表示每一整數規劃問題所需位元數,則 使用 Kannan[3]提出之整數規劃方法,我們 可在 ( ( − +1)9(n−k+1)/2) k n kns O 運算時間內檢 查出是否發生通道相衝。當 N 甚大於 n 時, 此整數規劃方法較上述列舉法有更佳之效 率。 最後,我們更進一步改進了 k = n − 1 與 k = n − 2 之特殊情況(special cases)下的 通道相衝檢查方法。我們證明了當 k = n− 1 與 k = n− 2 時,通道相衝之檢查分別等價 於求解
∑
− = − 1 1( 1) n j δij 與∑
− = 2 1 n j δ 個單變數整ij 數規劃問題。由於單變數整數規劃問題可 於線性時間(linear time)內求解,故對此兩 特殊情況,我們可在更短的時間內檢查出 是否發生通道相衝。 3.4 與 Lee 的方法之關係 除了上述之研究成果外,我們也研究 了我們的方法與 Lee 的方法之間的關係, 進而證明 Lee 於[8]中提出的通道相衝檢查 條件皆為我們的通道相衝檢查條件之特 例。 四、計劃成果自評 我們已達到本計劃之預期目標。我們 已提出了適用於格狀陣列且更有效率之通 道相衝檢查方法,也證明了新方法之正確 性與複雜度,並針對一些特殊情況進一步 改進了新方法之執行效率。我們也比較了我們的方法與過去方法之間的關係,並證 明了過去方法為我們的方法之特例。 我們相信本計劃之研究結果將有助於 各種不同陣列模式上之通道相衝問題的瞭 解及高效率之通道相衝檢查方法的設計與 實現。 五、參考文獻
[1] K. N. Ganapathy and B. W. Wah. Optimal synthesis of algorithm-specific lower-dimensional processor arrays. IEEE Trans. Parallel and Distri. Sys., 7(3):274−287, 1996.
[2] W. L. Huang. A virtual node approach to checking link conflicts in the mapping of dependence graphs into processor arrays. Master thesis, National Chiao Tung University, Taiwan, R.O.C., 2001.
[3] R. Kannan. Minkowski's Convex Body Theorem and Integer Programming. Mathematics of Operation Research, 12(3):pp. 415−440, 1987. [4] R. Kannan and A. Bachem. Polynomial
algorithms for computing the smith and hermite normal forms of an integer matrix. SIAM Journal on Computing, 8(4):499−507, 1979.
[5] J. Y. Ke and J. C. Tsay. An approach to checking link conflicts in the mapping of uniform dependence algorithms into lower dimensional processor arrays. IEEE Trans. Comput., 48(7):732−737, July 1999.
[6] H. T. Kung. Why systolic architectures?
Computer, 15(1):37−46, 1982.
[7] S. Y. Kung. VLSI Array Processor. Prentice-Hall Int. , Englewood Cliffs, NJ, 1988.
[8] P. Z. Lee. Mapping nested loop algorithms into grid-connected systolic arrays without data collisions in the data links. ISCA International Journal of Computers and Their Applications, 2(2):72-85, 1995.
[9] P. Z. Lee and Z. M. Kedem. Synthesizing linear array algorithms from nested for loop algorithms.
IEEE Trans. Comput., C-37(12):1578−1598, December 1988.
[10] P. Z. Lee and Z. M. Kedem. Mapping nested loop algorithms into multidimensional systolic arrays. IEEE Trans. Parallel and Distri. Sys., 1(1):64−76, January 1990.
[11] D. I. Moldovan. On the design of algorithms for VLSI arrays. Proc. of the IEEE, 71(1):113−120, January 1983.
[12] S. K. Rao. Regular iterative algorithms and their implementations on processor arrays. Ph.D. dissertation, Standford University, 1985.
[13] A. Schrijver. Theory of Linear and Integer Programming. John Wiley & Sons, 1986.
[14] W. Shang and J. A. B. Fortes. On time mapping of uniform dependence algorithms into lower
dimensional processor arrays. IEEE Trans. Parallel and Distri. Sys., 3(3):350−363, May 1992.
[15] W. Shang and J. A. B. Fortes. Time optimal linear schedules for algorithms with uniform dependencies. IEEE Trans. Comput., 40(6):723−742, Jun 1991.
[16] J. Xue. A unified approach to checking data link and computational conicts in the design of algorithm-specific processor arrays. Technical Report 94-100, Dep. Mathematics, Statistics and Computing Science, The University of New England, Australia, 1994.
[17] J. Xue. Closed-form mapping conditions for the synthesis of linear processor arrays. Journal of VLSI Signal Processing, (10):181−199, 1995.