[發(fā)明專利]一種OpenCL內(nèi)核程序中隨機(jī)數(shù)產(chǎn)生方法及裝置有效
| 申請?zhí)枺?/td> | 201710294725.X | 申請日: | 2017-04-28 |
| 公開(公告)號: | CN107145332B | 公開(公告)日: | 2021-06-29 |
| 發(fā)明(設(shè)計(jì))人: | 王麗 | 申請(專利權(quán))人: | 鄭州云海信息技術(shù)有限公司 |
| 主分類號: | G06F7/58 | 分類號: | G06F7/58 |
| 代理公司: | 北京集佳知識產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 羅滿 |
| 地址: | 450018 河南省鄭州市*** | 國省代碼: | 河南;41 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 opencl 內(nèi)核 程序 隨機(jī)數(shù) 產(chǎn)生 方法 裝置 | ||
本發(fā)明公開了一種OpenCL內(nèi)核程序中隨機(jī)數(shù)產(chǎn)生方法及裝置,該方法包括:在內(nèi)核程序中設(shè)置隨機(jī)種子參數(shù),利用偽隨機(jī)數(shù)計(jì)算公式計(jì)算得到隨機(jī)數(shù);將新的隨機(jī)種子參數(shù)保存于移位寄存器數(shù)組的第一位;通過倒序移位方法控制新的隨機(jī)種子參數(shù)移動(dòng)到移位寄存器數(shù)組的最后一位。該方法解決Opencl標(biāo)準(zhǔn)中不能實(shí)現(xiàn)隨機(jī)數(shù)產(chǎn)生的問題。
技術(shù)領(lǐng)域
本發(fā)明涉及大數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種OpenCL內(nèi)核程序中隨機(jī)數(shù)產(chǎn)生方法及裝置。
背景技術(shù)
目前,異構(gòu)計(jì)算主要是指使用不同體系架構(gòu)的計(jì)算單元組成系統(tǒng)的計(jì)算方式,能夠根據(jù)每個(gè)計(jì)算子系統(tǒng)的結(jié)構(gòu)特點(diǎn)為其分配不同的計(jì)算任務(wù),在提高服務(wù)器的計(jì)算性能、能效比和計(jì)算實(shí)時(shí)性方面體現(xiàn)出了傳統(tǒng)架構(gòu)所不具備的優(yōu)勢,其常見的計(jì)算單元類別包括CPU、GPU、DSP、ASIC、FPGA等。現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)是一種新型的異構(gòu)計(jì)算加速器件,由可編程的邏輯塊和互聯(lián)網(wǎng)絡(luò)組成,可在不同邏輯執(zhí)行多個(gè)線程,實(shí)現(xiàn)流水線并行處理,具有較強(qiáng)的并行處理能力。將FPGA等專用芯片作為加速設(shè)備與CPU相配合形成FPGA異構(gòu)計(jì)算平臺,能夠在降低系統(tǒng)功耗的同時(shí)提升數(shù)據(jù)中心的計(jì)算能力,加速數(shù)據(jù)處理。傳統(tǒng)的FPGA開發(fā)以硬件描述語言(HDL)來實(shí)現(xiàn)并行運(yùn)算,對開發(fā)者要求較高,開發(fā)周期也較長。OpenCL是由Khronos Group針對異構(gòu)計(jì)算裝置(heterogeneousdevice)所設(shè)計(jì)的標(biāo)準(zhǔn)API以及程式語言。自標(biāo)準(zhǔn)化之后,CPU和GPU廠商很快宣布其產(chǎn)品支持OpenCL編程模型。隨著FPGA廠商的OpenCL編譯綜合工具成熟化,F(xiàn)PGA也實(shí)現(xiàn)了采用OpenCL高級語言的算法調(diào)試模式,并可直接寫入FPGA進(jìn)行程序驗(yàn)證,為FPGA廣泛應(yīng)用于通用計(jì)算領(lǐng)域進(jìn)行應(yīng)用快速開發(fā)提供了便利性保證。OpenCL程序包括主機(jī)端(host)程序和內(nèi)核(kernel)程序兩部分,其中內(nèi)核程序即為核心算法的計(jì)算過程,在FPGA上實(shí)現(xiàn);主機(jī)端程序由CPU負(fù)責(zé)對內(nèi)核程序進(jìn)行數(shù)據(jù)傳輸和執(zhí)行調(diào)度。
大數(shù)據(jù)處理是FPGA異構(gòu)計(jì)算的熱門領(lǐng)域,涉及機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的算法中隨機(jī)數(shù)產(chǎn)生用于數(shù)據(jù)抽樣仿真等問題是常用的計(jì)算手段,C和C++語言標(biāo)準(zhǔn)中提供了經(jīng)典的偽隨機(jī)數(shù)產(chǎn)生函數(shù)rand()函數(shù),但是基于FPGA的OpenCL高級編程模型的標(biāo)準(zhǔn)不支持rand偽隨機(jī)數(shù)產(chǎn)生,使得數(shù)據(jù)挖掘算法中的數(shù)據(jù)抽樣等操作在FPGA異構(gòu)計(jì)算平臺上不能實(shí)現(xiàn)并行優(yōu)化,影響了算法的整體性能。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種OpenCL內(nèi)核程序中隨機(jī)數(shù)產(chǎn)生方法及裝置,以解決Opencl標(biāo)準(zhǔn)中不能實(shí)現(xiàn)隨機(jī)數(shù)產(chǎn)生的問題。
為解決上述技術(shù)問題,本發(fā)明提供一種OpenCL內(nèi)核程序中隨機(jī)數(shù)產(chǎn)生方法,該方法包括:
在內(nèi)核程序中設(shè)置隨機(jī)種子參數(shù),利用偽隨機(jī)數(shù)計(jì)算公式計(jì)算得到隨機(jī)數(shù);
將新的隨機(jī)種子參數(shù)保存于移位寄存器數(shù)組的第一位;
通過倒序移位方法控制新的隨機(jī)種子參數(shù)移動(dòng)到移位寄存器數(shù)組的最后一位。
優(yōu)選的,利用偽隨機(jī)數(shù)計(jì)算公式計(jì)算得到隨機(jī)數(shù),包括:
對隨機(jī)種子參數(shù)進(jìn)行初始化,對上次計(jì)算得到的隨機(jī)種子參數(shù)進(jìn)行更新得到新的隨機(jī)種子參數(shù),利用新的隨機(jī)種子參數(shù)計(jì)算得到新的隨機(jī)參數(shù)。
優(yōu)選的,將新的隨機(jī)種子參數(shù)保存于移位寄存器數(shù)組的第一位之前,還包括:
定義一個(gè)移位寄存器數(shù)組,將移位寄存器數(shù)組最后一位用于更新隨機(jī)種子參數(shù)。
優(yōu)選的,所述通過倒序移位方法控制新的隨機(jī)種子參數(shù)移動(dòng)到移位寄存器數(shù)組的最后一位,包括:
每次產(chǎn)生隨機(jī)數(shù)后,對移位寄存器進(jìn)行倒序移位,將新的隨機(jī)種子逐漸移位到移位寄存器數(shù)組的最后一位,用于參與下個(gè)隨機(jī)數(shù)的計(jì)算。
本發(fā)明還提供一種OpenCL內(nèi)核程序中隨機(jī)數(shù)產(chǎn)生裝置,用于實(shí)現(xiàn)上述方法,包括:
該專利技術(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/201710294725.X/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:導(dǎo)線壓接輔助裝置
- 下一篇:一種新型果肉水果清洗罐
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F7-00 通過待處理的數(shù)據(jù)的指令或內(nèi)容進(jìn)行運(yùn)算的數(shù)據(jù)處理的方法或裝置
G06F7-02 .比較數(shù)字值的
G06F7-06 .將單個(gè)記錄載體上的數(shù)據(jù)進(jìn)行排序、選擇、合并或比較的裝置
G06F7-22 .用于排序或合并在連續(xù)記錄載體
G06F7-38 .只利用數(shù)制表示,例如利用二進(jìn)制、三進(jìn)制、十進(jìn)制表示來完成計(jì)算的方法或裝置
G06F7-58 .隨機(jī)數(shù)或偽隨機(jī)數(shù)發(fā)生器
- 一種畫質(zhì)調(diào)節(jié)方法及系統(tǒng)
- 一種向量點(diǎn)積的OpenCL自動(dòng)化實(shí)現(xiàn)方法
- 一種提高OpenCL硬件執(zhí)行效率的方法
- 基于OpenCL移動(dòng)設(shè)備QC-LDPC的動(dòng)態(tài)譯碼方法
- 基于Andorid平臺的OpenCL圖像處理方法
- 程序的加載方法、裝置、系統(tǒng)以及電子設(shè)備
- 基于FPGA的Tensorflow系統(tǒng)加速的設(shè)計(jì)方法
- 一種基于OpenCL的雙目立體匹配方法
- 一種OpenCL內(nèi)核提交的方法及裝置
- 面向軟件超結(jié)點(diǎn)的OpenCL編程框架構(gòu)建方法和裝置
- 隨機(jī)數(shù)生成電路
- 隨機(jī)數(shù)生成設(shè)備及控制方法、存儲器存取控制設(shè)備及通信設(shè)備
- 一種真隨機(jī)數(shù)后處理裝置及方法
- 真隨機(jī)數(shù)檢測裝置及方法
- 用于真隨機(jī)數(shù)生成器的自動(dòng)控制系統(tǒng)和方法
- 隨機(jī)數(shù)產(chǎn)生系統(tǒng)及其隨機(jī)數(shù)產(chǎn)生方法
- 隨機(jī)數(shù)產(chǎn)生控制方法、裝置、計(jì)算機(jī)設(shè)備及存儲介質(zhì)
- 隨機(jī)數(shù)生成器及生成隨機(jī)數(shù)輸出的方法
- 模型訓(xùn)練方法、裝置和計(jì)算設(shè)備
- 模型訓(xùn)練方法、裝置和計(jì)算設(shè)備





