一種基于字符編碼轉(zhuǎn)換的gpu內(nèi)文本處理的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及GPU數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種基于字符編碼轉(zhuǎn)換的GPU內(nèi)文本處理的方法及裝置。
【背景技術(shù)】
[0002]近幾年圖形處理器(Graphics Processing Unit,GPU)的出現(xiàn),對(duì)高性能運(yùn)算領(lǐng)域發(fā)展起到了不可估量的推動(dòng)作用。GPU的強(qiáng)大運(yùn)算性能,使它獲得了比傳統(tǒng)解決方案更多的成功案例,目前,GPU數(shù)據(jù)處理已經(jīng)被越來越多的運(yùn)用到大數(shù)據(jù)運(yùn)算和機(jī)器學(xué)習(xí)的領(lǐng)域中。
[0003]在數(shù)據(jù)處理方面,GPU相對(duì)于中央處理器(Central Processing Unit,CPU)在硬件架構(gòu)上具有明顯優(yōu)勢(shì),特別是浮點(diǎn)數(shù)的處理能力。目前,GPU也主要被運(yùn)用于圖形處理、視頻轉(zhuǎn)碼或者語音分析等領(lǐng)域。在對(duì)文本進(jìn)行處理時(shí)主要采用CPU,但由于CPU架構(gòu)的原因,CPU對(duì)文本的處理速度較差,影響文本處理的效率。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例的目的在于提供一種基于字符編碼轉(zhuǎn)換的GPU內(nèi)文本處理的方法及裝置,以實(shí)現(xiàn)運(yùn)用GPU的浮點(diǎn)數(shù)處理能力,提高文本處理的速度,達(dá)到文本分析處理速度的顯者提尚。
[0005]為達(dá)到上述目的,本發(fā)明實(shí)施例公開了一種基于字符編碼轉(zhuǎn)換的GPU內(nèi)文本處理的方法,所述方法包括:
[0006]獲取輸入文本中的每個(gè)字符的二進(jìn)制編碼形式;
[0007]判斷所述二進(jìn)制編碼形式是否與預(yù)設(shè)的編碼形式一致;
[0008]如果不一致,采用所述預(yù)設(shè)的編碼形式對(duì)所述字符進(jìn)行二進(jìn)制編碼;將編碼后的字符轉(zhuǎn)換為二進(jìn)制浮點(diǎn)數(shù)類型;如果一致,則將所述字符轉(zhuǎn)換為二進(jìn)制浮點(diǎn)數(shù)類型;
[0009]將轉(zhuǎn)換為所述二進(jìn)制浮點(diǎn)數(shù)類型的字符提交給GPU進(jìn)行計(jì)算處理。
[0010]優(yōu)選的,所述預(yù)設(shè)的編碼形式包括以下編碼形式中的一種:
[0011]Unicode編碼形式、GB2312編碼形式、GBK編碼形式或GB18030編碼形式。
[0012]優(yōu)選的,所述判斷所述二進(jìn)制編碼形式是否與預(yù)設(shè)的編碼形式一致之前,所述方法還包括:
[0013]獲取GPU支持的二進(jìn)制浮點(diǎn)數(shù)類型;
[0014]所述將編碼后的字符轉(zhuǎn)換為二進(jìn)制浮點(diǎn)數(shù)類型,包括:
[0015]將所述編碼后的字符轉(zhuǎn)換為所述GPU支持的二進(jìn)制浮點(diǎn)數(shù)類型;
[0016]所述將所述字符轉(zhuǎn)換為二進(jìn)制浮點(diǎn)數(shù)類型,包括:
[0017]將所述字符轉(zhuǎn)換為所述GPU支持的二進(jìn)制浮點(diǎn)數(shù)類型。
[0018]優(yōu)選的,所述獲取GPU支持的二進(jìn)制浮點(diǎn)數(shù)類型包括:
[0019]通過GPU計(jì)算框架提供的API,獲取GPU支持的二進(jìn)制浮點(diǎn)數(shù)類型。
[0020]優(yōu)選的,所述將編碼后的字符轉(zhuǎn)換為二進(jìn)制浮點(diǎn)數(shù)類型包括:[0021 ]將編碼后的字符轉(zhuǎn)換為預(yù)設(shè)的二進(jìn)制浮點(diǎn)數(shù)類型;
[0022]所述將所述字符轉(zhuǎn)換為二進(jìn)制浮點(diǎn)數(shù)類型包括:
[0023]將所述字符轉(zhuǎn)換為預(yù)設(shè)的二進(jìn)制浮點(diǎn)數(shù)類型。
[0024]優(yōu)選的,所述將轉(zhuǎn)換為所述二進(jìn)制浮點(diǎn)數(shù)類型的字符提交給GPU進(jìn)行計(jì)算處理包括:
[0025]判斷GPU支持的二進(jìn)制浮點(diǎn)數(shù)類型的長(zhǎng)度是否不小于所述字符轉(zhuǎn)換后的二進(jìn)制浮點(diǎn)數(shù)類型的長(zhǎng)度;
[0026]如果是,則將轉(zhuǎn)換為所述二進(jìn)制浮點(diǎn)數(shù)類型的字符提交給GPU,GPU直接對(duì)該轉(zhuǎn)換后的二進(jìn)制浮點(diǎn)數(shù)類型的字符進(jìn)行處理;
[0027]否則,對(duì)所述轉(zhuǎn)換為所述二進(jìn)制浮點(diǎn)數(shù)類型的字符進(jìn)行拆分,將所述二進(jìn)制浮點(diǎn)數(shù)類型的字符拆分為所述GPU能夠容納的長(zhǎng)度,并將拆分后的二進(jìn)制浮點(diǎn)數(shù)類型的字符發(fā)送到所述GPU進(jìn)行處理。
[0028]優(yōu)選的,所述GPU支持的二進(jìn)制浮點(diǎn)數(shù)類型包括:半精度二進(jìn)制浮點(diǎn)數(shù)型、單精度二進(jìn)制浮點(diǎn)數(shù)型和雙精度二進(jìn)制浮點(diǎn)數(shù)型。
[0029]本發(fā)明還提供了一種基于字符編碼轉(zhuǎn)換的GPU內(nèi)文本處理的裝置,所述裝置包括:
[0030]字符編碼獲得單元,用于獲取輸入的每個(gè)文本中字符的二進(jìn)制編碼形式;
[0031 ]編碼判斷單元,用于判斷所述二進(jìn)制編碼形式是否與預(yù)設(shè)的編碼形式一致,如果所述二進(jìn)制編碼形式與預(yù)設(shè)的編碼形式不一致,則觸發(fā)編碼配置單元,如果所述二進(jìn)制編碼形式與預(yù)設(shè)的編碼形式一致,則觸發(fā)編碼轉(zhuǎn)換單元;
[0032]所述編碼配置單元,用于采用所述預(yù)設(shè)的編碼形式對(duì)所述字符進(jìn)行二進(jìn)制編碼;
[0033]所述編碼轉(zhuǎn)換單元,用于將編碼后的字符或所述字符轉(zhuǎn)換為二進(jìn)制浮點(diǎn)數(shù)類型;
[0034]字符提交處理單元,用于將轉(zhuǎn)換為所述二進(jìn)制浮點(diǎn)數(shù)類型的字符提交給GPU進(jìn)行計(jì)算處理。
[0035]優(yōu)選的,所述裝置還包括:GPU獲得單元,用于獲取GPU支持的二進(jìn)制浮點(diǎn)數(shù)類型;
[0036]所述編碼轉(zhuǎn)換單元,具體用于將所述編碼后的字符轉(zhuǎn)換為所述GPU支持的二進(jìn)制浮點(diǎn)數(shù)類型;或,將所述字符轉(zhuǎn)換為所述GPU支持的二進(jìn)制浮點(diǎn)數(shù)類型。
[0037]優(yōu)選的,所述編碼轉(zhuǎn)換單元,具體用于將編碼后的字符或所述字符轉(zhuǎn)換為預(yù)設(shè)的二進(jìn)制浮點(diǎn)數(shù)類型。
[0038]優(yōu)選的,所述字符提交處理單元包括:GPU參數(shù)判斷子單元、字符拆分子單元和字符處理子單兀;
[0039]所述GPU參數(shù)判斷子單元,用于判斷GPU支持的二進(jìn)制浮點(diǎn)數(shù)類型的長(zhǎng)度是否不小于所述字符轉(zhuǎn)換后的二進(jìn)制浮點(diǎn)數(shù)類型的長(zhǎng)度,如果否,則觸發(fā)所述字符拆分子單元,如果是,則觸發(fā)所述字符處理子單元;
[0040]所述字符拆分子單元,用于對(duì)所述轉(zhuǎn)換為所述二進(jìn)制浮點(diǎn)數(shù)類型的字符進(jìn)行拆分,將所述二進(jìn)制浮點(diǎn)數(shù)類型的字符拆分為所述GHJ能夠容納的長(zhǎng)度,并將拆分后的二進(jìn)制浮點(diǎn)數(shù)類型的字符發(fā)送到所述GPU進(jìn)行處理;
[0041]所述字符處理子單元,用于將轉(zhuǎn)換為所述二進(jìn)制浮點(diǎn)數(shù)類型的字符提交給GPU,GPU直接對(duì)該轉(zhuǎn)換后的二進(jìn)制浮點(diǎn)數(shù)類型的字符進(jìn)行處理。
[0042]本發(fā)明實(shí)施例提供的一種基于字符編碼轉(zhuǎn)換的GPU內(nèi)文本處理的方法及裝置,通過提供一種字符編碼轉(zhuǎn)換方法,能夠?qū)⑽谋局械淖址D(zhuǎn)化為GPU能夠處理的二進(jìn)制浮點(diǎn)數(shù)類型,有效的利用GPU的浮點(diǎn)數(shù)處理能力。當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
【附圖說明】
[0043]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0044]圖1為本發(fā)明實(shí)施例提供的一種基于字符編碼轉(zhuǎn)換的GHJ內(nèi)文本處理的方法流程示意圖;
[0045]圖2為本發(fā)明實(shí)施例提供的另一種基于字符編碼轉(zhuǎn)換的GPU內(nèi)文本處理的方法流程不意圖;
[0046]圖3為本發(fā)明實(shí)施例提供的一種基于字符編碼轉(zhuǎn)換的GHJ內(nèi)文本處理的裝置結(jié)構(gòu)示意圖;
[0047]圖4為本發(fā)明實(shí)施例提供的另一種基于字符編碼轉(zhuǎn)換的GPU內(nèi)文本處理的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0048]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0049]本發(fā)明實(shí)施例提供的一種基于字符編碼轉(zhuǎn)換的GPU內(nèi)文本處理的方法及裝置,通過提供一種字符編碼方法,將文本中的字符轉(zhuǎn)化為GHJ能夠處理的二進(jìn)制浮點(diǎn)數(shù)類型,進(jìn)而有效的利用GPU的浮點(diǎn)數(shù)處理能力。
[0050]圖1為本發(fā)明實(shí)施例提供的一種基于字符編碼轉(zhuǎn)換的GHJ內(nèi)文本處理的方法流程示意圖,包括如下步驟:
[0051 ] SlOl、獲取輸入文本中的每個(gè)字符的二進(jìn)制編碼形式。
[0052]所述每個(gè)字符的二進(jìn)制編碼形式可以為ASCII編碼形式、Unicode編碼形式或其他編碼形式,本實(shí)施例并不限定文本中每個(gè)字符的二進(jìn)制編碼形式,只要是文本中所使用的二進(jìn)制編碼即可。
[0053]文本中的字符編碼方式有多種,而且也形成了幾種較為規(guī)范化和統(tǒng)一的編碼方式,便于后續(xù)對(duì)文本的一些處理,例如,Unicode編碼形式、GB2312編碼形式、GBK編碼形式和GB18030編碼形式等形式。要對(duì)文本中字符進(jìn)行處理需要先確認(rèn)文本中字符的編碼形式,獲取文本中字符的編碼形式的方式有很多種,通常為,通過已知的條件獲取文本中的每個(gè)字符的二進(jìn)制編碼形式,例如,常用的識(shí)別字符編碼形式的插件,通過這類插件來確定是Unicode編碼形式還是其他編碼形式。獲取字符的二進(jìn)制編碼方式屬于現(xiàn)有技術(shù),本實(shí)施例并不限定如何獲得如何獲取輸入文本中的每個(gè)字符的二進(jìn)制編碼形式,只要能獲取輸入文本中的每個(gè)字符的二進(jìn)制編碼形式即可。
[0054]S102、判斷所述二進(jìn)制編碼形式是否與預(yù)設(shè)的編碼形式一致,如果不一致,進(jìn)行步驟S103,如果一致,直接跳過步驟S103進(jìn)行步驟S104。
[0055]所述預(yù)設(shè)的編碼形式為一種統(tǒng)一的編碼形式,所述預(yù)