專利名稱:一種確定微、納電子結構的方法及裝置的制作方法
技術領域:
本發明涉及高性能計算領域在計算物理學和納米材料科學方面的應用,具體涉及ー種確定微、納電子結構的方法及裝置。
背景技術:
隨著人類社會的不斷進步,科學技術的發展,人們對自然界的認識越來越廣泛,并逐步的向微、納觀等物理體系結構深入。與此同時,生物技術、化學生產及制藥的需求,也迫切的要求人們能夠在電子、原子或分子尺度上來精確把握物體的性態。但遺憾的是,微觀體系往往動輒包括成千上萬個電子和原子,而對多體問題的求解一直是物理學界的難題。自上世紀量子力學理論誕生以來,人們逐漸發展了像絕熱近似、哈特里近似、哈特里-福克近似(Hartree-Fock)、密度泛函理論(DFT)、變分法(Variational Method)、隨機相近似(Random-Phase Approximation)以及組態相互作用(Configuration Interaction)等等來計算微觀結構的多體問題。為了使可以計算的粒子數目盡可能的多,這里面大多數計算方法都是近似的,而組態相互作用方法卻是ー種數值精確的計算方法,因此對于研究半導體量子結構(量子點、量子環等),以及納米材料來說,組態相互作用方法是ー種非常合適并且已被廣泛使用的方法。組態相互作用方法是將多粒子體系的波函數看作是所有可能的單粒子占據態的疊加,因此所考慮的單粒子占據態的數目越多,計算的結果也就越精確。我們考慮ー個含有N個粒子的系統,計算中我們使用M個可能的單粒子態,那么多粒子哈密頓(Hamiltonian)矩陣的維度將是Cfl ,由此可見隨著所考慮到單粒子態的數目M的增多,矩陣的維度將會急驟的増大。特別的,粒子間還存在著長程相互作用,如電子-電子,電子-質子間的庫侖相互作用,在哈密頓量矩陣元的計算中,這是ー個四重積分。這將意味著,我們每初始化ー個哈密頓量矩陣元就將計算多個四重積分,因此組態相互作用方法的計算量巨大,這也阻礙了組態相互作用方法所能計算的物理體系的大小。為了簡化計算,人們在研究微觀量子體系或納米材料的時候,往往使用拋物限制勢(實際上,選取不同類型的限制勢在能譜上可能會有定量的不同,但對于我們所感興趣的物理圖像卻并不會受到影響),這是因為在拋物限制勢下。庫侖積分可以解析的求出。然而遺憾的是,經過復雜的計算,我們會發現四重積分將會變成ー個十重求和,實現上并沒有簡化多少,唯一的優點只是通過循環計算所得的結果是精確的。即使利用超級計算機,現在所能計算的電子數也僅僅14個左右,小的計算機系統所能夠計算的電子數目就更少了。而事實上在整個過程中,絕大部分的時間都消耗在了哈密頓矩陣元的初始化計算上,如果我們可以加速哈密頓矩陣元的初始化,那么整個計算并不會花費太多的時間。
發明內容
本發明所要解決的技術問題是,提供ー種確定微、納電子結構的方法及裝置,以提高確定微、納電子結構的效率。、
為了解決上述技術問題,本發明公開了ー種確定微、納電子結構的方法,包括利用中央處理器(CPU)求解單粒子問題,圖形處理器(GPU)將求解得到的各單粒子占據態存放在線性內存中作為初始參數;將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離,再將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應,將所述初始參數傳入所述GPU的顯存,將計算中需要頻繁訪問的參數存放在緩存中,由所述GPU計算庫侖積分,將計算結果回傳到主機內存,由CPU進行多粒子體系哈密頓量矩陣初始化,利用CPU對哈密頓矩陣対角化求得本征能量和本征態矢。較佳地,上述方法中,將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離指將多次使用的庫侖積分単獨分離出來,形成庫侖積分矩陣,所形成的庫侖積分矩陣規模由所選取的單粒子態數目決定。 較佳地,上述方法中,將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應的過程如下利用庫侖積分間的非相關性,將所述庫侖積分矩陣與計算統ー設備架構(CUDA)的三重線程模型對應起來,得到網格(網格O、塊(i,j)、線程(p,q))。較佳地,上述方法中通過調用所述GPU的內核函數計算庫侖積分。本發明還公開了ー種確定微、納電子結構的裝置,包括中央處理器(CPU)和圖形處理器(GPU),其中所述CPU,求解單粒子問題,并將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離,以及根據所述GPU回傳到主機內存的庫侖積分計算結果進行多粒子體系哈密頓量矩陣初始化,并對哈密頓矩陣對角化求得本征能量和本征態矢;圖形處理器(GPU),將求解得到的各單粒子占據態存放在線性內存中作為初始參數,以及將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應,井根據所述初始參數,計算庫侖積分,將計算結果回傳到主機內存。較佳地,上述裝置中,所述CPU,將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離是將多次使用的庫侖積分単獨分離出來,形成庫侖積分矩陣,所形成的庫侖積分矩陣規模由所選取的單粒子態數目決定。較佳地,上述裝置中,所述GPU,將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應指利用庫侖積分間的非相關性,將所述庫侖積分矩陣與計算統ー設備架構(CUDA)的三重線程模型對應起來,得到網格(網格O、塊(i,j)、線程(p,q))。 較佳地,上述裝置中,所述GPU通過調用內核函數計算庫侖積分。本申請技術方案,在確定微、納電子結構的過程中,利用GPU(Graphic ProcessingUnit,圖形處理器)來加速大規模哈密頓(Hamiltonian)矩陣初始化計算,從而提高確定微、納電子結構的最終效率。并且使得以往需要借助大型超級計算機才能完成的計算輕松的轉移到桌面等個人超算平臺上。極大的方便了研究人員對微、納體系做更深入的探索和發現。
圖I為本發明所采用的問題空間與GPU計算線程的對應關系示意圖;圖2為本發明方法的流程圖;圖3為采用本發明方案和傳統方案的對比結果圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚明白,下文將結合附圖對本發明技術方案作進ー步詳細說明。需要說明的是,在不沖突的情況下 ,本申請的實施例和實施例中的特征可以任意相互組合。實施例I本發明申請人考慮到可利用GPU來加速組態相互作用方法中庫侖積分的計算,從而充分發揮GPU眾核結構的多計算處理單元、高帶寬優勢,以及CPU的邏輯處理能力和主內存的大容量優勢,來大幅縮短對少粒子體系的計算模擬時間。針對組態相互作用的計算特點,申請人將確定微、納電子結構的過程分為兩個主要步驟初始化哈密頓量矩陣元(即計算庫侖相互作用積分)和哈密頓矩陣對角化。其中,初始化哈密頓量矩陣元時,需要初始化的矩陣元數目巨大(C^ X 個),故要求較多的計算資源和較高的存儲器帶寬,但相應的對存儲器的容量需求較小,因此申請人提出可以將這部分計算移植到GPU上來完成。而計算哈密頓矩陣対角化,是對整個哈密頓矩陣的歸約操作,它需要占用大量的內存資源,并且由于矩陣各部分的依賴關系,大部分時間是做串行處理,因此申請人提出將其交給CPU來完成。具體來說,本實施例中確定微、納電子結構的方法包括如下步驟利用中央處理器(CPU)求解單粒子問題,圖形處理器(GPU)將求解得到的各單粒子占據態存放在線性內存中作為初始參數;將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離,再將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應,將所述初始參數傳入所述GPU的顯存,將計算中需要頻繁訪問的參數存放在緩存中,由所述GPU計算庫侖積分,將計算結果回傳到主機內存,由CPU進行多粒子體系哈密頓量矩陣初始化,利用CPU對哈密頓矩陣対角化求得本征能量和本征態矢。需要說明的是,將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離時,是將多次使用的庫侖積分単獨分離出來,從而形成庫侖積分矩陣,而所形成的庫侖積分矩陣的規模由所選取的單粒子態數目決定。然后GPU再利用庫侖積分間的非相關性,將生成的庫侖積分矩陣與計算統ー設備架構(CUDA)的三重線程模型對應起來,即同Grid, Block, Thread 對應起來。下面假設使用CUDA在Nvidia C2050加速卡上實現含有兩個電子的拋物限制勢量子點的計算,對本發明中的關鍵步驟進行詳細說明,對于更多電子(粒子)的情形或其他介觀體系(量子環等)的實現方式與之相同。圖I所示,為本實施例所涉及的問題解空間與GPU中計算線程的對應關系。由于多體相互作用的哈密頓量矩陣元中均含有ニ體的庫侖相互作用積分,而庫侖積分是與兩電子所在的占據態相關的,占據態的最大數目為前面所述的M,也就是庫侖積分下標i,j,p,q均從I到M遍歷,因此可將庫侖積分單獨生成庫侖矩陣Coulomb (i, j,p, q)。現在的CUDA架構把GPU的線程空間劃分為grid,block和thread三重結構,簡單起見,可以直接把庫侖矩陣的(i,j)變量與block聯系起來,(p, q)與thread聯系起來,即block(i, j)和thread(p,q)。由于各庫侖矩陣之間并無相互作用,也就是和block及thread之間無需數據通信,因此,可以看出,圖I所示的解空間到線程的簡單映射可行且高效。接下來結合圖2說明確定微、納電子結構的具體過程步驟200,利用CPU求解單粒子問題,GPU將求解得到的各單粒子占據態存放在一線性內存中,做為初始參數;步驟201,利用CPU多次分離庫侖積分,得到庫侖積分矩陣Coulomb(i, j, p, q);此步驟是將哈密頓量矩陣元中庫侖相互作用部分單獨提取出來,并按下標順序(i,j,P,q)生成四維庫侖積分矩陣空間,如圖I所示。 步驟202,根據庫侖積分組合規律劃分計算網格(gridO、block(i, j)、thread(p,q))(如圖I所示),傳遞初始參數到顯存,并將計算中需要頻繁訪問的參數放到GPU的共享存儲器中(shared memory);步驟203,調用GPU內核函數(kernel函數)計算庫侖積分,并將各線程對應的結果存放到顯存中;步驟204,將計算完成的庫侖矩陣從顯存拷貝到主機內存中;步驟205,生成哈密頓矩陣,在CPU上做矩陣對角化計算;該步驟中,在CPU上調用Lapack等數學庫來完成矩陣對角化計算。步驟206,完成計算得到本征能量和本征態矢。從上述實施例可以看出,本申請技術方案充分剖析了組態相互作用算法的計算負載特點,并充分利用了計算機中的各種計算資源,大幅加速了使用組態相互作用方法對含有少量電子(粒子)的量子體系、原子、分子等的精確模擬計算。例如對ニ電子拋物限制勢量子點,可以輕松得到21. 58倍的加速比,如圖3所示,且算法簡單,比較易于實現和擴展,可以極大的利用有限的計算資源加速半導體、材料和納米等科學方面的研究,并且還比較f 倉^:。實施例2本實施例介紹ー種確定微、納電子結構的裝置,該裝置可實現上述實施例I的方法。本實施例中,該裝置至少包括中央處理器(CPU)和圖形處理器(GPU)。CPU,求解單粒子問題,并將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離,以及根據所述GPU回傳到主機內存的庫侖積分計算結果進行多粒子體系哈密頓量矩陣初始化,并對哈密頓矩陣對角化求得本征能量和本征態矢;需要說明的是,上述CPU,將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離時,是將多次使用的庫侖積分単獨分離出來,形成庫侖積分矩陣,而所形成的庫侖積分矩陣規模由所選取的單粒子態數目決定。GPU,將求解得到的各單粒子占據態存放在線性內存中作為初始參數,以及將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應,井根據所述初始參數,計算庫侖積分,將計算結果回傳到主機內存。具體地,上述GPU將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應時主要利用了庫侖積分間的非相關性,將所述庫侖積分矩陣與CUDA的三重線程模型對應起來,從而得到網格(網格O、塊(i,j)、線程(P,q))具體的對應過程可參見實施例1,在此不再贅述。另外,GPU計算庫侖積分時,可通過調用內核函數來實現。本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關硬件完成,所述程序可以存儲于計算機可讀存儲介質中,如只讀存儲器、磁盤或光盤等。可選地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現。相應地,上述實施例中的各模塊/單元可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。本申請不限制于任何特定形式的硬件和軟件的結合。以上所述,僅為本發明的較佳實例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范 圍之內。
權利要求
1.一種確定微、納電子結構的方法,其特征在于,該方法包括 利用中央處理器(CPU)求解單粒子問題,圖形處理器(GPU)將求解得到的各單粒子占據態存放在線性內存中作為初始參數; 將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離,再將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應,將所述初始參數傳入所述GPU的顯存,將計算中需要頻繁訪問的參數存放在緩存中,由所述GPU計算庫侖積分,將計算結果回傳到主機內存,由CPU進行多粒子體系哈密頓量矩陣初始化,利用CPU對哈密頓矩陣對角化求得本征能量和本征態矢。
2.如權利要求I所述的方法,其特征在于,將多粒子相互作用體系哈密頓量矩陣元中 的粒子-粒子庫侖積分進行分離指 將多次使用的庫侖積分單獨分離出來,形成庫侖積分矩陣,所形成的庫侖積分矩陣規模由所選取的單粒子態數目決定。
3.如權利要求2所述的方法,其特征在于,將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應的過程如下 利用庫侖積分間的非相關性,將所述庫侖積分矩陣與計算統一設備架構(CUDA)的三重線程模型對應起來,得到網格(網格O、塊(i,j)、線程(p,q))。
4.如權利要求I至3任一項所述的方法,其特征在于,通過調用所述GPU的內核函數計算庫侖積分。
5.一種確定微、納電子結構的裝置,其特征在于,該裝置包括中央處理器(CPU)和圖形處理器(GPU),其中 所述CPU,求解單粒子問題,并將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離,以及根據所述GPU回傳到主機內存的庫侖積分計算結果進行多粒子體系哈密頓量矩陣初始化,并對哈密頓矩陣對角化求得本征能量和本征態矢; 圖形處理器(GPU),將求解得到的各單粒子占據態存放在線性內存中作為初始參數,以及將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應,并根據所述初始參數,計算庫侖積分,將計算結果回傳到主機內存。
6.如權利要求5所述的裝置,其特征在于, 所述CPU,將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離是將多次使用的庫侖積分單獨分離出來,形成庫侖積分矩陣,所形成的庫侖積分矩陣規模由所選取的單粒子態數目決定。
7.如權利要求6所述的裝置,其特征在于, 所述GPU,將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應指利用庫侖積分間的非相關性,將所述庫侖積分矩陣與計算統一設備架構(CUDA)的三重線程模型對應起來,得到網格(網格O、塊(i,j)、線程(p,q))。
8.如權利要求5至7任一項所述的裝置,其特征在于,所述GPU通過調用內核函數計算庫侖積分。
全文摘要
本發明公開了一種確定微、納電子結構的方法及裝置,涉及高性能計算領域。本發明公開的方法包括GPU將CPU求解得到的各單粒子占據態存放在線性內存中作為初始參數;將多粒子相互作用體系哈密頓量矩陣元中的粒子-粒子庫侖積分進行分離,再將分離出的庫侖積分所構成的問題解空間與GPU中的線程空間相對應,將初始參數傳入GPU的顯存,將計算中需要頻繁訪問的參數存放在緩存中,由GPU計算庫侖積分,將計算結果回傳到主機內存,由CPU進行多粒子體系哈密頓量矩陣初始化,利用CPU對哈密頓矩陣對角化求得本征能量和本征態矢。本發明還公開了一種確定微、納電子結構的裝置。本申請技術方案提高了確定微、納電子結構的最終效率。
文檔編號G06F17/16GK102663149SQ20121005195
公開日2012年9月12日 申請日期2012年3月1日 優先權日2012年3月1日
發明者劉羽 申請人:浪潮(北京)電子信息產業有限公司