[發(fā)明專利]一種基于OpenCL的全局內(nèi)存緩存方法、系統(tǒng)及裝置有效
| 申請?zhí)枺?/td> | 201810574143.1 | 申請日: | 2018-06-06 |
| 公開(公告)號: | CN108897630B | 公開(公告)日: | 2021-11-09 |
| 發(fā)明(設(shè)計)人: | 范寶余;郭振華;高開 | 申請(專利權(quán))人: | 鄭州云海信息技術(shù)有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F12/0811;G06F12/0875 |
| 代理公司: | 北京集佳知識產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 羅滿 |
| 地址: | 450018 河南省鄭州市*** | 國省代碼: | 河南;41 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 opencl 全局 內(nèi)存 緩存 方法 系統(tǒng) 裝置 | ||
本發(fā)明公開了一種基于OpenCL的全局內(nèi)存緩存方法、系統(tǒng)及裝置,該方法包括:第一內(nèi)核獲取緩存數(shù)據(jù);將所述緩存數(shù)據(jù)寫入到全局內(nèi)存中的預(yù)設(shè)緩存隊列中,并更新第一尾指針;其中,所述第一尾指針為所述第一內(nèi)核保存的所述預(yù)設(shè)緩存隊列的尾指針;通過Pipe或channel將所述第一尾指針發(fā)送到第二內(nèi)核;所述第二內(nèi)核根據(jù)所述第一尾指針更新第二尾指針;其中,所述第二尾指針為所述第二內(nèi)核保存的所述預(yù)設(shè)緩存隊列的尾指針;本發(fā)明利用channel或Pipe更新全局內(nèi)存中的預(yù)設(shè)緩存隊列的狀態(tài),可以實現(xiàn)全局內(nèi)存中的緩存隊列的應(yīng)用,有效的解決了OpenCL的內(nèi)核間數(shù)據(jù)傳輸時大數(shù)據(jù)量的緩存問題。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)中心技術(shù)領(lǐng)域,特別涉及一種基于OpenCL的全局內(nèi)存緩存方法、系統(tǒng)及裝置。
背景技術(shù)
在數(shù)據(jù)中心技術(shù)領(lǐng)域中基于CPU+FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)的異構(gòu)計算是一個非常前沿的技術(shù),目前很多有機(jī)構(gòu)都在對其進(jìn)行研究。而OpenCL是一種專門針對異構(gòu)計算裝置(Heterogeneous Device)進(jìn)行并行化運算所設(shè)計的高層次程序語言,可應(yīng)用于CPU、GPU(Graphics Processing Unit,圖形處理器)和FPGA等異構(gòu)系統(tǒng)的并行編程,尤其是對于CPU+FPGA的異構(gòu)加速平臺更是研究熱點。
目前,OpenCL將存儲模型抽象為3個層次,分別為全局內(nèi)存(Global Memory)、本地內(nèi)存(Local Memory)以及私有內(nèi)存(Private Memory),訪存速度逐級加快,存儲空間逐級遞減。隊列是限制結(jié)點插入操作固定在一端進(jìn)行,而結(jié)點的刪除操作固定在另一端進(jìn)行的線性表,隊列的特點是結(jié)點在隊列中的排隊次序和出隊次序按進(jìn)隊時間先后確定,即先進(jìn)隊者先出隊。因此,隊列又稱先進(jìn)先出表,簡稱FIFO(first in first out)表。
現(xiàn)有技術(shù)中,由于隊列先入先出的特性,使其具有緩存效果,被廣泛應(yīng)用在OpenCL程序中用于內(nèi)核(kernel)間數(shù)據(jù)傳輸,而無論是Pipe(管道,OpenCL標(biāo)準(zhǔn)中定義一種FIFO隊列結(jié)構(gòu))還是Intel額外支持的channel(通道)均是通過FPGA片上RAM(本地內(nèi)存)或片上寄存器(私有內(nèi)存)資源實現(xiàn),存儲容量較小,無法適應(yīng)大數(shù)據(jù)容量的緩存需求。因此,如何利用比私有內(nèi)存和本地內(nèi)存的存儲容量更大的全局內(nèi)存,對大數(shù)據(jù)量的進(jìn)行緩存,是現(xiàn)今亟需解決的問題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于OpenCL的全局內(nèi)存緩存方法、系統(tǒng)及裝置,以利用OpenCL中的全局內(nèi)存,適應(yīng)大數(shù)據(jù)量的緩存需求。
為解決上述技術(shù)問題,本發(fā)明提供一種基于OpenCL的全局內(nèi)存緩存方法,包括:
第一內(nèi)核獲取緩存數(shù)據(jù);
將所述緩存數(shù)據(jù)寫入到全局內(nèi)存中的預(yù)設(shè)緩存隊列中,并更新第一尾指針;其中,所述第一尾指針為所述第一內(nèi)核保存的所述預(yù)設(shè)緩存隊列的尾指針;
通過Pipe或channel將所述第一尾指針發(fā)送到第二內(nèi)核;
所述第二內(nèi)核根據(jù)所述第一尾指針更新第二尾指針;其中,所述第二尾指針為所述第二內(nèi)核保存的所述預(yù)設(shè)緩存隊列的尾指針。
可選的,該方法還包括:
所述第二內(nèi)核從所述預(yù)設(shè)緩存隊列中讀取所述緩存數(shù)據(jù),并更新第一頭指針;其中,所述第一頭指針為所述第二內(nèi)核保存的所述預(yù)設(shè)緩存隊列的頭指針;
通過Pipe或channel將所述第一頭指針發(fā)送到所述第一內(nèi)核;
所述第一內(nèi)核根據(jù)所述第一頭指針更新第二頭指針;其中,所述第二頭指針為所述第一內(nèi)核保存的所述預(yù)設(shè)緩存隊列的頭指針。
可選的,所述將所述緩存數(shù)據(jù)寫入到全局內(nèi)存中的預(yù)設(shè)緩存隊列中,并更新所述預(yù)設(shè)緩存隊列的尾指針狀態(tài)之前,還包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于鄭州云海信息技術(shù)有限公司,未經(jīng)鄭州云海信息技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810574143.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 用于靈活柵格光網(wǎng)絡(luò)全局優(yōu)化的系統(tǒng)架構(gòu)及其全局優(yōu)化方法
- 一種基于多數(shù)據(jù)庫類型的SQL執(zhí)行方法和裝置
- 用于移動AdHoc網(wǎng)絡(luò)的路由入侵檢測系統(tǒng)
- 一種分布式事務(wù)管理方法及系統(tǒng)
- 全局資源分配方法和裝置
- 一種通信方法及裝置
- 一種高效分布式全局鎖協(xié)調(diào)方法
- 一種帶上下文信息編碼的語義分割卷積神經(jīng)網(wǎng)絡(luò)
- 一種批量腳本的全局參數(shù)替換方法及裝置
- 一種基于全局變量的家居參數(shù)化模型建模系統(tǒng)及方法





