CN106407561B - 一种并行gpdt算法在多核soc上的划分方法 - Google Patents
一种并行gpdt算法在多核soc上的划分方法 Download PDFInfo
- Publication number
- CN106407561B CN106407561B CN201610832540.5A CN201610832540A CN106407561B CN 106407561 B CN106407561 B CN 106407561B CN 201610832540 A CN201610832540 A CN 201610832540A CN 106407561 B CN106407561 B CN 106407561B
- Authority
- CN
- China
- Prior art keywords
- matrix
- core
- algorithm
- parallel
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Complex Calculations (AREA)
Abstract
本发明属于集成电路设计技术领域,具体为一种并行GPDT算法在多核SoC上的划分方法。并行GPDT算法包括两层迭代,内层迭代负责求解工作集,而外层迭代负责更新工作集。在计算速度的关键路径方面,外层循环的关键路径是梯度的更新,内层循环的关键路径是每次投影之后向量的计算,这两部分矩阵运算都需要在多核上并行化处理;而其余的运算只能通过在主核上串行的方式实现,包括利用Dai‑Fletcher算法实现的梯度投影操作,以及通过引入快速排序算法来实现工作集的更新等。计算结束后得到的向量即为GPDT算法训练数据的支持向量。
Description
技术领域
本发明属于集成电路设计技术领域,具体为一种并行GPDT算法在多核SoC上的划分方法。
背景技术
GPDT算法是Zanni等人提出的一种对原始QP问题的分解方法,其每次迭代的工作集变量个数在102到103数量级之间,使得算法在很少的几次迭代之后就可以达到收敛,虽然每次迭代的计算量比较大,但可以通过并行化的方式将复杂的计算分配到多个处理器上进行,从而获得更快的训练速度。
支持向量机问题的原始表达式为:
经过化简,分解之后的QP子问题转换成如下形式:
QP子问题的求解过程主要分为四个步骤,通过循环迭代求出最终结果,迭代结束的判断条件为KKT(Karush-Kuhn-Tucker)条件。
算法的具体步骤如下:
步骤1:初始化。
步骤2:QP子问题求解。
步骤2.1:初始化
步骤2.2:投影
步骤2.3:矩阵乘法
步骤2.4:线搜索
步骤2.5:更新
然后计算新的梯度下降步长ρk′+1,令迭代次数k’=k’+1,并返回步骤2.2。
步骤3:梯度更新。
步骤4:工作集更新。
首先求解如下问题:
GPDT算法的优点是每次迭代求解的工作集元素个数能够达到103数量级,使得算法能够快速地收敛,然而在单次迭代中由于存在大量的矩阵运算,计算量非常大。
发明内容
本发明的目的是提供一种并行GPDT算法在多核SoC上的划分方法,以大大缩短单次迭代的计算时间,从而提高整个训练算法的运行效率。
本发明提供的并行GPDT算法在多核SoC上的划分方法,其总体思想是,将工作集B中的nB个元素平均分配到N个处理器上,并且每个处理器在本地都存有训练数据的备份,这样可以将矩阵运算很方便地分配到N个处理器上执行。由算法的基本原理可以看出,算法的并行度主要集中在步骤2和步骤3中,这两步是矩阵运算相对集中的步骤。
并行GPDT算法在多核SoC上的划分方法,包括两个部分:行分解和列分解;具体介绍如下。
行分解方法。包括:矩阵按行分解、并行计算、结果拼接三个步骤:
在步骤2.1的初始化过程中,计算初始梯度其中,A表示一个nB×nB的矩阵,而表示一个nB×1的列向量,那么,的结果也是一个nB×1的列向量;首先,将矩阵A将按行分解为其中,Ani表示一个的矩阵;然后在各个核上计算的值;最后,在主核上将各核的运算结果拼接,即为的结果。
列分解方法。包括:矩阵按列分解、并行计算、结果拼接三个步骤:
在步骤3的梯度更新中,计算其中,GLB是一个l×nB的矩阵,而是一个nB×1的列向量,则二者相乘的结果是一个l×1的列向量。由于矩阵GLB是l行nB列,所以,首先,将矩阵按列分解为 按行分解为然后,在各个核上计算最后,在主核上将各个核计算的结果累加,即为的值。
根据上述划分方法,则改进后的并行GPDT算法(即基于在多核SoC上划分的并行GPDT算法)的具体步骤如下:
2.5 然后在主核上先线搜索计算系数λk,计算新的步长ρk‘+1以及uk′+1等,再令内层迭代次数k’=k’+1;判断uk′+1是否满足KKT终止条件,如果满足,进入下一步;否则,返回到步骤2.2,计算新的梯度下降方向。
计算其中,GLB是一个l×nB的矩阵,而是一个nB×1的列向量,则二者相乘的结果是一个l×1的列向量。由于矩阵GLB是l行nB列,所以,首先,将矩阵按列分解为 按行分解为然后,在各个核上计算最后,在主核上将各个核计算的结果累加,即为的值。
该并行GPDT算法主要包括两层迭代,内层迭代负责求解工作集B,外层迭代负责更新工作集B。在计算速度的关键路径方面,内层循环的关键路径是每次投影后向量z(k’)的计算,而外层循环的关键路径是梯度的更新,这两部分矩阵运算需要分配到各个核上并行化处理,并行化处理的方式分别为“按行分解”和“按列分解”,其余的运算在主核上串行实现,主要包括两部分,一是梯度的投影操作,采用的是Dai-Fletcher算法,二是工作集B的更新,这一步通过引入快速排序算法来高效地填充新工作集中的元素。
附图说明
图1并行GPDT算法流程。
图2按行分解的矩阵乘法。
图3按列分解的矩阵乘法。
具体实施方式
下面结合附图,对本发明作进一步的描述。
如图1所示,本发明将算法中计算初始梯度中的内层循环计算矩阵z(k’)、外层循环计算梯度增量的过程通过并行化处理,分配到多个处理器上进行,将大大减少每次迭代过程中矩阵运算的时间,另外算法中的其他部分仍然是串行化操作,包括梯度的投影和工作集的更新等。根据阿姆达尔定律,并行化算法的加速比不但跟可并行化部分的加速比有关,还跟可并行化部分的比例有关,因此随着训练数据的增加,可并行化部分的运算时间比例增加,算法整体的加速比将逐渐接近于并行化部分的加速比。
1、并行划分的总体思想是,将工作集B中的nB个元素平均分配到N个处理器上,每个处理器分配到的工作集下标定义为集合Ip,p=1,2,…,N,则分配之后的集合Ip满足:
即每个处理器分配到的集合互不相交。假设每个处理器分配到的工作集元素个数为np个,且满足并且每个处理器在本地都存有训练数据的备份,这样就可以将矩阵运算很方便地分配到N个处理器上执行,算法的并行度主要集中在步骤2和步骤3中。
2、Dai-Fletcher算法初始梯度的并行化计算初始梯度的计算公式为其中A表示一个nB×nB的矩阵,而则表示一个nB×1的列向量,那么的结果也是一个nB×1的列向量。按照附图2划分,将矩阵A按行分解,每个处理器上分配到矩阵A的其中np行的片段,然后与列向量相乘,最后经过拼接,得到最终的结果:
3、梯度更新的并行计算梯度更新的公式为:
其中,GLB是一个l×nB的矩阵,而表示相邻两次迭代的向量的差值,则二者相乘的结果是一个l×1的列向量。由于矩阵GLB是l行nB列,所以这里的划分方式是将矩阵GLB按列分解,如附图3所示。对于每个处理器来说,其分配到的矩阵GLB的列片段Gnp是l行np列的矩阵,与列向量的行片段相乘,得到的结果是是一个l行的列向量,所以需要将每个处理器的计算结果进行累加才能得到最终的结果:
4、算法中的其他部分,包括梯度的投影操作和工作集的更新等,则仍然在主核上串行执行,改进后的并行GPDT算法总体流程如附图1所示。
Claims (1)
1.一种并行GPDT算法在多核SoC上的划分方法,其特征在于,具体步骤如下:
2.5然后在主核上先线搜索计算系数λk,计算新的步长ρk‘+1以及uk′+1,再令内层迭代次数k’=k’+1;判断uk′+1是否满足KKT终止条件,如果满足,进入下一步;否则,返回到步骤2.2,计算新的梯度下降方向;
计算其中,GLB是一个l×nB的矩阵,而是一个nB×1的列向量,则二者相乘的结果是一个l×1的列向量;由于矩阵GLB是l行nB列,所以,首先,将矩阵按列分解为 按行分解为然后,在各个核上计算最后,在主核上将各个核计算的结果累加,即为的值;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610832540.5A CN106407561B (zh) | 2016-09-19 | 2016-09-19 | 一种并行gpdt算法在多核soc上的划分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610832540.5A CN106407561B (zh) | 2016-09-19 | 2016-09-19 | 一种并行gpdt算法在多核soc上的划分方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106407561A CN106407561A (zh) | 2017-02-15 |
CN106407561B true CN106407561B (zh) | 2020-07-03 |
Family
ID=57997635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610832540.5A Active CN106407561B (zh) | 2016-09-19 | 2016-09-19 | 一种并行gpdt算法在多核soc上的划分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106407561B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897163A (zh) * | 2017-03-08 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种基于knl平台的代数***求解方法及*** |
EP3654210A1 (en) * | 2017-08-31 | 2020-05-20 | Cambricon Technologies Corporation Limited | Chip device and related products |
CN115619890B (zh) * | 2022-12-05 | 2023-04-07 | 山东省计算中心(国家超级计算济南中心) | 基于并行随机迭代求解线性方程组的断层成像方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102844762A (zh) * | 2010-01-22 | 2012-12-26 | 意法爱立信有限公司 | 在多核***的不同模式之间的切换期间的安全环境管理 |
CN104461467A (zh) * | 2013-09-25 | 2015-03-25 | 广州中国科学院软件应用技术研究所 | 针对SMP集群***采用MPI和OpenMP混合并行提高计算速度的方法 |
CN104820657A (zh) * | 2015-05-14 | 2015-08-05 | 西安电子科技大学 | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 |
CN105550161A (zh) * | 2015-12-16 | 2016-05-04 | 浪潮(北京)电子信息产业有限公司 | 一种异构***的并行逻辑回归方法与*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7363463B2 (en) * | 2005-05-13 | 2008-04-22 | Microsoft Corporation | Method and system for caching address translations from multiple address spaces in virtual machines |
US20150323975A1 (en) * | 2014-05-12 | 2015-11-12 | Qualcomm Innovation Center, Inc. | SYNCHRONIZATION OF ACTIVITY OF MULTIPLE SUBSYSTEMS IN A SoC TO SAVE STATIC POWER |
-
2016
- 2016-09-19 CN CN201610832540.5A patent/CN106407561B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102844762A (zh) * | 2010-01-22 | 2012-12-26 | 意法爱立信有限公司 | 在多核***的不同模式之间的切换期间的安全环境管理 |
CN104461467A (zh) * | 2013-09-25 | 2015-03-25 | 广州中国科学院软件应用技术研究所 | 针对SMP集群***采用MPI和OpenMP混合并行提高计算速度的方法 |
CN104820657A (zh) * | 2015-05-14 | 2015-08-05 | 西安电子科技大学 | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 |
CN105550161A (zh) * | 2015-12-16 | 2016-05-04 | 浪潮(北京)电子信息产业有限公司 | 一种异构***的并行逻辑回归方法与*** |
Non-Patent Citations (4)
Title |
---|
A parallel solver for large quadratic programs in training support vector machines;G. Zanghirati等;《Parallel Computing》;20031231;全文 * |
GRADIENT PROJECTION METHODS FOR QUADRATIC PROGRAMS AND APPLICATIONS IN TRAINING SUPPORT VECTOR MACHINES;THOMAS SERAFINI等;《Optimization Methods and Software》;20140531;全文 * |
支持向量机处理大规模问题算法综述;文益民 等;《计算机科学》;20090731;第36卷(第7期);全文 * |
面向无线安全的多核SoC平台关键技术研究;曹丹;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150815(第8期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106407561A (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106407561B (zh) | 一种并行gpdt算法在多核soc上的划分方法 | |
Peeters et al. | Stacking sequence optimisation of variable stiffness laminates with manufacturing constraints | |
CN102521854B (zh) | 一种适用于二维流场的并行流线放置方法 | |
CN105975342A (zh) | 基于改进布谷鸟搜索算法的云计算任务调度方法及*** | |
CN113344172A (zh) | 将卷积映射到通道卷积引擎 | |
WO2021057465A1 (zh) | 一种对深度学习模型进行并行处理的方法及装置 | |
CN104835168A (zh) | 基于全局凸优化变分模型的快速多相图像分割方法 | |
Lai et al. | Accelerating Strassen-Winograd's matrix multiplication algorithm on GPUs | |
JP2020520519A5 (zh) | ||
Hua et al. | Quasi-streaming graph partitioning: A game theoretical approach | |
CN110188424B (zh) | 一种面向动边界流场数值模拟的局部区域网格重构并行方法 | |
US20230316080A1 (en) | Sparsity masking methods for neural network training | |
CN104049612A (zh) | 基于分布估计的加工车间调度方法 | |
CN117034470B (zh) | 基于高性能数值计算的飞行器外形快速反设计方法 | |
Li et al. | Optimized deep belief networks on CUDA GPUs | |
CN111125620B (zh) | 推荐***中基于矩阵分解的并行随机梯度下降方法 | |
CN109542406A (zh) | 用于模式开发的并行求解方法和*** | |
JP2018206078A (ja) | 並列処理装置、並列演算方法、及び並列演算プログラム | |
JP2016224801A (ja) | 並列計算機システム、並列計算方法及びプログラム | |
Landolfi | Revisiting Edge Pooling in Graph Neural Networks. | |
Harlap et al. | PipeDream: Pipeline parallelism for DNN training | |
JP6573583B2 (ja) | システム開発支援装置およびシステム開発支援方法 | |
Herrero et al. | An implementation of level set based topology optimization using GPU | |
KR101700829B1 (ko) | 병렬처리 입자기반 유체 시뮬레이션 시스템 및 그 방법 | |
CN117556767A (zh) | 瞬态电路仿真的加速方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |