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

用于數(shù)據(jù)類型的類型和長度抽象的制作方法

文檔序號:6442789閱讀:198來源:國知局
專利名稱:用于數(shù)據(jù)類型的類型和長度抽象的制作方法
技術(shù)領(lǐng)域
本發(fā)明針對在軟件代碼中實現(xiàn)類屬SIMD數(shù)據(jù)類型,尤其涉及用于數(shù)據(jù)類型的類型和長度抽象。
背景技術(shù)
計算機已變得高度集成于工作、家庭、移動設備以及許多其他地方中。計算機可快速且有效地處理巨大量信息。被設計成在計算機系統(tǒng)上運行的軟件應用允許用戶執(zhí)行包括商業(yè)應用、學校作業(yè)、娛樂等等在內(nèi)的各種各樣的功能。軟件應用通常被設計成執(zhí)行專門任務,諸如用于草擬文檔的文字處理器應用或者用于發(fā)送、接收和組織電子郵件的電子郵件程序。在某些情況下,軟件應用被設計成在專用處理器或處理系統(tǒng)上執(zhí)行。例如,用于某一應用的軟件代碼可包括一次在不止一個數(shù)據(jù)項上運算(單指令多數(shù)據(jù)指令,即SIMD指令)且專用于特定類型的處理器的指令。這些專門指令通常用于包括整型、浮點型、雙精度型的面向數(shù)字的數(shù)據(jù)類型。在某些情況下,軟件編譯器可被配置成執(zhí)行自動向量化,該自動向量化改變軟件代碼供專用處理器使用。然而,自動向量化并不對全部類型的軟件代碼都適用。

發(fā)明內(nèi)容
本文所述的實施例針對在軟件代碼中實現(xiàn)類屬SIMD數(shù)據(jù)類型。在一個實施例中, 計算機系統(tǒng)訪問軟件代碼的一部分,該部分包括具有類屬SIMD數(shù)據(jù)類型的算法,所述類屬 SIMD數(shù)據(jù)類型包括可變數(shù)量的元素。元素的數(shù)量直到運行時才被確定,但是可供該算法用作該類屬SIMD數(shù)據(jù)類型的特性。具有該類屬SIMD數(shù)據(jù)類型的該算法要由包括各種專用硬件特征的專用處理器處理。計算機系統(tǒng)在運行時基于該類屬SIMD數(shù)據(jù)類型來確定要供指定的處理器使用的定制的處理器專用代碼的一部分,其中運行時確定解析出要供該指定的處理器使用的元素的數(shù)量。計算機系統(tǒng)還使用確定的、定制的處理器專用代碼來處理包括具有該類屬SIMD數(shù)據(jù)類型的該算法的該軟件代碼。提供本發(fā)明內(nèi)容以便以簡化形式介紹將在以下的具體實施方式
中進一步描述的一些概念。本發(fā)明內(nèi)容并非旨在標識所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。另外的特征和優(yōu)點將在以下的描述中闡述,并且部分可從該描述中顯而易見,或者可以從此處的教示實踐中習得。本發(fā)明的各特征和優(yōu)點可以通過在所附的權(quán)利要求書中特別指出的手段和組合來實現(xiàn)和獲得。本發(fā)明的特征將從以下描述和所附權(quán)利要求書中變得完全顯而易見,或者可通過如下所述對本發(fā)明的實踐而獲知。


為了進一步闡明本發(fā)明的各實施例的以上和其他優(yōu)點和特征,將參考附圖來呈現(xiàn)本發(fā)明的各實施例的更具體的描述??梢岳斫猓@些附圖只描繪本發(fā)明的典型實施例,因此將不被認為是對其范圍的限制。本發(fā)明將通過使用附圖用附加特征和細節(jié)來描述和解釋, 附圖中圖1示出本發(fā)明的各實施例可在其中操作的計算機架構(gòu),包括在軟件代碼中實現(xiàn)類屬類型。圖2示出用于在軟件代碼中實現(xiàn)類屬SIMD類型的示例方法的流程圖。圖3示出用于在軟件代碼中實現(xiàn)類屬SIMD類型的替代架構(gòu)。
具體實施例方式本文所述的實施例針對在軟件代碼中實現(xiàn)類屬SIMD數(shù)據(jù)類型。在一個實施例中, 計算機系統(tǒng)訪問軟件代碼的一部分,該部分包括具有類屬SIMD數(shù)據(jù)類型的算法,所述類屬 SIMD數(shù)據(jù)類型包括可變數(shù)量的元素。具有該類屬SIMD數(shù)據(jù)類型的該算法要由包括各種專用硬件特征的專用處理器處理。計算機系統(tǒng)在運行時基于該類屬SIMD數(shù)據(jù)類型來確定要供指定的處理器使用的定制的處理器專用代碼的一部分,其中運行時確定解析出要供該指定的處理器使用的元素的數(shù)量。計算機系統(tǒng)還使用確定的、定制的處理器專用代碼來處理包括具有該類屬SIMD數(shù)據(jù)類型的該算法的該軟件代碼。以下討論現(xiàn)涉及可以執(zhí)行的多種方法以及方法動作。應當注意,雖然這些方法動作可能是按一定次序討論的,或者是在流程圖中被描繪為是按照特定順序進行的,然而并非必然需要特定的次序,除非特別聲明,或者是因為一個動作依賴于另一動作在該動作被執(zhí)行之前完成而需要的。本發(fā)明的各實施例可包括或利用專用或通用計算機,該專用或通用計算機包括諸如例如一個或多個處理器和系統(tǒng)存儲器等計算機硬件,如以下更詳細討論的。本發(fā)明范圍內(nèi)的各實施例還包括用于攜帶或存儲計算機可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理介質(zhì)和其他計算機可讀介質(zhì)。這些計算機可讀介質(zhì)可以是通用或?qū)S糜嬎銠C系統(tǒng)能夠訪問的任何可用介質(zhì)。存儲計算機可執(zhí)行指令的計算機可讀介質(zhì)是計算機存儲介質(zhì)。攜帶計算機可執(zhí)行指令的計算機可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實施例可包括至少兩種完全不同類型的計算機可讀介質(zhì)計算機存儲介質(zhì)和傳輸介質(zhì)。計算機存儲介質(zhì)包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁存儲設備、或可用于存儲計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜嬎銠C訪問的任何其他介質(zhì)?!熬W(wǎng)絡”被定義為允許在計算機系統(tǒng)和/或模塊和/或其他電子設備之間傳輸電子數(shù)據(jù)的一個或多個數(shù)據(jù)鏈路。當信息通過網(wǎng)絡或另一個通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計算機時,該計算機將該連接適當?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可包括可用于攜帶計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的數(shù)據(jù)或所需程序代碼裝置且可由通用或?qū)S糜嬎銠C訪問的網(wǎng)絡和/或數(shù)據(jù)鏈路。上述的組合也應被包括在計算機可讀介質(zhì)的范圍內(nèi)。此外,在到達各種計算機系統(tǒng)組件之后,計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼裝置可從傳輸介質(zhì)自動傳輸?shù)接嬎銠C存儲介質(zhì)(或反之亦然)。例如,通過網(wǎng)絡或數(shù)據(jù)鏈路接收到的計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡接口模塊(例如,“mc”)
5內(nèi)的RAM中,然后最終被傳輸?shù)接嬎銠C系統(tǒng)RAM和/或計算機系統(tǒng)處的較不易失性的計算機存儲介質(zhì)。因而,應當理解,計算機存儲介質(zhì)可被包括在還利用(或甚至主要利用)傳輸介質(zhì)的計算機系統(tǒng)組件中。計算機可執(zhí)行指令包括,例如使通用計算機、專用計算機、或?qū)S锰幚碓O備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計算機可執(zhí)行指令可以是例如二進制代碼、諸如匯編語言之類的中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述特征或動作。相反,上述特征和動作是作為實現(xiàn)權(quán)利要求的示例形式而公開的。本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計算機系統(tǒng)配置的網(wǎng)絡計算環(huán)境中實踐,這些計算機系統(tǒng)配置包括個人計算機、臺式計算機、膝上型計算機、消息處理器、手持式設備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子設備、網(wǎng)絡PC、小型計算機、大型計算機、移動電話、PDA、尋呼機、路由器、交換機等等。本發(fā)明也可在其中通過網(wǎng)絡鏈路(或者通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路的組合)的本地和遠程計算機系統(tǒng)兩者都執(zhí)行任務的分布式系統(tǒng)環(huán)境(例如,云計算、云服務等)中實施。在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠程存儲器存儲設備中。圖1示出了可在其中采用本發(fā)明的原理的計算機體系結(jié)構(gòu)100。計算機體系結(jié)構(gòu) 100包括計算機系統(tǒng)110。計算機系統(tǒng)110可以是任何類型的本地或分布式計算系統(tǒng),包括云計算系統(tǒng)。計算機系統(tǒng)可被配置成訪問來自各種不同的源的軟件代碼107。這些源可包括計算機用戶(如用戶105)、計算機系統(tǒng)(如系統(tǒng)106)、軟件應用、數(shù)據(jù)存儲(本地或遠程)或其他源。軟件代碼可用各種不同的格式來編寫,且可由計算機系統(tǒng)110處理。代碼可包括在不同數(shù)據(jù)部分上運算的算法。數(shù)據(jù)可包括單個類型的多個元素。在某些情況下, 某一算法可在數(shù)據(jù)的包括單個類型的多個元素的多個部分上運算。軟件代碼可由軟件代碼訪問模塊115訪問,并可包括一個或多個算法108。每個算法可包括一個或多個類屬SIMD 數(shù)據(jù)類型。由代碼訪問模塊訪問的軟件代碼可被處理、格式化或以其他方式被改變,或可被代碼確定模塊125直接傳遞。模塊125可接收軟件代碼及其算法和類屬SIMD數(shù)據(jù)類型。 類屬SIMD數(shù)據(jù)類型可按大小、數(shù)據(jù)類型或兩者來被抽象。因此,類屬SIMD數(shù)據(jù)類型可用各種不同的變化大小的數(shù)據(jù)類型來例示。在某些情況下,數(shù)據(jù)類型可以是諸如整型、短型、長型、浮點型、雙精度型以及字節(jié)型之類的數(shù)字原語,以及整體數(shù)據(jù)類型的有符號和無符號的變型。數(shù)據(jù)可以可定制的大小的數(shù)組來被結(jié)構(gòu)化。從而,類屬類型可包括各種不同的數(shù)據(jù)類型中的任一種,并可以是取決于該數(shù)據(jù)類型的不同大小的。類屬SIMD數(shù)據(jù)類型121可包括類型參數(shù)122,類型參數(shù)指定關(guān)于實際上要在對數(shù)據(jù)輸入的處理中被使用的類型的信息。因此,類型參數(shù)122可指定該數(shù)據(jù)類型要為整型、或浮點型、或雙精度型、或?qū)嵸|(zhì)上任何其他數(shù)據(jù)類型。類型參數(shù)還可包括提供和要被使用的數(shù)據(jù)類型有關(guān)的額外細節(jié)的元數(shù)據(jù)或其他上下文信息。應注意,如本文中所使用的,類型參數(shù) 122可指的是“形式”參數(shù)(如下面的示例中的VectorBaseCD中的“T”)或指的是“實際參數(shù)”(如當使用VectorBase的代碼例示它(例如為VectorBase<float ,“float” (浮點型)是實際參數(shù))。下文中可假設在使用“VectorBaseCD”的示例中,類型參數(shù)指的是形式參數(shù)“T”,而在其他情況下,類型參數(shù)指的是實際參數(shù)。
包括類屬SIMD數(shù)據(jù)類型121的軟件代碼以及類型參數(shù)122可被傳遞給代碼確定模塊125,代碼確定模塊基于哪種類型的處理器要被用于處理該數(shù)據(jù)以及該類型參數(shù)122 中指定了哪種數(shù)據(jù)類型來確定要使用代碼的哪個特定部分。代碼確定模塊可具有它每次使用的指定的處理器,可具有一列可用處理器,以及可從那些處理器中進行選擇,或者至少在某些情況下,可允許用戶105能夠指定哪個處理器要被用于處理被輸入的數(shù)據(jù)107。代碼確定模塊125可將其代碼確定1 發(fā)送到代碼處理模塊130,代碼處理模塊中代碼被該指定的處理器處理。處理的結(jié)果(如程序輸出131)可被發(fā)送給用戶,或發(fā)送到另一計算機系統(tǒng)或存儲系統(tǒng)。在某些情況下,計算機系統(tǒng)110的處理器可提供單指令多數(shù)據(jù)(SIMD)能力。通過提供能夠同時保持若干數(shù)據(jù)項的特殊“向量寄存器”,以及這些寄存器上的對寄存器中的每個數(shù)據(jù)項并行執(zhí)行的特殊向量運算,這些能力提供增加的性能。不同處理器可提供不同的 SIMD能力。例如,處理器可提供可被包含在向量寄存器中的不同數(shù)據(jù)類型、不同集合的支持的運算、不同指令編碼、以及不同向量寄存器寬度。例如,在某些情況下,某些SIMD擴展可允許對四個浮點值進行并行運算,而其他處理器可允許16個。使用計算機110的各種模塊,開發(fā)者可通過高級抽象在對他們的應用的處理中使用SIMD特征,而不用明確地輸入目標處理器的細節(jié)(如數(shù)據(jù)寬度、提供的專門功能、編碼等等)。開發(fā)者可將向量寄存器抽象為類屬SIMD數(shù)據(jù)類型121 (在至少某些實施例中可被稱為Vect0rBase<T>)。該類屬SIMD數(shù)據(jù)類型121可以是按大小和/或類型抽象的一種較高級的類屬SIMD數(shù)據(jù)類型,在SIMD實現(xiàn)中,這對應于可被包含在向量寄存器中的值的數(shù)量和類型。該類屬SIMD數(shù)據(jù)類型的大小可以程序性方式來被查詢。而且,該類屬類型可在實質(zhì)上所有當前存在的原語數(shù)字類型上被例示。該類屬SIMD數(shù)據(jù)類型提供標準算術(shù)運算,該標準算術(shù)運算可由編譯器映射到目標指令集。運算可包括加、乘、移位以及其他運算。在某些實施例中,類屬類型VectorBaseCD可在一個或多個原語類型(整型、浮點等等)上被例示。該類屬SIMD數(shù)據(jù)類型提供某一范圍的運算,使得用戶能夠開發(fā)他們的算法的單個實現(xiàn),同時將其應用于一定范圍的數(shù)字類型或精度。該類屬SIMD數(shù)據(jù)類型允許轉(zhuǎn)換到目標架構(gòu),因為在知道公共SIMD指令集的情況下已選擇了 VectorBaseCD上的運算, 因此它們通常直接轉(zhuǎn)換成短序列的SIMD處理器指令,通常僅僅是單個指令。該類屬類型還提供高級編程模型,該高級編程模型允許開發(fā)者或其他用戶能夠編寫既是目標獨立的也能在某一范圍的元素類型上被例示的代碼。在某些情況下,目標處理器可在開發(fā)時被固定。上述的概念將在下面關(guān)于圖2的方法200更詳細地解釋。鑒于上述系統(tǒng)和架構(gòu),參考圖2的流程圖將更好地理解可根據(jù)所公開的主題實現(xiàn)的方法。為了解釋簡明起見,這些方法被示出和描述為一系列框。然而,應該理解和了解, 所要求保護的主題不受框的次序的限制,因為一些框可按不同的次序進行和/或與此處所描繪和描述的其他框同時進行。此外,并非全部所示的框都是實現(xiàn)下面所述的方法所必需的。圖2示出用于在軟件代碼中實現(xiàn)類屬SIMD數(shù)據(jù)類型的方法200的流程圖?,F(xiàn)在將分別頻繁參照圖1和圖3的環(huán)境100和300的組件和數(shù)據(jù)來描述方法200。方法200包括訪問包括具有類屬SIMD數(shù)據(jù)類型的算法的軟件代碼的一部分的動作,該類屬SIMD數(shù)據(jù)類型包括可變數(shù)量的元素,其中具有該類屬SIMD數(shù)據(jù)類型的該算法要由包括一個或多個專用硬件特征的專用處理器處理(動作210)。例如,軟件代碼訪問模塊 115可訪問要由專用處理器處理的軟件代碼107。處理器可支持SIMD指令集,其向量寄存器具有各種寬度。因此,某些處理器可能夠執(zhí)行更多或更少的同時運算。例如,在向量寄存器是1 位寬的處理器上,類屬SIMD數(shù)據(jù)類型可用32位浮點數(shù)據(jù)類型來例示。該處理器上的該例示的寬度將是4個元素,該數(shù)量可由一 SIMD指令同時處理。在其他情況中,該類屬類型可用雙精度數(shù)據(jù)類型來例示,其中由一 SIMD指令一次處理兩個元素。許多其他組合是可能的。在某些情況下,軟件代碼107的要被處理的該部分可包括具有多個不同的SIMD指令的算法。例如,如果輸入是算法或軟件函數(shù),該函數(shù)可包括不同的SIMD指令。在確定哪個代碼(即處理器專用代碼)要供當前選擇的處理器使用時,這些指令可被考慮。該數(shù)據(jù)部分可以數(shù)組或其他數(shù)據(jù)結(jié)構(gòu)來被結(jié)構(gòu)化。數(shù)組的元素可以是任意的數(shù)據(jù)類型,該任意的數(shù)據(jù)類型可在類屬類型121中用類型參數(shù)122來指定。如圖3所示,在運行時317的運行時編譯316期間,計算系統(tǒng)使用原語類屬參數(shù)類型和當前硬件平臺上向量寄存器的寬度來確定被例示的類屬在該平臺上包含的原語類型的元素的數(shù)量。該類屬SIMD數(shù)據(jù)類型可在設計時305被例示310,其中實現(xiàn)該類屬類型的算法306被用于應用307中。該類屬類型可被用于確定要使用哪個處理器專用代碼,從而數(shù)字輸入數(shù)據(jù)320可被處理和輸出321。在一個實施例中,算法306可以是在VectorBasKT〉值上運算的高級算法。由于這些值將被存儲在向量寄存器中,且VectorBaseCD值上的運算映射到硬件的并行向量運算,以此方式編寫該算法可使得速度增加。該算法可取類型T的輸入數(shù)組,并將它們考慮為 VectorBase<T> 值的序列。為此,可使用 VectorBase<T>. Length 來表示 VectorBase<T> 中的類型T的值的數(shù)量(即適合于當前硬件平臺上的向量寄存器的數(shù)量)。該算法可因此將每個序列的VectorBase<T>. Length T輸入到一數(shù)組中作為不同的VectorBaseCD。從而, 該高級算法在向量寄存器的寬度上保持為類屬的。應用307可以是對特定數(shù)字類型T實現(xiàn)高級算法的應用。該類屬類型可被例示 310并用在運行時316中以確定用于類型T的處理器專用SIMD代碼(315)。數(shù)字輸入320 可包括應用307中使用的原語類型T的一個或多個數(shù)組。確定的處理器專用SIMD代碼可使用對該指定的類型參數(shù)122適用的原語來處理這些數(shù)組。數(shù)字輸出321可包括原語類型 T的一個或多個數(shù)組。因此,可實現(xiàn)在類型和大小上被抽象的某一類屬類型。如上所述,類屬SIMD數(shù)據(jù)類型可被配置成實現(xiàn)至少包括以下數(shù)據(jù)類型的許多不同的數(shù)據(jù)類型整型、短型、長型、浮點型、雙精度型、以及字節(jié)型、以及整體數(shù)據(jù)類型的有符號和無符號的變型。在某些情況下,類屬SIMD數(shù)據(jù)類型可用浮點數(shù)據(jù)類型來例示。在此, 對于能夠包含四個浮點值的向量寄存器上運行的特定SIMD指令集,可在一 SIMD指令中一次處理四個元素。在其他情況下,該類屬類型可用雙精度數(shù)據(jù)類型來例示。在此,將由一 SIMD指令(對于該相同SIMD指令集)一次處理兩個元素。該類屬類型可用于單個處理器或多個處理器,并可用于位于一個或多個計算系統(tǒng)上的多個不同處理線程。方法200包括在運行時基于該類屬SIMD數(shù)據(jù)類型來確定要供指定的處理器使用的定制的處理器專用代碼的一部分的動作,其中運行時確定解析出要供該指定的處理器使用的元素的數(shù)量(動作220)。例如,代碼確定模塊125可基于類屬SIMD數(shù)據(jù)類型121在運行時317確定要供指定的處理器使用的定制的處理器專用代碼126/315的一部分。處理器專用代碼的正確類型可在運行時被計算機系統(tǒng)110的代碼確定模塊125動態(tài)確定。處理器專用代碼可由代碼處理模塊130在運行時或在目標處理器被已知的時間來選擇。在某些情況下,這可以是在設計時之后但在運行時之前,但是將由包括代碼確定模塊125的運行時系統(tǒng)來執(zhí)行。方法200包括使用確定的、定制的處理器專用代碼來處理包括具有該類屬SIMD數(shù)據(jù)類型的該算法的該軟件代碼的動作(動作230)。例如,代碼處理模塊130可使用確定的、 定制的處理器專用代碼1 處理包括具有類屬SIMD數(shù)據(jù)類型121的算法108的處理器專用代碼。代碼可在運行時317被選擇和運行。在某些情況下,數(shù)字輸入數(shù)據(jù)320可包括不同類型的數(shù)組。因此,輸入數(shù)據(jù)中可存在不止一個數(shù)據(jù)類型。因此,代碼處理模塊130可對每個不同的數(shù)據(jù)類型選擇不同的處理器專用代碼。該選擇可被動態(tài)地以及無需用戶干預來執(zhí)行。計算機系統(tǒng)110可查詢選擇的或指定的處理器來確定其向量寄存器的寬度。因此,提供了在軟件代碼中實現(xiàn)類屬SIMD數(shù)據(jù)類型的系統(tǒng)、方法和計算機程序產(chǎn)品。該類屬類型可按大小和/或數(shù)據(jù)類型來抽象。而且,提供了提供類屬SIMD數(shù)據(jù)類型的系統(tǒng)、方法和計算機程序產(chǎn)品,該類屬SIMD數(shù)據(jù)類型包括在其上它被例示的該數(shù)據(jù)類型的隱式類屬數(shù)量的元素。本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所描述的實施例在所有方面都應被認為僅是說明性而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求書而非前述描述指示。落入權(quán)利要求書的等效方案的含義和范圍內(nèi)的所有改變被權(quán)利要求書的范圍所涵蓋。
9
權(quán)利要求
1.一種在包括多個計算系統(tǒng)的計算機聯(lián)網(wǎng)環(huán)境中在包括至少一個處理器和存儲器的計算機系統(tǒng)處用于在軟件代碼中實現(xiàn)類屬單指令多數(shù)據(jù)SIMD類型的計算機實現(xiàn)的方法, 所述方法包括訪問包括具有類屬SIMD數(shù)據(jù)類型(121)的算法(108)的軟件代碼(107)的一部分,該類屬SIMD數(shù)據(jù)類型包括可變數(shù)量的元素,其中具有該類屬SIMD數(shù)據(jù)類型的該算法要由包括一個或多個專用硬件特征的專用處理器處理;在運行時基于該類屬SIMD數(shù)據(jù)類型(121)來確定要供指定的處理器使用的定制的處理器專用代碼(126)的一部分,其中運行時確定解析出要供該指定的處理器使用的元素的數(shù)量;以及使用確定的、定制的處理器專用代碼(126)來處理包括具有該類屬SIMD數(shù)據(jù)類型 (121)的該算法(108)的該軟件代碼。
2.如權(quán)利要求1所述的方法,其特征在于,所述專用硬件特征包括寄存器,所述寄存器可被配置成包括一個或多個類型的特定數(shù)量的元素以及在這些元素上并行運行的相關(guān)聯(lián)的指令。
3.如權(quán)利要求1所述的方法,其特征在于,所述類屬SIMD數(shù)據(jù)類型按照元素類型來抽象,使得所述類屬SIMD數(shù)據(jù)類型具有可變數(shù)據(jù)類型。
4.如權(quán)利要求2所述的方法,其特征在于,所述類屬SIMD數(shù)據(jù)類型在原語類型上被例
5.如權(quán)利要求4所述的方法,其特征在于,所述類屬SIMD數(shù)據(jù)類型是可查詢的以確定所述類屬SIMD數(shù)據(jù)類型包括多少原語類型的元素。
6.如權(quán)利要求3所述的方法,其特征在于,所述類屬SIMD數(shù)據(jù)類型被配置成至少實現(xiàn)以下數(shù)據(jù)類型整型、短型、長型、浮點型、雙精度型和字節(jié)型。
7.一種用于實現(xiàn)一種用于提供包括類屬SIMD數(shù)據(jù)類型方法的計算機程序產(chǎn)品,所述類屬SIMD數(shù)據(jù)類型包括類屬SIMD數(shù)據(jù)類型的隱式類屬數(shù)量的元素,所述計算機程序產(chǎn)品包括存儲有計算機可執(zhí)行指令的一個或多個計算機可讀存儲介質(zhì),所述指令在由計算系統(tǒng)的一個或多個處理器執(zhí)行時使得所述計算系統(tǒng)執(zhí)行所述方法,所述方法包括訪問包括具有類屬SIMD數(shù)據(jù)類型(121)的算法(108)的軟件代碼(107)的一部分,該類屬SIMD數(shù)據(jù)類型包括可變數(shù)量的元素,其中具有該類屬SIMD數(shù)據(jù)類型的該算法要由包括一個或多個專用硬件特征的專用處理器處理;在運行時基于該類屬SIMD數(shù)據(jù)類型(121)來確定要供指定的處理器使用的定制的處理器專用代碼(126)的一部分,其中運行時確定解析出要供該指定的處理器使用的元素的數(shù)量;以及使用確定的、定制的處理器專用代碼(126)來處理包括具有該類屬SIMD數(shù)據(jù)類型 (121)的該算法(108)的該軟件代碼(107)。
8.如權(quán)利要求7所述的計算機程序產(chǎn)品,其特征在于,所述類屬SIMD數(shù)據(jù)類型按照元素大小以及元素類型兩者被抽象,使得所述類屬SIMD數(shù)據(jù)類型具有可變大小,以及所述類屬SIMD數(shù)據(jù)類型具有可變數(shù)據(jù)類型。
9.如權(quán)利要求7所述的計算機程序產(chǎn)品,其特征在于,還包括查詢指定的處理器以確定被存儲在其寄存器中且使用其寄存器被處理的元素的數(shù)量。
10. 一種計算機系統(tǒng),包括 一個或多個處理器; 系統(tǒng)存儲器;存儲有計算機可執(zhí)行指令的一個或多個計算機可讀存儲介質(zhì),所述計算機可執(zhí)行指令在由所述一個或多個處理器執(zhí)行時使得所述計算系統(tǒng)執(zhí)行一種用于提供具有可變數(shù)據(jù)類型的類屬SIMD數(shù)據(jù)類型的方法,所述方法包括訪問包括具有類屬SIMD數(shù)據(jù)類型(121)的算法(108)的軟件代碼(107)的一部分,該類屬SIMD數(shù)據(jù)類型包括可變數(shù)量的元素,其中具有該類屬SIMD數(shù)據(jù)類型的該算法要由包括一個或多個專用硬件特征的專用處理器處理;在運行時基于該類屬SIMD數(shù)據(jù)類型(121)來確定要供指定的處理器使用的定制的處理器專用代碼(126)的一部分,其中運行時確定解析出要供該指定的處理器使用的元素的數(shù)量;以及使用確定的、定制的處理器專用代碼(126)來處理包括具有該類屬SIMD數(shù)據(jù)類型 (121)的該算法(108)的該軟件代碼(107)。
全文摘要
提供了用于數(shù)據(jù)類型的類型和長度抽象。各實施例針對在軟件代碼中實現(xiàn)類屬SIMD數(shù)據(jù)類型。在一實施例中,計算機系統(tǒng)訪問軟件代碼的一部分,該部分包括具有類屬SIMD數(shù)據(jù)類型的算法,所述類屬SIMD數(shù)據(jù)類型包括可變數(shù)量的元素。具有該類屬SIMD數(shù)據(jù)類型的該算法要由包括各種專用硬件特征的專用處理器處理。計算機系統(tǒng)在運行時基于該類屬SIMD數(shù)據(jù)類型來確定要供指定的處理器使用的定制的處理器專用代碼的一部分,其中運行時確定解析出要供該指定的處理器使用的元素的數(shù)量。計算機系統(tǒng)還使用確定的、定制的處理器專用代碼來處理包括具有該類屬SIMD數(shù)據(jù)類型的該算法的該軟件代碼。
文檔編號G06F9/44GK102446100SQ20111043667
公開日2012年5月9日 申請日期2011年12月13日 優(yōu)先權(quán)日2010年12月14日
發(fā)明者C·T·艾特, D·L·德特勒夫斯 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1