本發(fā)明屬于處理器技術領域,特別是涉及一種基于numa架構(gòu)的cpu性能優(yōu)化方法和裝置。
背景技術:
處理器性能評估的方法有很多種,究其根本來講,處理器的性能是通過其對數(shù)據(jù)模型的計算能力來表現(xiàn),而處理器性能的發(fā)揮依賴于緩存及內(nèi)存對數(shù)據(jù)的傳輸能力。
利用現(xiàn)有的numa技術(non-uniformmemoryaccess,非統(tǒng)一內(nèi)存訪問機制),系統(tǒng)所有內(nèi)存被分為若干個塊,同時系統(tǒng)擁有多條內(nèi)存總線,處理器通過每個內(nèi)存總線與一塊內(nèi)存相連構(gòu)成一個組,這樣numa系統(tǒng)被分為若干個組,每個組被稱為一個節(jié)點(node),處于該節(jié)點中的內(nèi)存被稱為本地內(nèi)存(localmemory),處于其它節(jié)點中的內(nèi)存對于該組而言被稱為遠程內(nèi)存(foreignmemory)?,F(xiàn)有的cpu性能處理模型是測試環(huán)境下運行多個測試線程,每個測試線程遍歷所有的內(nèi)存,然而這種測試方法存在一定的缺陷,表現(xiàn)在當處理器訪問遠端內(nèi)存的數(shù)據(jù)時,數(shù)據(jù)傳輸速度會降低,影響cpu性能的發(fā)揮。
技術實現(xiàn)要素:
為解決上述問題,本發(fā)明提供了一種基于numa架構(gòu)的cpu性能優(yōu)化方法和裝置,能夠避免訪問遠端內(nèi)存,提高數(shù)據(jù)傳輸速度,從而提高cpu的性能。
本發(fā)明提供的一種基于numa架構(gòu)的cpu性能優(yōu)化方法,包括:
獲取cpu的性能參數(shù)和指導值;
獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;
根據(jù)所述線程的數(shù)量、每個線程的計算量以及所述cpu的性能參數(shù)和指導值,評估cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度;
根據(jù)所述cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度,將每個節(jié)點的本地內(nèi)存分割為預設數(shù)量的本地內(nèi)存塊,每個所述本地內(nèi)存塊對應所述節(jié)點中的一個內(nèi)存控制器;
將所述線程綁定到每個節(jié)點相應的處理器核心上,利用對應的所述本地內(nèi)存塊執(zhí)行計算任務。
優(yōu)選的,在上述基于numa架構(gòu)的cpu性能優(yōu)化方法中,
所述評估cpu的性能對緩存及內(nèi)存的依賴程度包括:
根據(jù)所述線程的數(shù)量和所述每個線程的計算量計算總數(shù)據(jù)量;
對比所述總數(shù)據(jù)量和所述cpu的指導值,評估所述cpu的性能對緩存及內(nèi)存的依賴程度。
優(yōu)選的,在上述基于numa架構(gòu)的cpu性能優(yōu)化方法中,
每個所述內(nèi)存控制器對應一個或多個所述處理器核心。
本發(fā)明提供的一種基于numa架構(gòu)的cpu性能優(yōu)化裝置,包括:
第一獲取單元,用于獲取cpu的性能參數(shù)和指導值;
第二獲取單元,用于獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;
評估單元,用于根據(jù)所述線程的數(shù)量、每個線程的計算量以及所述cpu的性能參數(shù)和指導值,評估cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度;
分割單元,用于根據(jù)所述cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度,將每個節(jié)點的本地內(nèi)存分割為預設數(shù)量的本地內(nèi)存塊,每個所述本地內(nèi)存塊對應所述節(jié)點中的一個內(nèi)存控制器;
執(zhí)行單元,用于將所述線程綁定到每個節(jié)點相應的處理器核心上,利用對應的所述本地內(nèi)存塊執(zhí)行計算任務。
優(yōu)選的,在上述基于numa架構(gòu)的cpu性能優(yōu)化裝置中,
所述評估單元具體用于根據(jù)所述線程的數(shù)量和所述每個線程的計算量計算總數(shù)據(jù)量,對比所述總數(shù)據(jù)量和所述cpu的指導值,評估所述cpu的性能對緩存及內(nèi)存的依賴程度。
優(yōu)選的,在上述基于numa架構(gòu)的cpu性能優(yōu)化裝置中,
每個所述內(nèi)存控制器對應一個或多個所述處理器核心。
通過上述描述可知,本發(fā)明提供的上述基于numa架構(gòu)的cpu性能優(yōu)化方法和裝置,由于該方法包括獲取cpu的性能參數(shù)和指導值;獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;根據(jù)所述線程的數(shù)量、每個線程的計算量以及所述cpu的性能參數(shù)和指導值,評估cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度;根據(jù)所述cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度,將每個節(jié)點的本地內(nèi)存分割為預設數(shù)量的本地內(nèi)存塊,每個所述本地內(nèi)存塊對應所述節(jié)點中的一個內(nèi)存控制器;將所述線程綁定到每個節(jié)點相應的處理器核心上,利用對應的所述本地內(nèi)存塊執(zhí)行計算任務,因此能夠避免訪問遠端內(nèi)存,提高數(shù)據(jù)傳輸速度,從而提高cpu的性能。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請實施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化方法的示意圖;
圖2為本申請實施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化裝置的示意圖;
圖3為本申請的numa架構(gòu)的示意圖。
具體實施方式
本發(fā)明的核心思想在于提供一種基于numa架構(gòu)的cpu性能優(yōu)化方法和裝置,能夠避免訪問遠端內(nèi)存,提高數(shù)據(jù)傳輸速度,從而提高cpu的性能。
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本申請實施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化方法如圖1所示,圖1為本申請實施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化方法的示意圖,該方法包括如下步驟:
s1:獲取cpu的性能參數(shù)和指導值;
s2:獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;
s3:根據(jù)所述線程的數(shù)量、每個線程的計算量以及所述cpu的性能參數(shù)和指導值,評估cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度;
s4:根據(jù)所述cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度,將每個節(jié)點的本地內(nèi)存分割為預設數(shù)量的本地內(nèi)存塊,每個所述本地內(nèi)存塊對應所述節(jié)點中的一個內(nèi)存控制器;
s5:將所述線程綁定到每個節(jié)點相應的處理器核心上,利用對應的所述本地內(nèi)存塊執(zhí)行計算任務。
也就是說,根據(jù)每個內(nèi)存控制器對應的線程所需要的內(nèi)存大小來分配給其對應大小的本地內(nèi)存塊,這樣,處理器核心在處理數(shù)據(jù)時,就只需要調(diào)用分配好的本地內(nèi)存塊,避免調(diào)用遠端內(nèi)存,從而提高數(shù)據(jù)處理速度。
通過上述描述可知,本申請實施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化方法,由于包括獲取cpu的性能參數(shù)和指導值;獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;根據(jù)所述線程的數(shù)量、每個線程的計算量以及所述cpu的性能參數(shù)和指導值,評估cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度;根據(jù)所述cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度,將每個節(jié)點的本地內(nèi)存分割為預設數(shù)量的本地內(nèi)存塊,每個所述本地內(nèi)存塊對應所述節(jié)點中的一個內(nèi)存控制器;將所述線程綁定到每個節(jié)點相應的處理器核心上,利用對應的所述本地內(nèi)存塊執(zhí)行計算任務,因此能夠避免訪問遠端內(nèi)存,提高數(shù)據(jù)傳輸速度,從而提高cpu的性能。
本申請實施例提供的第二種基于numa架構(gòu)的cpu性能優(yōu)化方法,是在上述第一種基于numa架構(gòu)的cpu性能優(yōu)化方法的基礎上,還包括如下技術特征:
所述評估cpu的性能對緩存及內(nèi)存的依賴程度包括:
根據(jù)所述線程的數(shù)量和所述每個線程的計算量計算總數(shù)據(jù)量;
對比所述總數(shù)據(jù)量和所述cpu的指導值,評估所述cpu的性能對緩存及內(nèi)存的依賴程度。
需要說明的是,為了避免遠程內(nèi)存的使用,只利用本地內(nèi)存處理任務,那么就必須事先計算需要多少內(nèi)存,再分配相應大小的本地內(nèi)存塊給每個線程,這樣就能夠提高數(shù)據(jù)處理速度。
本申請實施例提供的第三種基于numa架構(gòu)的cpu性能優(yōu)化方法,是在上述第二種基于numa架構(gòu)的cpu性能優(yōu)化方法的基礎上,還包括如下技術特征:
每個所述內(nèi)存控制器對應一個或多個所述處理器核心。
具體可以參考圖3,圖3為本申請的numa架構(gòu)的示意圖,其中處理器2中包括多個處理器核心3,每個內(nèi)存控制器4對應了兩個處理器核心3,每個處理器核心3對應一個線程1,而每個內(nèi)存控制器4對應一個本地內(nèi)存塊5,當然這僅僅是舉例,還可以將內(nèi)存控制器對應到一個或者多于兩個處理器核心,此處并不限制。
本申請實施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化裝置如圖2所示,圖2為本申請實施例提供的第一種基于numa架構(gòu)的cpu性能優(yōu)化裝置的示意圖,該裝置包括:
第一獲取單元201,用于獲取cpu的性能參數(shù)和指導值;
第二獲取單元202,用于獲取線程的數(shù)量和內(nèi)存控制器的數(shù)量;
評估單元203,用于根據(jù)所述線程的數(shù)量、每個線程的計算量以及所述cpu的性能參數(shù)和指導值,評估cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度;
分割單元204,用于根據(jù)所述cpu的負載大小及其性能對緩存及內(nèi)存的依賴程度,將每個節(jié)點的本地內(nèi)存分割為預設數(shù)量的本地內(nèi)存塊,每個所述本地內(nèi)存塊對應所述節(jié)點中的一個內(nèi)存控制器;
執(zhí)行單元205,用于將所述線程綁定到每個節(jié)點相應的處理器核心上,利用對應的所述本地內(nèi)存塊執(zhí)行計算任務。
也就是說,根據(jù)每個內(nèi)存控制器對應的線程所需要的內(nèi)存大小來分配給其對應大小的本地內(nèi)存塊,這樣,處理器核心在處理數(shù)據(jù)時,就只需要調(diào)用分配好的本地內(nèi)存塊,避免調(diào)用遠端內(nèi)存,從而提高數(shù)據(jù)處理速度。
本申請實施例提供的第二基于numa架構(gòu)的cpu性能優(yōu)化裝置,是在上述第一種基于numa架構(gòu)的cpu性能優(yōu)化裝置的基礎上,還包括如下技術特征:
所述評估單元具體用于根據(jù)所述線程的數(shù)量和所述每個線程的計算量計算總數(shù)據(jù)量,對比所述總數(shù)據(jù)量和所述cpu的指導值,評估所述cpu的性能對緩存及內(nèi)存的依賴程度。
需要說明的是,為了避免遠程內(nèi)存的使用,只利用本地內(nèi)存處理任務,那么就必須事先計算需要多少內(nèi)存,再分配相應大小的本地內(nèi)存塊給每個線程,這樣就能夠提高數(shù)據(jù)處理速度。
本申請實施例提供的第三基于numa架構(gòu)的cpu性能優(yōu)化裝置,是在上述第二種基于numa架構(gòu)的cpu性能優(yōu)化裝置的基礎上,還包括如下技術特征:
每個所述內(nèi)存控制器對應一個或多個所述處理器核心。
對所公開的實施例的上述說明,使本領域?qū)I(yè)技術人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。