一種針對深度學(xué)習(xí)超分辨率技術(shù)的gpu加速方法
【專利摘要】本發(fā)明公開一種針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,所述方法將基于深度學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)的超分辨率技術(shù)的所有步驟都并行化,并在GPU運(yùn)行;所述并行化是對基于深度學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)的超分辨率技術(shù)的卷積進(jìn)行并行任務(wù)劃分,將卷積操作劃分為數(shù)百萬個互不相關(guān)、能以任意順序并行執(zhí)行的微任務(wù),從而使GPU超強(qiáng)并行計(jì)算能力得到發(fā)揮。進(jìn)一步的,利用GPU儲存器的特性,將卷積核數(shù)據(jù)和輸入圖像數(shù)據(jù)緩存到共享存儲器和寄存器,從而大幅優(yōu)化卷積的計(jì)算速度;融合卷積與非線性層;針對不同卷積大小選取最佳優(yōu)化方法。本發(fā)明將一個高質(zhì)量的超分辨率方法加速到滿足視頻處理的速度要求,并且不會帶來任何圖像質(zhì)量損失。
【專利說明】
一種針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及一種圖像超分辨率領(lǐng)域和GPU加速的方法,具體是一種針對深度學(xué)習(xí) 超分辨率技術(shù)的GHJ加速方法。
【背景技術(shù)】
[0002] 圖像超分辨率就是將一副低分辨率圖像轉(zhuǎn)換為高分辨率圖像,其在圖像后處理和 視頻非線性編輯中有著廣泛的應(yīng)用。早期的超分辨率方法(如bicubic)往往基于簡單的插 值,可以快速可靠地工作,也易于芯片集成;但是這些方法得到的高分辨率圖像質(zhì)量不佳, 會產(chǎn)生顯著的人工痕跡,如環(huán)、混疊、模糊等效應(yīng)。如此質(zhì)量的超分辨率方法難以滿足當(dāng)前 高質(zhì)量視頻需求。當(dāng)前性能先進(jìn)的超分辨率方法能生成高質(zhì)量的圖像,但是伴隨著巨大的 計(jì)算開銷,難以滿足實(shí)際應(yīng)用需要。目前有一些GPU加速的超分辨率方法,這些方法達(dá)到了 足夠快的運(yùn)行速度,但是也犧牲了方法的運(yùn)行質(zhì)量。
[0003] 近年來深度學(xué)習(xí)技術(shù)得到了巨大進(jìn)步,計(jì)算機(jī)視覺識別準(zhǔn)確率顯著提升,基于深 度學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)的超分辨率技術(shù)也應(yīng)運(yùn)而生,發(fā)表于2014年歐洲計(jì)算機(jī)視覺會議的 基于卷積神經(jīng)網(wǎng)絡(luò)的超分辨率方法(Chao Dong,Chen Change Loy,Kaiming He,Xiaoou Tang. Learning a Deep Convolutional Network for Image Super-Resolution, in Proceedings of European Conference on Computer Vision(ECCV),2014,pp·184-199, 簡稱為SRCNN)是性能最好的方法之一。憑借精心設(shè)計(jì)的3層卷積和2層RELU(非線性層)、海 量的訓(xùn)練數(shù)據(jù)、巧妙細(xì)致的訓(xùn)練參數(shù)微調(diào),SRCNN-度成為了性能最佳的超分辨率方法。然 而該方法依賴于巨量的計(jì)算開銷,使用CHJ執(zhí)行該方法每一幀需要300秒(1920*1080到 3840*2160,單通道,下文所有測試都是基于該分辨率),即使使用基于GEMM的GPU卷積、加速 方法,每一幀也需要接近1秒,不能滿足實(shí)際應(yīng)用需要。
【發(fā)明內(nèi)容】
[0004] 為使基于深度學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)的超分辨率技術(shù)能夠滿足實(shí)際應(yīng)用需要,本發(fā) 明提供一種針對深度學(xué)習(xí)超分辨率技術(shù)的GHJ加速方法。
[0005] 為實(shí)現(xiàn)上述目的,本發(fā)明所述的針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,所述 方法將基于深度學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)的超分辨率技術(shù)的所有步驟都并行化,并在GPU運(yùn)行。 本發(fā)明所述并行化是對基于深度學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)的超分辨率技術(shù)的卷積進(jìn)行并行任務(wù) 劃分,將卷積操作劃分為數(shù)百萬個互不相關(guān)、可以以任意順序并行執(zhí)行的微任務(wù),從而使 GHJ超強(qiáng)并行計(jì)算能力得到發(fā)揮。
[0006] 進(jìn)一步的,所述方法中:按照卷積輸出像素進(jìn)行任務(wù)劃分,每個輸出像素的計(jì)算任 務(wù)被分配為一個微任務(wù),從而卷積任務(wù)能夠被大規(guī)模地并行地執(zhí)行,并且相鄰像素的計(jì)算 微任務(wù)依賴的數(shù)據(jù)也是相鄰的,完美達(dá)到合并訪問,從而充分利用GPU的顯存位寬和帶寬。
[0007] 進(jìn)一步的,所述方法中:利用共享存儲器作為卷積核參數(shù)的高速緩存,從而降低全 局內(nèi)存1/0并加速卷積。具體地,首先由并發(fā)線程塊將卷積核參數(shù)讀取到線程塊的共享存儲 器中,然后每個線程再從該共享存儲器獲取所需的卷積核參數(shù)。該方法可以降低GHJ讀取卷 積核參數(shù)所需的全局內(nèi)存吞吐量,從而大幅優(yōu)化、加速卷積的執(zhí)行速度。
[0008] 進(jìn)一步的,所述方法中:利用共享存儲器或寄存器作為輸入圖像的高速緩存,從而 降低全局內(nèi)存I/O并加速卷積。具體地,首先找出并發(fā)線程塊所依賴的輸入圖像區(qū)域,然后 線程塊將該區(qū)域數(shù)據(jù)讀取到線程塊的共享存儲器中,最后每個線程從該共享存儲器獲取所 需的輸入圖像數(shù)據(jù);亦或如果每線程所需輸入圖像數(shù)據(jù)足夠小時,直接一次將所需數(shù)據(jù)讀 入到線程內(nèi)的寄存器中,然后進(jìn)行計(jì)算。該方法可以降低GPU讀取輸入圖像所需的全局內(nèi)存 吞吐量,從而大幅優(yōu)化、加速卷積的執(zhí)行速度。
[0009] 進(jìn)一步的,所述方法中:采用深度神經(jīng)網(wǎng)絡(luò)GPU加速技術(shù),融合卷積運(yùn)算和非線性 運(yùn)算,該方法可以減少卷積、非線性層所需的全局內(nèi)存吞吐量,從而加快整個過程的執(zhí)行速 度。具體地,所述深度神經(jīng)網(wǎng)絡(luò)GPU加速技術(shù),是指:將非線性層的處理過程融合在卷積計(jì)算 中,卷積計(jì)算完成后立刻在寄存器中進(jìn)行非線性層運(yùn)算,從而省去了一輪對全局內(nèi)存的1/ 0〇
[0010] 進(jìn)一步的,所述方法中:采用深度卷積網(wǎng)絡(luò)GPU加速技術(shù),針對不同卷積大小選取 最佳優(yōu)化方法。所述深度卷積網(wǎng)絡(luò)GPU加速技術(shù),是指:對不同大小卷積層,測試各個優(yōu)化加 速技術(shù),進(jìn)而選擇最快加速技術(shù)以獲得盡可能快的整體運(yùn)行速度的方法。
[0011] 與現(xiàn)有技術(shù)相比,本發(fā)明具有以下顯著優(yōu)勢:
[0012] 本發(fā)明針對卷積進(jìn)行并行化和優(yōu)化加速,將一個高質(zhì)量的超分辨率方法加速到滿 足視頻處理的速度要求,并且不會帶來任何圖像質(zhì)量損失。
[0013] 進(jìn)一步的,按照輸出像素進(jìn)行任務(wù)劃分實(shí)現(xiàn),從而實(shí)現(xiàn)卷積的并行化;將基于深度 學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)的超分辨率技術(shù)的所有步驟都并行化,從而能夠利用GPU超強(qiáng)的并行計(jì) 算能力;
[0014] 進(jìn)一步的,利用GPU儲存器的特性,將卷積核數(shù)據(jù)和輸入圖像數(shù)據(jù)緩存到共享存儲 器和寄存器,從而大幅優(yōu)化卷積的計(jì)算速度;
[0015] 進(jìn)一步的,融合卷積與非線性層、針對不同卷積大小選取最佳優(yōu)化。
[0016] 本發(fā)明充分利用了 GPU的硬件和儲存特性,大幅加快了卷積的計(jì)算速度,從而使一 個高質(zhì)量的超分辨率方法能夠以滿足實(shí)際工作要求的速度運(yùn)行。
【附圖說明】
[0017] 通過閱讀參照以下附圖對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其他特征、 目的和優(yōu)點(diǎn)將會更加明顯:
[0018] 圖1是SRCNN的流程圖;
[0019] 圖2是本發(fā)明一較優(yōu)實(shí)施例中卷積并行化的示意圖;
[0020] 圖3是本發(fā)明一較優(yōu)實(shí)施例中通過共享存儲器高速緩存卷積核參數(shù)改進(jìn)的示意 圖;
[0021] 圖4是本發(fā)明一較優(yōu)實(shí)施例中通過共享存儲器高速緩存輸入圖像塊改進(jìn)的示意 圖;
[0022] 圖5是本發(fā)明一較優(yōu)實(shí)施例中通過融合卷積和非線性計(jì)算改進(jìn)的示意圖。
【具體實(shí)施方式】
[0023]下面結(jié)合具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明。以下實(shí)施例將有助于本領(lǐng)域的技術(shù) 人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對本領(lǐng)域的普通技術(shù) 人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn)。這些都屬于本發(fā)明 的保護(hù)范圍。
[0024]如圖1所示,SRCNN的流程圖。作為本發(fā)明一優(yōu)選實(shí)施例,本發(fā)明的超分辨率GPU加 速技術(shù)是針對SRCNN的,其流程圖如圖1所示,包含了bicubic預(yù)處理(未標(biāo)出)、三個卷積層 和兩個RELU層(分別緊跟在第一個卷積和第二個卷積后)。三個卷積層大小分別是(按照輸 出通道*卷積寬度*卷積高度*輸入通道):64*9*9*1、32*1*1*64、1*5*5*32。在一次1080P到 4K圖像超分辨率中,所需的浮點(diǎn)數(shù)乘加運(yùn)算量是66.6G,所需的存儲I/O是800GBytes。這樣 大的計(jì)算量顯然無法通過CPU計(jì)算滿足實(shí)際工作、生產(chǎn)的時間要求。因此針對該種情況,本 發(fā)明采用GPU進(jìn)行處理,將SRCNN流程的每個步驟都并行化、GPU實(shí)現(xiàn),并充分利用GPU硬件特 性進(jìn)行優(yōu)化和加速。
[0025]本發(fā)明著重針對卷積進(jìn)行并行化、優(yōu)化加速,這是因?yàn)閎icubic預(yù)處理計(jì)算開銷很 低、容易GPU實(shí)現(xiàn),同時非線性層RELU的并行化實(shí)現(xiàn)是顯而易見,超過95%的時間開銷都在 卷積上。
[0026] 為理解SRCNN方法如何適配進(jìn)GPU,以及如何優(yōu)化GPU并行程序,首先介紹GPU的架 構(gòu)。由于物理因素的制約,幾年來處理器的工作頻率無法大幅提升,計(jì)算機(jī)行業(yè)通過增加處 理器的核心數(shù)量提升計(jì)算能力,典型的產(chǎn)品有多核心中央處理器(CPU)和擁有眾多核心的 圖形處理器(GPU)。其中GPU擁有上千個計(jì)算單元和超高帶寬的顯存,例如Nvidia GTX 980TI擁有2816個CUDA核心和336GB/S的全局內(nèi)存帶寬。如果將一個大型計(jì)算任務(wù)分為數(shù)萬 乃至數(shù)百萬個微任務(wù),然后交給GPU處理的時候,GPU會將這些微任務(wù)調(diào)度分配給這些⑶DA 核心,眾多的CUDA核心能夠并發(fā)地、高效地處理微任務(wù),從而使GPU執(zhí)行速度達(dá)到CPU的數(shù)百 倍。
[0027] GPU有一個層次化的儲存器機(jī)制,本發(fā)明中使用了GPU的全局內(nèi)存(global memory)、共享存儲器(shared memory)和寄存器(register)。這三類儲存器的訪問帶寬、延 時、容量和可訪問單元有著很大的區(qū)別。全局內(nèi)存可以被所有線程訪問,擁有很大的容量 (數(shù)GB),但是訪問帶寬最低,往往成為整個過程的瓶頸。共享存儲器是一種受程序員控制的 高速緩存器,GPU中整個計(jì)算單元被分成若干個線程塊,每個線程塊中有一定數(shù)量的線程和 一個獨(dú)立的共享存儲器,該共享存儲器可以被這個線程塊內(nèi)所有線程訪問,擁有很高的訪 問帶寬和較低的延時。寄存器位于每個線程內(nèi)部,有著最高的帶寬和最小的延時,但是容量 很小,如果把反復(fù)使用的數(shù)據(jù)儲存在寄存器中將大幅降低儲存訪問的開銷。
[0028]本發(fā)明闡述的GPU加速SRCNN技術(shù)中,首先將輸入圖像數(shù)據(jù)從內(nèi)存轉(zhuǎn)移到顯存中, 進(jìn)行bicubic預(yù)處理,然后依次進(jìn)行第一層卷積(convl)、relu、第二層卷積(conv2)、relu、 第三層卷積(conv3),然后將數(shù)據(jù)從顯存轉(zhuǎn)移到內(nèi)存中。在進(jìn)行每一層卷積的時候,都采用 了按照輸出像素進(jìn)行任務(wù)劃分的并行化,從而能夠利用GHJ超強(qiáng)的并行計(jì)算能力;為了進(jìn)一 步加快卷積的計(jì)算速度,本發(fā)明提出使用共享存儲器高速緩存卷積核數(shù)據(jù)、使用共享存儲 器或寄存器高速緩存輸入圖像塊數(shù)據(jù)、融合卷積和非線性運(yùn)算;進(jìn)一步的,本發(fā)明針對不同 大小的卷積,測試了不同卷積方法的執(zhí)行速度,選取了最快速度的組合以使整個流程盡可 能快。本發(fā)明關(guān)鍵技術(shù)細(xì)節(jié)如下。
[0029] 在一優(yōu)選實(shí)施例中,為了使卷積并行化,本發(fā)明將卷積任務(wù)按照輸出像素劃分成 數(shù)百萬個微任務(wù),稱為卷積直接計(jì)算法(direct GPU implementation of convolution), 如圖2所示。整個卷積就是要計(jì)算每個輸出像素的值,因此每個輸出像素的計(jì)算任務(wù)可以作 為一個獨(dú)立的微任務(wù)被分配到一個GPU線程上執(zhí)行,這些微任務(wù)之間是獨(dú)立的、可并發(fā)的、 無需相互通信的。這種劃分方式的另一個優(yōu)點(diǎn)在于:相鄰的并發(fā)執(zhí)行的線程訪問的輸入圖 像數(shù)據(jù)也是相鄰的,例如線程(x,y)訪問I(a,b)的同時,線程(x+l,y)也在訪問I(a+l,b),因 此這些訪問請求會被GPU硬件自動合并為一次訪問,從而充分利用GPU的顯存位寬和帶寬。 SRCNN的其余部分(relu)也被并行化,使得整個SRCNN流程都可以在GPU上執(zhí)行,避免了反復(fù) 的CPU/GPU間數(shù)據(jù)轉(zhuǎn)移。通過卷積的并行化,SRCNN的執(zhí)行速度從300秒/幀(使用CPU)加速到 1秒/幀。
[0030] 利用GPU層次化儲存器的機(jī)制,本發(fā)明將卷積核數(shù)據(jù)和輸入圖像數(shù)據(jù)緩存到共享 存儲器或寄存器中,從而加速卷積2到10倍。
[0031] 在一優(yōu)選實(shí)施例中,本發(fā)明通過將卷積核數(shù)據(jù)預(yù)讀取至共享存儲器中,能夠節(jié)省 冗余的卷積核數(shù)據(jù)全局內(nèi)存1/0開銷,稱為共享卷積核數(shù)據(jù)法(shared kernel),如圖3所 示。在上述的卷積直接計(jì)算法中,每個線程都讀取了完全相同的卷積核數(shù)據(jù),冗余的重復(fù)讀 取產(chǎn)生了大量的全局內(nèi)存1/0浪費(fèi)。在共享卷積核數(shù)據(jù)法中,一個線程塊首先將卷積核數(shù)據(jù) 預(yù)讀取至共享存儲器中,然后線程塊內(nèi)所有線程再從該共享存儲器中獲取所需的卷積核數(shù) 據(jù)。這個共享存儲器實(shí)際上就是卷積核數(shù)據(jù)的高速緩存,節(jié)省了大量讀取卷積核數(shù)據(jù)的全 局內(nèi)存1/0開銷。
[0032] 在一優(yōu)選實(shí)施例中,本發(fā)明通過將輸入圖像塊數(shù)據(jù)預(yù)讀取至共享存儲器或寄存器 中,能夠節(jié)省冗余的輸入圖像數(shù)據(jù)全局內(nèi)存1/0開銷,稱為共享輸入圖像塊法(shared patch)或寄存器緩存的輸入圖像塊法(registered pixel),如圖4所示。在進(jìn)行寬或高大于 1的卷積時,相鄰的輸出像素依賴于互相重疊的輸入圖像塊。卷積直接計(jì)算法沒有考慮這種 重疊關(guān)系,因此輸入圖像數(shù)據(jù)被冗余地讀入到各個線程中,也帶來了全局內(nèi)存1/0的浪費(fèi)。 當(dāng)卷積寬和高較大的時候,這種1/0浪費(fèi)會變得非常嚴(yán)重。在本發(fā)明的共享輸入圖像塊法和 寄存器緩存的輸入圖像塊法中,首先找到一個線程塊所依賴的輸入圖像塊區(qū)域,然后將該 區(qū)域讀入到共享存儲器或寄存器(僅在區(qū)域比較小,寄存器能夠容納的情況下可行),接著 每個線程再從共享存儲器中獲取所需的輸入圖像數(shù)據(jù)。這時共享存儲器或者寄存器就是輸 入圖像數(shù)據(jù)的高速緩存,節(jié)省了大量讀取輸入圖像數(shù)據(jù)的全局內(nèi)存1/0開銷。
[0033] 在一優(yōu)選實(shí)施例中,本發(fā)明通過融合卷積與非線性層,免去了非線性層的1/0開 銷,如圖5所示。傳統(tǒng)的對卷積神經(jīng)網(wǎng)絡(luò)的加速集中在對卷積的加速上,這是因?yàn)榫矸e是計(jì) 算時間的瓶頸,同時也因?yàn)榉蔷€性層難以取得加速。然而,當(dāng)卷積加速到如此快程度的時 候,非線性層的時間開銷已經(jīng)不可忽略。在卷積神經(jīng)網(wǎng)絡(luò)中,非線性層總是跟隨在卷積層 后,并且非線性層的每個輸出像素僅僅依賴于對應(yīng)的一個輸入像素。因此,本發(fā)明將卷積和 非線性層融合為一個過程,在執(zhí)行了卷積之后,每個線程立即對輸出值進(jìn)行非線性操作,然 后再寫回全局內(nèi)存。如此做法可以免去卷積層寫回全局內(nèi)存和非線性層讀全局內(nèi)存的開 銷,這相當(dāng)于幾乎完全消除了非線性層的計(jì)算時間。
[0034] 在一優(yōu)選實(shí)施例中,本發(fā)明針對不同大小卷積層測試各個優(yōu)化加速技術(shù)的運(yùn)行時 間,進(jìn)而選擇最快加速技術(shù)以獲得盡可能快的整體運(yùn)行速度的方法,運(yùn)行時間測試結(jié)果見 表1。其中cuDNN是Nvidia提供的卷積運(yùn)算庫內(nèi)的方法。從中可以看到,第一層卷積采用 cuDNN、第二層卷積采用共享卷積核參數(shù)和寄存器緩存的輸入圖像塊、第三層卷積采用共享 卷積核參數(shù)和輸入圖像塊時,整個流程可以做到最快,最終達(dá)到0.15秒/幀,這是CPU速度的 2000倍。
[0035] 表1使用各個優(yōu)化加速方法時,各個卷積層的運(yùn)行時間
[0037] 上表中:使用Nvidia GTX980TI和雙路Intel E5-2697V2@2.7GHz 12 cores processers,測試1920*1080到3840*2160單通道超分辨率。
[0038] 綜上,本發(fā)明將一個高質(zhì)量的超分辨率方法加速到滿足視頻處理的速度要求,并 且不會帶來任何圖像質(zhì)量損失。
[0039] 以上對本發(fā)明的具體實(shí)施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述 特定實(shí)施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影 響本發(fā)明的實(shí)質(zhì)內(nèi)容。
【主權(quán)項(xiàng)】
1. 一種針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,其特征在于:所述方法將基于深度 學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)的超分辨率技術(shù)的所有步驟都并行化,并在GPU運(yùn)行;所述并行化是對 基于深度學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)的超分辨率技術(shù)的卷積進(jìn)行并行任務(wù)劃分,將卷積操作劃分 為數(shù)百萬個互不相關(guān)、能以任意順序并行執(zhí)行的微任務(wù),從而使GHJ超強(qiáng)并行計(jì)算能力得到 發(fā)揮。2. 根據(jù)權(quán)利要求1所述的針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,其特征在于:所 述方法中:按照卷積輸出像素進(jìn)行任務(wù)劃分,每個輸出像素的計(jì)算任務(wù)被分配為一個微任 務(wù),從而卷積任務(wù)能夠被大規(guī)模地并行地執(zhí)行,并且相鄰像素的計(jì)算微任務(wù)依賴的數(shù)據(jù)也 是相鄰的,完美達(dá)到合并訪問,從而充分利用GHJ的顯存位寬和帶寬。3. 根據(jù)權(quán)利要求1所述的針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,其特征在于:所 述方法中:利用共享存儲器作為卷積核參數(shù)的高速緩存,從而降低全局內(nèi)存I/O并加速卷 積。4. 根據(jù)權(quán)利要求3所述的針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,其特征在于:所 述利用共享存儲器作為卷積核參數(shù)的高速緩存,是指:首先由并發(fā)線程塊將卷積核參數(shù)讀 取到線程塊的共享存儲器中,然后每個線程再從該共享存儲器獲取所需的卷積核參數(shù)。5. 根據(jù)權(quán)利要求1所述的針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,其特征在于:所 述方法中:利用共享存儲器或寄存器作為輸入圖像的高速緩存,從而降低全局內(nèi)存I/O并加 速卷積。6. 根據(jù)權(quán)利要求5所述的針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,其特征在于:所 述利用共享存儲器或寄存器作為輸入圖像的高速緩存,是指:首先找出并發(fā)線程塊所依賴 的輸入圖像區(qū)域,然后線程塊將該區(qū)域數(shù)據(jù)讀取到線程塊的共享存儲器中,最后每個線程 從該共享存儲器獲取所需的輸入圖像數(shù)據(jù);亦或如果每線程所需輸入圖像數(shù)據(jù)足夠小時, 直接一次將所需數(shù)據(jù)讀入到線程內(nèi)的寄存器中,然后進(jìn)行計(jì)算。7. 根據(jù)權(quán)利要求1所述的針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,其特征在于:所 述方法中:采用深度神經(jīng)網(wǎng)絡(luò)GPU加速技術(shù),融合卷積運(yùn)算和非線性運(yùn)算,減少卷積、非線性 層所需的全局內(nèi)存吞吐量,從而加快整個過程的執(zhí)行速度。8. 根據(jù)權(quán)利要求7所述的針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,其特征在于:所 述深度神經(jīng)網(wǎng)絡(luò)GPU加速技術(shù),是指:將非線性層的處理過程融合在卷積計(jì)算中,卷積計(jì)算 完成后立刻在寄存器中進(jìn)行非線性層運(yùn)算,從而省去了一輪對全局內(nèi)存的I/O。9. 根據(jù)權(quán)利要求1-8任一項(xiàng)所述的針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,其特征 在于:所述方法中:采用深度卷積網(wǎng)絡(luò)GHJ加速技術(shù),針對不同卷積大小選取最佳優(yōu)化方法。10. 根據(jù)權(quán)利要求9所述的針對深度學(xué)習(xí)超分辨率技術(shù)的GPU加速方法,其特征在于:所 述深度卷積網(wǎng)絡(luò)GPU加速技術(shù),是指:對不同大小卷積層,測試各個優(yōu)化加速技術(shù),進(jìn)而選擇 最快加速技術(shù)以獲得盡可能快的整體運(yùn)行速度的方法。
【文檔編號】G06T1/20GK105869117SQ201610184129
【公開日】2016年8月17日
【申請日】2016年3月28日
【發(fā)明人】宋利, 趙章宗, 解蓉
【申請人】上海交通大學(xué)