欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種測試GPU的方法及裝置與流程

文檔序號:11950002閱讀:1174來源:國知局
一種測試GPU的方法及裝置與流程

本發(fā)明涉及計算機技術領域,特別涉及一種測試GPU(Graphics Processing Unit,圖形處理器)的方法及裝置。



背景技術:

GPU是一種專門在個人電腦、工作站、游戲機和一些移動設備(如平板電腦、智能手機等)上圖像運算工作的微處理器。GPU根據(jù)圖形圖像計算的特點設計。一塊GPU設備上通常集成了數(shù)百至上千的輕量級計算核心,針對相互獨立的SIMD(Single Instruction Multiple Data,單指令多數(shù)據(jù)流),MIMD(MultipleInstructionStreamMultipleDataStream,多指令流多數(shù)據(jù)流)計算具有極高的計算能力。由于其并行加速等特性,GPU已經(jīng)應用到各個領域。

現(xiàn)有技術中,在對GPU進行測試時,一般需要借助專用的測試軟件,需要搭建復雜的測試平臺。通過人工對測試軟件進行操作,對測試平臺進行調(diào)試??傊F(xiàn)有技術中對GPU測試比較復雜。



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

本發(fā)明實施例提供了一種測試GPU的方法及裝置,能夠更加簡單地實現(xiàn)對GPU的測試。

一方面,本發(fā)明實施例提供了一種測試GPU的方法,包括:

S1:預先設置GPU的測試腳本,所述測試腳本中包括至少一個計算任務;

S2:執(zhí)行所述測試腳本;

S3:根據(jù)所述測試腳本控制所述GPU處理所述測試腳本中的所述至少一個計算任務;

S4:根據(jù)所述GPU對所述至少一個計算任務的處理結果,確定所述GPU的性能。

進一步地,所述S1,包括:

在所述測試腳本中設置在線程內(nèi)完全依賴的求和計算的第一計算任務和在線程內(nèi)部分依賴的求和計算的第二計算任務;

所述S3,包括:

根據(jù)所述測試腳本控制所述GPU分別處理所述第一計算任務和所述第二計算任務;

所述S4,包括:

分別獲取所述GPU處理所述第一計算任務所需要的第一時間和所述GPU處理所述第二計算任務所需要的第二時間;

根據(jù)所述第一時間和所述第二時間,確定所述GPU的性能。

進一步地,所述S1,包括:

在所述測試腳本中設置規(guī)約求和的第三計算任務;

所述S3,包括:

根據(jù)所述測試腳本控制所述GPU處理所述測試腳本中的所述規(guī)約求和的第三計算任務;

所述S4,包括:

確定所述GPU在處理所述規(guī)約求和的第三計算任務時的第一單位時間運算次數(shù);

根據(jù)所述第一單位時間運算次數(shù),確定所述GPU的性能。

進一步地,所述S1,包括:

在所述測試腳本中設置不進行分塊優(yōu)化的矩陣計算的第四計算任務和進行分塊優(yōu)化的矩陣計算的第五計算任務;

所述S3,包括:

根據(jù)所述測試腳本控制所述GPU分別處理所述第四計算任務和所述第五計算任務;

所述S4,包括:

分別獲取所述GPU處理所述第四計算任務時的第二單位時間運算次數(shù),以及所述GPU處理所述第五計算任務時的第三單位時間運算次數(shù);

根據(jù)所述第二單位時間運算次數(shù)和所述第三單位時間運算次數(shù),確定所述GPU的性能。

進一步地,還包括:

根據(jù)所述測試腳本獲取向所述GPU提出求和指令時指令點調(diào)用的時間;

根據(jù)所述指令點調(diào)用的時間,確定所述GPU的性能。

另一方面,本發(fā)明實施例提供了一種測試GPU的裝置,包括:

設置單元,用于設置GPU的測試腳本,所述測試腳本中包括至少一個計算任務;

執(zhí)行單元,用于執(zhí)行所述測試腳本;

控制單元,用于根據(jù)所述測試腳本控制所述GPU處理所述測試腳本中的所述至少一個計算任務;

第一確定單元,用于根據(jù)所述GPU對所述至少一個計算任務的處理結果,確定所述GPU的性能。

進一步地,所述設置單元,用于在所述測試腳本中設置在線程內(nèi)完全依賴的求和計算的第一計算任務和在線程內(nèi)部分依賴的求和計算的第二計算任務;

所述控制單元,用于根據(jù)所述測試腳本控制所述GPU分別處理所述第一計算任務和所述第二計算任務;

所述第一確定單元,用于分別獲取所述GPU處理所述第一計算任務所需要的第一時間和所述GPU處理所述第二計算任務所需要的第二時間,根據(jù)所述第一時間和所述第二時間,確定所述GPU的性能。

進一步地,所述設置單元,用于在所述測試腳本中設置規(guī)約求和的第三計算任務;

所述控制單元,用于根據(jù)所述測試腳本控制所述GPU處理所述測試腳本中的所述規(guī)約求和的第三計算任務;

所述第一確定單元,用于確定所述GPU在處理所述規(guī)約求和的第三計算任務時的第一單位時間運算次數(shù),根據(jù)所述第一單位時間運算次數(shù),確定所述GPU的性能。

進一步地,所述設置單元,用于在所述測試腳本中設置不進行分塊優(yōu)化的矩陣計算的第四計算任務和進行分塊優(yōu)化的矩陣計算的第五計算任務;

所述控制單元,用于根據(jù)所述測試腳本控制所述GPU分別處理所述第四計算任務和所述第五計算任務;

所述第一確定單元,用于分別獲取所述GPU處理所述第四計算任務時的第二單位時間運算次數(shù),以及所述GPU處理所述第五計算任務時的第三單位時間運算次數(shù),根據(jù)所述第二單位時間運算次數(shù)和所述第三單位時間運算次數(shù),確定所述GPU的性能。

進一步地,還包括:

獲取單元,用于根據(jù)所述測試腳本獲取向所述GPU提出求和指令時指令點調(diào)用的時間;

第二確定單元,用于根據(jù)所述指令點調(diào)用的時間,確定所述GPU的性能。

在本發(fā)明實施例中,設置測試腳本,在測試腳本中設置至少一個計算任務,通過執(zhí)行腳本控制GPU處理該至少一個計算任務,根據(jù)處理結果確定所述GPU的性能,無需人工操作測試軟件通過執(zhí)行測試腳本自動實現(xiàn)測試,更加簡單地實現(xiàn)對GPU的測試。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本發(fā)明一實施例提供的一種測試GPU的方法的流程圖;

圖2是本發(fā)明一實施例提供的另一種測試GPU的方法的流程圖;

圖3是本發(fā)明一實施例提供的又一種測試GPU的方法的流程圖;

圖4是本發(fā)明一實施例提供的再一種測試GPU的方法的流程圖;

圖5是本發(fā)明一實施例提供的一種測試GPU的裝置的示意圖;

圖6是本發(fā)明一實施例提供的另一種測試GPU的裝置的示意圖。

具體實施方式

為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

如圖1所示,本發(fā)明實施例提供了一種測試GPU的方法,該方法可以包括以下步驟:

S1:預先設置GPU的測試腳本,所述測試腳本中包括至少一個計算任務;

S2:執(zhí)行所述測試腳本;

S3:根據(jù)所述測試腳本控制所述GPU處理所述測試腳本中的所述至少一個計算任務;

S4:根據(jù)所述GPU對所述至少一個計算任務的處理結果,確定所述GPU的性能。

在本發(fā)明實施例中,設置測試腳本,在測試腳本中設置至少一個計算任務,通過執(zhí)行腳本控制GPU處理該至少一個計算任務,根據(jù)處理結果確定所述GPU的性能,無需人工操作測試軟件通過執(zhí)行測試腳本自動實現(xiàn)測試,更加簡單地實現(xiàn)對GPU的測試。

在本發(fā)明一實施例中,所述S1,包括:

在所述測試腳本中設置在線程內(nèi)完全依賴的求和計算的第一計算任務和在線程內(nèi)部分依賴的求和計算的第二計算任務;

所述S3,包括:

根據(jù)所述測試腳本控制所述GPU分別處理所述第一計算任務和所述第二計算任務;

所述S4,包括:

分別獲取所述GPU處理所述第一計算任務所需要的第一時間和所述GPU處理所述第二計算任務所需要的第二時間;

根據(jù)所述第一時間和所述第二時間,確定所述GPU的性能。

如圖2所示,本發(fā)明實施例提供的一種測試GPU的方法,包括:

步驟201:預先在GPU的測試腳本中設置在線程內(nèi)完全依賴的求和計算的第一計算任務和在線程內(nèi)部分依賴的求和計算的第二計算任務。

步驟202:執(zhí)行測試腳本。

步驟203:根據(jù)測試腳本控制GPU分別處理第一計算任務和第二計算任務。

步驟204:分別獲取GPU處理第一計算任務所需要的第一時間和GPU處理第二計算任務所需要的第二時間;

步驟205:根據(jù)第一時間和第二時間,確定GPU的性能。

在本發(fā)明實施例中,第一計算任務和第二計算任務可以主要是基本運算:加法、乘法、除法、正弦、乘加等。測試數(shù)據(jù)可以包括單精度、雙精度數(shù)據(jù)類型。根據(jù)第一時間和第二時間,可以確定GPU對獨立代碼的自動優(yōu)化功能。

在線程內(nèi)完全依賴的求和計算的第一計算任務可以通過以下代碼實現(xiàn):

在線程內(nèi)部分依賴的求和計算的第二計算任務可以通過以下代碼實現(xiàn):

在本發(fā)明一實施例中,所述S1,包括:

在所述測試腳本中設置規(guī)約求和的第三計算任務;

所述S3,包括:

根據(jù)所述測試腳本控制所述GPU處理所述測試腳本中的所述規(guī)約求和的第三計算任務;

所述S4,包括:

確定所述GPU在處理所述規(guī)約求和的第三計算任務時的第一單位時間運算次數(shù);

根據(jù)所述第一單位時間運算次數(shù),確定所述GPU的性能。

如圖3所示,本發(fā)明實施例提供的一種測試GPU的方法,包括:

步驟301:預先在GPU的測試腳本中設置規(guī)約求和的第三計算任務。

步驟302:執(zhí)行測試腳本。

步驟303:根據(jù)測試腳本控制GPU處理測試腳本中的規(guī)約求和的第三計算任務。

步驟304:確定GPU在處理規(guī)約求和的第三計算任務時的第一單位時間運算次數(shù)。

步驟305:根據(jù)第一單位時間運算次數(shù),確定GPU的性能。

通過第一單位時間運算次數(shù)可以確定GPU在處理規(guī)約求和的處理速度。

在本發(fā)明實施例中,可以將GPU的測試規(guī)模配置為:block的數(shù)量為1、thread的數(shù)量為32、數(shù)組大小為256;或者,block的數(shù)量為128、thread的數(shù)量為64、數(shù)組大小為1024;或者,block的數(shù)量為128、thread的數(shù)量為256、數(shù)組大小為1024;或者,block的數(shù)量為512、thread的數(shù)量為512、數(shù)組大小為10M。

規(guī)約求和的第三計算任務可以通過以下代碼實現(xiàn):

在本發(fā)明一實施例中,所述S1,包括:

在所述測試腳本中設置不進行分塊優(yōu)化的矩陣計算的第四計算任務和進行分塊優(yōu)化的矩陣計算的第五計算任務;

所述S3,包括:

根據(jù)所述測試腳本控制所述GPU分別處理所述第四計算任務和所述第五計算任務;

所述S4,包括:

分別獲取所述GPU處理所述第四計算任務時的第二單位時間運算次數(shù),以及所述GPU處理所述第五計算任務時的第三單位時間運算次數(shù);

根據(jù)所述第二單位時間運算次數(shù)和所述第三單位時間運算次數(shù),確定所述GPU的性能。

如圖4所示,本發(fā)明實施例提供的一種測試GPU的方法,包括:

步驟401:預先在GPU的測試腳本中設置不進行分塊優(yōu)化的矩陣計算的第四計算任務和進行分塊優(yōu)化的矩陣計算的第五計算任務。

步驟402:執(zhí)行測試腳本。

步驟403:根據(jù)測試腳本控制GPU分別處理第四計算任務和第五計算任務。

步驟404:分別獲取GPU處理第四計算任務時的第二單位時間運算次數(shù),以及GPU處理第五計算任務時的第三單位時間運算次數(shù)。

步驟405:根據(jù)第二單位時間運算次數(shù)和第三單位時間運算次數(shù),確定GPU的性能。

在本發(fā)明實施例中,矩陣計算可以是矩陣乘法計算。矩陣計算中涉及內(nèi)存讀寫、大量乘累加操作,通過第二單位時間運算次數(shù)和第三單位時間運算次數(shù)可以確定出GPU的計算能力。通過不進行分塊優(yōu)化的矩陣計算和進行分塊優(yōu)化的矩陣計算,可以確定出分塊優(yōu)化對GPU的處理速度的影響。

不進行分塊優(yōu)化的矩陣計算的第四計算任務可以通過以下代碼實現(xiàn):

進行分塊優(yōu)化的矩陣計算的第五計算任務可以通過以下代碼實現(xiàn):

在本發(fā)明一實施例中,還包括:

根據(jù)所述測試腳本獲取向所述GPU提出求和指令時指令點調(diào)用的時間;

根據(jù)所述指令點調(diào)用的時間,確定所述GPU的性能。

在GPU計算中,由主機(host)調(diào)用GPU指令。在本發(fā)明實施例中,通過獲取向GPU提出求和指令時指令點調(diào)用的時間,可以確定GPU的指令調(diào)度延遲和指令執(zhí)行延遲。在本發(fā)明實施例中,可以預先指定block數(shù)和thread數(shù)來確定指令調(diào)用延遲和指令執(zhí)行延遲。

本發(fā)明實施例可以通過以下代碼實現(xiàn):

在本發(fā)明實施例中,可以在表1所示的測試環(huán)境中實現(xiàn):

表1

為了更準確的反映GPU的性能,block和thread以及內(nèi)存的設置需要考慮到GPU的架構的相關參數(shù)的上限。在本發(fā)明實施例中,可以參考”NVIDIA Kepler GK110GK210Architectrue Whitepaper”。其中,Tesla K80采用兩顆基于Kepler架構的GK210GPU,每顆GPU內(nèi)建2496個CUDA核心并配備12GB GDDR5內(nèi)存,內(nèi)存帶寬為240GB/s。因此Tesla K80共計4992個CUDA核心和24GB GDDR5內(nèi)存,總帶寬480GB/s。

本發(fā)明實施例可以實現(xiàn)基于CUDA(Compute Unified Device Architecture,統(tǒng)一計算設備架構)的GPU的測試,可以對GPU以下性能進行測試:指令調(diào)度延遲、指令執(zhí)行延遲、規(guī)約求和、自動并行優(yōu)化、矩陣乘法、內(nèi)存?zhèn)鬏斔俣?、?nèi)存讀寫訪問速度、分頁鎖定內(nèi)存訪問。

在本發(fā)明實施例可以實現(xiàn)在Linux操作系統(tǒng)基礎上,CUDA開發(fā)編譯環(huán)境下,針對NVIDIA Tesla架構Kepler系列的K20、K40、K80型號GPU進行相關測試。測試內(nèi)容可以為計算機輔助工程設計中常用的基本運算方法:加、乘、除、乘累加、正弦、矩陣乘法等操作在單精度和雙精度下的不同表現(xiàn),以得到不通型號的GPU在特定的CPU和芯片組架構環(huán)境下,影響性能的因素以及表現(xiàn)能力。

如圖5、圖6所示,本發(fā)明實施例提供了一種測試GPU的裝置。裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結合的方式實現(xiàn)。從硬件層面而言,如圖5所示,為本發(fā)明實施例提供的一種測試GPU的裝置所在設備的一種硬件結構圖,除了圖5所示的處理器、內(nèi)存、網(wǎng)絡接口、以及非易失性存儲器之外,實施例中裝置所在的設備通常還可以包括其他硬件,如負責處理報文的轉(zhuǎn)發(fā)芯片等等。以軟件實現(xiàn)為例,如圖6所示,作為一個邏輯意義上的裝置,是通過其所在設備的CPU將非易失性存儲器中對應的計算機程序指令讀取到內(nèi)存中運行形成的。本實施例提供的一種測試GPU的裝置,包括:

設置單元601,用于設置GPU的測試腳本,所述測試腳本中包括至少一個計算任務;

執(zhí)行單元602,用于執(zhí)行所述測試腳本;

控制單元603,用于根據(jù)所述測試腳本控制所述GPU處理所述測試腳本中的所述至少一個計算任務;

第一確定單元604,用于根據(jù)所述GPU對所述至少一個計算任務的處理結果,確定所述GPU的性能。

在本發(fā)明一實施例中,所述設置單元,用于在所述測試腳本中設置在線程內(nèi)完全依賴的求和計算的第一計算任務和在線程內(nèi)部分依賴的求和計算的第二計算任務;

所述控制單元,用于根據(jù)所述測試腳本控制所述GPU分別處理所述第一計算任務和所述第二計算任務;

所述第一確定單元,用于分別獲取所述GPU處理所述第一計算任務所需要的第一時間和所述GPU處理所述第二計算任務所需要的第二時間,根據(jù)所述第一時間和所述第二時間,確定所述GPU的性能。

在本發(fā)明一實施例中,所述設置單元,用于在所述測試腳本中設置規(guī)約求和的第三計算任務;

所述控制單元,用于根據(jù)所述測試腳本控制所述GPU處理所述測試腳本中的所述規(guī)約求和的第三計算任務;

所述第一確定單元,用于確定所述GPU在處理所述規(guī)約求和的第三計算任務時的第一單位時間運算次數(shù),根據(jù)所述第一單位時間運算次數(shù),確定所述GPU的性能。

在本發(fā)明一實施例中,所述設置單元,用于在所述測試腳本中設置不進行分塊優(yōu)化的矩陣計算的第四計算任務和進行分塊優(yōu)化的矩陣計算的第五計算任務;

所述控制單元,用于根據(jù)所述測試腳本控制所述GPU分別處理所述第四計算任務和所述第五計算任務;

所述第一確定單元,用于分別獲取所述GPU處理所述第四計算任務時的第二單位時間運算次數(shù),以及所述GPU處理所述第五計算任務時的第三單位時間運算次數(shù),根據(jù)所述第二單位時間運算次數(shù)和所述第三單位時間運算次數(shù),確定所述GPU的性能。

在本發(fā)明一實施例中,還包括:

獲取單元,用于根據(jù)所述測試腳本獲取向所述GPU提出求和指令時指令點調(diào)用的時間;

第二確定單元,用于根據(jù)所述指令點調(diào)用的時間,確定所述GPU的性能。

上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。

本發(fā)明各個實施例至少具有如下有益效果:

1、在本發(fā)明實施例中,設置測試腳本,在測試腳本中設置至少一個計算任務,通過執(zhí)行腳本控制GPU處理該至少一個計算任務,根據(jù)處理結果確定所述GPU的性能,無需人工操作測試軟件通過執(zhí)行測試腳本自動實現(xiàn)測試,更加簡單地實現(xiàn)對GPU的測試。

2、在本發(fā)明實施例中,在測試腳本中設置規(guī)約求和的計算任務,通過控制GPU對簡單的規(guī)約求和進行處理即可實現(xiàn)對GPU的處理速度的測試。

3、在本發(fā)明實施例中,矩陣計算中涉及內(nèi)存讀寫、大量乘累加操作,通過第二單位時間運算次數(shù)和第三單位時間運算次數(shù)可以確定出GPU的計算能力。通過不進行分塊優(yōu)化的矩陣計算和進行分塊優(yōu)化的矩陣計算,可以確定出分塊優(yōu)化對GPU的處理速度的影響。

需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個〃·····”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。

本領域普通技術人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)中。

最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
霍邱县| 简阳市| 健康| 固始县| 舒城县| 沁水县| 浠水县| 闸北区| 抚宁县| 龙里县| 黄大仙区| 芒康县| 光泽县| 新乐市| 砀山县| 遂川县| 江口县| 旬阳县| 北碚区| 德兴市| 石景山区| 会同县| 四子王旗| 日喀则市| 阆中市| 沛县| 平武县| 宁安市| 忻城县| 页游| 湟源县| 临西县| 和田县| 西安市| 宁武县| 和政县| 阜宁县| 休宁县| 高陵县| 安宁市| 祥云县|