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

用于在圖形處理單元(gpu)上實(shí)現(xiàn)最近鄰搜索的方法和裝置的制造方法

文檔序號(hào):9646821閱讀:554來(lái)源:國(guó)知局
用于在圖形處理單元(gpu)上實(shí)現(xiàn)最近鄰搜索的方法和裝置的制造方法
【專(zhuān)利說(shuō)明】用于在圖形處理單元(GPU)上實(shí)現(xiàn)最近鄰搜索的方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明一般涉及計(jì)算機(jī)處理器的領(lǐng)域。更具體地,本發(fā)明涉及用于在圖形處理單元(GPU)上實(shí)現(xiàn)最近鄰搜索的方法和裝置。
【背景技術(shù)】
[0002]最近鄰(NN)搜索屬于基于輸入與所存儲(chǔ)的樣本的相似度的分類(lèi)方法的一族。NN搜索是非參數(shù)的分類(lèi)器,其將分類(lèi)決策基于數(shù)據(jù)并且不需要分類(lèi)器參數(shù)訓(xùn)練的步驟。最常見(jiàn)的非參數(shù)方法基于NN距離估計(jì)。
[0003]NN搜索對(duì)于計(jì)算機(jī)科學(xué)的若干領(lǐng)域(包括模式識(shí)別、數(shù)據(jù)挖掘、多媒體數(shù)據(jù)中的搜索和計(jì)算統(tǒng)計(jì))有顯著重要性,并且尤其是對(duì)于增強(qiáng)現(xiàn)實(shí)和感知計(jì)算的領(lǐng)域有顯著重要性。許多計(jì)算機(jī)視覺(jué)任務(wù)解決高維空間(多于8)中的NN搜索問(wèn)題,其中它是最處理器密集、耗時(shí)的組件。對(duì)于高維空間,不存在任何已知的比簡(jiǎn)單線(xiàn)性搜索更加高效的確切NN算法,所述簡(jiǎn)單線(xiàn)性搜索計(jì)算從查詢(xún)點(diǎn)到集合中每個(gè)點(diǎn)的距離并且標(biāo)識(shí)具有最小距離的點(diǎn)。由于線(xiàn)性搜索對(duì)于許多應(yīng)用而言都是過(guò)于成本高的,這已經(jīng)產(chǎn)生了對(duì)于執(zhí)行近似最近鄰(ANN)搜索的算法的興趣。
[0004]ANN搜索算法以返回確切最近鄰結(jié)果為代價(jià)而按數(shù)量級(jí)改進(jìn)搜索速度,而仍提供接近最優(yōu)的準(zhǔn)確性。最近的研究證明了基于多重隨機(jī)化Κ-D樹(shù)的ANN在許多多維數(shù)據(jù)集上提供最佳性能。參見(jiàn)例如 Marius Muja 和 David G.Lowe 的 Fast Approximate NearestNeighbors with Automatic Algorithm Configurat1n (2009)。
[0005]KD樹(shù)是由Jon Bentley于1975年發(fā)明的(傳統(tǒng)KD樹(shù))、于1998年通過(guò)將隨機(jī)項(xiàng)添加到樹(shù)構(gòu)建過(guò)程而被修改(隨機(jī)化的KD樹(shù))的數(shù)據(jù)結(jié)構(gòu),并且它和它的變型仍然是用于在多維空間中搜索的最流行的數(shù)據(jù)結(jié)構(gòu)。它在低維度中是高效的,但是在高維空間中,其性能迅速降級(jí)。
【附圖說(shuō)明】
[0006]從結(jié)合以下附圖的以下詳細(xì)描述中可以獲得對(duì)本發(fā)明的更好的理解,在附圖中: 圖1是具有處理器的計(jì)算機(jī)系統(tǒng)的實(shí)施例的框圖,所述處理器具有一個(gè)或多個(gè)處理器核以及圖形處理器;
圖2是處理器的一個(gè)實(shí)施例的框圖,所述處理器具有一個(gè)或多個(gè)處理器核、集成存儲(chǔ)器控制器和集成圖形處理器;
圖3是圖形處理器的一個(gè)實(shí)施例的框圖,所述圖形處理器可以是離散圖形處理單元,或者可以是與多個(gè)處理核集成的圖形處理器;
圖4是用于圖形處理器的圖形處理引擎的實(shí)施例的框圖;
圖5是圖形處理器的另一實(shí)施例的框圖;
圖6是包括處理元件的陣列的線(xiàn)程執(zhí)行邏輯的框圖; 圖7圖示了根據(jù)實(shí)施例的圖形處理器執(zhí)行單元指令格式;
圖8是圖形處理器的另一實(shí)施例的框圖,所述圖形處理器包括圖形流水線(xiàn)(pipeline)、媒體流水線(xiàn)、顯示引擎、線(xiàn)程執(zhí)行邏輯和渲染輸出流水線(xiàn);
圖9A是圖示了根據(jù)實(shí)施例的圖形處理器命令格式的框圖;
圖9B是圖示了根據(jù)實(shí)施例的圖形處理器命令序列的框圖;
圖10圖示了根據(jù)實(shí)施例的用于數(shù)據(jù)處理系統(tǒng)的示例性圖形軟件架構(gòu);
圖11圖示了用于使用隨機(jī)化K維(KD)樹(shù)來(lái)執(zhí)行最近鄰搜索的現(xiàn)有技術(shù)技法;
圖12A圖示了用于在圖形處理單元(GPU)上執(zhí)行最近鄰搜索的本發(fā)明的一個(gè)實(shí)施例; 圖12B圖示了用于在圖形處理單元(GPU)上執(zhí)行最近鄰搜索的本發(fā)明的另一實(shí)施例; 圖13圖示了其中組合了格室(cell)/桶(bucket)的本發(fā)明的一個(gè)實(shí)施例;
圖14圖示了其中組合了格室/桶并且實(shí)現(xiàn)了模糊桶的本發(fā)明的一個(gè)實(shí)施例;
圖15-18圖示了本發(fā)明的不同實(shí)施例的實(shí)驗(yàn)結(jié)果;以及圖19圖示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法。
【具體實(shí)施方式】
[0007]在以下描述中,出于解釋的目的,闡述了眾多具體細(xì)節(jié)以便提供對(duì)下述本發(fā)明的實(shí)施例的透徹理解。然而,對(duì)本領(lǐng)域技術(shù)人員而言將是顯而易見(jiàn)的是可以在沒(méi)有這些具體細(xì)節(jié)中的某些的情況下實(shí)踐本發(fā)明的實(shí)施例。在其它實(shí)例中,眾所周知的結(jié)構(gòu)和設(shè)備以框圖形式示出以避免使本發(fā)明的實(shí)施例的底層原理模糊。
[0008]示例性圖形處理器架構(gòu)和數(shù)據(jù)類(lèi)型系統(tǒng)概述
圖1是根據(jù)實(shí)施例的數(shù)據(jù)處理系統(tǒng)100的框圖。數(shù)據(jù)處理系統(tǒng)100包括一個(gè)或多個(gè)處理器102以及一個(gè)或多個(gè)圖形處理器108,并且可以是單個(gè)處理器臺(tái)式系統(tǒng)、多處理器工作站系統(tǒng)、或者具有大量處理器102或處理器核107的服務(wù)器系統(tǒng)。在一個(gè)實(shí)施例中,數(shù)據(jù)處理器系統(tǒng)100是用于在移動(dòng)、手持式或嵌入式設(shè)備中使用的芯片上系統(tǒng)(SoC)集成電路。
[0009]數(shù)據(jù)處理系統(tǒng)100的實(shí)施例可以包括基于服務(wù)器的游戲平臺(tái)、游戲控制臺(tái)或者被并入其內(nèi),所述游戲控制臺(tái)包括游戲和媒體控制臺(tái)、移動(dòng)游戲控制臺(tái)、手持式游戲控制臺(tái)或者在線(xiàn)游戲控制臺(tái)。在一些實(shí)施例中,數(shù)據(jù)處理系統(tǒng)100是移動(dòng)電話(huà)、智能電話(huà)、平板計(jì)算設(shè)備或移動(dòng)因特網(wǎng)設(shè)備。數(shù)據(jù)處理系統(tǒng)100還可以包括可穿戴設(shè)備、與可穿戴設(shè)備耦合或者被集成在可穿戴設(shè)備內(nèi),所述可穿戴設(shè)備諸如智能手表可穿戴設(shè)備、智能眼鏡設(shè)備、增強(qiáng)現(xiàn)實(shí)設(shè)備或虛擬現(xiàn)實(shí)設(shè)備。在一些實(shí)施例中,數(shù)據(jù)處理系統(tǒng)100是電視或機(jī)頂盒設(shè)備,其具有一個(gè)或多個(gè)處理器102以及由一個(gè)或多個(gè)圖形處理器108生成的圖形接口。
[0010]在一些實(shí)施例中,一個(gè)或多個(gè)處理器102均包括一個(gè)或多個(gè)處理器核107以處理指令,所述指令當(dāng)被運(yùn)行時(shí)執(zhí)行用于系統(tǒng)和用戶(hù)軟件的操作。在一些實(shí)施例中,一個(gè)或多個(gè)處理器核107中的每一個(gè)都被配置成處理特定的指令集109。在一些實(shí)施例中,指令集109可以促進(jìn)復(fù)雜指令集計(jì)算(CISC)、精簡(jiǎn)指令集計(jì)算(RISC)或經(jīng)由超長(zhǎng)指令字(VLIW)的計(jì)算。多個(gè)處理器核107可以均處理不同的指令集109,所述指令集可以包括用來(lái)促進(jìn)其它指令集的仿真的指令。處理器核107還可以包括其它處理設(shè)備,這樣的數(shù)字信號(hào)處理器(DSP)o
[0011]在一些實(shí)施例中,處理器102包括高速緩存存儲(chǔ)器104。取決于架構(gòu),處理器102可以具有單個(gè)內(nèi)部高速緩存或多層級(jí)的內(nèi)部高速緩存。在一些實(shí)施例中,高速緩存存儲(chǔ)器在處理器102的各種組件之中共享。在一些實(shí)施例中,處理器102還使用外部高速緩存(例如級(jí)3 (L3)高速緩存或末級(jí)高速緩存(LLC))(未示出),所述外部高速緩存可以通過(guò)使用已知的高速緩存相關(guān)性(coherency)技術(shù)而在處理器核107之中共享。在處理器102中附加地包括寄存器文件106,其可以包括不同類(lèi)型的寄存器以用于存儲(chǔ)不同類(lèi)型的數(shù)據(jù)(例如,整數(shù)寄存器、浮點(diǎn)寄存器、狀態(tài)寄存器和指令指針寄存器)。一些寄存器可以是通用寄存器,而其它寄存器可以特定于處理器102的設(shè)計(jì)。
[0012]在一些實(shí)施例中,處理器102耦合到用來(lái)在處理器102和系統(tǒng)100中的其它組件之間傳輸數(shù)據(jù)信號(hào)的處理器總線(xiàn)110。系統(tǒng)100使用示例性“中心(hub)”系統(tǒng)架構(gòu),包括存儲(chǔ)器控制器中心116和輸入輸出(I/O)控制器中心130。存儲(chǔ)器控制器中心116促進(jìn)在存儲(chǔ)器設(shè)備和系統(tǒng)100的其它組件之間的通信,而I/O控制器中心(ICH) 130經(jīng)由本地I/O總線(xiàn)而提供到I/O設(shè)備的連接。
[0013]存儲(chǔ)器設(shè)備120可以是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)設(shè)備、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)設(shè)備、閃速存儲(chǔ)器設(shè)備、或者具有合適的性能以充當(dāng)過(guò)程存儲(chǔ)器的某種其它存儲(chǔ)器設(shè)備。存儲(chǔ)器120可以存儲(chǔ)數(shù)據(jù)122和指令121以供當(dāng)處理器102執(zhí)行過(guò)程時(shí)使用。存儲(chǔ)器控制器中心116還與可選的外部圖形處理器112耦合,所述可選的外部圖形處理器112可以與處理器120中的一個(gè)或多個(gè)圖形處理器108通信以執(zhí)行圖形和媒體操作。
[0014]在一些實(shí)施例中,ICH 130使得外圍設(shè)備能夠經(jīng)由高速I(mǎi)/O總線(xiàn)而連接到存儲(chǔ)器120和處理器102。I/O外圍設(shè)備包括音頻控制器146、固件接口 128、無(wú)線(xiàn)收發(fā)器126 (例如W1-F1、藍(lán)牙)、數(shù)據(jù)存儲(chǔ)設(shè)備124(例如硬盤(pán)驅(qū)動(dòng)裝置、閃速存儲(chǔ)器等等)、以及用于將傳統(tǒng)(legacy)(例如個(gè)人系統(tǒng)2 (PS/2))設(shè)備耦合到系統(tǒng)的傳統(tǒng)I/O控制器。一個(gè)或多個(gè)通用串行總線(xiàn)(USB)控制器142連接輸入設(shè)備,諸如鍵盤(pán)和鼠標(biāo)144組合。網(wǎng)絡(luò)控制器134也耦合到ICH 130。在一些實(shí)施例中,高性能網(wǎng)絡(luò)控制器(未示出)耦合到處理器總線(xiàn)110。
[0015]圖2是處理器200的實(shí)施例的框圖,所述處理器200具有一個(gè)或多個(gè)處理器核202A-N、集成存儲(chǔ)器控制器214和集成圖形處理器208。圖2的具有與本文中任何其它圖的元件相同的附圖標(biāo)記(或名稱(chēng))的那些元件可以以類(lèi)似于本文中別處所述的方式的任何方式而操作或運(yùn)轉(zhuǎn),但是不限于這樣。處理器200可以包括附加核,所述附加核直到并且包括由虛線(xiàn)框所表示的附加核202N。核202A-N中的每一個(gè)包括一個(gè)或多個(gè)內(nèi)部高速緩存單元204A-N。在一些實(shí)施例中,每個(gè)核還能夠訪(fǎng)問(wèn)一個(gè)或多個(gè)共享高速緩存單元206。
[0016]內(nèi)部高速緩存單元204A-N和共享高速緩存單元206表示處理器200內(nèi)的高速緩存存儲(chǔ)器層次。高速緩存存儲(chǔ)器層次可以包括每個(gè)核內(nèi)的至少一個(gè)層級(jí)的指令和數(shù)據(jù)高速緩存以及一個(gè)或多個(gè)層級(jí)的共享中級(jí)高速緩存,諸如級(jí)2 (L2)、級(jí)3 (L3)、級(jí)4 (L4)或其它層級(jí)的高速緩存,其中在外部存儲(chǔ)器之前的最高層級(jí)的高速緩存被分類(lèi)為L(zhǎng)LC。在一些實(shí)施例中,高速緩存相關(guān)性邏輯維持在各種高速緩存單元206和204A-N之間的相關(guān)性。
[0017]在一些實(shí)施例中,處理器200還可以包括一個(gè)或多個(gè)總線(xiàn)控制器單元216的集合和系統(tǒng)代理210。一個(gè)或多個(gè)總線(xiàn)控制器單元管理外圍總線(xiàn)的集合,所述外圍總線(xiàn)諸如一個(gè)或多個(gè)外圍組件互連總線(xiàn)(例如,PCI,快速PCI)。系統(tǒng)代理210提供用于各種處理器組件的管理功能。在一些實(shí)施例中,系統(tǒng)代理210包括用來(lái)管理對(duì)各種外部存儲(chǔ)器設(shè)備(未示出)的訪(fǎng)問(wèn)的一個(gè)或多個(gè)集成存儲(chǔ)器控制器214。
[0018]在一些實(shí)施例中,核202A-N中的一個(gè)或多個(gè)包括對(duì)于同時(shí)多線(xiàn)程的支持。在這樣的實(shí)施例中,系統(tǒng)代理210包括用于在多線(xiàn)程處理期間協(xié)調(diào)和操作核202A-N的組件。系統(tǒng)代理210可以附加地包括功率控制單元(P⑶),其包括用來(lái)調(diào)節(jié)核202A-N和圖形處理器208的功率狀態(tài)的邏輯和組件。
[0019]在一些實(shí)施例中,處理器200附加地包括圖形處理器208以執(zhí)行圖形處理操作。在一些實(shí)施例中,圖形處理器208與共享高速緩存單元206的集合以及系統(tǒng)代理單元210耦合,所述系統(tǒng)代理單元210包括一個(gè)或多個(gè)集成存儲(chǔ)器控制器214。在一些實(shí)施例中,顯示控制器211與圖形處理器208耦合以將圖形處理器輸出驅(qū)動(dòng)到一個(gè)或多個(gè)耦合的顯示器。在一些實(shí)施例中,顯示控制器211可以是經(jīng)由至少一個(gè)互連而與圖形處理器耦合的單獨(dú)的模塊,或者可以被集成在圖形處理器208或系統(tǒng)代理210內(nèi)。
[0020]在一些實(shí)施例中,基于環(huán)的互連單元212用于耦合處理器200的內(nèi)部組件。然而,可以使用可替換的互連單元,諸如點(diǎn)對(duì)點(diǎn)互連、切換的互連或其它技術(shù),包括本領(lǐng)域中眾所周知的技術(shù)。在一些實(shí)施例中,圖形處理器208經(jīng)由I/O鏈路213而與環(huán)式互連212耦合。
[0021]示例性I/O鏈路213表示多種I/O互連中的至少一個(gè),包括封裝上I/O
當(dāng)前第1頁(yè)1 2 3 4 5 6 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1