基于CPU和GPU混合計算的在線服務方法及裝置與流程
基于cpu和gpu混合計算的在線服務方法及裝置
技術領域
1.本技術涉及計算機技術領域,尤其涉及一種基于cpu和gpu混合計算的在線服務方法及裝置。
背景技術:
2.當前的gpu(graphic processing unit,圖形處理單元)具有很好的并行處理能力,在很多領域和應用場景中可以進行加速計算。特別是可以并行或批量的一次性處理若干計算任務。傳統的cpu主要是單任務的計算,配套的在線服務接口和調用方式也比較簡單。當前環境下的很多在線服務,需要融合gpu的功能進行改造,以便達到加速的效果。
3.現有的涉及cpu和gpu的在線計算服務中,一種方法是通過在每個機器人中安裝算法sdk(software development kit,軟件開發工具包)進行識別計算,由于硬件限制,識別效率緩慢,不能達到實時返回結果的效果,而且安裝多次造成一定的資源浪費。另一種方法是進行云端請求,將圖片上傳到云端服務,得到識別的結果,但是當前云端的在線服務一般不能進行批量請求的物品圖片識別,每次只能發送一張圖片請求,吞吐量低且浪費計算資源。因此,現有的在線計算服務方法中存在計算效率低,硬件資源浪費嚴重的問題。
技術實現要素:
4.有鑒于此,本技術實施例提供了一種基于cpu和gpu混合計算的在線服務方法及裝置,以解決現有技術存在的計算效率低,硬件資源浪費嚴重的問題。
5.本技術實施例的第一方面,提供了一種基于cpu和gpu混合計算的在線服務方法,包括:接收在線業務請求,將在線業務請求添加到緩存隊列中;根據預設的定時任務或者觸發事件,選擇一個計算組件對緩存隊列中的在線業務請求進行異步處理,其中,計算組件包括cpu和gpu;在調用計算組件對在線業務請求進行異步處理過程中,依據緩存隊列中的在線業務請求的數量以及計算組件的平均計算耗時,確定每個計算組件對應的權重;依據每個計算組件對應的權重,動態調用cpu或者gpu執行在線業務請求,并將在線業務請求對應的業務結果存儲到業務結果集合中,其中,業務結果集合中包含在線業務請求的標識信息以及與標識信息對應的業務結果信息。
6.本技術實施例的第二方面,提供了一種基于cpu和gpu混合計算的在線服務裝置,包括:接收模塊,被配置為接收在線業務請求,將在線業務請求添加到緩存隊列中;處理模塊,被配置為根據預設的定時任務或者觸發事件,選擇一個計算組件對緩存隊列中的在線業務請求進行異步處理,其中,計算組件包括cpu和gpu;計算模塊,被配置為在調用計算組件對在線業務請求進行異步處理過程中,依據緩存隊列中的在線業務請求的數量以及計算組件的平均計算耗時,確定每個計算組件對應的權重;調用模塊,被配置為依據每個計算組件對應的權重,動態調用cpu或者gpu執行在線業務請求,并將在線業務請求對應的業務結果存儲到業務結果集合中,其中,業務結果集合中包含在線業務請求的標識信息以及與標識信息對應的業務結果信息。
7.本技術實施例的第三方面,提供了一種電子設備,包括存儲器,處理器及存儲在存儲器上并可在處理器上運行的計算機程序,處理器執行程序時實現上述方法的步驟。
8.本技術實施例的第四方面,提供了一種計算機可讀存儲介質,該計算機可讀存儲介質存儲有計算機程序,該計算機程序被處理器執行時實現上述方法的步驟。
9.本技術實施例采用的上述至少一個技術方案能夠達到以下有益效果:通過接收在線業務請求,將在線業務請求添加到緩存隊列中;根據預設的定時任務或者觸發事件,選擇一個計算組件對緩存隊列中的在線業務請求進行異步處理,其中,計算組件包括cpu和gpu;在調用計算組件對在線業務請求進行異步處理過程中,依據緩存隊列中的在線業務請求的數量以及計算組件的平均計算耗時,確定每個計算組件對應的權重;依據每個計算組件對應的權重,動態調用cpu或者gpu執行在線業務請求,并將在線業務請求對應的業務結果存儲到業務結果集合中,其中,業務結果集合中包含在線業務請求的標識信息以及與標識信息對應的業務結果信息。本技術提升了在線計算服務的計算效率,提高了硬件資源的利用率。
附圖說明
10.為了更清楚地說明本技術實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其它的附圖。
11.圖1是本技術實施例在實際場景中涉及到的請求處理流程示意圖;圖2是本技術實施例提供的基于cpu和gpu混合計算的在線服務方法的流程示意圖;圖3是本技術實施例提供的基于cpu和gpu混合計算的在線服務裝置的結構示意圖;圖4是本技術實施例提供的電子設備的結構示意圖。
具體實施方式
12.以下描述中,為了說明而不是為了限定,提出了諸如特定系統結構、技術之類的具體細節,以便透徹理解本技術實施例。然而,本領域的技術人員應當清楚,在沒有這些具體細節的其它實施例中也可以實現本技術。在其它情況中,省略對眾所周知的系統、裝置、電路以及方法的詳細說明,以免不必要的細節妨礙本技術的描述。
13.如背景技術所述內容,當前的gpu(graphic processing unit,圖形處理單元)具有很好的并行處理能力,在很多領域和應用場景中可以進行加速計算。特別是可以并行或批量的一次性處理若干計算任務,具有明顯優勢。傳統的cpu主要是單任務的計算,配套的在線服務接口和調用方式也比較簡單。當前環境下的很多在線服務,需要融合gpu的功能進行改造,以便達到加速的效果。下面以機器人對于圖像物品識別的計算服務方法舉例,對現有的計算服務方法存在的問題進行詳細說明。
14.現有的針對圖像物品識別的計算服務方法主要包括以下兩種方式:第一種方式是通過在每個機器人中安裝算法sdk(software development kit,軟件開發工具包)進行圖
像識別計算,但是由于硬件限制,識別效率緩慢,不能達到實時返回結果的效果,而且安裝多次造成一定的資源浪費。另外一種方式是進行云端的請求,將圖片上傳到云端服務,得到識別的結果,但是當前云端的在線服務一般不能進行批量請求的物品圖片識別,每次只能發送一張圖片請求,吞吐量低且浪費計算資源。
15.鑒于現有技術中存在的問題,本技術實施例提供一種能夠提高計算效率以及硬件資源利用率的融合cpu和gpu混合計算環境下的在線服務方法,圖1是本技術實施例在實際場景中涉及到的請求處理流程示意圖,如圖1所示,其中,請求消息發送給隊列緩存,中間層基于定時任務或者觸發事件對緩存隊列中的在線業務請求進行異步處理,在對在線業務請求進行處理之后,將查詢結果進行緩存,并利用dll算法包調用加鎖單線程,根據調度算法在不同情況調用cpu/gpu批處理計算結果,最后將處理結果存儲到結果存儲集合中,等待定時查詢數據庫的處理,并返回查詢結果。
16.圖2是本技術實施例提供的基于cpu和gpu混合計算的在線服務方法的流程示意圖。圖2的基于cpu和gpu混合計算的在線服務方法可以由在線服務器執行。如圖2所示,該基于cpu和gpu混合計算的在線服務方法具體可以包括:s201,接收在線業務請求,將在線業務請求添加到緩存隊列中;s202,根據預設的定時任務或者觸發事件,選擇一個計算組件對緩存隊列中的在線業務請求進行異步處理,其中,計算組件包括cpu和gpu;s203,在調用計算組件對在線業務請求進行異步處理過程中,依據緩存隊列中的在線業務請求的數量以及計算組件的平均計算耗時,確定每個計算組件對應的權重;s204,依據每個計算組件對應的權重,動態調用cpu或者gpu執行在線業務請求,并將在線業務請求對應的業務結果存儲到業務結果集合中,其中,業務結果集合中包含在線業務請求的標識信息以及與標識信息對應的業務結果信息。
17.具體地,本技術實施例是以機器人的圖片物品識別作為在線服務場景為例進行展開描述的,因此,在線業務請求可以認為是機器人拍攝物品圖片后,將物品圖片上傳給系統平臺,由系統平臺根據物品圖片生成的用于圖像物品識別的在線業務請求,生成的在線業務請求將發送給在線服務器進行識別處理。
18.進一步地,本技術實施例的計算組件包括cpu組件和gpu組件,其中,gpu(graphic processing unit,圖形處理單元)具有很好的并行處理能力,能同時一次性批量處理若干計算任務,相比cpu,gpu具有更好的并行處理能力,能夠提高混合計算環境下的吞吐量。另外,本技術實施例的機器人包括但不限于:智能移動機器人、送物機器人、酒店服務機器人、迎賓機器人等。
19.在一些實施例中,接收在線業務請求,將在線業務請求添加到緩存隊列中,包括:接收云平臺發送的原始圖片數據對應的字符串,根據字符串生成在線業務請求,并將在線業務請求按照時間順序加入到緩存隊列中去;其中,字符串為機器人根據機器人艙內接收到的物品生成原始圖片數據,并將原始圖片數據發送至云平臺,以使云平臺對原始圖片數據進行編碼處理得到的字符串。
20.具體地,以送物機器人為例,機器人將艙內接收到的物品拍攝成圖像后發送給云平臺,由云平臺調用接口(比如restful等類型接口)對原始圖像進行編碼處理(比如采用base64編碼)得到字符串,并根據原始圖像對應的字符串生成在線業務請求,再將在線業務
請求依次發送給在線服務器,當在線服務器接收到云平臺發送的在線業務請求之后,將在線業務請求按照接收時間的前后順序依次加入到緩存隊列中去,等待圖片識別的定時任務調用。
21.其中,原始圖像的base64編碼可以認為是將一張圖片數據編碼成一串字符串,使用該字符串代替圖像地址url,例如:經常使用的方法是基于base64模塊來實現原始圖像數據的編碼處理,之后進行傳輸,在服務器端收到數據流后對原始數據進行解碼還原。
22.在一些實施例中,根據定時任務選擇一個計算組件對緩存隊列中的在線業務請求進行異步處理,包括:按照預設的定時任務執行時間間隔,將定時任務執行時間間隔內添加到緩存隊列中的在線業務請求發送給gpu進行批量執行,或者將在線業務請求依次發送給cpu進行循環執行。
23.具體地,對于存儲在緩存隊列中的在線業務請求,存在以下兩種調用方式:第一種是基于定時任務的異步執行,第二種是基于觸發事件的異步執行;下面結合具體實施例分別對這兩種調用方式的實現過程進行詳細說明。
24.進一步地,在基于定時任務的在線業務請求的異步執行過程中,首先定時任務的執行時間根據實際單位時間內的請求量來確定,定時任務的執行時間可以認為是一種時間間隔,每當定時任務達到預設的定時任務執行的時間間隔之后,就將緩存隊列中的所有在線業務請求發送給gpu批量執行,或者采用cpu依次循環執行緩存隊列中的所有在線業務請求。
25.在一些實施例中,根據觸發事件選擇一個計算組件對緩存隊列中的在線業務請求進行異步處理,包括:當緩存隊列中的在線業務請求對應的請求數量達到數量閾值時,將緩存隊列中的在線業務請求發送給gpu進行批量執行,或者將在線業務請求依次發送給cpu進行循環執行;或者,當cpu和gpu中的任意一個計算組件處于空間狀態時,將緩存隊列中的在線業務請求發送給空間狀態的計算組件進行執行。
26.具體地,相比基于定時任務的異步執行機制,基于觸發事件的異步執行機制則是根據在線業務請求的請求數量進行異步執行,當判斷緩存隊列中的在線業務請求的數量達到數量閾值時,可以采用以下執行方式中的任意一種來處理在線業務請求,例如包括:(1)將緩存隊列中的在線業務請求發送給gpu進行批量執行;(2)將緩存隊列中的在線業務請求發送給cpu進行依次循環執行;(3)當cpu和gpu中的任意一個計算組件處于空間狀態時,將緩存隊列中的在線業務請求發送給空間狀態的計算組件進行執行。
27.進一步地,由于一臺機器的cpu和gpu性能有所差異,對于不同型號、不同性能的cpu以及gpu,在實際調用時的調用率也不同,這取決于緩存隊列中的請求數量以及兩種計算速度的差異,當緩存隊列中的請求數量到達一個限定值時會選擇特定的計算方式。當cpu或者gpu被占用計算時,優先選擇空閑的計算單元進行計算。當兩者都空閑時,可以依據本技術實施例提出的權重計算方法,進行選擇計算。
28.在一些實施例中,當cpu和gpu均處于空間狀態時,采用以下公式對每個所述計算組件對應的權重進行計算:
其中,表示cpu對應的權重,表示gpu對應的權重,表示緩存隊列中的在線業務請求,表示當前gpu并行計算的任務能力,表示cpu在過去時間段內平均執行一次在線業務請求的計算耗時,表示gpu在過去時間段內平均執行一次在線業務請求的計算耗時。
29.在實際應用中,可以將當前緩存隊列中的請求記作request,當前緩存隊列中包含了k個請求,分別記為。上述過去時間段可以選用過去一個小時來計算cpu和gpu的平均耗時。
30.具體地,根據緩存隊列中在線業務請求的數量,當前gpu并行計算的任務能力,過去時間段內cpu平均執行一次在線業務請求的計算耗時,以及過去時間段內gpu平均執行一次在線業務請求的計算耗時,分別對每個計算組件的權重進行計算,由于以上影響權重計算的因素是實時變化的,因此計算組件對應的權重也是動態的權重,依據權重計算結果選擇合適的計算組件來執行在線業務請求。
31.在一些實施例中,依據每個計算組件對應的權重,動態調用cpu或者gpu執行在線業務請求,包括:當在線業務請求的請求數量低于預設閾值時,選擇調用平均計算耗時低的計算組件執行在線業務請求;當在線業務請求的請求數量高于當前gpu并行計算的任務能力時,選擇調用gpu執行在線業務請求;當cpu的平均計算耗時低于gpu的平均計算耗時,緩存隊列中的在線業務請求的請求數量低于預設閾值,且cpu當前處于空閑狀態時,選擇調用cpu執行在線業務請求;當緩存隊列中的在線業務請求使用cpu進行循環執行時的預計耗時大于使用gpu進行批量執行時的預計耗時,選擇調用gpu執行在線業務請求。
32.具體地,在一個可選示例中,當緩存隊列中在線業務請求的數量較低時,比如設定數量閾值為10,當在線業務請求的數量低于10個時,優先選擇平均計算耗時低的計算組件來執行緩存隊列中在線業務請求,當在線業務請求的數量高于10個時,優先選擇gpu組件來并行執行緩存隊列中在線業務請求,達到高吞吐的目的。也就是說對于gpu性能比較高的機器,每次任務執行,優先走gpu計算,當gpu被占用時,使用cpu執行單個請求,并在下一次請求時檢查gpu的占用狀態。
33.進一步地,對于cpu性能較高,gpu性能較差的機器,當請求隊列(即緩存隊列)中有較少的請求且cpu當前處于空閑狀態時,優先考慮使用cpu循環計算,當請求隊列中所有請求使用cpu循環執行結束后的時間》 gpu執行時間時,采用gpu執行。
34.在一些實施例中,將在線業務請求對應的業務結果存儲到業務結果集合中,包括:當在線業務請求執行完成之后,將在線業務請求對應的標識信息以及業務結果信息緩存到業務結果集合中,當接收到具有相同標識信息的在線業務請求之后,將業務結果集合中預
先緩存的標識信息對應的業務結果信息發送給在線服務器。
35.具體地,將每個在線業務請求對應的識別結果存儲到業務結果集合中,并等待查詢結果任務查詢返回,需要說明的是,每個在線業務請求具有唯一的標識信息,以便對應每個在線業務請求的業務結果信息;將每個在線業務請求的標識信息以及識別結果(業務結果信息)緩存起來,以便當在線服務器接收相同物品圖像的在線業務請求是,能夠通過查詢業務結果集合迅速獲取對應的業務結果信息發送給在線服務器。
36.進一步地,本技術實施例還提供了異步調用結果存儲服務,以便將在線業務請求信息以及識別結果(業務結果信息)存儲到數據庫中,數據庫采用分表存儲,存儲信息包括但不限于以下信息:在線業務請求信息、業務結果信息、服務器信息、cpu執行信息和gpu執行信息,通過存儲上述信息,方便后續統計各個服務器以及cpu和gpu的執行效率。
37.根據本技術實施例提供的技術方案,本技術實施例提供了基于cpu和gpu混合調用算法的可持續服務流程,本技術為了能夠對諸如圖片識別算法等需要cpu和gpu混合計算的算法提供一個可持續的服務,由中間層做并發控制,請求隊列存儲,cpu和gpu調度等工作,極大提高計算效率以及硬件資源利用率。本技術開發涉及后臺服務來接收所有請求,使用隊列進行請求緩存和分發,定時任務進行cpu/gpu混合調用,以及查詢結果,收到識別結果后,異步請求存儲服務存儲請求信息以及識別結果,并返回結果。
38.下述為本技術裝置實施例,可以用于執行本技術方法實施例。對于本技術裝置實施例中未披露的細節,請參照本技術方法實施例。
39.圖3是本技術實施例提供的基于cpu和gpu混合計算的在線服務裝置的結構示意圖。如圖3所示,該基于cpu和gpu混合計算的在線服務裝置包括:接收模塊301,被配置為接收在線業務請求,將在線業務請求添加到緩存隊列中;處理模塊302,被配置為根據預設的定時任務或者觸發事件,選擇一個計算組件對緩存隊列中的在線業務請求進行異步處理,其中,計算組件包括cpu和gpu;計算模塊303,被配置為在調用計算組件對在線業務請求進行異步處理過程中,依據緩存隊列中的在線業務請求的數量以及計算組件的平均計算耗時,確定每個計算組件對應的權重;調用模塊304,被配置為依據每個計算組件對應的權重,動態調用cpu或者gpu執行在線業務請求,并將在線業務請求對應的業務結果存儲到業務結果集合中,其中,業務結果集合中包含在線業務請求的標識信息以及與標識信息對應的業務結果信息。
40.在一些實施例中,圖3的接收模塊301接收云平臺發送的原始圖片數據對應的字符串,根據字符串生成在線業務請求,并將在線業務請求按照時間順序加入到緩存隊列中去;其中,字符串為機器人根據機器人艙內接收到的物品生成原始圖片數據,并將原始圖片數據發送至云平臺,以使云平臺對原始圖片數據進行編碼處理得到的字符串。
41.在一些實施例中,圖3的處理模塊302按照預設的定時任務執行時間間隔,將定時任務執行時間間隔內添加到緩存隊列中的在線業務請求發送給gpu進行批量執行,或者將在線業務請求依次發送給cpu進行循環執行。
42.在一些實施例中,圖3的處理模塊302當緩存隊列中的在線業務請求對應的請求數量達到數量閾值時,將緩存隊列中的在線業務請求發送給gpu進行批量執行,或者將在線業務請求依次發送給cpu進行循環執行;或者,當cpu和gpu中的任意一個計算組件處于空間狀
態時,將緩存隊列中的在線業務請求發送給空間狀態的計算組件進行執行。
43.在一些實施例中,圖3的調用模塊304當在線業務請求的請求數量低于預設閾值時,選擇調用平均計算耗時低的計算組件執行在線業務請求;當在線業務請求的請求數量高于當前gpu并行計算的任務能力時,選擇調用gpu執行在線業務請求;當cpu的平均計算耗時低于gpu的平均計算耗時,緩存隊列中的在線業務請求的請求數量低于預設閾值,且cpu當前處于空閑狀態時,選擇調用cpu執行在線業務請求;當緩存隊列中的在線業務請求使用cpu進行循環執行時的預計耗時大于使用gpu進行批量執行時的預計耗時,選擇調用gpu執行在線業務請求。
44.在一些實施例中,圖3的調用模塊304當在線業務請求執行完成之后,將在線業務請求對應的標識信息以及業務結果信息緩存到業務結果集合中,當接收到具有相同標識信息的在線業務請求之后,將業務結果集合中預先緩存的標識信息對應的業務結果信息發送給在線服務器。
45.應理解,上述實施例中各步驟的序號的大小并不意味著執行順序的先后,各過程的執行順序應以其功能和內在邏輯確定,而不應對本技術實施例的實施過程構成任何限定。
46.圖4是本技術實施例提供的電子設備4的結構示意圖。如圖4所示,該實施例的電子設備4包括:處理器401、存儲器402以及存儲在該存儲器402中并且可以在處理器401上運行的計算機程序403。處理器401執行計算機程序403時實現上述各個方法實施例中的步驟。或者,處理器401執行計算機程序403時實現上述各裝置實施例中各模塊/單元的功能。
47.示例性地,計算機程序403可以被分割成一個或多個模塊/單元,一個或多個模塊/單元被存儲在存儲器402中,并由處理器401執行,以完成本技術。一個或多個模塊/單元可以是能夠完成特定功能的一系列計算機程序指令段,該指令段用于描述計算機程序403在電子設備4中的執行過程。
48.電子設備4可以是桌上型計算機、筆記本、掌上電腦及云端服務器等電子設備。電子設備4可以包括但不僅限于處理器401和存儲器402。本領域技術人員可以理解,圖4僅僅是電子設備4的示例,并不構成對電子設備4的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件,例如,電子設備還可以包括輸入輸出設備、網絡接入設備、總線等。
49.處理器401可以是中央處理單元(central processing unit,cpu),也可以是其它通用處理器、數字信號處理器(digital signal processor,dsp)、專用集成電路(application specific integrated circuit,asic)、現場可編程門陣列(field-programmable gate array,fpga)或者其它可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。
50.存儲器402可以是電子設備4的內部存儲單元,例如,電子設備4的硬盤或內存。存儲器402也可以是電子設備4的外部存儲設備,例如,電子設備4上配備的插接式硬盤,智能存儲卡(smart media card,smc),安全數字(secure digital,sd)卡,閃存卡(flash card)等。進一步地,存儲器402還可以既包括電子設備4的內部存儲單元也包括外部存儲設備。存儲器402用于存儲計算機程序以及電子設備所需的其它程序和數據。存儲器402還可以用于
暫時地存儲已經輸出或者將要輸出的數據。
51.所屬領域的技術人員可以清楚地了解到,為了描述的方便和簡潔,僅以上述各功能單元、模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能單元、模塊完成,即將裝置的內部結構劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實施例中的各功能單元、模塊可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中,上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。另外,各功能單元、模塊的具體名稱也只是為了便于相互區分,并不用于限制本技術的保護范圍。上述系統中單元、模塊的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
52.在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述或記載的部分,可以參見其它實施例的相關描述。
53.本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本技術的范圍。
54.在本技術所提供的實施例中,應該理解到,所揭露的裝置/計算機設備和方法,可以通過其它的方式實現。例如,以上所描述的裝置/計算機設備實施例僅僅是示意性的,例如,模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機械或其它的形式。
55.作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
56.另外,在本技術各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
57.集成的模塊/單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀存儲介質中。基于這樣的理解,本技術實現上述實施例方法中的全部或部分流程,也可以通過計算機程序來指令相關的硬件來完成,計算機程序可以存儲在計算機可讀存儲介質中,該計算機程序在被處理器執行時,可以實現上述各個方法實施例的步驟。計算機程序可以包括計算機程序代碼,計算機程序代碼可以為源代碼形式、對象代碼形式、可執行文件或某些中間形式等。計算機可讀介質可以包括:能夠攜帶計算機程序代碼的任何實體或裝置、記錄介質、u盤、移動硬盤、磁碟、光盤、計算機存儲器、只讀存儲器(read-only memory,rom)、隨機存取存儲器(random access memory,ram)、電載波信號、電信信號以及軟件分發介質等。需要說明的是,計算機可讀介質包含的內容可以根據司法管轄區內立法和專利實踐的要求進行適當的增減,例如,在某些司法管轄區,根據立法和專利實踐,計算機可讀介質不包括電載波信號和電信信號。
58.以上實施例僅用以說明本技術的技術方案,而非對其限制;盡管參照前述實施例對本技術進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本技術各實施例技術方案的精神和范圍,均應包含在本技術的保護范圍之內。
