本發(fā)明涉及異構(gòu)計(jì)算領(lǐng)域,特別是涉及一種fpga異構(gòu)計(jì)算加速系統(tǒng)及方法。
背景技術(shù):
:隨著高性能計(jì)算和人工智能技術(shù)的快速發(fā)展以及大數(shù)據(jù)的爆發(fā)式增長,傳統(tǒng)處理器芯片在提升性能功耗比方面遇到了極大挑戰(zhàn)。fpga(field-programmablegatearray,現(xiàn)場可編程門陣列)芯片作為一種新型的處理器芯片介于專用芯片和通用芯片之間,具有一定的可編程性,在加速計(jì)算、壓縮、解壓縮、人工智能等領(lǐng)域都體現(xiàn)出了其高效性。一般的,fpga異構(gòu)計(jì)算加速系統(tǒng)由cpu和fpga卡組成,其中,fpga卡是由fpga芯片、cpld(complexprogarmmablelogicdevice,復(fù)雜可編程邏輯器件)模塊、ddr4(doubledatarate4,ddr4存儲器)模塊、時鐘模塊、電源模塊等部件組成。在大規(guī)模的數(shù)據(jù)中心中,單2u服務(wù)器需要2~4張fpga卡,單個機(jī)柜需要80~160張fpga卡,整個數(shù)據(jù)中心可能需要上萬張fpga卡,且每張卡處于正常工作狀態(tài)的功耗一般在35w~75w之間。在現(xiàn)有技術(shù)中,當(dāng)數(shù)據(jù)中心部署fpga加速計(jì)算系統(tǒng)時,會使系統(tǒng)中所有的fpga卡均處于正常工作狀態(tài),而在一些特定的場景下,可能并不需要使用全部的fpga卡,也就是說,此時盡管有一部分fpga卡處于正常工作狀態(tài),但是并未被使用,造成了大量資源浪費(fèi)。因此如何提供一種解決上述技術(shù)問題的方案是本領(lǐng)域技術(shù)人員目前需要解決的問題。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是提供一種fpga異構(gòu)計(jì)算加速系統(tǒng),從兩方面節(jié)省了fpga卡的功耗,可以做到在特定的場景下根據(jù)實(shí)際需要投入使用不同數(shù)量的fpga卡,降低了整個系統(tǒng)的耗電量,節(jié)約了資源。本發(fā)明的另一目的是提供一種fpga異構(gòu)計(jì)算加速方法。為解決上述技術(shù)問題,本發(fā)明提供了一種fpga異構(gòu)計(jì)算加速系統(tǒng),包括:現(xiàn)場可編程門陣列fpga芯片;控制模塊,用于確定待降低功耗的fpga卡,并生成與各個待降低功耗的fpga卡對應(yīng)的控制指令;與所述fpga芯片一一對應(yīng)的控制寄存器,用于接收與自身對應(yīng)的所述控制指令,并根據(jù)所述控制指令控制與所述fpga芯片對應(yīng)的電源模塊的開關(guān)狀態(tài)和/或控制所述fpga芯片的工作狀態(tài)。優(yōu)選的,所述控制寄存器為復(fù)雜可編程邏輯器件cpld中的控制寄存器。優(yōu)選的,所述控制指令為待工作指令,則所述控制寄存器具體用于將所述待工作指令賦予第一預(yù)設(shè)值以控制所述fpga芯片處于待工作狀態(tài)。優(yōu)選的,該系統(tǒng)還包括存儲模塊,用于存儲數(shù)據(jù),并進(jìn)行數(shù)據(jù)傳輸。優(yōu)選的,所述控制指令為睡眠指令,則所述控制寄存器用于控制與所述存儲模塊對應(yīng)的電源模塊關(guān)斷,并將所述睡眠指令賦予第二預(yù)設(shè)值以控制所述fpga芯片處于睡眠狀態(tài)。優(yōu)選的,所述控制指令為深睡眠指令,則所述控制寄存器用于控制與所述fpga芯片對應(yīng)的電源模塊關(guān)斷,還用于控制與所述存儲模塊對應(yīng)的電源模塊關(guān)斷,以控制所述fpga芯片處于深睡眠狀態(tài)。優(yōu)選的,所述控制寄存器還用于控制fpga卡上其他各個模塊的上電順序。優(yōu)選的,所述fpga芯片對應(yīng)的電源模塊和所述存儲模塊對應(yīng)的電源模塊之前,該系統(tǒng)還包括電壓轉(zhuǎn)換模塊,用于對總輸入電壓進(jìn)行降壓處理,并將降壓后的總輸入電壓分別輸出至所述fpga芯片對應(yīng)的電源模塊和所述存儲模塊對應(yīng)的電源模塊。為解決上述技術(shù)問題,本發(fā)明還提供了一種fpga異構(gòu)計(jì)算加速方法,包括:控制模塊確定待降低功耗的現(xiàn)場可編程門陣列fpga卡,并生成與各個待降低功耗的fpga卡對應(yīng)的控制指令;與所述fpga芯片一一對應(yīng)的控制寄存器接收與自身對應(yīng)的所述控制指令,并根據(jù)所述控制指令控制與所述fpga芯片對應(yīng)的電源模塊的開關(guān)狀態(tài)和/或控制所述fpga芯片的工作狀態(tài)。優(yōu)選的,所述控制模塊生成并發(fā)送控制指令之前,該方法還包括:控制寄存器控制fpga卡上其他各個模塊的上電順序。本發(fā)明提供了一種fpga異構(gòu)計(jì)算加速系統(tǒng),包括現(xiàn)場可編程門陣列fpga芯片;控制模塊,用于確定待降低功耗的fpga卡,并生成與各個待降低功耗的fpga卡對應(yīng)的控制指令;與fpga芯片一一對應(yīng)的控制寄存器,用于接收與自身對應(yīng)的控制指令,并根據(jù)控制指令控制與fpga芯片對應(yīng)的電源模塊的開關(guān)狀態(tài)和/或控制fpga芯片的工作狀態(tài)。可見,在數(shù)據(jù)中心部署fpga加速計(jì)算系統(tǒng)時,應(yīng)用本發(fā)明的方案,可以實(shí)現(xiàn)通過控制模塊對多張fpga卡的功耗進(jìn)行控制,具體的,控制模塊控制待降低功耗的fpga卡中與fpga芯片對應(yīng)的電源模塊關(guān)斷和/或控制fpga芯片處于不同的工作狀態(tài),從兩方面節(jié)省了fpga卡的功耗,可以做到在特定的場景下根據(jù)實(shí)際需要投入使用不同數(shù)量的fpga卡,降低了整個系統(tǒng)的耗電量,節(jié)約了資源。本發(fā)明還提供了一種fpga異構(gòu)計(jì)算加速方法,具有如上述加速系統(tǒng)相同的有益效果。附圖說明為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對現(xiàn)有技術(shù)和實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明所提供的一種fpga異構(gòu)計(jì)算加速系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明所提供的一種fpga異構(gòu)計(jì)算加速方法的流程圖。具體實(shí)施方式本發(fā)明的核心是提供一種fpga異構(gòu)計(jì)算加速系統(tǒng),從兩方面節(jié)省了fpga卡的功耗,可以做到在特定的場景下根據(jù)實(shí)際需要投入使用不同數(shù)量的fpga卡,降低了整個系統(tǒng)的耗電量,節(jié)約了資源。本發(fā)明的另一核心是提供一種fpga異構(gòu)計(jì)算加速方法。為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。請參照圖1,圖1為本發(fā)明所提供的一種fpga異構(gòu)計(jì)算加速系統(tǒng)的結(jié)構(gòu)示意圖,包括:現(xiàn)場可編程門陣列fpga芯片3;具體的,設(shè)置于fpga卡內(nèi)部的fpga芯片3具有高可靠性、開發(fā)方便、使用靈活、可在線編程等優(yōu)點(diǎn),控制模塊1通過對fpga芯片3進(jìn)行控制即可改變fpga卡的工作狀態(tài)??刂颇K1,用于確定待降低功耗的fpga卡,并生成與各個待降低功耗的fpga卡對應(yīng)的控制指令;具體的,位于服務(wù)器中的控制模塊1可以對數(shù)據(jù)中心中所有fpga卡的工作狀態(tài)進(jìn)行控制,且控制模塊1與服務(wù)器中的pcie(peripheralcomponentinterconnectexpress,高速串行計(jì)算機(jī)擴(kuò)展總線標(biāo)準(zhǔn))連接器同各個fpga卡之間通過smbus協(xié)議進(jìn)行通信,根據(jù)獲取的fpga卡的地址信息,確定待降低功耗的fpga卡,向其發(fā)送控制指令,為實(shí)現(xiàn)在特定場景下根據(jù)實(shí)際需要投入使用不同數(shù)量的fpga卡提供了基礎(chǔ)。與fpga芯片3一一對應(yīng)的控制寄存器,用于接收與自身對應(yīng)的控制指令,并根據(jù)控制指令控制與fpga芯片3對應(yīng)的電源模塊的開關(guān)狀態(tài)和/或控制fpga芯片3的工作狀態(tài)。具體的,fpga芯片與控制寄存器2一一對應(yīng),當(dāng)控制寄存器2接收到控制單元發(fā)出的控制指令時,一方面可以通過控制與fpga芯片3對應(yīng)的電源模塊的開關(guān)狀態(tài),來減少fpga卡的靜態(tài)功耗,另一方面可以通過控制fpga芯片3的工作狀態(tài),來降低fpga卡的運(yùn)行速度以降低fpga卡的功耗,此外,還可以通過對上述兩方面進(jìn)行綜合控制來降低fpga卡的功耗,從而降低了整個系統(tǒng)的耗電量,節(jié)約了資源。本發(fā)明提供了一種fpga異構(gòu)計(jì)算加速系統(tǒng),包括現(xiàn)場可編程門陣列fpga芯片;控制模塊,用于確定待降低功耗的fpga卡,并生成與各個待降低功耗的fpga卡對應(yīng)的控制指令;與fpga芯片一一對應(yīng)的控制寄存器,用于接收與自身對應(yīng)的控制指令,并根據(jù)控制指令控制與fpga芯片對應(yīng)的電源模塊的開關(guān)狀態(tài)和/或控制fpga芯片的工作狀態(tài)??梢姡跀?shù)據(jù)中心部署fpga加速計(jì)算系統(tǒng)時,應(yīng)用本發(fā)明的方案,可以實(shí)現(xiàn)通過控制模塊對多張fpga卡的功耗進(jìn)行控制,具體的,控制模塊控制待降低功耗的fpga卡中與fpga芯片對應(yīng)的電源模塊關(guān)斷和/或控制fpga芯片處于不同的工作狀態(tài),從兩方面節(jié)省了fpga卡的功耗,可以做到在特定的場景下根據(jù)實(shí)際需要投入使用不同數(shù)量的fpga卡,降低了整個系統(tǒng)的耗電量,節(jié)約了資源。在上述實(shí)施例的基礎(chǔ)上:作為一種優(yōu)選的實(shí)施例,控制寄存器2為復(fù)雜可編程邏輯器件cpld中的控制寄存器。具體的,而采用本發(fā)明的方案,通過處于同一個fpga卡上的cpld中的控制寄存器2來控制fpga芯片3,可以保證控制的準(zhǔn)確性,且cpld運(yùn)行功耗很小,進(jìn)一步降低了fpga卡的功耗。作為一種優(yōu)選的實(shí)施例,控制指令為待工作指令,則控制寄存器2具體用于將待工作指令賦予第一預(yù)設(shè)值以控制fpga芯片3處于待工作狀態(tài)。具體的,通過控制模塊1控制待降低功耗的fpga卡處于待工作狀態(tài),即保持fpga芯片3對應(yīng)的電源模塊正常供電,并按照第一預(yù)設(shè)值控制fpga芯片3處于待工作狀態(tài),通過降低fpga芯片3的運(yùn)行頻率來降低fpga卡的功耗,此時fpga卡功耗在20w以下,其中,第一預(yù)設(shè)值為保證fpga芯片3的時鐘頻率處于1mhz以下的任何值,本發(fā)明在此不做限定。作為一種優(yōu)選的實(shí)施例,該系統(tǒng)還包括存儲模塊,用于存儲數(shù)據(jù),并進(jìn)行數(shù)據(jù)傳輸。具體的,在fpga異構(gòu)加速系統(tǒng)正常工作時,fpga卡需要對cpu下達(dá)的數(shù)據(jù)和指令進(jìn)行計(jì)算,fpga卡上的存儲模塊用于緩沖上述數(shù)據(jù),并進(jìn)行傳輸。作為一種優(yōu)選的實(shí)施例,控制指令為睡眠指令,則控制寄存器2用于控制與存儲模塊對應(yīng)的電源模塊關(guān)斷,并將睡眠指令賦予第二預(yù)設(shè)值以控制fpga芯片3處于睡眠狀態(tài)。具體的,通過控制模塊1控制待降低功耗的fpga卡處于睡眠狀態(tài),即保持fpga芯片3對應(yīng)的電源模塊正常供電,將存儲模塊所對應(yīng)的電源模塊關(guān)斷,并按照第二預(yù)設(shè)值控制fpga芯片3處于睡眠狀態(tài),控制單元通過對存儲模塊所對應(yīng)的電源模塊的開關(guān)狀態(tài)以及fpga芯片3的工作狀態(tài)進(jìn)行綜合控制,降低了fpga芯片3的運(yùn)行速度,從而降低fpga卡的功耗,此時fpga卡功耗在10w以下,其中,第二預(yù)設(shè)值為保證使fpga芯片3處于復(fù)位狀態(tài)的任何值,本發(fā)明在此不做限定。作為一種優(yōu)選的實(shí)施例,控制指令為深睡眠指令,則控制寄存器2用于控制與fpga芯片3對應(yīng)的電源模塊關(guān)斷,還用于控制與存儲模塊對應(yīng)的電源模塊關(guān)斷,以控制fpga芯片3處于深睡眠狀態(tài)。具體的,控制模塊1控制待降低功耗的fpga卡處于深睡眠狀態(tài),即將fpga芯片3對應(yīng)的電源模塊和以及存儲模塊對應(yīng)的電源模塊均關(guān)斷,通過將各個模塊對應(yīng)的電源模塊的關(guān)斷,使fpga芯片3以及存儲模塊的停止運(yùn)行來降低fpga卡的靜態(tài)功耗,此時fpga卡功耗在1w以下。作為一種優(yōu)選的實(shí)施例,控制寄存器2還用于控制fpga卡上其他各個模塊的上電順序。具體的,fpga卡的開機(jī)浪涌電流很大,可能會造成系統(tǒng)在啟動初期不穩(wěn)定,所以本發(fā)明對fpga卡上的各個模塊進(jìn)行上電序化,各個模塊相繼啟動,減少開機(jī)浪涌電流,降低了fpga卡的功耗。具體的,上電順序可以為:首先打開cpld對應(yīng)的電源模塊,使cpld開始工作;接著打開fpga芯片3對應(yīng)的第一電源模塊,使fpga芯片3內(nèi)核開始工作,然后打開fpga芯片3對應(yīng)的第二電源模塊,使fpga芯片3內(nèi)核的部分io開始工作;最后打開存儲模塊對應(yīng)的電源模塊,使fpga芯片3可以訪問電源模塊。作為一種優(yōu)選的實(shí)施例,fpga芯片3對應(yīng)的電源模塊和存儲模塊對應(yīng)的電源模塊之前,該系統(tǒng)還包括電壓轉(zhuǎn)換模塊,用于對總輸入電壓進(jìn)行降壓處理,并將降壓后的總輸入電壓分別輸出至fpga芯片3對應(yīng)的電源模塊和存儲模塊對應(yīng)的電源模塊。具體的,本發(fā)明對總輸入電壓進(jìn)行多級轉(zhuǎn)換,提升了總輸入電壓輸出至fpga芯片3對應(yīng)的電源模塊和存儲模塊對應(yīng)的電源模塊時的轉(zhuǎn)換效率,從而降低了fpga卡的功耗。具體的,請參照下表1,表1為以總輸入電壓輸出至fpga芯片3對應(yīng)的電源模塊為例,得到的電壓轉(zhuǎn)換效率表。表1fpga異構(gòu)計(jì)算加速系統(tǒng)的電壓轉(zhuǎn)換效率表輸入電壓輸出電壓轉(zhuǎn)換效率12v0.95v85%12v3.3v95%3.3v0.95v94%3.3v1.8v95%具體的,如上表所示,總輸入電壓為12v,則fpga芯片3對應(yīng)的電源模塊后的輸入電壓為12v,輸出電壓為0.95v,轉(zhuǎn)換效率為85%,系統(tǒng)損耗15%;如果首先通過電壓轉(zhuǎn)換模塊,用于對總輸入電壓進(jìn)行降壓處理,從12v轉(zhuǎn)為3.3v,轉(zhuǎn)換效率為95%,此時將降壓后的總輸入電壓輸出至fpga芯片3對應(yīng)的電源模塊,即fpga芯片3對應(yīng)的電源模塊輸入電壓為3.3v輸出電壓為0.95v,轉(zhuǎn)換效率為94%,應(yīng)用本發(fā)明的方法,對總輸入電壓進(jìn)行多級轉(zhuǎn)換后,得到的轉(zhuǎn)換效率為89.3%,系統(tǒng)損耗10.7%,利用率提高5%,從而降低了fpga卡的功耗。請參照圖2,圖2為本發(fā)明所提供的一種fpga異構(gòu)計(jì)算加速方法的流程圖,包括:步驟1:控制模塊確定待降低功耗的現(xiàn)場可編程門陣列fpga卡,并生成與各個待降低功耗的fpga卡對應(yīng)的控制指令;步驟2:與fpga芯片一一對應(yīng)的控制寄存器接收與自身對應(yīng)的控制指令,并根據(jù)控制指令控制與fpga芯片對應(yīng)的電源模塊的開關(guān)狀態(tài)和/或控制fpga芯片的工作狀態(tài)。作為一種優(yōu)選的實(shí)施例,控制模塊生成并發(fā)送控制指令之前,該方法還包括:控制寄存器控制fpga卡上其他各個模塊的上電順序。對于本發(fā)明所提供的一種fpga異構(gòu)計(jì)算加速方法的介紹,請參照上述實(shí)施例,本發(fā)明在此不再贅述。本發(fā)明還提供了一種fpga異構(gòu)計(jì)算加速方法,具有如上述加速系統(tǒng)相同的有益效果。本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。當(dāng)前第1頁12