CN110333946A - 一种基于人工智能cpu数据处理系统及方法 - Google Patents
一种基于人工智能cpu数据处理系统及方法 Download PDFInfo
- Publication number
- CN110333946A CN110333946A CN201910396289.6A CN201910396289A CN110333946A CN 110333946 A CN110333946 A CN 110333946A CN 201910396289 A CN201910396289 A CN 201910396289A CN 110333946 A CN110333946 A CN 110333946A
- Authority
- CN
- China
- Prior art keywords
- cpu module
- module
- cpu
- subtask
- data
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明提供一种基于人工智能CPU数据处理系统及方法,包括CPU模块、GPU模块、FPGA模块、高速串行总线,首先,将数据初始化任务交给主控节点的CPU模块使用OpenMP并行处理,生成多个子任务列表;然后将CPU模块计算的子任务留下处理,使用MPI将适合GPU模块计算的子任务分发给计算节点,通过调用OpenCLICDLoader来获取适合FPGA模块的子任务;计算结束后,将GPU模块与FPGA模块的执行结果通过高速串行总线传回CPU模块生成结果文件,通过CPU管理串行的任务,GPU就是处理并行运算的设计,提升数据计算速度和数据处理能力。
Description
技术领域
本发明涉及计算机技术领域,具体为一种基于人工智能CPU数据处理系统及方法。
背景技术
中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要元件,也是“人机对话”的重要设备之一。
传统的CPU之所以不适合人工智能算法的执行,主要原因在于其计算指令遵循串行执行的方式,没能发挥出芯片的全部潜力。与之不同的是,GPU具有高并行结构,在处理图形数据和复杂算法方面拥有比CPU更高的效率。对比GPU和CPU在结构上的差异,CPU大部分面积为控制器和寄存器,而GPU拥有更多的ALU(ARITHMETIC LOGIC UNIT,逻辑运算单元)用于数据处理,这样的结构适合对密集型数据进行并行处理。
为解决上述问题,本申请中提出一种基于人工智能CPU数据处理系统及方法。
发明内容
(一)发明目的
为解决背景技术中存在的技术问题,本发明提出一种基于人工智能CPU数据处理系统及方法,通过CPU模块管理任务的分配,并由GPU将分配的子任务进行并行运算,提升数据计算速度和数据处理能力。
(二)技术方案
为解决上述问题,本发明采用的技术方案为:
根据本发明,提供了一种基于人工智能CPU数据处理系统,包括CPU模块、GPU模块、FPGA模块、高速串行总线,CPU模块具有多个内核;GPU模块具有多个计算单元;所述计算单元包括矩阵相乘单元以及转积运算单元;所述FPGA模块对来自所述CPU模块的任务进行串行或并行处理;所述高速串行总线用于FPGA模块、GPU模块与CPU模块之间的通信连接。
优选的,所述CPU模块用于主控制节点的任务分配形成多个子任务,将子任务分配给所述GPU模块和FPGA模块。
优选的,所述GPU模块对来自所述CPU模块分配的任务进行并行处理。
根据本发明,提供了一种基于人工智能CPU数据处理方法,包括以下步骤:
S1:数据初始化任务交给主控节点的CPU模块使用OpenMP并行处理,生成
多个子任务列表;
S2:然后将CPU模块计算的子任务留下处理,使用MPI将适合GPU模块计算的子任务分发给计算节点,通过调用OpenCL ICD Loader来获取适合FPGA模块的子任务;
S3:由CPU模块将子任务程序和数据分别映射到GPU模块和FPGA模块进行计算;
S4:将步骤S3中映射到GPU模块的子任务程序和数据经过矩阵相乘单元以及转积运算单元的数据处理,映射到FPGA模块的子任务程序和数据进行串行或并行处理;
在步骤S4中,将映射到GPU的子任务程序和数据经过矩阵相乘单元进行矩阵分块计算,计算的唯一条件为前一个矩阵的列分割与后一个矩阵的行分割的分割方式一致,则若(m×k)维矩阵A与(k×n)维矩阵B相乘,矩阵分块步骤如下:
1.对A矩阵的列分割和B矩阵的行分割做出规定;
2.对A矩阵行和B矩阵列进行任意拆分,如以十维为一组进行分组,对分组后的子阵进行标号,添加子阵行标与列标,分组后的矩阵如下式所示;
3,对分组后的子阵做并行计算,对A列标与B行标相等的两子阵相乘,将计算结果累加到累加矩阵Cij中,在计算前需要对Cij清零;
4.将Cij矩阵保存在结果矩阵Cmn中,输出计算结果矩阵Cmn。
S5:计算结束后,将GPU模块与FPGA模块的执行结果通过高速串行总线传回主控节点,主控节点的CPU模块负责结果收集和生成结果文件。
本发明的上述技术方案具有如下有益的技术效果:
1、通过CPU模块管理任务分配,当处理的任务遇到大量的并行运算时,把任务分配给GPU模块,GPU模块就是处理并行运算的设计,这样大量的并行的数据就被处理掉,提升数据计算速度和数据处理能力;
2、通过调用OpenCL ICD Loader来获取适合FPGA模块的子任务,把一些子任务分配给FPGA模块进行并行计算或直接加入并行计算,当然最主要的是,CPU模块会通过比如神经网络和其他的深度学习的算法,让机器自己学习,产生新的算法,让这种算法对FPGA模块进行编程,使FPGA能解决特点问题的方法,这样就可以使设备不但具备自我学习,自我演化,自我更新,使设备变的越来越先进,越来越智能。
附图说明
图1为本发明提出的基于人工智能CPU数据处理系统框图。
图2为本发明提出的基于人工智能CPU数据处理方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
如图1所示,本实施例的一种基于人工智能CPU数据处理系统,包括CPU模块、GPU模块、FPGA模块、高速串行总线,CPU模块具有多个内核,多个内核之间通过内存总线通信并进行串行计算、任务分配等处理;GPU模块具有多个计算单元;所述计算单元包括矩阵相乘单元以及转积运算单元;所述FPGA模块对来自所述CPU模块的任务进行串行或并行处理;所述高速串行总线用于FPGA模块、GPU模块与CPU模块之间的通信连接,高速串行总线具有使用方便、速度快、连接灵活和独立供电的优点。
更具体而言,所述CPU模块用于主控制节点的任务分配形成多个子任务,将子任务分配给所述GPU模块和FPGA模块。
更具体而言,所述GPU模块对来自所述CPU模块分配的任务进行并行处理。
如图2所示,本实施例的一种基于人工智能CPU数据处理方法,包括以下
步骤:
S1:数据初始化任务交给主控节点的CPU模块使用OpenMP并行处理,生成
多个子任务列表;
S2:然后将CPU模块计算的子任务留下处理,使用MPI将适合GPU模块计算的子任务分发给计算节点,通过调用OpenCL ICD Loader来获取适合FPGA模块的子任务;
S3:由CPU模块将子任务程序和数据分别映射到GPU模块和FPGA模块进行计算;
S4:将步骤S3中映射到GPU模块的子任务程序和数据经过矩阵相乘单元以及转积运算单元的数据处理,映射到FPGA模块的子任务程序和数据进行串行或并行处理;
在步骤S4中,将映射到GPU的子任务程序和数据经过矩阵相乘单元进行矩阵分块计算,计算的唯一条件为前一个矩阵的列分割与后一个矩阵的行分割的分割方式一致,则若(m×k)维矩阵A与(k×n)维矩阵B相乘,矩阵分块步骤如下:
1.对A矩阵的列分割和B矩阵的行分割做出规定;
2.对A矩阵行和B矩阵列进行任意拆分,如以十维为一组进行分组,对分组后的子阵进行标号,添加子阵行标与列标,分组后的矩阵如下式所示;
3,对分组后的子阵做并行计算,对A列标与B行标相等的两子阵相乘,将计算结果累加到累加矩阵Cij中,在计算前需要对Cij清零;
4.将Cij矩阵保存在结果矩阵Cmn中,输出计算结果矩阵Cmn。
S5:计算结束后,将GPU模块与FPGA模块的执行结果通过高速串行总线传回主控节点,主控节点的CPU模块负责结果收集和生成结果文件。
在本发明中,通过CPU模块管理任务分配,生成多个字任务列表,当处理的任务遇到大量的并行运算时,使用MPI将适合GPU模块计算的子任务分配给GPU模块的计算节点,GPU模块就是处理并行运算的设计,这样大量的并行的数据就被处理掉,提升数据计算速度和数据处理能力;通过调用OpenCL ICD Loader来获取适合FPGA模块的子任务,把一些子任务分配给FPGA模块进行并行计算或直接加入并行计算,当然最主要的是,CPU模块会通过比如神经网络和其他的深度学习的算法,让机器自己学习,产生新的算法,让这种算法可以对FPGA模块进行编程,使FPGA能解决特点问题的方法,这样就可以使设备不但具备自我学习,自我演化,自我更新,使设备变的越来越先进,越来越智能。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (4)
1.一种基于人工智能CPU数据处理系统,其特征在于,包括:
CPU模块,其具有多个内核;
GPU模块,其具有多个计算单元;所述计算单元包括矩阵相乘单元以及转积运算单元;
FPGA模块,所述FPGA模块对来自所述CPU模块的任务进行串行或并行处理;
高速串行总线,所述高速串行总线用于FPGA模块、GPU模块与CPU模块之间的通信连接。
2.根据权利要求1所述的基于人工智能CPU数据处理系统,其特征在于,所述CPU模块用于主控制节点的任务分配形成多个子任务,将子任务分配给所述GPU模块和FPGA模块。
3.根据权利要求1所述的基于人工智能CPU数据处理系统,其特征在于,所述GPU模块对来自所述CPU模块分配的任务进行并行处理。
4.一种基于人工智能CPU数据处理方法,其特征在于,包括以下步骤:
S1:数据初始化任务交给主控节点的CPU模块使用OpenMP并行处理,生成多个子任务列表;
S2:然后将CPU模块计算的子任务留下处理,使用MPI将适合GPU模块计算的子任务分发给计算节点,通过调用OpenCL ICD Loader来获取适合FPGA模块的子任务;
S3:由CPU模块将子任务程序和数据分别映射到GPU模块和FPGA模块进行计算;
S4:将步骤S3中映射到GPU模块的子任务程序和数据经过矩阵相乘单元以及转积运算单元的数据处理,映射到FPGA模块的子任务程序和数据进行串行或并行处理;
S5:计算结束后,将GPU模块与FPGA模块的执行结果通过高速串行总线传回主控节点,主控节点的CPU模块负责结果收集和生成结果文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910396289.6A CN110333946A (zh) | 2019-05-14 | 2019-05-14 | 一种基于人工智能cpu数据处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910396289.6A CN110333946A (zh) | 2019-05-14 | 2019-05-14 | 一种基于人工智能cpu数据处理系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110333946A true CN110333946A (zh) | 2019-10-15 |
Family
ID=68139402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910396289.6A Pending CN110333946A (zh) | 2019-05-14 | 2019-05-14 | 一种基于人工智能cpu数据处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110333946A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190735A (zh) * | 2019-12-30 | 2020-05-22 | 湖南大学 | 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统 |
CN111488051A (zh) * | 2020-03-06 | 2020-08-04 | 复旦大学 | 基于cpu和fpga协同计算的云端深度神经网络优化方法 |
CN111625357A (zh) * | 2020-05-22 | 2020-09-04 | 柏科数据技术(深圳)股份有限公司 | 基于飞腾平台的目录读取方法、装置、服务器和存储介质 |
CN111708636A (zh) * | 2020-06-16 | 2020-09-25 | 西安微电子技术研究所 | 一种基于多处理器的cpci并行处理系统及方法 |
CN112000483A (zh) * | 2020-08-28 | 2020-11-27 | 山东超越数控电子股份有限公司 | 一种系统的动态处理方法及可穿戴计算机系统 |
CN112346833A (zh) * | 2020-09-30 | 2021-02-09 | 深圳致星科技有限公司 | 用于隐私计算的任务处理方法、处理器及异构处理系统 |
CN113496272A (zh) * | 2021-05-10 | 2021-10-12 | 中国电子科技集团公司第十四研究所 | 一种基于异构平台的卷积神经网络运算方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843045A (zh) * | 2017-01-23 | 2017-06-13 | 张军 | 一种基于多核异构cpu‑gpu‑fpga系统架构的嵌入式操作系统原型 |
CN106886690A (zh) * | 2017-01-25 | 2017-06-23 | 人和未来生物科技(长沙)有限公司 | 一种面向基因数据计算解读的异构平台 |
CN107273331A (zh) * | 2017-06-30 | 2017-10-20 | 山东超越数控电子有限公司 | 一种基于cpu+gpu+fpga架构的异构计算系统和方法 |
CN107358238A (zh) * | 2017-03-01 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种提取图像特征信息的方法及系统 |
CN107391429A (zh) * | 2017-08-07 | 2017-11-24 | 胡明建 | 一种cpu+gpu+fpga的设计方法 |
-
2019
- 2019-05-14 CN CN201910396289.6A patent/CN110333946A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843045A (zh) * | 2017-01-23 | 2017-06-13 | 张军 | 一种基于多核异构cpu‑gpu‑fpga系统架构的嵌入式操作系统原型 |
CN106886690A (zh) * | 2017-01-25 | 2017-06-23 | 人和未来生物科技(长沙)有限公司 | 一种面向基因数据计算解读的异构平台 |
CN107358238A (zh) * | 2017-03-01 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种提取图像特征信息的方法及系统 |
CN107273331A (zh) * | 2017-06-30 | 2017-10-20 | 山东超越数控电子有限公司 | 一种基于cpu+gpu+fpga架构的异构计算系统和方法 |
CN107391429A (zh) * | 2017-08-07 | 2017-11-24 | 胡明建 | 一种cpu+gpu+fpga的设计方法 |
Non-Patent Citations (1)
Title |
---|
范兴山: "基于异构计算的矩阵广义逆算法研究及实现", 《中国优秀硕士学位论文全文数据库 基础科学辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190735A (zh) * | 2019-12-30 | 2020-05-22 | 湖南大学 | 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统 |
CN111190735B (zh) * | 2019-12-30 | 2024-02-23 | 湖南大学 | 一种基于Linux的片上CPU/GPU流水化计算方法及计算机系统 |
CN111488051A (zh) * | 2020-03-06 | 2020-08-04 | 复旦大学 | 基于cpu和fpga协同计算的云端深度神经网络优化方法 |
CN111625357A (zh) * | 2020-05-22 | 2020-09-04 | 柏科数据技术(深圳)股份有限公司 | 基于飞腾平台的目录读取方法、装置、服务器和存储介质 |
CN111708636A (zh) * | 2020-06-16 | 2020-09-25 | 西安微电子技术研究所 | 一种基于多处理器的cpci并行处理系统及方法 |
CN111708636B (zh) * | 2020-06-16 | 2024-03-08 | 西安微电子技术研究所 | 一种基于多处理器的cpci并行处理系统及方法 |
CN112000483A (zh) * | 2020-08-28 | 2020-11-27 | 山东超越数控电子股份有限公司 | 一种系统的动态处理方法及可穿戴计算机系统 |
CN112346833A (zh) * | 2020-09-30 | 2021-02-09 | 深圳致星科技有限公司 | 用于隐私计算的任务处理方法、处理器及异构处理系统 |
CN112346833B (zh) * | 2020-09-30 | 2022-11-22 | 深圳致星科技有限公司 | 用于隐私计算的任务处理方法、处理器及异构处理系统 |
CN113496272A (zh) * | 2021-05-10 | 2021-10-12 | 中国电子科技集团公司第十四研究所 | 一种基于异构平台的卷积神经网络运算方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110333946A (zh) | 一种基于人工智能cpu数据处理系统及方法 | |
US12061968B2 (en) | Neural network instruction set architecture | |
CN208061184U (zh) | 矢量处理单元 | |
US11544191B2 (en) | Efficient hardware architecture for accelerating grouped convolutions | |
CN111143174B (zh) | 在共享功率/热约束下操作的硬件的最佳操作点估计器 | |
CN102870096B (zh) | 子缓冲器对象 | |
US10719470B2 (en) | Reconfigurable fabric direct memory access with multiple read or write elements | |
CN101714247B (zh) | 单通道镶嵌 | |
CN108874744A (zh) | 矩阵乘积累加运算的广义加速 | |
US12008067B2 (en) | Sparse matrix multiplication acceleration mechanism | |
JP2020518042A (ja) | 処理装置と処理方法 | |
CN103207774B (zh) | 用于解决线程发散的方法和系统 | |
CN103309786A (zh) | 用于在非可抢占式图形处理单元上交互调试的方法和装置 | |
CN104050706A (zh) | 用于低功率图形渲染的像素着色器旁路 | |
US20210158155A1 (en) | Average power estimation using graph neural networks | |
CN103309702A (zh) | 用于并行线程子集的一致加载处理 | |
CN103197916A (zh) | 用于源操作数收集器高速缓存的方法和装置 | |
CN103294536A (zh) | 控制用于处理任务的工作分布 | |
CN103176848A (zh) | 计算工作分布参考计数器 | |
CN111860807B (zh) | 分形计算装置、方法、集成电路及板卡 | |
CN107391429A (zh) | 一种cpu+gpu+fpga的设计方法 | |
Huang et al. | IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency | |
EP3839834A1 (en) | Topological scheduling | |
KR20200033711A (ko) | 스케일-아웃 고대역폭 메모리 시스템 | |
US20230195836A1 (en) | One-dimensional computational unit for an integrated circuit |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191015 |
|
RJ01 | Rejection of invention patent application after publication |