CN111860818B - 基于智能芯片的som神经网络算法处理方法 - Google Patents
基于智能芯片的som神经网络算法处理方法 Download PDFInfo
- Publication number
- CN111860818B CN111860818B CN202010714776.5A CN202010714776A CN111860818B CN 111860818 B CN111860818 B CN 111860818B CN 202010714776 A CN202010714776 A CN 202010714776A CN 111860818 B CN111860818 B CN 111860818B
- Authority
- CN
- China
- Prior art keywords
- neural network
- neuron
- winning
- work
- weight vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Abstract
本发明提出了一种基于智能芯片的自组织特征映射神经网络(Self‑organizing Map,SOM)算法处理方法。SOM神经网络是无监督机器学习中一种经典的聚类算法,在图像处理、数据挖掘、深度学习有广泛的应用。本发明将SOM神经网络算法划分成不存在数据依赖的多个步骤,这个过程在下文中称为Kernel的划分。在保证每个步骤高并行度的情况下,将各个步骤在GPU上实现,对应下文里Kernel的分步骤实现与优化。在单个Kernel在GPU上完成高效的实现后,再将所有的步骤整合为一个Kernel。对整合后的Kernel进行深度优化,并将各个分步骤整合迭代的过程中,使用全局同步的方法,最终实现了一个可以在GPU端单次Kernel启动即可完成的高效的SOM神经网络算法。
Description
技术领域
本发明属于计算机技术领域,更进一步设计计算机视觉和深度学习技术领域中的一种使用开放性计算语言OpenCL(Open Computing Language)的自组织映射神经网络并行处理方法。本发明可以实现对自组织映射神经网络的计算过程进行加速。
背景技术
自组织特征映射神经网络(Self-organizing Map,SOM)是一种聚类算法。它是人工神经网络的生物学合理模型,可以通过计算映射将任意维度的输入信号转换为一维或二维离散映射,并以自适应方式来实现该过程。它是在无监督的情况下自动对输入数据进行分类,对输入模式进行自组织学习,能够反复的调整连接权值,并最终在输出层将分类结果表示出来。
SOM神经网络算法在机器学习、图像处理和深度学习中有广泛的应用。在许多应用场景中,需要对数据进行实时的处理,因此对高效实现SOM神经网络算法提出了要求。传统的机器学习算法的主要计算工具是CPU,因为CPU具有良好的通透性并且硬件架构已经成熟。但是,当数据量增加时,尤其是SOM神经网络算法,CPU的执行效率不能满足需求。与此同时,随着GPU技术的发展,GPU提供大量的并行运算单元,并且可以并行处理大量数据,该架构正好可以应用于该算法。本发明研究了SOM神经网络算法在GPU上的有效实现,SOM神经网络算法的本质是一个通过多次迭代来求得最优解的过程。
在对SOM神经网络算法进行优化研究时发现,机器学习算法通常需要在一个大型数据集上进行多次迭代,这表示每次迭代都有大量的数据同步,并且每次数据同步都需要启动GPU上的内核函数。实际上,GPU上的数据同步和内核启动都是极其耗时的。本发明对SOM神经网络算法的实现过程中,GPU端启动一次内核函数便可以完成所以的迭代操作,消除了多次内核函数启动时间,同时也减少了不必要的全局同步,并对算法本身进行了深度的优化,获得了较好的优化效果。
发明内容
发明的目的:为了解决现有技术中存在的不足,传统的机器学习算法的主要计算工具是CPU,因为CPU具有良好的通透性并且硬件架构已经成熟。但是,当数据量增加时,尤其是SOM神经网络算法,CPU的执行效率不能满足需求。与此同时,随着GPU技术的发展,GPU提供大量的并行运算单元,并且可以并行处理大量数据,该架构正好可以应用于该算法。
技术方案:为实现上述目的,本发明采用的具体方案如下:
(1)初始化,归一化权值向量,建立初始优胜领域,学习率赋予初始值;
(2)输入归一化样本:
(2a)数据点集X被平均分为s份,s是计算X子集中所有数据点标记的处理器的个数,每个线程执行赋予Xi单独的处理器的坐标和计算范围;
(3)计算点积,并选出点积值最大的获胜节点:
(3a)确定每一个work-group的线程规模,在本发明优化中,设置work-group大小为128;
(3b)确定每一个thread可使用的寄存器规模,大小为m个float4类型的栈内存(float4 reg_Buffer[m]),并且加一个大小为m个int类型内存空间(int counter_Buffer[m]);
(3c)每一个thread间隔128位访问输入的归一化样本,对于每一个归一化样本,计算其与权值向量的内积,得到内积值最大的获胜神经元c,并把数据点加入到Buffer[m]中,并对counter[m]进行加1操作;
(3d)对样本集完成一次遍历后,在每一个work-group的128个线程的寄存器中保存着它们所处理的数据点的对应获胜神经元;
(4)对优胜领域内节点调整权值:
(4a)在Global Memory中设置长度为work-group的int型volatile数组,并赋予初始值为0;
(4b)当每个work-group完成工作后,使用原子操作,将其在数组中对应位置的值变为1;
(4c)使用while循环访问volatile数组,直到数组全部为1,再进行后续操作;
(4d)在实现全局同步后,在本处将线程分配给获胜神经元,并对获胜神经元拓扑邻域Nc(n)内的兴奋神经元进行神经元权值向量的更新;
(4e)对学习速率和拓扑邻域进行更新,并且对学习后的权值重新进行归一化处理;
(5)判断迭代过程是否结束:
(5a)将每个工作组中的所有线程进行阈值判断判断迭代次数n是否超过N,如果n≤N,就跳到步骤(3),否则结束迭代过程;
(6)计算聚合度并写入标签集:
(6a)每个workgroup工作完成后,使用原子操作访问volatile型数组的方式实现全局同步。当每个workgroup工作完成后,根据输出节点的响应,完成实验数据的聚类。
本发明相比现有技术,具有以下优点:
1、使用了含有多次全局同步的迭代算法在GPU上的实现方法。
2、使用了线程任务的再分配方法平衡了线程间的任务负载。
3、Local Memory的重用充分利用了GPU的存储框架优胜。
4、大幅度的提高了SOM神经网络算法的运行速度。
附图说明
图1为本发明SOM神经网络算法的执行步骤划分。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读本发明后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
一种基于智能芯片的SOM神经网络算法处理方法,如图1所示,包含以下步骤:
步骤1:设备初始化:
(1)获取平台信息,包括设备平台数量,平台的id号,设备的名称;
(2)获取设备上下文和命令队列;
(3)根据宿主程序中内存的大小,建立设备内存空间;
(4)建立kernel程序,并以二进制或者可执行文件的形式编译后缀名为“cl”的文件;
步骤2:初始化,归一化权向量,建立初始优胜领域,学习率赋予初始值,把数据读入主机内存中,并传递到GPU的全局内存中;
(1)设置初始变量和参数,设置输入向量X(n)=[x1(n),x2(n),…,xN(n)]T;再设置权值向量Wi(n)=[wi1(n),wi2(n),…,wiN(n)]T,其中i=1,2,…,M;最后设置迭代总次数为N;
(2)进行初始化,将权值向量Wi用小的随机值进行初始化;设置初始学习速率为η(0);对权值向量初始值Wi(0)和所有的输入向量X进行归一化处理。即:
(3)把数据传递到GPU的全局内存中。
步骤3:输入归一化样本:
(1)数据点集X被平均分为s份,s是计算X子集中所有数据点标记的处理器的个数,每个线程执行赋予Xi单独的处理器的坐标和计算范围。所有线程执行标记阶段都是针对于它们各自的X划分。每个数据点的标记都被存储在一个n维向量的组件中。
步骤4:计算点积,并选出点积值最大的获胜节点:
确定每一个work-group的线程规模,在本发明优化中,设置work-group大小为128;
(1)确定每一个thread可使用的寄存器规模,大小为m个float4类型的栈内存(float4 reg_Buffer[m]),并且加一个大小为m的int类型内存空间(int counter_Buffer[m]);
(2)每一个thread间隔128位访问输入的归一化样本,对于每一个归一化样本,将每个输入向量X(n)=[x1(n),x2(n),…,xN(n)]T和竞争层所有神经元对应的权值向量Wi(n)=[wi1(n),wi2(n),…,wiN(n)]T进行内积操作,根据式(1)来选取获胜神经元c;
其中||X-Wi||表示输入向量X与权值向量Wi的欧式距离;
(3)得到内积值最大的获胜神经元c,并把数据点加入到Buffer[m]中,并对counter[m]进行加1操作;
(4)对样本集完成一次遍历后,在每一个work-group的128个线程的寄存器中保存着它们所处理的数据点的对应获胜神经元。
步骤5:对优胜领域内节点调整权值:
(1)在Global Memory中设置长度为work-group的int型volatile数组,并赋予初始值为0;
(2)当每个work-group完成工作后,使用原子操作,将其在数组中对应位置的值变为1;
(3)使用while循环访问volatile数组,直到数组全部为1,再进行后续操作;
(4)在实现全局同步后,在本处将线程分配给获胜神经元,对获胜神经元拓扑邻域Nc(n)内的兴奋神经元,根据式(2)进行更新神经元的权值向量,从而实现了神经元的合作和更新过程;
Wi'(n+1)=Wi'(n)+η(n)(X'-Wi'(n)) (2)
(5)根据式(3)和根据式(4)分别对学习速率η(n)和拓扑邻域进行更新,并且对学习后的权值重新进行如式(5)的归一化处理。
步骤6:判断迭代过程是否结束:
(1)将每个工作组中的所有线程进行阈值判断判断迭代次数n是否超过N,如果n≤N,就跳到步骤4,否则结束迭代过程。
步骤7:计算聚合度并写入标签集:
(1)当每个workgroup工作完成后,使用原子操作访问volatile型数组的方式实现全局同步。当每个workgroup工作完成后,根据输出节点的响应,
完成实验数据的聚类。
以上所述,仅是本发明较佳的具体实施方式,这些具体实施方式都是基于本发明整体构思下的不同实现方式,而且本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (5)
1.一种基于智能芯片的SOM神经网络算法处理方法,其特征在于,包括以下步骤:
(1)初始化,归一化权值向量,建立初始优胜领域,学习率赋予初始值;
(2)输入归一化样本:
(2a)数据点集X被平均分为s份,s是计算X子集中所有数据点标记的处理器的个数,每个线程执行赋予Xi单独的处理器的坐标和计算范围;
(3)计算点积,并选出点积值最大的获胜节点:
(3a)确定每一个work-group的线程规模,在本发明优化中,设置work-group大小为128;
(3b)确定每一个thread可使用的寄存器规模,大小为m个float4类型的栈内存(float4reg_Buffer[m]),并且加一个大小为m个int类型内存空间(int counter_Buffer[m]);
(3c)每一个thread间隔128位访问输入的归一化样本,对于每一个归一化样本,计算其与权值向量的点积,得到点积值最大的获胜神经元c,并把数据点加入到Buffer[m]中,并对counter[m]进行加1操作;
(3d)对样本集完成一次遍历后,在每一个work-group的128个线程的寄存器中保存着它们所处理的数据点的对应获胜神经元;
(4)对优胜领域内节点调整权值:
(4a)在Global Memory中设置长度为work-group的int型volatile数组,并赋予初始值为0;
(4b)当每个work-group完成工作后,使用原子操作,将其在数组中对应位置的值变为1;
(4c)使用while循环访问volatile数组,直到数组全部为1,再进行后续操作;
(4d)在实现全局同步后,在本处将线程分配给获胜神经元,并对获胜神经元拓扑邻域Nc(n)内的兴奋神经元进行神经元权值向量的更新;
(4e)对学习速率和拓扑邻域进行更新,并且对学习后的权值重新进行归一化处理;
(5)判断迭代过程是否结束:
(5a)将每个工作组中的所有线程进行阈值判断,判断迭代次数n是否超过N,如果n≤N,就跳到步骤(3),否则结束迭代过程;
(6)计算聚合度并写入标签集:
(6a)每个workgroup工作完成后,使用原子操作访问volatile型数组的方式实现全局同步,当每个workgroup工作完成后,根据输出节点的响应,完成实验数据的聚类。
4.根据权利要求1所述一种基于智能芯片的SOM神经网络算法处理方法,其特征在于,步骤(4d)所示获胜神经元权值向量的更新的具体步骤如下:
对获胜神经元拓扑邻域Nc(n)内的兴奋神经元,根据式(2)进行更新神经元的权值向量,从而实现了神经元的合作和更新过程;
Wi '(n+1) = Wi '(n)+ η (n)(X'-Wi'(n)) (2)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010714776.5A CN111860818B (zh) | 2020-07-23 | 2020-07-23 | 基于智能芯片的som神经网络算法处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010714776.5A CN111860818B (zh) | 2020-07-23 | 2020-07-23 | 基于智能芯片的som神经网络算法处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111860818A CN111860818A (zh) | 2020-10-30 |
CN111860818B true CN111860818B (zh) | 2022-11-08 |
Family
ID=72949717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010714776.5A Active CN111860818B (zh) | 2020-07-23 | 2020-07-23 | 基于智能芯片的som神经网络算法处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111860818B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117196267A (zh) * | 2023-11-07 | 2023-12-08 | 浙江正泰中自控制工程有限公司 | 一种基于设备健康分析技术的智能巡检方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781702A (en) * | 1995-06-07 | 1998-07-14 | Univ South Western | Hybrid chip-set architecture for artificial neural network system |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
EP3179415A1 (en) * | 2015-12-11 | 2017-06-14 | Baidu USA LLC | Systems and methods for a multi-core optimized recurrent neural network |
CN109754060A (zh) * | 2017-11-06 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 一种神经网络机器学习模型的训练方法及装置 |
CN109961138A (zh) * | 2017-12-14 | 2019-07-02 | 北京中科寒武纪科技有限公司 | 神经网络训练方法及相关产品 |
CN110363294A (zh) * | 2018-03-26 | 2019-10-22 | 辉达公司 | 利用网络中的路径来表示神经网络以提高神经网络的性能 |
CN110689126A (zh) * | 2017-10-30 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 一种用于执行神经网络运算的装置 |
CN110869946A (zh) * | 2017-02-23 | 2020-03-06 | 大脑系统公司 | 加速的深度学习 |
CN111144559A (zh) * | 2019-12-25 | 2020-05-12 | 上海寒武纪信息科技有限公司 | 用于训练神经网络的设备、方法和集成电路板卡 |
-
2020
- 2020-07-23 CN CN202010714776.5A patent/CN111860818B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781702A (en) * | 1995-06-07 | 1998-07-14 | Univ South Western | Hybrid chip-set architecture for artificial neural network system |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
EP3179415A1 (en) * | 2015-12-11 | 2017-06-14 | Baidu USA LLC | Systems and methods for a multi-core optimized recurrent neural network |
CN106875013A (zh) * | 2015-12-11 | 2017-06-20 | 百度(美国)有限责任公司 | 用于多核优化循环神经网络的系统和方法 |
CN110869946A (zh) * | 2017-02-23 | 2020-03-06 | 大脑系统公司 | 加速的深度学习 |
CN110689126A (zh) * | 2017-10-30 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 一种用于执行神经网络运算的装置 |
CN109754060A (zh) * | 2017-11-06 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 一种神经网络机器学习模型的训练方法及装置 |
CN109961138A (zh) * | 2017-12-14 | 2019-07-02 | 北京中科寒武纪科技有限公司 | 神经网络训练方法及相关产品 |
CN110363294A (zh) * | 2018-03-26 | 2019-10-22 | 辉达公司 | 利用网络中的路径来表示神经网络以提高神经网络的性能 |
CN111144559A (zh) * | 2019-12-25 | 2020-05-12 | 上海寒武纪信息科技有限公司 | 用于训练神经网络的设备、方法和集成电路板卡 |
Non-Patent Citations (4)
Title |
---|
"Optimization of GPU and CPU acceleration for neural networks layers implemented in python";Radu Dogaru;《2017 5th International Symposium on Electrical and Electronics Engineering (ISEEE)》;20171211;全文 * |
"Parallel back-propagation neural network training technique using CUDA on multiple GPUs";Shunlu Zhang;《2015 IEEE MTT-S International Conference on Numerical Electromagnetic and Multiphysics Modeling and Optimization (NEMO)》;20160225;全文 * |
"深度学习算法在无人驾驶视觉中的应用";蔡惠民;《中国优秀博士学位论文全文数据库信息科技辑》;20181215;全文 * |
"肝脏CT图像分割并行处理方法的设计与实现";杨雪;《中国优秀硕士学位论文全文数据库信息科技辑》;20170315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111860818A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10984286B2 (en) | Domain stylization using a neural network model | |
US10872399B2 (en) | Photorealistic image stylization using a neural network model | |
US10783393B2 (en) | Semi-supervised learning for landmark localization | |
Minaei-Bidgoli et al. | Ensembles of partitions via data resampling | |
US9524449B2 (en) | Generation of visual pattern classes for visual pattern recognition | |
CN111461164B (zh) | 样本数据集的扩容方法及模型的训练方法 | |
Zhao et al. | Parallel support vector machines on multi-core and multiprocessor systems | |
CN115080749B (zh) | 一种基于自监督训练的弱监督文本分类方法、系统和装置 | |
Sahu et al. | Dynamic routing using inter capsule routing protocol between capsules | |
CN112766400A (zh) | 高维数据基于多个数据变换空间的半监督分类集成方法 | |
CN115311483A (zh) | 基于局部结构与平衡感知的不完备多视图聚类方法及系统 | |
CN111860818B (zh) | 基于智能芯片的som神经网络算法处理方法 | |
CN110264392B (zh) | 一种基于多gpu的强连通图检测方法 | |
Kim et al. | Efficient multi-GPU memory management for deep learning acceleration | |
Li et al. | Sub-selective quantization for large-scale image search | |
Peng et al. | Adaptive runtime exploiting sparsity in tensor of deep learning neural network on heterogeneous systems | |
CN111753995A (zh) | 一种基于梯度提升树的局部可解释方法 | |
Chen et al. | GPU-MEME: Using graphics hardware to accelerate motif finding in DNA sequences | |
CN112801153B (zh) | 一种嵌入lbp特征的图的半监督图像分类方法及系统 | |
JP2019160256A (ja) | 学習識別装置および学習識別方法 | |
CN114281985A (zh) | 样本特征空间增强方法及装置 | |
CN109978066B (zh) | 基于多尺度数据结构的快速谱聚类方法 | |
Zhong et al. | Graph embedding orthogonal decomposition: A synchronous feature selection technique based on collaborative particle swarm optimization | |
US20220108156A1 (en) | Hardware architecture for processing data in sparse neural network | |
US20230376659A1 (en) | Vlsi placement optimization using self-supervised graph clustering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |