本發明專利技術公開了在處理器中利用多個處理單元中的片上本地存儲器來提升數據處理性能的方法。根據一個實施例,在處理器中利用多個處理單元對數據元素進行處理的方法包括:在每一個所述處理單元中運行(launching)具有第一類型線程的第一波陣面(wavefront),其后是具有第二類型線程的第二波陣面(wavefront),其中第一波陣面讀取來自片外(off-chip)共享存儲器的數據元素的部分以作為輸入并生成第一輸出;將該第一輸出寫入到相應的處理單元的片上本地存儲器中;并將由第二波陣面生成的第二輸出寫入到該片上本地存儲器中,其中到第二波陣面的輸入包括來自第一輸出的第一多個數據元素。同時也公開了相應的系統和計算機程序產品的具體實施方式。
【技術實現步驟摘要】
【國外來華專利技術】
本專利技術涉及提升處理器的數據處理性能。
技術介紹
包括多處理單元的處理器通常應用在具有較大數量的數據元素的并行處理過程中。例如,包括多個單指令多數據(SIMD: single instruction multiple data)處理單兀的圖形處理器(GPU:graphic processor)能夠并行地處理大量的圖形數據。在大多數情況下,數據元素由一系列單獨的線程來處理直到獲得了最終輸出。例如,在一個圖形處理器中,包括頂點著色器、幾何著色器以及像素著色器的不同類型的線程序列可以按順序在數據元素組上進行操作直到用于渲染顯示的最終輸出已經準備好。在不同階段采用多個單獨類型的線程進行數據元素的處理激活了流水線處理,并因此有利于提升數據的輸出處理量。處理數據元素組的每一個單獨的線程序列從共享的存儲器中獲得其輸入并將其輸出寫入到共享存儲器中,在該共享存儲器中剛寫入的數據可以由隨后的線程進行讀取。通常來說,在共享存儲器中的存儲器訪問操作會消耗大量的時鐘周期。當同步線程的數量增加時,基于存儲器訪問的延遲也相應地增加。在具有多個單獨處理單元來并行地執行多個線程的傳統處理器中,存儲器訪問延遲已經使得處理器的整個處理速度都顯著地下降。因此,需要這樣的系統和方法,其通過減少由處理數據元素組的程序序列所進行的存儲器訪問而消耗的時間以提升具有多個處理單元的處理器的數據處理性能。
技術實現思路
本專利技術公開了一些在多個數據處理單元中采用片上(on-chip)本地存儲器以提升處理器的數據處理性能的裝置和方法。根據一個實施例,利用多個處理單元對處理器中的數據元素進行處理的方法包括在每一個所述處理單元中運行(launching)具有第一類型線程的第一波陣面(wavefront),其后是具有第二類型線程的第二波陣面(wavefront),其中第一波陣面讀取來自片外(off-chip)共享存儲器的數據元素的部分以作為輸入并生成第一輸出;將第一輸出寫入到相應的處理單元的片上本地存儲器中;并將由第二波陣面生成的第二輸出寫入到片上本地存儲器中,其中到第二波陣面的輸入包括來自第一輸出的第一多個數據元素。在另一個實施例中提供一個系統,包括包括多個處理單元的處理器,每一個處理單元包括片上本地存儲器;耦合到該處理單元并被配置為存儲多個輸入數據單元的片外共享存儲器;波陣面調度模塊;以及波陣面執行模塊。該波陣面調度模塊配置為在每一個所述處理單元中運行(launching)具有第一類型線程的第一波陣面(wavefront),其后是具有第二類型線程的第二波陣面(wavefront),其中第一波陣面被配置為讀取來自片外(off-chip)共享存儲器的數據元素的一部分。將所述波陣面執行模塊配置為將第一輸出寫入到相應的處理單元的片上本地存儲器中;并將由第二波陣面生成的第二輸出寫入到片上本地存儲器中,其中到第二波陣面的輸入包括來自第一輸出的第一多個數據元素。然而另一個實施例是包括計算機可讀媒介的有形計算機程序產品,該計算機可讀媒介具有記錄在其上的計算機程序邏輯,以便使得包括多個處理單元的處理器以在每一個所述處理單元中運行(launching)具有第一類型線程的第一波陣面(wavefront),其后是具有第二類型線程的第二波陣面(wavefront),其中第一波陣面讀取來自片外(off-chip)共享存儲器的數據元素的一部分以作為輸入并生成第一輸出;將第一輸出寫入到相應的處理單元的片上本地存儲器中;并將由第二波陣面生成的第二輸出寫入到片上本地存儲器中,其中到第二波陣面的輸入包括來自第一輸出的第一多個數據元素。下面參照附圖詳細說明本專利技術進一步的實施例、特征和優點,以及本專利技術各實施例的結構及操作。附圖說明包含于說明書中并構成其部分的附圖與上面的概括說明以及下面給出的實施例的詳細說明一起闡釋本專利技術的實施例,用于解釋本專利技術的原理。在附圖中圖1顯示了根據本專利技術的一個實施例的數據處理設備;圖2顯示了根據本專利技術的一個實施例在具有多個處理單元的處理器中進行數據處理的示例性的方法;圖3顯示了根據本專利技術的一個實施例,在具有多個處理單元的處理器上執行第一波陣面的示例性方法;圖4顯示了根據本專利技術的一個實施例,在具有多個處理單元的處理器上執行第二波陣面的示例性方法;圖5顯示了根據本專利技術的一個實施例,用于確定線程波陣面分配的方法。具體實施例方式盡管本文用特定應用的示例性實施例對本專利技術進行了描述,但應該了解到本專利技術并不這些實施例為限。得到本文所提供的教導的本領域技術人員會認識到本專利技術范圍內的其他修改、應用和實施方式以及本專利技術有顯著實用性的其他領域。本專利技術的實施例可用于任何計算機系統或者計算機設備中,其中的多個處理單元能同步地訪問共享存儲器。例如,但不限于此,本專利技術的實施例可包括計算機、游戲平臺、娛樂平臺、個人數字助理,移動計算機設備,電視以及視頻平臺。大多數的現代計算機系統能夠進行多處理操作,例如,其具有多處理器,例如但不限于,多中央處理單兀(CPU:central processor units)、圖形處理單兀(GPU:graphicprocessor units)、以及其他控制器,諸如存儲器控制器和/或直接存儲器訪問(DMA:direct memory access)控制器,其能夠從處理器上卸載一些處理。同時,在許多圖形處理設備中,例如可通過并行地處理多個數據流來進行大量的并行處理。這樣的多處理和并行處理,盡管顯著地增加了系統的效率和速度,同時也產生了包括基于競爭的很多問題,即,多個設備和/或進程試圖同時訪問或者使用相同的系統資源。例如,多個設備和/或進程需要訪問共享存儲器以執行它們的操作。然而,由于共享存儲器的接口數量可能并沒有足夠到能夠支持所有的并行訪問請求,這樣沖突就會產生并且需要對共享存儲器進行訪問以繼續其處理的一個或多個系統設備和/或進程則被延遲。在圖形處理設備中,不同類型的進程,例如頂點著色器,幾何著色器,以及像素著色器需要訪問存儲器以對存儲在存儲器中的圖形對象(即,頂點數據,像素數據)進行讀取、寫入、操控和/或處理。例如,每一個著色器在其處理周期的讀取輸入和寫入輸出階段都需要訪問共享存儲器。包含頂點著色器、幾何著色器和像素著色器的圖形流水線通過并行地使每一種著色器在任何給定時間內處理位于不同處理階段的數據單元組,從而使得系統免于受到存儲器訪問延遲的影響。當圖形流水線的一部分遇到訪問存儲器中數據的延遲加劇時,其將會導致系統操作的整體下降和/或控制流水線的復雜度的增加,這樣的話則會有足夠的并行處理能力來隱藏存儲器訪問的延遲。在具有多個處理單元的設備中,例如,多個單指令多數據(SMD:singleinstruction multiple data)處理單元或多個其他的算術邏輯單元(ALU),每一個單元能夠同時執行多個線程,由于在每個處理設備中多個處理設備和多個線程訪問同時訪問共享存儲器大大的增加,因此沖突延遲可能會加重。例如,在具有多個SMD處理單元的圖形處理設備中,像素數據組由“線程群組”序列來處理。為每一個處理單元分配波陣面線程。該“波陣面”線程是來自線程群組中的一個或多個線程。由于在一個波陣面中同時的線程訪問請求,以及由于在其他處理單元中執行的波陣面,因此存儲器訪問的沖突可本文檔來自技高網...
【技術保護點】
【技術特征摘要】
【國外來華專利技術】2010.07.19 US 61/365,7091.一種利用多個處理單元在處理器中處理數據元素的方法,其包括 在每一個所述處理單元中運行具有第一類型線程的第一波陣面,其后是具有第二類型線程的第二波陣面,其中所述第一波陣面讀取來自片外共享存儲器的所述數據元素的一部分以作為輸入并生成第一輸出; 將所述第一輸出寫入到各自的所述處理單元的片上本地存儲器;以及將所述第二波陣面生成的第二輸出寫入到所述片上本地存儲器,其中到所述第二波陣面的輸入包括來自所述第一輸出的多個第一數據元素。2.如權利要求1所述的方法,進一步包括 利用所述第二波陣面處理所述第一多個數據元素來生成所述第二輸出,其中所述第二輸出中的數據元素的數量明顯不同于來自所述第一多個數據元素的數量。3.如權利要求2所述的方法,進一步包括 根據權利要求2所述的方法,其中所述第二輸出中的數據元素的數量是動態確定的。4.如權利要求2所述的方法,其中所述第二波陣面包括一個或多個幾何著色器線程。5.如權利要求4所述的方法,其中所述第二輸出通過第一輸出的幾何放大生成。6.如權利要求1所述的方法,進一步包括 在第一處理單元中在所述第二波陣面之后執行第三波陣面,其中該第三波陣面讀取來自所述片上本地存儲器中的所述第二輸出。7.如權利要求1所述的方法,進一步包括 對各自的所述處理單元基于至少所述片上本地存儲器中的可用存儲器來確定要處理的所述數據元素的數量;以及 對各自的所述處理單元基于所確定的所述數量來調整所述第一和第二波陣面的尺寸。8.如權利要求7所述的方法,其中所述確定包括 估計所述第一輸出的存儲器尺寸; 估計所述第二輸出的存儲器尺寸;以及 利用所估計的所述第一和第二輸出的所述存儲器尺寸來計算所需的片上存儲器的尺寸。9.如權利要求1所述的方法,其中所述運行包括 執行所述第一波陣面; 檢測所述第一波陣面的完成;以及 繼所述檢測之后由所述第二波陣面讀取所述第一輸出。10.如權利要求9所述的方法,其中所述執行所述第一波陣面包括 確定所述第一波陣面的各自線程的輸出尺寸;以及 將到所述片上本地存儲器中的輸出偏移量提供給所述第一波陣面的所述各自線程中的每一個。11.如權利要求9所述的方法,其中所述運行進一步包括 確定所述第二波陣面的各自線程的輸出尺寸;以及 將從所述第一輸出中讀取的到所述片上本地存儲器中的...
【專利技術屬性】
技術研發人員:維妮特·戈埃爾,托德·馬丁,芒熱斯·尼婭舒,
申請(專利權)人:超威半導體公司,
類型:
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。