并行處理架構(gòu)進行矩陣運算并用于嚴格波耦合分析的方法
【專利摘要】為提供速度較快并且成本較低的矩陣運算和嚴格波耦合分析的技術(shù),本發(fā)明提供了一種并行處理架構(gòu)進行矩陣運算并用于嚴格波耦合分析的方法,該并行處理架構(gòu)包括多個處理器模塊,各處理器模塊分別與獨立的共享存儲器關(guān)聯(lián)并執(zhí)行獨立的線程塊。矩陣運算的方法包括如下步驟:i.各處理器模塊分別執(zhí)行并行處理架構(gòu)調(diào)用中的運算指令,其中,各運算指令一一對應于矩陣運算中的各運算部分,各運算部分能夠并行執(zhí)行并且互不相關(guān);ii.將該運算部分所用的數(shù)據(jù)分別讀入相應處理器模塊的共享存儲器中;iii.各處理器模塊基于相應的運算指令,讀取共享存儲器中的相應數(shù)據(jù),并行地執(zhí)行線程塊來完成該矩陣運算中的該運算部分。
【專利說明】并行處理架構(gòu)進行矩陣運算并用于嚴格波耦合分析的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及并行計算,特別涉及基于并行處理架構(gòu)進行矩陣運算。
【背景技術(shù)】
[0002]隨著高端計算機圖形顯示卡的發(fā)展,多核圖形處理單元(Graphic ProcessingUnit,簡稱GPU)越來越強大,GPU不僅為顯示圖像做了優(yōu)化,還有天生的并行性。經(jīng)過對硬件和軟件的改進,GPU的可編程力不斷提高,在計算上已經(jīng)超越了通用的CPU。為了充分利用芯片的強大的計算功能,顯卡廠商NVIDIA推出了新的運算平臺-統(tǒng)一計算設(shè)備架構(gòu)(Compute Unified Device Architecture,簡稱 CUDA)。CUDA 是一種通用并行處理架構(gòu),該架構(gòu)使GPU能夠解決復雜的計算問題。它包含了 CUDA指令集架構(gòu)(ISA)以及GPU內(nèi)部的并行計算引擎。CUDA采用C語言作為編程語言,開發(fā)人員可以使用C語言來為CUDA架構(gòu)編寫程序,能夠在GPU的強大計算能力的基礎(chǔ)上建立起一種效率更高的密集數(shù)據(jù)計算解決方案。
[0003]CUDA支持大量的線程并行,并在硬件中動態(tài)地創(chuàng)建,調(diào)度和執(zhí)行這些線程。CUDA編程模型將CPU作為主機,而將GPU作為協(xié)處理器,以CPU來控制程序整體的竄行邏輯和任務調(diào)度,而讓GPU來運行一些能夠被高度線性化的數(shù)據(jù)并行部分。
[0004]能夠使用GPU計算的程序必需有以下特點:需要處理的數(shù)據(jù)量比較大,數(shù)據(jù)以數(shù)組或矩陣形式有序存儲,并且對這些數(shù)據(jù)要進行的處理方式基本相同,各個數(shù)據(jù)間的依賴性或耦合很小。
[0005]CUDA提供了 一種編譯工具(nvcc)。開發(fā)人員只要將含CUDA指令的原程序,以.CU作文件后綴。nvcc會將.cu文檔拆解出在GPU上執(zhí)行的部份,及在CPU上執(zhí)行的部份,并調(diào)用適當?shù)某绦蜻M行編譯動作。在GPU執(zhí)行的部份會透過NVIDIA提供的編譯器編譯成中介碼,而主機執(zhí)行的部份則會透過系統(tǒng)上的C++編譯器來編譯(在Windows上使用VisualC++而在Linux上使用gcc)。
[0006]所有目前支持CUDA的NVIDIA顯示芯片,都是由多個多核處理器(或稱multiprocessors)組成,如圖1所示。每個多核處理器里包含了八個流處理器,其組成是四個一組,也就是說實際上可以看成是有兩組、每組四個處理器。此外,每個多核處理器通常具有8192個寄存器,16KB?64KB的共享存儲器,以及紋理緩存和固定緩存。此外,顯示芯片還有顯卡內(nèi)存。每個流處理器都可以讀寫顯卡內(nèi)存,但只能讀寫它所在的多核處理器中的寄存器和共享存儲器。流處理器讀寫寄存器和共享存儲器很快,但讀寫顯卡內(nèi)存較慢。所以,編程時,應盡量多用共享存儲器,少用顯卡內(nèi)存。
【發(fā)明內(nèi)容】
[0007]半導體芯片制造過程中,產(chǎn)品成品率是衡量芯片制造工藝的重要指標。為提高成品率,芯片制造過程中,需要用到光學關(guān)鍵尺寸(Optical Critical Dimension, OO))檢測和缺陷檢測。[0008]光學關(guān)鍵尺寸(OCD)的測量,通過獲取被測區(qū)域周期性結(jié)構(gòu)的散射信號以及結(jié)構(gòu)的模型從而估計出結(jié)構(gòu)的形貌參數(shù)。OCD測量原理總體上可概括為兩個步驟:光譜獲取過程一獲取樣品的散射信號并處理為測量光譜;光譜匹配過程-根據(jù)樣品的形貌模型尋找特定的形貌參數(shù)使其對應的理論光譜與測量光譜實現(xiàn)最佳匹配。
[0009]隨著集成電路工藝技術(shù)進入45納米之后,技術(shù)路線圖向32納米以下技術(shù)節(jié)點挺進時,圖形密度不斷增加、關(guān)鍵尺寸不斷微縮,工藝控制窗口非常狹小,以前可以被忽略的缺陷現(xiàn)在可能導致器件不能正常工作,成為影響成品率的致命缺陷。檢測方法通常有成品檢測,中間過程檢測等。中間過程檢測要求較高,要求快速和無損。光學成像檢測能滿足這些要求。光學成像檢測是用寬帶組合光源照射電路。為了增強缺陷信號強度,提高信噪比,需要通過對入射光束有針對性的控制和對散射場作有針對性的選擇濾波來實現(xiàn)優(yōu)化。
[0010]光學檢測中無論光學關(guān)鍵尺寸(OCD)測量或光學成像缺陷檢測都離不開嚴格精確的電磁場模擬計算。在這一領(lǐng)域,數(shù)值仿真計算代表性的方法有:嚴格波耦合分析理論(Rigorous Coupled-Wave Analysis,簡稱 RCWA)。
[0011]如圖2,所示,設(shè)介質(zhì)在X,y方向呈周期性變化。z方向通常情況下并非不變,光刻掩模板通常在z方向上均勻,或者z方向上分成幾層,每層內(nèi)均勻不變。晶片上的微細結(jié)構(gòu)通常在Z方向變化,但嚴格波耦合分析方法在Z方向?qū)⒔橘|(zhì)劃分若干薄片.薄片的厚度如果足夠小,則可認為光散射特性方面在Z方向介質(zhì)分布均勻。這樣,整個介質(zhì)的光散射效果可以看成若干個疊加在一起的Z方向介質(zhì)分布均勻的薄片的光散射效果。求解出每個介質(zhì)薄片上平面和下平面處的電磁場分布就可以得出整個介質(zhì)的光散射仿真。
[0012]這里僅以TE平面波垂直入射二維光柵為例,對RCWA算法作簡單介紹。如圖2,結(jié)構(gòu)分為三層,I,光柵上層空氣層 ,II,光柵層,III,光柵下襯底層。
[0013]在第一和第三層中,
【權(quán)利要求】
1.一種使用并行處理架構(gòu)進行矩陣運算并用于嚴格波耦合分析的方法,該并行處理架構(gòu)包括多個處理器模塊,各處理器模塊分別與獨立的共享存儲器關(guān)聯(lián)并執(zhí)行獨立的線程塊,該方法包括如下步驟: 1.各處理器模塊分別執(zhí)行并行處理架構(gòu)調(diào)用中的運算指令,其中,各運算指令一一對應于矩陣運算中的各運算部分,各運算部分能夠并行執(zhí)行并且互不相關(guān); i1.將該運算部分所用的數(shù)據(jù)分別讀入相應處理器模塊的共享存儲器中; ii1.各處理器模炔基于相應的運算指令,讀取共享存儲器中的相應數(shù)據(jù),并行地執(zhí)行線程塊來完成該矩陣運算中的該運算部分。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述矩陣運算包括矩陣-列向量的乘法, 所述步驟i中,所述各運算指令包括計算兩個向量的內(nèi)積; 所述步驟ii中,分別將該矩陣的一行向量與該列向量讀入處理器模塊的共享存儲器中; 所述步驟iii中,各處理器模塊分別執(zhí)行該矩陣的該行向量與該列向量的內(nèi)積,并將各內(nèi)積依次組成該矩陣-列向量乘法的結(jié)果向量。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述處理器模塊包括多個處理器,每個處理器執(zhí)行獨立的線程,所述步驟i中,各運算指令包括: -各個線程分別將一個向量中的一個位置的元素與另一個向量中的相同位置的元素相乘,得到多個積; -各個線程分別將多個積中的相鄰積不重復地相加,得到多個和; -各個線程分別將多個和中的相鄰和不重復地相加,并基于所得到的和重復該步驟,直至得到最終的單個和。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述矩陣運算包括兩個矩陣的乘積, 所述步驟i中,所述各運算指令包括計算分塊矩陣的乘積及矩陣和; 所述步驟ii中,分別將該兩個矩陣的各分塊矩陣讀入處理器模塊的共享存儲器中; 所述步驟iii中,各處理器模塊分別計算該兩個矩陣的分塊矩陣的乘積及矩陣和,并將結(jié)果組成該兩個矩陣的乘積矩陣。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟ii中,所述處理器模塊包括多個處理器,每個處理器執(zhí)行獨立的線程,該分塊矩陣的維度的平方不大于線程塊中的最大線程數(shù),并且, 將兩個矩陣的最末列的分塊矩陣在列方向進行零填充至該維度,和將兩個矩陣的最末行的分塊矩陣在行方向進行零填充至該維度。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述矩陣運算包括矩陣求逆, 所述步驟i中,各運算指令包括使用第j行來對另一行做初等行變換,消去另一行中的第j列的元素; 所述步驟ii中,將該矩陣的第j行和剩余行中的分別各行讀入處理器模塊的共享存儲器中; 所述步驟iii中,各處理器模塊并行地使用該矩陣的第j行來對剩余行中的分別各行做初等行變換,消去另一行中的第j列的元素; 步驟i至iii分別依次對該矩陣的每一行執(zhí)行,各行的執(zhí)行可由不同的線程塊同時完成。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述矩陣運算包括矩陣的QR分解, 所述步驟i中,各運算指令包括使用一行來消去另一行中的相應列的元素; 所述步驟ii中,將該矩陣的一行和另一行讀入處理器模塊的共享存儲器中; 所述步驟iii中,各處理器模塊使用該矩陣的一行來消去另一行中的相應列的元素;步驟i至iii循環(huán)進行,在每一次循環(huán)中,并行地分別對于前i_l個元素都已消去的各第i行,步驟i至iii使用該行來消去第j行中第i列的元素,其中,j大于i且前j-ι行中第i列元素都已被消去。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述并行處理架構(gòu)包括基于具有多核圖形處理單元的圖形顯示卡的統(tǒng)一計算設(shè)備架構(gòu)。
9.一種使用并行處理架構(gòu)計算矩陣的特征值的方法,該方法包括如下步驟: -使用根據(jù)權(quán)利要求7所述的方法對矩陣進行QR分解,獲得Q矩陣和R矩陣; -使用根據(jù)權(quán)利要求4所述的方法計算R矩陣和Q矩陣的乘積,得到新的矩陣; -判斷新矩陣中下三角非對角元的最大模數(shù); -當該最大模數(shù)大于給定值時,使用新的矩陣重復以上步驟;當該最大模數(shù)小于給定值或重復次數(shù)超過給定次數(shù)時,以該新的矩陣的對角元為該矩陣的特征值。
10.一種使用并行處理架構(gòu)進行嚴格波耦合分析的方法,該方法包括如下步驟:` -接收幾何結(jié)構(gòu)參數(shù)和入射光束參數(shù)和波長參數(shù); -使用根據(jù)權(quán)利要求1至9中任一項所述的方法來計算光柵區(qū)的本征模; -匹配邊界條件; -使用根據(jù)權(quán)利要求1至9中任一項所述的方法來解矩陣方程組得到散射矩陣; -使用根據(jù)權(quán)利要求1至9中任一項所述的方法來計算入射光束產(chǎn)生的所有散射模系數(shù)。
11.一種將嚴格波耦合分析用于光學關(guān)鍵尺寸測量的方法,該方法包括如下步驟: _根據(jù)接收波長范圍和波長步長,確定各波長; -使用根據(jù)權(quán)利要求10的方法來計算在各波長的入射光束產(chǎn)生的所有散射模系數(shù)。
12.—種將嚴格波耦合分析用于缺陷檢測的方法,該方法包括如下步驟: -接收待測器件的三維幾何結(jié)構(gòu)參數(shù)和入射光源的光譜波長參數(shù); -使用根據(jù)權(quán)利要求1至9中任一項所述的方法來計算三維結(jié)構(gòu)的本征模; -匹配邊界條件; -使用根據(jù)權(quán)利要求1至9中任一項所述的方法來解矩陣方程組得到散射矩陣; -根據(jù)接收的結(jié)構(gòu)參數(shù),決定Θ和Φ最大張角的階次M ; -使用根據(jù)權(quán)利要求1至9中任一項所述的方法來計算各入射張角方向入射光束產(chǎn)生的所有散射模系數(shù)。
【文檔編號】G06F17/16GK103631761SQ201210313665
【公開日】2014年3月12日 申請日期:2012年8月29日 優(yōu)先權(quán)日:2012年8月29日
【發(fā)明者】劉志鈞, 徐益平, 施耀明 申請人:睿勵科學儀器(上海)有限公司