本發(fā)明涉及計算機軟件開發(fā)領域,具體涉及一種支持多GPU的PCIE-SWITCH計算型服務器的自動檢測方法,通過該方法對PCIE-SWITCH服務器進行測試,能夠有效檢測PCIE-SWITCH服務器存在的異常狀況,可以減少人力、物力及流程管理的成本,提高測試覆蓋率。
背景技術:
目前在整機柜服務器領域,大型高性能、計算型服務器(PCIE-SWITCH)支持16張235瓦功率的GPU(Graphic Processing Unit圖形處理器),通過PCIE(總線和接口標準Peripheral Component Interface Express)retimer卡(時間修正卡)和Mini SAS HD高速線纜外接一臺服務器server使用,此時PCIE-SWITCH相當于服務器server端的PCIE設備,測試時PCIE-SWITCH也需要與服務器server聯(lián)合測試。因為PCIE-SWITCH最多可支持16張GPU卡,當搭配Nvidia的GPU,使用NVQual工具測試GPU時,測試項較多、每個測試項較長,故工作量極大。
針對上述問題,本申請發(fā)明了一種支持多GPU的PCIE-SWITCH計算型服務器的自動化測試方法,能夠自動進行PCIE-SWITCH服務器搭配GPU進行減耗(Thermal)、PCI Express頻帶寬度(bandwidth)、服務器承受壓力Stress的測試,大大提高工作效率,從而有效地解決上述工作量巨大的問題。整個測試流程測試方法操作簡單,自動化程度高,實用性較強,能夠節(jié)省人力,提高測試效率,是驗證產品質量的非常有效的方法。
技術實現(xiàn)要素:
本發(fā)明是為提高計算型服務器(PCIE-SWITCH)自動化測試所做的。
本申請發(fā)明一種支持多GPU的PCIE-SWITCH計算型服務器的自動檢測方法,該檢測方法具體包括如下步驟:a、將PCIE-SWITCH服務器與server連接;b、開啟PCIE-SWITCH服務器,1分鐘后開啟server;c、將測試主程序拷貝在server的操作系統(tǒng)下面;d、根據測試需求配置配置文件;e、運行測試主程序。
上述的自動檢測方法,其特征還在于,是用MiniSASHD線纜將PCIE-SWITCH服務器與servet連接。所述的測試主程序具體包括如下步驟:
讀取通過命令行輸入的參數;
判斷參數值,當參數值為f時,傳遞參數并讀取配置文件;卸載操作系統(tǒng)自帶的nvidia驅動,安裝NVQual測試程序,并啟動該測試程序進行GPU測試;
當參數值為h時,顯示幫助信息;
當參數值為v時,顯示版本信息;
當參數值為h、v、f以外的值時,顯示錯誤信息。
上述的自動檢測方法,其特征在于,所述的NVQual測試程序,具體包括以下步驟:
讀取用戶設置的減耗循環(huán)檢測參數,根據用戶設定的檢測次數,對GPU進行thermal循環(huán)檢測。
所述的NVQual測試程序,還包括以下步驟:
讀取用戶設置的序號參數,如果該參數為序號,則根據用戶設定的序號,對該序號的GPU進行qualification測試;如果該參數為“all”,則對所有的GPU進行qualification測試。
所述的NVQual測試程序,還包括以下步驟:
讀取用戶設置的帶寬參數,如果該參數為序號,則根據用戶設定的序號,對該序號的GPU進行bandwidth的測試;如果該參數為“all”,則對所有的GPU進行bandwidth測試。
所述的NVQual測試程序,還包括以下步驟:
讀取用戶設置的壓力循環(huán)檢測參數,根據用戶設定的檢測次數,對GPU進行stress循環(huán)檢測。
所述的NVQual測試程序,減耗循環(huán)檢測參數可以設置成循環(huán)測試10個小時。
所述的NVQual測試程序,壓力循環(huán)檢測參數可以設置成循環(huán)測試12個小時。
上述的測試主程序結束后,收集日志信息,如果日志記錄錯誤信息,則重新檢測或者診斷故障原因。
附圖說明
圖1、測試主程序mian函數流程圖
圖2、NVQual測試程序流程圖
具體實施方式
下面對本發(fā)明的內容進行更加詳細的闡述:
發(fā)明主要包括四部分,第一部分為測試程序main函數的流程圖,第二部分為NVQual測試程序流程圖,第三部分為部分代碼詳解,最后一部分為使用說明。
1、測試主程序main函數
如圖1所示,測試主程序在開始執(zhí)行的時候根據命令行加入的參數,執(zhí)行不同的函數。如輸入“-h”參數,則show_usage函數會打印出“幫助信息”,指導該程序的使用者使用該程序;“-v”參數,會調用show_version函數,打印出程序的版本信息,有助于使用者了解測試程序的變更記錄;“-f”參數后面需要加上“config.file”,程序讀取到-f參數后,會讀取“config.file”文件的內容保存到變量中,之后程序卸載os自帶nvidia的GPU驅動,安裝NVQual測試程序,最后程序會根據config.file的配置參數去執(zhí)行后續(xù)測試項;
2、NVQual測試程序
如圖2所示,NVQual測試程序開始時,依據圖1中“讀取配置參數文件”步驟從config.file中讀取到的配置信息進行判斷,來決策進行不同的測試。
config.file文件格式及內容如下:
NVQual_path=/root/nvidia/NVQual-P2081-K40_v07
#1.Thermal Qualification Test
loops=3
#2.PCI Express Qualification Test
loops=1
gpu=0
#3.PCI Express Bandwidth Test
loops=1
gpu=all
#4.Stress Test
loops=3
該文件中,以#開始的行,表示注釋信息,用于解釋文件中的內容,不會被程序讀取,與測試無關;該文件的主要信息為不以#開頭的5行信息,分別表示測試工具路徑及具體測試項的測試配置信息;
#1.Thermal Qualification Test
loops=3
該loops=3的信息被傳遞給loops_thermal變量,如果該項信息為空,表示不進行該項測試,直接進入下一項測試;如果有具體的值,則該值傳遞給thermal.exp程序,控制測試loop數;
#2.PCI Express Qualification Test
loops=1 #設置PCI Express Qualification Test test loop數
gpu=0 #設置參與PCI Express Qualification Test test的GPU序號
該項信息中,loops=1為該項測試的loop數,gpu=0為進行測試的GPU序號;如loops值為空,則不進行該項測試,如gpu值為“all”,則表示測試所有GPU,loops的值與gpu的值一起傳遞給qualification.exp程序,控制程序運行;
#3.PCI Express Bandwidth Test
loops=1
gpu=all
該項信息中,loops=1為該項測試的loop數,gpu=all為進行測試的GPU序號,all表示所有GPU均進行測試;如loops值為空,則不進行該項測試,如loops有具體值,則和gpu的值一起傳遞給bandwidth.exp程序,控制程序運行;
#4.Stress Test
loops=3
該項信息中,loops=3為該項測試的loop數,如loops值為空,則不進行該項測試,如loops有具體值,則和gpu的值一起傳遞給stress.exp程序,控制程序運行;
3、部分代碼如下:
圖1相關代碼
圖2相關代碼:
程序可以用C++語言寫,或其他語言。
4、使用方法
a、把一臺PCIE-SWITCH服務器與server用MiniSASHD線纜連接起來,開啟PCIE-SWITCH服務器,1分鐘后開啟server;
b、拷貝NVQualtest_0.2文件夾及NVQual-P2081-K40-v07測試工具到server端os下
c、根據測試需求配置config.file,主要包括NVQual-P2081-K40-v07工具目錄、各項測試的loop數及對應的GPU序號;
d、執(zhí)行“./NVQualtest.sh-f config.file”命令,四項測試的時間分別為10h、1.5h、1.5h、12h,共計等待25h,測試結束后收集測試log即可,中間無需人工干預測試過程;
本發(fā)明實現(xiàn)了PCIE-SWITCH服務器搭配GPU進行bandwidth、thermal、stress、qualification test的自動化測試,整個測試流程測試方法操作簡單,自動化程度高,實用性較強,能夠節(jié)省人力,提高測試效率,是驗證產品質量的非常有效的方法。