專利名稱:基于OpenCL的GPU加速三維時域有限差分電磁場仿真的方法
技術領域:
本發明涉及電磁場仿真分析領域,具體涉及一種基于OpenCUOpen Computing Language,開放計算語言)的GPU (Graphic Processing Unit,圖形處理器)加速三維時域有限差分電磁場仿真的方法。
背景技術:
FDTD (Finite-Difference Time-Domain,時域有限差分)是電磁場仿真計算領域的一種常用方法。FDTD方法是把麥克斯韋(Maxwell)方程組在時間和空間上進行差分離散,通過蛙跳式(Leap frog algorithm)迭代,使空間內的電場和磁場進行交替計算;通過時間上更新來模仿電磁場隨時間的變化,實現數值計算目的。用FDTD方法分析電磁學問題時,要事先構建研究對象的空間幾何參數、材料參數模型,并可對計算精度,計算復雜度,計算穩定性進行控制。其優點是能夠直接模擬空間電磁場隨時間的變化和分布情況,計算精度高,是目前應用較多的電磁學數值模擬方法之一。FDTD電磁場仿真分析方法已被成功應用在電磁兼容分析、天線設計、射頻器件設計、微納光學等研究領域。然而由于FDTD為時域全波電磁學算法,因此面臨仿真時間過長的關鍵性制約。目前解決FDTD仿真時間長的方法主要有利用高性能并行計算機進行仿真計算,然而高性能并行機的成本高昂,因此該方法并沒有得到普及。由于GPU具有CPU所不能比擬的高性能并行計算能力,并且成本低廉,因此利用GPU加速FDTD仿真速度成為一種低成本高性能的仿真方法。利用GPU加速FDTD仿真雖然具有高性能低成本的優點,但需要設計開發人員具備深厚的圖形編程理論知識儲備。近些年Nvidia公司和AMD公司相繼開發了 CUDA和Brook+ 等通用計算程序接口用以推廣其GPU應用于科學計算,使設計開發人員不必精通圖形編程理論,也可以利用GPU進行科學計算。目前國外已經有學者成功實現了利用上述接口實現 GPU加速二維或三維FDTD仿真的例子。但上述FDTD加速方法只能運行在GPU上,不能運行在CPU上,并且上述的FDTD加速仿真實例不具有吸收邊界條件,而不具備吸收邊界條件的 FDTD方法實用性很有限,只能仿真金屬波導結構。
發明內容
本發明針對目前FDTD電磁場仿真計算時間過長的弊端,以及目前FDTD仿真加速方法只能運行在GPU上且實用性有限的缺陷,提出了一種基于OpenCL的GPU加速三維時域有限差分電磁場仿真的方法。本發明是一種基于OpenCL的GPU加速三維時域有限差分電磁場仿真的方法,具體包括以下步驟步驟1 設置FDTD仿真參數,為所述仿真參數動態申請內存空間;步驟2 構建三維的電磁模型,對該電磁模型進行網格剖分;
步驟3 初始化OpenCL的計算參數,包括獲得FDTD仿真空間的大小、設置仿真所用處理器類型、創建上下文、獲得工作組的維數及大小信息、創建指令序列及數據緩存區、 裝載FDTD加速程序文件、聲明磁場仿真計算的內核函數以及電場仿真計算內核函數;步驟4 對三維電磁模型基于OpenCL進行FDTD加速仿真;步驟5 利用OpenCL標準庫函數clReleaseMemObjectO釋放顯存中存儲的數據;步驟6 仿真完成后,釋放CPU內存資源。所述的步驟3中,通過設置仿真所用處理器類型為GPU或者CPU來設置本發明方法是基于GPU的FDTD電磁場仿真或者基于CPU的FDTD電磁場仿真。所述的步驟4具體通過下面過程進行FDTD加速仿真設置時間迭代步數;為每一個迭代步設置其對應的開始時間;按照步驟1中設置的FDTD仿真參數設置激勵源;執行基于OpenCL的磁場仿真計算內核函數;執行基于OpenCL的電場仿真計算內核函數;保存需要的電磁場數據。本發明的優點和積極效果在于(1)本發明的加速方法顯著提升了 FDTD電磁場仿真速度,與利用CPU計算相比速度提升可達5-10倍;(2)本發明的加速方法具有UPML吸收邊界條件,可以模擬電磁波在自由空間的傳播,使得FDTD電磁場仿真具有更廣泛的實際應用;(3)本發明的加速方法既可以在GPU運行,也可以在CPU運行,并可利用多核CPU的并行性,采用本發明的方法進行電磁場仿真計算,可使其具有跨硬件平臺的通用性和可移植性, 使得FDTD電磁場仿真得到更大程度的普及。
圖1是本發明加速三維FDTD電磁場仿真方法的整體步驟流程圖2是本發明方法中UPML設置的部分示意圖3是本發明的GPU工作組示意圖4是基于OpenCL的磁場計算時y軸方向Ex和Ez數據設置的流程圖5是基于OpenCL的磁場計算時ζ軸方向Ex和Ey數據設置的流程圖6是基于OpenCL的磁場計算時χ軸方向Ey和Ez數據設置的流程圖7是基于OpenCL的電場計算時y軸方向Hx和Hz數據設置的流程圖8是基于OpenCL的電場計算時ζ軸方向Hx和Hy數據設置的流程圖9是基于OpenCL的電場計算時χ軸方向Hy和Hz數據設置的流程圖10是平面形式存儲電磁場示意圖11是本發明實施例中固定迭代時間步數1000,改變FDTD計算空間條件下GPU
和CPU計算時間對比圖,(a)是GPU和CPU計算時間對比圖,(b)是GPU和CPU計算時間比值的曲線示意圖;圖12是本發明實施例中固定FDTD仿真空間為120X120X120網格,改變迭代時間步數條件下GPU和CPU計算時間對比圖,(a)是GPU和CPU計算時間對比圖,(b)是GPU 和CPU計算時間比值的曲線示意圖;圖13是本發明實施例中固定迭代時間步數1000,改變FDTD仿真空間條件下基于 OpenCL的雙核并行CPU計算時間與普通CPU計算時間的對比圖;(a)是基于OpenCL的雙核并行CPU計算時間與普通CPU計算時間的對比圖,(b)是普通CPU計算時間與基于OpenCL的雙核并行CPU計算時間比值的曲線示意圖。
具體實施例方式下面將結合附圖和實施例對本發明做進一步的詳細說明。OpenCL是一種面向異構平臺系統通用目的的并行編程開放式語言標準,利用 OpenCL可以簡化FDTD方法對電磁場仿真的設計與實現,使GPU加速FDTD方法進行仿真這一技術更加通用。本發明的一種基于OpenCL的GPU加速三維FDTD電磁場仿真的方法,利用GPU并行處理特性并結合OpenCL接口功能實現了具有單軸各項異性完全匹配層(UPML) 吸收邊界條件的三維FDTD方法的高性能加速仿真。采用本發明的方法進行電磁場仿真具有跨硬件平臺的通用性和可移植性,基于OpenCL編譯的語言程序可以運行在CPU或GPU硬件上,并可充分發揮多核CPU的并行計算能力;另外本發明方法采用了 UPML吸收邊界條件, 可以很好的吸收傳播到邊界面處的電磁波,使電磁波不會發生虛擬反射,從而模擬電磁波在自由空間的傳播,在根本上擴展了三維FDTD方法的應用范圍。如圖1所示,本發明基于OpenCL的GPU加速三維FDTD電磁場仿真的方法,包括下列步驟步驟1 參數設置及內存空間動態申請。在進行FDTD電磁場仿真之前需要對電磁場仿真的參數進行設置及其內存空間動態申請。步驟1-1 =FDTD電磁場仿真參數設置,包括設置空間步長、時間步長、UPML吸收邊界以及激勵源。步驟1-1-1 設置空間步長Δ α。為了減小FDTD的數值色散,FDTD仿真的空間步長的設置應滿足的條件如(1)式。
權利要求
1.一種基于OpenCL的GPU加速三維時域有限差分電磁場仿真的方法,其特征在于,該方法具體包括以下步驟步驟1 設置FDTD仿真參數,為所述仿真參數動態申請內存空間; 步驟2 構建三維的電磁模型,對該電磁模型進行網格剖分;步驟3 初始化OpenCL的計算參數,包括獲得FDTD仿真空間的大小、設置仿真所用處理器類型、創建上下文、獲得工作組的維數及大小信息、創建指令序列及數據緩存區、裝載 FDTD加速程序文件、聲明磁場仿真計算的內核函數以及電場仿真計算的內核函數; 步驟4 基于OpenCL對三維電磁模型進行FDTD加速仿真; 步驟5 釋放顯存中存儲的數據; 步驟6 仿真完成后,釋放CPU內存資源;其中,OpenCL表示開放計算語言,GPU表示圖形處理器,FDTD表示時域有限差分。
2.根據權利要求1所述的基于OpenCL的GPU加速三維時域有限差分電磁場仿真的方法,其特征在于,步驟1具體包括步驟1-1 設置電磁場仿真參數,包括如下步驟 步驟1-1-1 設置空間步長Δ α A
3.根據權利要求1所述的基于OpenCL的GPU加速三維時域有限差分電磁場仿真的方法,其特征在于,所述的步驟2具體包括以下兩步步驟2-1 簡單的電磁模型的構建及網格剖分直接對該電磁模型建立三維幾何模型, 并進行網格剖分;步驟2-2 復雜的電磁模型的構建及網格自動剖分利用建模軟件Auto CAD構建三維幾何模型,或讀入已經建立的三維幾何模型,不同電磁材料部件用圖層來區分,然后利用二次開發工具Object ARX開發自動剖分程序輸出有效網格位置及其對應電磁材料參數,生成幾何-電磁參數描述文件,然后調用該描述文件,將剖分網格和電磁參數讀入計算內存。
4.根據權利要求1所述的基于OpenCL的GPU加速三維時域有限差分電磁場仿真的方法,其特征在于,所述的步驟3具體為步驟3-1 確定基于GPU的FDTD仿真空間的大小NxXNyXNz/4 ; 步驟3-2 設置仿真所用處理器類型從OpenCL標準庫中選取參數CL_DEVICE_TYPE_ GPU進行設置;所述的CL_DEVICE_TYPE_GPU表示仿真所用處理器為GPU ;步驟3-3 利用OpenCL標準庫函數clCreateContextFromType ()創建上下文,并利用 OpenCL標準庫函數clGetContex nfo()獲得上下文信息;步驟3-4 利用OpenCL標準庫函數clGetDevicelnfo ()獲得OpenCL的工作組的維數及大小信息;步驟3-5 利用OpenCL標準庫函數clCreateCommandQueue ()創建指令序列,并創建三維電磁場數據變量以及由UPML引入的三維臨時電磁參量的數據緩沖區;步驟 3-6 利用 OpenCL 標準庫函數 clCreateProgramffithSource ()裝載基于 OpenCL 的 FDTD加速程序文件,并利用OpenCL標準庫函數cIBuiIdProgramO將加速程序文件轉化為 GPU內核可執行的程序文件;步驟3-7 創建聲明基于OpenCL的磁場仿真計算的內核函數; 步驟3-8 創建聲明基于OpenCL的電場仿真計算的內核函數。
5.根據權利要求1或2所述的基于OpenCL的GPU加速三維時域有限差分電磁場仿真的方法,其特征在于,所述的步驟4具體包括以下步驟步驟4-1 設置時間迭代步數n,則總的迭代時間為t = nX At ; 步驟4-2 為每一個迭代步設置其對應的開始時間、+Δ Χ (η-1),其中、為仿真起始時刻;步驟4-3 按照步驟1中的激勵源設置方法設置激勵源; 步驟4-4 執行基于OpenCL的FDTD磁場仿真計算內核函數步驟4-4-1 在時間步η = 1時,利用OpenCL標準庫函數ClktKernelArgO取得FDTD 磁場仿真計算所用的三維電磁場數據變量以及三維臨時電磁參量的存儲地址;步驟4-4-2 當基于GPU進行仿真時,利用OpenCL標準庫函數 ClEnqueueffriteBuffer (),將指令序列數據緩沖區中FDTD磁場仿真計算所用的三維電磁場數據變量以及三維臨時電磁參量傳遞到GPU顯存;步驟4-4-3 利用OpenCL標準庫函數cIEnqueueNDRangeKernel ()激活GPU內核,進行FDTD磁場加速仿真;步驟4-4-4:如果需要對仿真后的磁場數據進行存儲,則利用OpenCL標準庫函數 ClEnqueueReadBuffer ()將χ方向、y方向、ζ方向的磁場Hx、Hy、Hz由GPU顯存傳遞到CPU 內存,以便在內存中對磁場數據進行后處理;步驟4-5 執行基于OpenCL的FDTD電場仿真計算內核函數步驟4-5-1 在時間步η = 1時,利用OpenCL標準庫函數ClktKernelArgO取得FDTD 電場仿真計算所用的三維電磁場數據變量以及三維臨時電磁參量的存儲地址;步驟4-5-2 當基于GPU進行仿真時,利用OpenCL標準庫函數 clEnqueuefeiteBufferO,將指令序列數據緩沖區中FDTD電場計算所用的三維電磁場數據變量以及三維臨時電磁參量傳遞到GPU顯存;步驟4-5-3 利用OpenCL標準庫函數cIEnqueueNDRangeKernel ()激活GPU內核進行 FDTD電場加速仿真;步驟4-5-4:如果需要對仿真后的電場數據進行存儲,則利用OpenCL標準庫函數 ClEnqueueReadBuffer ()將電場Ex、Ey、Ez由GPU顯存傳遞到CPU內存,以便于在內存中對電場數據進行后處理;步驟4-6 保存所需要的電磁場數據保存時間步Iitl下的空間電磁場數據,以及保存所關心的位置點的電磁場在時間步Ii1 n2下的電磁場隨時間變化情況的數據。
6.根據權利要求5所述的基于OpenCL的GPU加速三維時域有限差分電磁場仿真的方法,其特征在于,步驟4-4-3所述的磁場仿真加速計算的方法如下 步驟4-4-3-1 設置工作組大小為nxXnyXnz = 2X2X30 ;步驟4-4-3-2 設置全局存儲空間為整個FDTD仿真空間的大小,本地存儲空間為每個工作組的大小,每個FDTD立方體網格具體位置坐標(Ix,Iy, Iz)為
7.根據權利要求5所述的基于OpenCL的GPU加速三維時域有限差分電磁場仿真的方法,其特征在于,步驟4-5-3所述的電場加速計算方法如下步驟4-5-3-1 設置全局存儲空間為整個FDTD仿真空間的大小,本地存儲空間為每個工作組的大小,每個FDTD立方體網格具體位置坐標(Ix,Iy, Iz)為
8.根據權利要求1所述的一種基于OpenCL的GPU加速三維時域有限差分電磁場仿真的方法,其特征在于,所述的步驟5具體是利用OpenCL標準庫函數clReleaseMemOb ject () 來釋放顯卡中存儲的數據。
全文摘要
本發明提出一種基于OpenCL的GPU加速三維時域有限差分(FDTD)電磁場仿真的方法,應用于電磁場仿真分析領域,利用OpenCL簡化FDTD方法對電磁場仿真的設計與實現。首先設置FDTD仿真參數并動態申請內存空間,構建三維的電磁模型并進行網格剖分,然后初始化OpenCL的計算參數,對三維電磁模型基于OpenCL進行FDTD加速仿真,最后用OpenCL標準庫函數釋放顯存中存儲的數據,釋放CPU內存資源。本發明方法顯著提升了FDTD電磁場仿真速度,與利用CPU計算相比速度提升可達5-10倍,且具有UPML吸收邊界條件,可以模擬電磁波在自由空間的傳播,使得FDTD電磁場仿真具有更廣泛的實際應用。
文檔編號G06F17/50GK102207987SQ20111014444
公開日2011年10月5日 申請日期2011年5月31日 優先權日2011年5月31日
發明者代健, 褚天舒 申請人:中國航天標準化研究所