亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種CUDA架構(gòu)下目標(biāo)訪問(wèn)計(jì)算并行實(shí)現(xiàn)方法與流程

文檔序號(hào):11917480閱讀:453來(lái)源:國(guó)知局

本發(fā)明涉及一種CUDA架構(gòu)下目標(biāo)訪問(wèn)計(jì)算并行實(shí)現(xiàn)方法,特別適用于偵察衛(wèi)星對(duì)偵察目標(biāo)的實(shí)時(shí)訪問(wèn)計(jì)算的問(wèn)題。



背景技術(shù):

在偵察衛(wèi)星做偵察任務(wù)時(shí),偵察任務(wù)經(jīng)過(guò)分解后,得到一系列可以由單顆衛(wèi)星一次觀測(cè)完成的元任務(wù),將觀測(cè)元任務(wù)作為調(diào)度模型的輸入數(shù)據(jù),不僅可以降低建模的難度,而且由于在任務(wù)分解過(guò)程中刪除了不滿足任務(wù)約束的衛(wèi)星資源以及時(shí)間窗口,有效削減了求解算法的搜索空間。目標(biāo)訪問(wèn)計(jì)算作為偵察衛(wèi)星任務(wù)規(guī)劃的前提,主要獲取衛(wèi)星資源屬性和任務(wù)屬性以及氣象信息,選擇滿足任務(wù)屬性要求的衛(wèi)星資源,并依據(jù)衛(wèi)星對(duì)目標(biāo)的可見(jiàn)時(shí)間窗口對(duì)任務(wù)進(jìn)行分解。在實(shí)際使用中,提高目標(biāo)訪問(wèn)計(jì)算的實(shí)時(shí)性,能夠?yàn)槿蝿?wù)規(guī)劃預(yù)留更多的機(jī)動(dòng)時(shí)間,甚至是偵察任務(wù)能否順利進(jìn)行。

傳統(tǒng)目標(biāo)訪問(wèn)計(jì)算方法的實(shí)現(xiàn)采用單一的中央處理器(CPU),CPU在訪問(wèn)計(jì)算時(shí)逐星歷時(shí)刻進(jìn)行計(jì)算,耗時(shí)隨著計(jì)算星歷時(shí)刻數(shù)的增加而線性增加,大量計(jì)算造成的時(shí)延限制了目標(biāo)訪問(wèn)計(jì)算的實(shí)時(shí)性。圖形處理器(GPU)作為圖像渲染顯示單元,與生俱來(lái)具有多核特性,采用GPU作為訪問(wèn)計(jì)算的計(jì)算單元,可以進(jìn)行多點(diǎn)并行計(jì)算,縮短訪問(wèn)計(jì)算時(shí)間,提高實(shí)時(shí)性。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明所需解決的技術(shù)問(wèn)題在于避免上述背景技術(shù)中的實(shí)時(shí)性差的問(wèn)題而提供一種CUDA架構(gòu)下目標(biāo)訪問(wèn)計(jì)算并行實(shí)現(xiàn)方法。本發(fā)明具有計(jì)算結(jié)果精度高、計(jì)算效率高、易于擴(kuò)展、兼容性強(qiáng)等特點(diǎn)。

本發(fā)明所要解決的技術(shù)問(wèn)題是由以下技術(shù)方案實(shí)現(xiàn)的:

一種CUDA架構(gòu)下目標(biāo)訪問(wèn)計(jì)算并行實(shí)現(xiàn)方法,其特征在于,包括以下步驟:

(1)CPU讀取衛(wèi)星數(shù)據(jù)、約束條件、設(shè)定時(shí)間段內(nèi)的星歷文件和目標(biāo)文件,傳遞到GPU;并為GPU分配多個(gè)線程;所述的約束條件包括衛(wèi)星的最小太陽(yáng)高度角、最小側(cè)擺角、最大側(cè)擺角、最小俯仰角、最大俯仰角、衛(wèi)星軌道傾角和軌道高度;

(2)GPU根據(jù)星歷文件、衛(wèi)星數(shù)據(jù)以及目標(biāo)文件同時(shí)計(jì)算每個(gè)線程對(duì)應(yīng)的星歷時(shí)刻下的星下點(diǎn)到目標(biāo)點(diǎn)的球面距離以及星下點(diǎn)的太陽(yáng)高度角,將計(jì)算得到的所有星歷時(shí)刻下的星下點(diǎn)到目標(biāo)點(diǎn)的球面距離以及星下點(diǎn)的太陽(yáng)高度角傳遞到CPU;

(3)CPU根據(jù)衛(wèi)星數(shù)據(jù)計(jì)算星下點(diǎn)到目標(biāo)點(diǎn)的球面最大距離,將步驟(2)中所得的所有星歷時(shí)刻下的星下點(diǎn)到目標(biāo)點(diǎn)的球面距離分別與星下點(diǎn)到目標(biāo)點(diǎn)的球面最大距離進(jìn)行對(duì)比,將步驟(2)中所得的所有星歷時(shí)刻下的星下點(diǎn)的太陽(yáng)高度角分別與衛(wèi)星的最小太陽(yáng)高度角進(jìn)行對(duì)比,若該星歷時(shí)刻下星下點(diǎn)到目標(biāo)點(diǎn)球面距離小于星下點(diǎn)到目標(biāo)點(diǎn)的球面最大距離且星下點(diǎn)的太陽(yáng)高度角大于衛(wèi)星的最小太陽(yáng)高度角,則執(zhí)行步驟(4);否則結(jié)束本流程;

(4)CPU計(jì)算每個(gè)星歷時(shí)刻下衛(wèi)星訪問(wèn)目標(biāo)的滾動(dòng)角和俯仰角,將滾動(dòng)角與最小側(cè)擺角和最大側(cè)擺角進(jìn)行對(duì)比,將俯仰角與最小俯仰角和最大俯仰角進(jìn)行對(duì)比,若滾動(dòng)角在最小側(cè)擺角和最大側(cè)擺角范圍內(nèi)且俯仰角在最小俯仰角和最大俯仰角范圍內(nèi),則記錄該星歷時(shí)刻及該星歷時(shí)刻下計(jì)算所得的星下點(diǎn)到目標(biāo)點(diǎn)的球面距離、星下點(diǎn)的太陽(yáng)高度角以及衛(wèi)星訪問(wèn)目標(biāo)的滾動(dòng)角和俯仰角;否則結(jié)束本流程。

其中,步驟(2)具體包括以下步驟:

(201)GPU將星歷文件中所有星歷時(shí)刻作為一個(gè)數(shù)組,數(shù)組中每個(gè)星歷時(shí)刻對(duì)應(yīng)一個(gè)線程,對(duì)所有線程進(jìn)行編號(hào);

(202)將所有的線程分為多個(gè)線程塊,每個(gè)線程塊包括多個(gè)連續(xù)的線程;

(203)每個(gè)線程以所屬線程塊中中間星歷時(shí)刻的時(shí)間作為計(jì)算的時(shí)間,根據(jù)星歷文件、衛(wèi)星數(shù)據(jù)以及目標(biāo)文件分別計(jì)算該線程編號(hào)對(duì)應(yīng)的星歷時(shí)刻下的星下點(diǎn)到目標(biāo)點(diǎn)球面距離以及星下點(diǎn)太陽(yáng)高度角,并傳遞到CPU端。

其中,步驟(202)中每個(gè)線程塊包括256個(gè)線程,線程塊個(gè)數(shù)為:(Total+255)/256;式中,Total為總的星歷時(shí)刻個(gè)數(shù)。

本發(fā)明與背景技術(shù)相比具有如下優(yōu)點(diǎn):

1、本發(fā)明使用GPU進(jìn)行偵察衛(wèi)星的目標(biāo)訪問(wèn)計(jì)算,NVIDIA顯卡的雙精度計(jì)算能力能夠滿足目標(biāo)訪問(wèn)計(jì)算的精度要求,計(jì)算結(jié)果精度高;

2、本發(fā)明在計(jì)算太陽(yáng)高度角和俯仰角時(shí),將計(jì)算過(guò)程數(shù)組化,充分利用NVIDIA顯卡的多核特性進(jìn)行并行計(jì)算,計(jì)算效率高;

3、本發(fā)明具有易于擴(kuò)展、兼容性強(qiáng)的特點(diǎn)。

附圖說(shuō)明

圖1 CUDA架構(gòu)下目標(biāo)訪問(wèn)計(jì)算并行實(shí)現(xiàn)方法流程圖。

具體實(shí)施方式

下面,結(jié)合圖1對(duì)本發(fā)明作進(jìn)一步說(shuō)明。

一種CUDA架構(gòu)下目標(biāo)訪問(wèn)計(jì)算并行實(shí)現(xiàn)方法,包括以下步驟:

(1)CPU讀取衛(wèi)星數(shù)據(jù)、約束條件、設(shè)定時(shí)間段內(nèi)的星歷文件和目標(biāo)文件,傳遞到GPU;并為GPU分配多個(gè)線程;所述的約束條件包括衛(wèi)星的最小太陽(yáng)高度角、最小側(cè)擺角、最大側(cè)擺角、最小俯仰角、最大俯仰角、衛(wèi)星軌道傾角和軌道高度;

(2)GPU根據(jù)星歷文件、衛(wèi)星數(shù)據(jù)以及目標(biāo)文件同時(shí)計(jì)算每個(gè)線程對(duì)應(yīng)的星歷時(shí)刻下的星下點(diǎn)到目標(biāo)點(diǎn)的球面距離以及星下點(diǎn)的太陽(yáng)高度角,將計(jì)算得到的所有星歷時(shí)刻下的星下點(diǎn)到目標(biāo)點(diǎn)的球面距離以及星下點(diǎn)的太陽(yáng)高度角傳遞到CPU;具體為:

(201)GPU將星歷文件中所有星歷時(shí)刻作為一個(gè)數(shù)組,數(shù)組中每個(gè)星歷時(shí)刻對(duì)應(yīng)一個(gè)線程,對(duì)所有線程進(jìn)行編號(hào);

(202)將所有的線程分為多個(gè)線程塊,每個(gè)線程塊包括多個(gè)連續(xù)的線程;

(203)每個(gè)線程以所屬線程塊中中間星歷時(shí)刻的時(shí)間作為計(jì)算的時(shí)間,根據(jù)星歷文件、衛(wèi)星數(shù)據(jù)以及目標(biāo)文件分別計(jì)算該線程編號(hào)對(duì)應(yīng)的星歷時(shí)刻下的星下點(diǎn)到目標(biāo)點(diǎn)球面距離以及星下點(diǎn)太陽(yáng)高度角,并傳遞到CPU端。

GPU端分配特定數(shù)量的線程完成計(jì)算任務(wù),對(duì)于GPU而言,為了最大程度的發(fā)揮GPU核心的計(jì)算能力,減少因邏輯控制造成的時(shí)間損耗,每個(gè)線程只對(duì)應(yīng)處理一組數(shù)據(jù)的計(jì)算,所以總的線程量不能少于總星歷數(shù);考慮到GPU三層線程結(jié)構(gòu)以及NVIDIA顯卡的資源,設(shè)置每個(gè)線程塊大小為256個(gè)線程,記總星歷時(shí)刻為Total,則線程塊個(gè)數(shù)設(shè)置為(Total+255)/256,既能夠保證有足夠的線程完成計(jì)算任務(wù),空閑線程數(shù)又最少;對(duì)于線程操作,根據(jù)線程坐標(biāo)與總星歷時(shí)刻Total的比對(duì),判斷出的空閑線程不執(zhí)行任何操作;

(3)CPU根據(jù)衛(wèi)星數(shù)據(jù)計(jì)算星下點(diǎn)到目標(biāo)點(diǎn)的球面最大距離,將步驟(2)中所得的所有星歷時(shí)刻下的星下點(diǎn)到目標(biāo)點(diǎn)的球面距離分別與星下點(diǎn)到目標(biāo)點(diǎn)的球面最大距離進(jìn)行對(duì)比,將步驟(2)中所得的所有星歷時(shí)刻下的星下點(diǎn)的太陽(yáng)高度角分別與衛(wèi)星的最小太陽(yáng)高度角進(jìn)行對(duì)比,若該星歷時(shí)刻下星下點(diǎn)到目標(biāo)點(diǎn)球面距離小于星下點(diǎn)到目標(biāo)點(diǎn)的球面最大距離且星下點(diǎn)的太陽(yáng)高度角大于衛(wèi)星的最小太陽(yáng)高度角,則執(zhí)行步驟(4);否則結(jié)束本流程;

(4)CPU計(jì)算每個(gè)星歷時(shí)刻下衛(wèi)星訪問(wèn)目標(biāo)的滾動(dòng)角和俯仰角,將滾動(dòng)角與最小側(cè)擺角和最大側(cè)擺角進(jìn)行對(duì)比,將俯仰角與最小俯仰角和最大俯仰角進(jìn)行對(duì)比,若滾動(dòng)角在最小側(cè)擺角和最大側(cè)擺角范圍內(nèi)且俯仰角在最小俯仰角和最大俯仰角范圍內(nèi),則記錄該星歷時(shí)刻及該星歷時(shí)刻下計(jì)算所得的星下點(diǎn)到目標(biāo)點(diǎn)的球面距離、星下點(diǎn)的太陽(yáng)高度角以及衛(wèi)星訪問(wèn)目標(biāo)的滾動(dòng)角和俯仰角;否則結(jié)束本流程。

完成CUDA架構(gòu)下目標(biāo)訪問(wèn)計(jì)算并行實(shí)現(xiàn)方法。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1