CN117892784A - 光电计算系统、加速卡和光电计算的调度方法 - Google Patents
光电计算系统、加速卡和光电计算的调度方法 Download PDFInfo
- Publication number
- CN117892784A CN117892784A CN202211256055.XA CN202211256055A CN117892784A CN 117892784 A CN117892784 A CN 117892784A CN 202211256055 A CN202211256055 A CN 202211256055A CN 117892784 A CN117892784 A CN 117892784A
- Authority
- CN
- China
- Prior art keywords
- result
- calculation
- module
- data
- model
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004364 calculation method Methods 0.000 claims abstract description 467
- 230000003287 optical effect Effects 0.000 claims abstract description 173
- 238000012545 processing Methods 0.000 claims abstract description 100
- 230000001133 acceleration Effects 0.000 claims abstract description 36
- 230000005693 optoelectronics Effects 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 26
- 238000012549 training Methods 0.000 claims description 22
- 238000004064 recycling Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 238000011176 pooling Methods 0.000 description 12
- 229920005994 diacetyl cellulose Polymers 0.000 description 9
- 230000003993 interaction Effects 0.000 description 7
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/067—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means
- G06N3/0675—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means using electro-optical, acousto-optical or opto-electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06E—OPTICAL COMPUTING DEVICES; COMPUTING DEVICES USING OTHER RADIATIONS WITH SIMILAR PROPERTIES
- G06E3/00—Devices not provided for in group G06E1/00, e.g. for processing analogue or hybrid data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06E—OPTICAL COMPUTING DEVICES; COMPUTING DEVICES USING OTHER RADIATIONS WITH SIMILAR PROPERTIES
- G06E3/00—Devices not provided for in group G06E1/00, e.g. for processing analogue or hybrid data
- G06E3/001—Analogue devices in which mathematical operations are carried out with the aid of optical or electro-optical elements
- G06E3/005—Analogue devices in which mathematical operations are carried out with the aid of optical or electro-optical elements using electro-optical or opto-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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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/067—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Nonlinear Science (AREA)
- Optics & Photonics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Advance Control (AREA)
Abstract
本申请提供了一种光电计算系统、加速卡和光电计算的调度方法,属于数据处理技术领域。该光电计算系统包括处理器和加速卡,处理器向该加速卡发送模型和待计算数据,该光计算模块对该待计算数据和该模型进行线性计算以得到第一结果,向该电计算模块发送该第一结果,该电计算模块对该第一结果和该模型进行非线性计算以得到第二结果,向该光电循环模块发送该第二结果,该光电循环模块在该第二结果不满足预设条件的情况下,向该光计算模块发送该第二结果,以作为下一次该光计算模块进行线性计算的数据。采用该光电计算系统能够降低计算时延。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种光电计算系统、加速卡和光电计算的调度方法。
背景技术
人工智能(artificial intelligence,AI)模型对算力要求越来越高,考虑到AI模型全部使用电计算的能耗比较高,目前使用光计算和电计算相结合的方式运行AI模型。
相关技术中,服务器包括处理器、光计算模块和电计算模块,AI模型的计算包括卷积计算、池化计算和全连接计算。处理器将卷积计算内容发给光计算模块,光计算模块卷积计算完成后将卷积计算结果返回给处理器。处理器将卷积计算结果发送给电计算模块。电计算模块使用卷积计算结果进行池化计算完成后,将池化计算结果返回给处理器。处理器将池化计算结果发送给电计算模块。电计算模块使用池化计算结果进行全连接计算完成后,将全连接计算结果返回给处理器。
由于AI模型包括多次卷积计算、多次池化计算和多次全连接计算,每次的计算结果均需要返回给处理器,导致计算时延比较高。
发明内容
本申请提供了一种光电计算系统、加速卡和光电计算的调度方法,能够降低计算时延。
第一方面,本申请提供了一种光电计算系统,该光电计算系统包括处理器和加速卡,该加速卡包括光计算模块、电计算模块和光电循环模块,该处理器,用于向该加速卡发送模型和待计算数据,该光计算模块,用于对该待计算数据和该模型进行线性计算以得到第一结果,向该电计算模块发送该第一结果,该电计算模块,用于对该第一结果和该模型进行非线性计算以得到第二结果,向该光电循环模块发送该第二结果,该光电循环模块,用于在该第二结果不满足预设条件的情况下,向该光计算模块发送该第二结果,以作为下一次该光计算模块进行线性计算的数据。
本申请所示的方案中,光计算系统包括处理器和加速卡,加速卡包括光计算模块、电计算模块和光电循环模块,处理器将模型和待计算数据一次性下发给加速卡,加速卡中光计算模块对待计算数据和模型进行线性计算,获得第一结果,将第一结果传输给电计算模块,电计算模块对第一结果和模型进行非线性计算,获得第二结果,将第二结果传输给光电循环模块,在第二结果不满足预设条件的情况下,光电循环模块将第二结果传输给光计算模块,继续进行循环计算,使得在获得输出之前,中间结果不上传给处理器,从而能够降低计算时延。
在一种示例中,该处理器包括全局调度模块,该全局调度模块,用于向该光计算模块和该电计算模块分别发送该模型的线性算子和非线性算子,并向该加速卡发送该模型的参数和该待计算数据,该线性算子用于该光计算模块对该待计算数据和该模型进行线性计算,该非线性算子用于该电计算模块对该第一结果和该模型进行非线性计算。
本申请所示的方案中,处理器包括全局调度模块,能够将模型的线性算子和非线性算子拆分开,向光计算模块发送线性算子,使得光计算模块使用线性算子进行线性计算,向电计算模块发送非线性算子,使得电计算模块使用线性算子进行非线性计算。并且处理器将待计算数据和模型的参数一次性下发给加速卡,使得在在获得输出前不需要处理器的参与,能够降低计算时延。
在一种示例中,该电计算模块包括数据处理单元和电计算单元,该数据处理单元,用于接收该待计算数据和该模型,向该光计算模块发送该待计算数据和该模型中待计算数据对应的参数,该光计算模块,用于对该待计算数据和该待计算数据对应的参数进行线性计算,向该数据处理单元发送该第一结果,该数据处理单元,用于向该电计算单元发送该第一结果和该模型中第一结果对应的参数,该电计算单元,用于对该第一结果和该第一结果对应的参数进行非线性计算,向该光电循环模块发送该第二结果,该光电循环模块,用于向该数据处理单元发送该第二结果,该数据处理单元,还用于向该光计算模块发送该第二结果和该模型中第二结果对应的参数。
本申请所示的方案中,电计算模块包括数据处理单元和电计算单元,数据处理单元负责电计算单元和光计算模块之间的交互,并且负责光电循环模块与电计算模块以及光计算模块之间的交互,使得加速卡能够获得处理器下发的内容的输出。
在一种示例中,该处理器,还用于:确定该光计算模块进行线性计算的内容的第一输入时间差,向该加速卡发送该第一输入时间差,以使输入该光计算模块进行线性计算的内容的时间差为该第一输入时间差。
本申请所示的方案中,处理器计算出第一输入时间差,使得光计算模块进行线性计算时数据和参数在时间上对齐,能够准确进行线性计算。
在一种示例中,该处理器,还用于:确定该电计算模块进行非线性计算的内容的第二输入时间差,向该加速卡发送该第二输入时间差,以使输入该电计算模块进行非线性计算的内容的时间差为该第二输入时间差。
本申请所示的方案中,处理器计算出第二输入时间差,使得电计算模块进行非线性计算时数据和参数在时间上对齐,能够准确进行非线性计算。
在一种示例中,该光电循环模块,还用于在该第二结果满足该预设条件的情况下,向该处理器发送该第二结果,以作为该模型的输出。
本申请所示的方案中,在第二结果满足预设条件时,说明加速卡获得模型的输出,向处理器输出第二结果,作为模型的输出。
在一种示例中,该预设条件为该光电循环模块向该光计算模块发送第二结果的次数达到第一阈值。
本申请所示的方案中,光电循环模块可以使用循环次数,判断第二结果是否满足预设条件。
在一种示例中,该加速卡应用于该模型的训练过程,该预设条件为该模型对应的损失值小于或等于第二阈值。
本申请所示的方案中,在加速卡应用于模型的训练过程中时,光电循环模块可以使用损失值判断第二结果是否满足预设条件。
在一种示例中,该光电计算系统包括的加速卡为多个,多个该加速卡部署在相同的设备,或者,多个该加速卡中至少存在两个加速卡部署在不同的设备。
本申请所示的方案中,多个加速卡能够有多种部署方式,适应性强。
在一种示例中,该处理器的数目大于或等于2,该光电计算系统包括的加速卡为一个。
本申请所示的方案中,一个加速卡为多个处理器服务。
第二方面,本申请提供了一种加速卡,该加速卡包括光计算模块、电计算模块和光电循环模块,该光计算模块,用于获取待计算数据和模型,对该待计算数据和该模型进行线性计算以得到第一结果,向该电计算模块发送该第一结果,该电计算模块,用于获取该模型,对该第一结果和该模型进行非线性计算以得到第二结果,向该光电循环模块发送该第二结果,该光电循环模块,用于该第二结果不满足预设条件的情况下,向该光计算模块发送该第二结果,以作为下一次该光计算模块进行线性计算的数据。
本申请所示的方案,加速卡包括光计算模块、电计算模块和光电循环模块,通过光电循环模块能够使得电计算模块和光计算模块之间的计算结果进行循环,使得加速卡获得输出之前不需要和其它器件进行交互,能够降低计算时延。
在一种示例中,该电计算模块包括数据处理单元和电计算单元,该数据处理单元,用于接收该待计算数据和该模型,向该光计算模块发送该待计算数据和该模型中该待计算数据对应的参数,该光计算模块,用于对该待计算数据和该待计算数据对应的参数进行线性计算,向该数据处理单元发送该第一结果,该数据处理单元,用于向该电计算单元发送该第一结果和该模型中该第一结果对应的参数,该电计算单元,用于对该第一结果和该第一结果对应的参数进行非线性计算,向该光电循环模块发送获得的第二结果,该光电循环模块,用于向该数据处理单元发送本次接收到的第二结果,该数据处理单元,还用于向该光计算模块发送该光电循环模块发送的第二结果和该模型中该光电循环模块发送的第二结果对应的参数。
本申请所示的方案中,电计算模块包括数据处理单元和电计算单元,数据处理单元负责电计算单元和光计算模块之间的交互,并且负责光电循环模块与电计算模块以及光计算模块之间的交互,使得加速卡能够获得输出。
在一种示例中,该光电循环模块,还用于在该第二结果满足该预设条件的情况下,输出该第二结果,以作为该模型的输出。
本申请所示的方案中,在第二结果满足预设条件时,说明加速卡获得模型的输出,向处理器输出第二结果,作为模型的输出。
在一种示例中,该预设条件为该光电循环模块向该光计算模块发送第二结果的次数达到第一阈值。
本申请所示的方案中,光电循环模块可以使用循环次数,判断第二结果是否满足预设条件。
在一种示例中,该加速卡应用于该模型的训练过程,该预设条件为该模型对应的损失值小于或等于第二阈值。
本申请所示的方案中,在加速卡应用于模型的训练过程中时,光电循环模块可以使用损失值判断第二结果是否满足预设条件。
第三方面,本申请提供了一种光电计算的调度方法,该方法包括:确定加速卡所运行的模型以及该加速卡进行计算的待计算数据,确定该加速卡中光计算模块进行线性计算的内容的第一输入时间差,确定该加速卡中电计算模块进行非线性计算的内容的第二输入时间差,向该加速卡发送该模型、该待计算数据、该第一输入时间差和该第二输入时间差,接收该加速卡发送的该模型的输出结果。
本申请所示的方案中,在光电计算过程中,将加速卡所运行的模型、该加速卡进行计算的待计算数据、第一输入时间差和第二输入时间差一起下发给加速卡,使得加速卡使用模型对待计算数据进行计算,获得该模型的输出结果,接收加速卡发送的该模型的输出结果,这样,对待计算数据的计算过程均在加速卡上进行,而不需要其它器件的参与,能够降低计算时延,而且还下发了进行线性计算的输入时间差和非线性计算的输入时间差,能够准确进行线性计算和非线性计算。
在一种示例中,该确定该加速卡中光计算模块进行线性计算的内容的第一输入时间差,包括:向该光计算模块发送第一参考参数和第一参考数据,接收该光计算模块返回的第一计算结果,该第一计算结果为该光计算模块对该第一参考参数和该第一参考数据进行线性计算获得的结果,基于该第一计算结果,确定该光计算模块进行线性计算的内容的第一输入时间差。
本申请所示的方案中,能够通过向光计算模块发送参考参数和参考数据,获得光计算模块进行线性计算的内容的输入时间差。
在一种示例中,该确定该加速卡中电计算模块进行非线性计算的内容的第二输入时间差,包括:向该电计算模块发送第二参考参数和第二参考数据,接收该电计算模块返回的第二计算结果,该第二计算结果为该电计算模块对该第二参考参数和该第二参考数据进行非线性计算获得的结果,基于该第二计算结果,确定该电计算模块进行非线性计算的内容的第二输入时间差。
本申请所示的方案中,能够通过向电计算模块发送参考参数和参考数据,获得电计算模块进行非线性计算的内容的输入时间差。
第四方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机指令,计算机指令由处理器读取以使光电计算系统执行本申请实施例提供的光电计算的调度方法。
第五方面,本申请提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得光电计算系统执行本申请实施例提供的光电计算的调度方法。
附图说明
图1是传统的光电计算流程示意图;
图2是本申请一个示例性的实施例提供的光电计算系统的示意图;
图3是本申请一个示例性的实施例提供的光电计算系统的示意图;
图4是本申请一个示例性的实施例提供的拆分线性算子和非线性算子的示意图;
图5是本申请一个示例性的实施例提供的光电计算系统的示意图;
图6是本申请一个示例性的实施例提供的光电计算系统的示意图;
图7是本申请一个示例性的实施例提供的数据与参数的时间对齐示意图;
图8是本申请一个示例性的实施例提供的处理器与加速卡的部署示意图;
图9是本申请一个示例性的实施例提供的处理器与加速卡的部署示意图;
图10是本申请一个示例性的实施例提供的处理器与加速卡的部署示意图;
图11是本申请一个示例性的实施例提供的加速卡的结构示意图;
图12是本申请一个示例性的实施例提供的光电计算的调度方法流程示意图。
图例说明
1、处理器,2、加速卡,21、光计算模块,22、电计算模块,23、光电循环模块;
11、全局调度模块;
221、数据处理单元,222、电计算单元,223、高速数据传输单元。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
AI模型对算力要求越来越高,考虑到AI模型全部使用电计算的能耗比较高,目前使用光计算和电计算相结合的方式运行AI模型。
在传统的光电计算方法中,服务器包括处理器、光计算模块和电计算模块,参见图1,处理器将图像和对应的参数通过电计算模块下发给光计算模块进行第一层卷积计算,光计算模块将第一层卷积计算的结果返回给处理器。处理器将第一层卷积计算的结果和对应的参数下发给电计算模块,进行第一层池化计算,电计算模块将第一层池化计算的结果返回给处理器。处理器将第一层池化计算的结果和对应的参数下发给电计算模块,进行第一层全连接计算,电计算模块将第一层全连接计算的结果返回给处理器。在计算未完成时,处理器将第一层全连接计算的结果和对应的参数下发给光计算模块,进行第二层卷积计算,光计算模块将第二层卷积计算的结果返回给处理器,处理器将第二层卷积计算的结果和对应的参数下发给电计算模块,进行第二层池化计算,电计算模块将第二层池化计算的结果返回给处理器。处理器将第二层池化计算的结果和对应的参数下发给电计算模块,进行第二层全连接计算,电计算模块将第二层全连接计算的结果返回给处理器,一直执行该循环直至计算完成。
由于AI模型包括多层卷积计算、多层池化计算和多层全连接计算,需要多次循环计算,每次光计算模块和电计算模块的计算结果均需要返回处理器,导致计算时延比较高。
鉴于上述技术问题,本申请实施例提供了一种光电计算系统,参见图2,光电计算系统包括处理器1和加速卡2,加速卡2包括光计算模块21、电计算模块22和光电循环模块23。光计算模块21与电计算模块22连接,光计算模块21与光电循环模块23连接,电计算模块22与光电循环模块23连接。光计算模块21用于进行线性计算,电计算模块22用于进行非线性计算。
处理器1确定加速卡2上所要运行的模型,该模型可以是AI模型的全部,也可以是AI模型中的一部分。处理器1向加速卡2发送该模型和待计算数据。加速卡2中光计算模块21对待计算数据和该模型进行线性计算,以得到第一结果,光计算模块21向电计算模块22发送第一结果。电计算模块22对第一结果和该模型进行非线性计算,以得到第二结果,电计算模块22向光电循环模块23发送第二结果。光电循环模块23判断第二结果不满足预设条件,向光计算模块21发送本次接收到的第二结果,以作为下一次光计算模块21进行线性计算的数据。光计算模块21接收到第二结果后,对第二结果和该模型进行线性计算,以得到第一结果,光计算模块21向电计算模块22发送第一结果。电计算模块22继续对第一结果和该模型进行非线性计算,以得到第二结果,电计算模块22向光电循环模块23发送第二结果。光电循环模块23判断第二结果不满足预设条件,向光计算模块21发送本次接收到的第二结果,以作为下一次光计算模块21进行线性计算的数据。此处描述了两次循环的过程,三次及三次以上循环的过程参见两次循环的过程,此处不再赘述。
需要说明的是,在每次循环中,光计算模块21向电计算模块22发送第一结果,但是每次发送的是当次循环中光计算模块21计算得到的结果,只不过均称为是第一结果,电计算模块22向光循环模块23发送第二结果,但是每次发送的是当次循环中电计算模块22计算得到的结果,只不过均称为是第二结果。
在一种示例中,处理器1包括全局调度模块11,图3提供了对应的光电计算系统的示意图。全局调度模块11在编译该模型对应的计算图时,拆分该模型的线性算子和非线性算子,在拆分线性算子和非线性算子时,分别对线性算子和非线性算子进行编译,在编译线性算子时,根据光计算模21的计算资源进行编译,使得线性算子能硬化至光计算模块21,在编译非线性算子时,根据电计算模块22的计算资源进行编译,使得非线性算子能够硬化至电计算模块22,参见图4。本申请实施例中,线性算子可以是卷积计算所使用的算子,非线性算子可以是整流线性单元(rectified linear unit,Relu)和池化(pool)计算等所使用的算子。
全局调度模块11控制将线性算子硬化至光计算模块21,并且将非线性算子硬化至加速卡2的电计算模块22。在线性算子硬化至光计算模块21后,线性算子使用光计算模块21中的物理光路进行体现。在非线性算子硬化至电计算模块22后,非线性算子使用电计算模块22的物理电路进行体现。不同的非线性算子被硬化为不同的物理电路,如Relu计算使用的算子和pool计算所使用的算子被硬化为两个物理电路。
全局调度模块11还可以向加速卡2下发待计算数据和模型的参数,模型与待计算数据对应,在模型为对图像识别的模型时,待计算数据为图像或者视频,在模型为对文字进行识别的模型时,待计算数据为文字。在模型为AI模型的全部时,待计算数据为AI模型的输入,在模型为AI模型的部分时,待计算数据为AI模型的中间输出量或者AI模型的输入。
光计算模块21使用线性算子对待计算数据和待计算数据对应的参数进行线性计算,获得第一结果,待计算数据对应的参数为模型的参数中计算待计算数据时使用的参数,例如,待计算数据对应的参数为卷积计算时使用的卷积核。该光计算模块21向加速卡2的电计算模块22发送第一结果。
电计算模块22使用非线性算子对第一结果和第一结果对应的参数进行非线性计算,获得第二结果,第一结果对应的参数为模型的参数中计算第一结果时使用的参数。该电计算模块22向光电循环模块23发送第二结果。
光电循环模块23判断第二结果是否满足预设条件,在第二结果不满足预设条件的情况下,向加速卡2的光计算模块21发送第二结果,以作为再次输入该光计算模块21进行线性计算的数据,直至第二结果满足预设条件,说明获得加速卡的输出,向处理器1输出第二结果,最后一次电计算模块22输出的第二结果为全局调度模块11下发的待计算数据的最终计算结果。
采用本申请实施例所示的光电计算系统,处理器1一次性将线性算子和非线性算子分别硬化至光计算模块21和电计算模块22,并且一次性向加速卡2下发待计算数据和模型的参数,加速卡2中的光计算模块21和电计算模块22循环计算获得待计算数据的计算结果,将该计算结果输出给处理器1。这样,光计算模块21的计算结果不需要每次都返回到处理器1,电计算模块22的计算结果也不需要每次都返回到处理器1,使得在对待计算数据的计算过程中,不需要处理器1的参与就能获得待计算数据的计算结果,减少加速卡2与处理器1的交互次数,因此,能够降低计算时延。
需要说明的是,加速卡2可以应用于模型的推理过程中,也可以应用于模型的训练过程。在加速卡2应用于模型的推理过程中时,待计算数据为待推理数据,加速卡2向处理器1输出的第二结果为模型的推理结果。例如,模型用于分类,待计算数据为一张图像,加速卡2向处理器1输出的第二结果为该图像所属的类别。在加速卡2应用于模型的训练过程中时,待计算数据为训练样本,加速卡2向处理器1输出的第二结果可以是当前模型对应的损失值等。另外,加速卡2还向处理器1输出得到当前模型对应的损失值所使用的参数。
在一种示例中,处理器1通过网卡从连接的存储网络中加载待计算数据和加速卡2上所运行的模型,将待计算数据和该模型存储在光电计算系统的动态随机存取内存(dynamic random access memory,DRAM)中,然后再从DRAM将待计算数据和模型下发给加速卡2。在处理器1接收到加速卡2发送的第二结果后,将第二结果存储至DRAM,通过网卡存储至连接的存储网络。
在一种示例中,电计算模块22包括数据处理单元221和电计算单元222,图5提供了对应的光电计算系统的示意图。参见图5,数据处理单元221与处理器1连接,数据处理单元221与电计算单元222连接,数据处理单元221与光计算模块21连接。
处理器1向加速卡2发送待计算数据和模型的参数,加速卡2的数据处理单元221接收待计算数据和模型的参数。此处,发送模型的参数时,还会通知数据处理单元221模型的参数所使用的顺序。该数据处理单元221向光计算模块21发送待计算数据和模型的参数中待计算数据对应的参数,待计算数据对应的参数为计算待计算数据时使用的参数。
待计算数据和待计算数据对应的参数均是以电数字信号的格式发送至光计算模块21。该光计算模块21包括数字模拟转换器(digital to analog converter,DAC)和电光转换器。该光计算模块21接收到待计算数据和待计算数据对应的参数后,先使用DAC将电数字信号转换为电模拟信号,再使用电光转换器将电模拟信号转换为光模拟信号,使得待计算数据和待计算数据对应的参数均是光模拟信号。此处待计算数据和待计算数据对应的参数可以使用同一个DAC和电光转换器,也可以使用不同的DAC和电光转换器。光计算模块21使用线性算子对待计算数据和待计算数据对应的参数进行线性计算,获得第一结果。第一结果为光模拟信号。该光计算模块21还包括模拟数字转换器(analog to digitalconverter,ADC)和光电转换器。光计算模块21使用光电转换器将光模拟信号转换为电模拟信号,然后使用ADC将电模拟信号转换为电数字信号。该光计算模块21向数据处理单元221发送第一结果,第一结果以电数字信号的格式传输至数据处理单元221。此处,DAC、电光转换器、ADC和光电转换器组成光计算模块21的光电接口,该光电接口用于光计算模块21与电计算模块22进行交互。
数据处理单元221使用模型的参数的使用顺序,确定第一结果对应的参数。例如,第一结果为第一层卷积计算的结果,第一结果对应的参数为第一层Relu使用的参数。该数据处理单元221向电计算单元222发送第一结果和第一结果对应的参数。
电计算单元222使用非线性算子对第一结果和第一结果对应的参数进行非线性计算,获得第二结果,向光电循环模块23发送第二结果。
光电循环模块23判断第二结果是否满足预设条件,在第二结果不满足预设条件的情况下,向加速卡2的光计算模块21发送第二结果,以作为再次输入该光计算模块21进行线性计算的数据,直至第二结果满足预设条件,说明获得输出,向处理器1输出第二结果,最后一次电计算模块22输出的第二结果为全局调度模块11下发的待计算数据的最终计算结果。
在图5中,使用带箭头的虚线表现加速卡2中的循环过程,即在加速卡2中,循环过程为:数据处理单元221-光计算模块21-数据处理单元221-电计算单元222-光电循环模块23-数据处理单元221-光计算模块21-…-光电循环模块23。相应的,在光电计算系统中,待计算数据被处理的过程为:处理器1-数据处理单元221-光计算模块21-数据处理单元221-电计算单元222-光电循环模块23-数据处理单元221-光计算模块21-…-光电循环模块23-处理器1。
在一种示例中,光计算模块21和电计算模块22之间高速传输数据,图6提供了对应的光电计算系统的示意图,参见图6,电计算模块22包括数据处理单元221、电计算单元222和高速数据传输单元223。数据处理单元221与处理器1连接,数据处理单元221与高速数据传输单元223连接,数据处理单元221与电计算单元222连接,高速数据传输单元223与光计算模块21连接。
处理器1向加速卡2发送待计算数据和模型的参数,数据处理单元221接收待计算数据和模型的参数。该数据处理单元221通过高速数据传输单元223向光计算模块21发送待计算数据和待计算数据对应的参数,待计算数据对应的参数为计算待计算数据时使用的参数。
待计算数据和待计算数据对应的参数均是以电数字信号的格式发送至光计算模块21。该光计算模块21接收到待计算数据和待计算数据对应的参数后,先使用DAC将电数字信号转换为电模拟信号,再使用电光转换器将电模拟信号转换为光模拟信号,使得待计算数据和待计算数据对应的参数均是光模拟信号。此处待计算数据和待计算数据对应的参数可以使用同一个DAC和电光转换器,也可以使用不同的DAC和电光转换器。光计算模块21使用线性算子对待计算数据和待计算数据对应的参数进行线性计算,获得第一结果。第一结果为光模拟信号。光计算模块21使用光电转换器将光模拟信号转换为电模拟信号,然后使用ADC将电模拟信号转换为电数字信号。该光计算模块21通过高速数据传输单元223向数据处理单元221发送第一结果,第一结果以电数字信号的格式传输至数据处理单元221。
数据处理单元221确定第一结果对应的参数。该数据处理单元221向电计算单元222发送第一结果和第一结果对应的参数。
电计算单元222使用非线性算子对第一结果和第一结果对应的参数进行非线性计算,获得第二结果,向光电循环模块23发送第二结果。光电循环模块23接收到第二结果后的处理与前文中的处理相同,此处不再赘述。
在图5中,使用带箭头的虚线表现加速卡2中的循环过程,即在加速卡2中,循环过程为:数据处理单元221-高速数据传输单元223-光计算模块21-高速数据传输单元223-数据处理单元221-电计算单元222-光电循环模块23-数据处理单元221-高速数据传输单元223-光计算模块21-…-光电循环模块23。相应的,在光电计算系统中,待计算数据被处理的过程为:处理器1-数据处理单元221-高速数据传输单元223-光计算模块21-高速数据传输单元223-数据处理单元221-电计算单元222-光电循环模块23-数据处理单元221-高速数据传输单元223-光计算模块21-…-光电循环模块23-处理器1。
可选地,在线性算子为卷积计算算子时,待计算数据对应的参数为卷积核,待计算数据的大小有可能比卷积核大,数据处理单元221将待计算数据进行拆分为多个子计算数据,数据处理单元221每次通过高速数据传输单元223向光计算模块21发送一个子计算数据和卷积核,光计算模块21对该一个子计算数据和卷积核进行线性计算,获得一个结果,通过高速数据传输单元223向数据处理单元221发送该结果。然后数据处理单元221继续通过高速数据传输单元223向光计算模块21发送下一个子计算数据和卷积核,直至数据处理单元221接收到该多个子计算数据对应的结果,将该多个子计算数据对应的结果进行合并,获得第一结果。例如,待计算数据为图像,图像尺寸为7*7,卷积核大小为3*3,将图像拆分为多个3*3的子图像。
可选地,光计算模块21可以通过光处理单元(optical processing unit,OPU)板卡实现,电计算模块22可以通过现场可编程门阵列(field-programmable gate array,FPGA)实现。
可选地,在电计算模块22通过FPGA实现时,高速数据传输单元223可以是FPGA的中间层板卡(FPGA mezzanine card,FMC)连接器。
可选地,在电计算模块22通过FPGA实现时,光电循环模块23可以集成在该FPGA上。
在一种示例中,光电循环模块23接收处理器1发送的模型和待计算数据,由光电循环模块23负责将待计算数据和待计算数据对应的参数发送给光计算模块21,并且将光计算模块21输出的第一结果和第一结果对应的参数发送给电计算模块22。
在一种示例中,处理器1可以将判断是否输出第二结果至处理器1的逻辑硬化至光电循环模块23,这样,相当于光电循环模块23是一个判断电路。
光电循环模块23能够有多种方式判断第二结果是否满足预设条件,如下提供三种可行的方式,参见方式一至方式三。
方式一,在加速卡2应用于模型推理或者模型训练过程中时,光电循环模块23能够判断向光计算模块21发送第二结果的次数是否达到第一阈值,第一阈值的大小等于模型的卷积层的次数减去一。若达到第一阈值,则确定第二结果满足预设条件,若未达到第一阈值,则说明还需要进行循环计算,确定第二结果不满足预设条件。例如,光电循环模块23中设置有计数器,计数器从0开始计数,每向光计算模块21发送一次第二结果,计数器的数值增加1,在计数器的数值未增加至第一阈值时,确定第二结果不满足预设条件,在计数器的数值增加至第一阈值时,确定第二结果满足预设条件。
在方式一中,在电计算模块22包括数据处理单元221的情况下,光电循环模块23向光计算模块21发送第二结果的次数为光电循环模块23向数据处理单元221发送第二结果的次数。
方式二,在加速卡2应用于模型训练过程中时,加速卡2的光电循环模块23判断模型对应的损失值是否小于或等于第二阈值,第二阈值的大小可以根据实际需要设置。若小于或等于第二阈值,则确定第二结果满足预设条件,若大于第二阈值,则确定第二结果不满足预设条件。此处,在电计算模块22能够计算出损失值时,第二结果为模型对应的损失值,在电计算模块22不能计算出损失值时,第二结果为训练样本输入模型后的输出,光电循环模块23可以使用第二结果和训练样本的标注信息,计算出模型对应的损失值。
方式三,在加速卡2应用于模型训练过程中时,处理器1向加速卡2输入N个样本,N个样本为待计算数据,N大于1。加速卡2的光电循环模块23判断是否使用N个样本进行训练。若已经使用N个样本进行训练,则确定第二结果满足预设条件,若未全部使用N个样本进行训练,则确定第二结果不满足预设条件。
在一种示例中,电计算模块22中还包括驱动接口,用于驱动光计算模块21。
在一种示例中,在使用线性算子时,为了使得线性算子输出的结果准确,待计算数据和待计算数据对应的参数应同时到达线性算子,但是在实际中,由于一些延迟,难免会导致待计算数据和待计算数据对应的参数未同时到达线性算子。同理,在使用非线性算子时,为了使得非线性算子输出的结果准确,第一结果和第一结果对应的参数应同时到达非线性算子,但是在实际中,由于一些延迟,难免会导致第一结果和第一结果对应的参数未同时到达非线性算子。本申请实施例中,在使用加速卡2进行计算前,对输入光计算模块21进行线性计算的内容进行时间行对齐处理,并且对输入电计算模块22进行非线性计算的内容进行时间对齐处理。
对输入光计算模块21进行线性计算的内容进行时间对齐处理的处理方式如下:
参见图7,预先设置有第一训练信号,第一训练信号包括第一参考参数和第一参考数据。处理器1控制按照第一时间差,向加速卡2的光计算模块21发送第一参考参数和第一参考数据。该光计算模块21使用线性算子对第一参考参数和第一参考数据进行线性运算,获得第一计算结果。该光计算模块21向处理器1返回第一计算结果,处理器1判断第一计算结果是否准确,若准确,则将第一时间差确定为第一输入时间差,若不准确,则更新第一时间差,按照更新后的第一时间差,重新向加速卡2的光计算模块21发送第一参考参数和第一参考数据,直至从光计算模块21接收到准确的第一计算结果,将对应准确的第一计算结果的时间差,确定为第一输入时间差。处理器1向加速卡2发送第一输入时间差,在加速卡2中,数据处理单元221按照第一输入时间差向光计算模块21输入数据和参数,使得光计算模块21接收到数据和参数的时间相同,能够计算出数据和参数的准确结果。
例如,处理器1向加速卡2的数据处理单元221发送第一时间差,以及第一参考参数和第一参考数据,该数据处理单元221按照第一时间差,向加速卡2的光计算模块21发送第一参考参数和第一参考数据。该光计算模块21使用线性算子对第一参考参数和第一参考数据进行线性运算,获得第一计算结果,向该数据处理单元221发送第一计算结果。该数据处理单元221向处理器1发送第一计算结果。处理器1判断第一计算结果是否准确,若准确,则将第一时间差确定为第一输入时间差,若不准确,则更新第一时间差,重新向数据处理单元221发送第一参考参数、第一参考数据和更新后的第一时间差,该数据处理单元221按照更新后的第一时间差,向加速卡2的光计算模块21发送第一参考参数和第一参考数据,直至处理器1确定该光计算模块21返回准确的第一计算结果,将对应准确的第一计算结果的时间差,确定为第一输入时间差。
在该例子中,是由处理器1更新第一时间差,在另一些示例中,处理器1将更新策略通知给加速卡2的数据处理单元221,由该数据处理单元221更新第一时间差,直至获得第一输入时间差。
对输入电计算模块22进行非线性计算的内容进行时间对齐处理的处理方式如下:
预先设置有第二训练信号,第二训练信号包括第二参考参数和第二参考数据。处理器1控制按照第二时间差,向加速卡2的电计算模块22发送第二参考参数和第二参考数据。该电计算模块22使用非线性算子对第二参考参数和第二参考数据进行非线性运算,获得第二计算结果。该电计算模块22向处理器1返回第二计算结果,处理器1判断第二计算结果是否准确,若准确,则将第二时间差确定为第二输入时间差,若不准确,则更新第二时间差,按照更新后的第二时间差,重新向加速卡2的电计算模块22发送第二参考参数和第二参考数据,直至从电计算模块22接收到准确的第二计算结果,将对应准确的第二计算结果的时间差,确定为第二输入时间差。处理器1向加速卡2发送第二输入时间差,在加速卡2中,数据处理单元221按照第二输入时间差向电计算模块22输入数据和参数,使得电计算模块22接收到数据和参数的时间相同,能够计算出数据和参数的准确结果。
例如,处理器1向加速卡2的数据处理单元221发送第二时间差,以及第二参考参数和第二参考数据,该数据处理单元221按照第二时间差,向加速卡2的电计算模块22发送第二参考参数和第二参考数据。该电计算模块22使用非线性算子对第二参考参数和第二参考数据进行线性运算,获得第二计算结果,向该数据处理单元221发送第二计算结果。该数据处理单元221向处理器1发送第二计算结果。处理器1判断第二计算结果是否准确,若准确,则将第二时间差确定为第二输入时间差,若不准确,则更新第二时间差,重新向加速卡2的数据处理单元221发送第二参考参数、第二参考数据和更新后的第二时间差,该数据处理单元221按照更新后的第二时间差,向加速卡2的电计算模块22发送第二参考参数和第二参考数据,直至该电计算模块22返回准确的第二计算结果,将对应准确的第二计算结果的时间差,确定为第二输入时间差。
在该例子中,是由处理器1更新第二时间差,在另一些示例中,处理器1将更新策略通知给加速卡2的数据处理单元221,由该数据处理单元221更新第二时间差,直至获得第二输入时间差。
需要说明的是,在对输入电计算模块22进行非线性计算的内容进行时间对齐处理时,上述描述中电计算模块22计算获得第二计算结果未经过光电循环模块23,直接返回到数据处理单元221,在该种方式中,相当于旁路确定第二输入时间差。在另外一些示例中,电计算模块22计算获得第二计算结果经过光电循环模块23返回到数据处理单元221。
在一种示例中,在加速卡2的使用过程中,第一输入时间差和第二输入时间差有可能会存在波动,处理器1可以控制周期性向光计算模块21发送第一参考参数和第一参考数据,判断光计算模块21获得的第一计算结果是否准确,在不准确时,更新第一输入时间差。同样,处理器1可以控制周期性向电计算模块22发送第二参考参数和第二参考数据,判断电计算模块22获得的第二计算结果是否准确,在不准确时,更新第二输入时间差。这样,能够使得加速卡2的计算准确率较高,进而使得光电计算系统的计算准确率较高。
在一种示例中,光电计算系统包括的加速卡2为多个,处理器1和多个加速卡2部署在同一个设备上,该设备可以是服务器等。
在另一种示例中,光电计算系统包括的加速卡2为多个,多个加速卡2有多种部署方式。如下提供两种可行的方式,参见方式一至方式二。
方式一,该多个加速卡2部署在相同的设备上,该设备可以是服务器等。处理器1可以与该多个加速卡2部署在相同的设备上,也可以与该多个加速卡2部署在不同的设备上。参见图8,在图8中,多个加速卡2的数目为2,2个加速卡2与处理器1部署在同一个服务器上。
方式二,该多个加速卡2中至少存在两个加速卡2部署在不同的设备,该设备可以是服务器等。处理器1可以与部分加速卡2部署在相同的设备上,也可以与该多个加速卡2部署在不同的设备上。例如,参见图9,在图9中,该多个加速卡2的数目为2,其中一个加速卡2与处理器1部署在服务器1上,另外一个加速卡2部署在服务器2上。
在处理器1与加速卡2部署在不同设备上时,处理器1与加速卡2可以通过设备之间的网络进行通信。
可选地,在光电计算系统包括的加速卡2为多个的情况下,处理器1可以获取该多个加速卡2的空闲资源信息,空闲资源信息包括存储资源和计算资源,存储资源为所能存储的数据量,计算资源为所能完成的计算量。处理器1使用该多个加速卡2的空闲资源信息,确定该多个加速卡2分别对应的模型。处理器1拆分该多个加速卡2分别对应的模型的线性算子和非线性算子。
例如,AI模型比较小,多个加速卡2均能部署AI模型的全部,多个加速卡2分别对应的模型均为该AI模型,多个加速卡2能够并行对不同的数据进行推理或者并行进行训练。多个加速卡2并行进行训练,可以认为是数据并行的训练。
再例如,AI模型比较大,单个加速卡2可能不能部署下全部AI模型,处理器1可以使用多个加速卡2的空闲资源信息,将AI模型拆分为多个子模型,每个加速卡2部署一个子模型。这种情况可以认为是模型并行。
在另一种示例中,处理器1的数目大于或等于2,即光电计算系统包括多个处理器1和一个加速卡2,该加速卡2的计算能力比较强,能够同时为多个处理器1下发的待计算数据进行计算。该多个处理器1与该一个加速卡2部署在相同的设备上,该设备可以是服务器等。例如,参见图10,在图10中,多个处理器1的数目为3,3个处理器1与一个加速卡2部署在同一个服务器上。
本申请实施例中,光计算模块21的计算结果不需要每次都返回到处理器1,电计算模块22的计算结果也不需要每次都返回到处理器1,使得在对待计算数据的计算过程中,不需要处理器1的参与就能获得输出,因此能够降低计算时延。
而且由于计算时延降低,所以可以牺牲部分计算时延,将该部分时延转换为降低光计算模块21中DAC和ADC的采样率,从而能够降低光计算模块21的整体功耗,进而能够降低光电计算系统的功耗。这样,不仅相比相关技术的计算时延降低,而且还能够降低光电计算系统的功耗。
本申请实施例还提供了一种加速卡2,参见图11,加速卡2包括光计算模块21、电计算模块22和光电循环模块23。
光计算模块21获取待计算数据和模型,该模型是加速卡2所运行的模型,对待计算数据和模型进行线性计算,获得第一结果,向电计算模块22发送获得第一结果。电计算模块22对第一结果和模型进行非线性计算,获得第二结果,向光电循环模块23发送第二结果。光电循环模块23判断第二结果是否满足预设条件,在第二结果不满足预设条件的情况下,向加速卡2的光计算模块21发送第二结果,以作为再次输入该光计算模块21进行线性计算的数据,直至第二结果满足预设条件,说明获得输出,向处理器1输出第二结果,最后一次电计算模块22输出的第二结果为待计算数据的最终计算结果。
光计算模块21、电计算模块22和光电循环模块23的详细描述参见前文中的描述,此处不再赘述。
本申请实施例还提供了一种光电计算的调度方法,该方法可以通过光电计算的调度装置实现,该调度装置可以是前文中的处理器1,也可以是处理器1中的软件或硬件模块。该方法的流程参见图12中步骤1201至步骤1204。
步骤1201,确定加速卡2所运行的模型以及加速卡22进行计算的待计算数据。
在本实施例中,调度装置确定加速卡2所要运行的模型,以及运行该模型所要计算的待计算数据。例如,调度装置接收到推理请求,推理请求中携带有待推理图像,待推理图像为待计算数据,对待推理图像进行推理的模型为加速卡2所要运行的模型。
步骤1202,确定加速卡2中光计算模块21进行线性计算的内容的第一输入时间差,确定加速卡2中电计算模块22进行非线性计算的内容的第二输入时间差。
在本实施例中,确定第一输入时间差和第二输入时间差的描述参见前文中的描述,此处不再赘述。
步骤1203,向加速卡2发送该模型、该待计算数据、该第一输入时间差和该第二输入时间差。
在本实施例中,调度装置可以将模型、待计算数据、第一输入时间差和第二输入时间差一次性下发给加速卡2。具体的,在下发模型时,是将模型的线性算子硬化至加速卡2的光计算模块21,并且将模型的非线性算子硬化至加速卡2的电计算模块22,并将模型的参数和待计算数据下发给加速卡2。
步骤1204,接收加速卡2发送的该模型的输出结果。
在本实施例中,加速卡2在获得模型的输出结果后,向调度装置发送该输出结果。调度装置接收该输出结果。
需要说明的是,有关光电计算的调度方法的详细内容,可以参照前述内容,在此不再赘述。
本申请实施例还提供了一种光电计算的调度装置,该装置包括:
编译模块,用于:
确定加速卡所运行的模型以及所述加速卡进行计算的待计算数据;
确定所述加速卡中光计算模块进行线性计算的内容的第一输入时间差,确定所述加速卡中电计算模块进行非线性计算的内容的第二输入时间差;
传输模块,用于:
向所述加速卡发送所述模型、所述待计算数据、所述第一输入时间差和所述第二输入时间差;
接收所述加速卡发送的所述模型的输出结果。
在一种示例中,所述编译模块,用于:
向所述光计算模块发送第一参考参数和第一参考数据,接收所述光计算模块返回的第一计算结果,所述第一计算结果为所述光计算模块对所述第一参考参数和所述第一参考数据进行线性计算获得的结果;
基于所述第一计算结果,确定所述光计算模块进行线性计算的内容的第一输入时间差。
在一种示例中,所述编译模块,用于:
向所述电计算模块发送第二参考参数和第二参考数据,接收所述电计算模块返回的第二计算结果,所述第二计算结果为所述电算模块对所述第二参考参数和所述第二参考数据进行非线性计算获得的结果;
基于所述第二计算结果,确定所述电计算模块进行非线性计算的内容的第二输入时间差。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机指令,计算机指令由处理器1读取以使光电计算系统执行本申请实施例提供的光电计算的方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得光电计算系统执行本申请实施例提供的光电计算的方法。
本申请中术语“第一”、“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一阈值可以被称为第二阈值,并且类似地,第二阈值可以被称为第一阈值。第一阈值和第二阈值都可以是阈值,并且在某些情况下,可以是单独且不同的阈值。
本申请中术语“多个”的含义是指两个或两个以上。
以上描述,仅为本申请的示例性的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (18)
1.一种光电计算系统,其特征在于,包括处理器(1)和加速卡(2),所述加速卡(2)包括光计算模块(21)、电计算模块(22)和光电循环模块(23);
所述处理器(1),用于向所述加速卡(2)发送模型和待计算数据;
所述光计算模块(21),用于对所述待计算数据和所述模型进行线性计算以得到第一结果,向所述电计算模块(22)发送所述第一结果;
所述电计算模块(22),用于对所述第一结果和所述模型进行非线性计算以得到第二结果,向所述光电循环模块(23)发送所述第二结果;
所述光电循环模块(23),用于在所述第二结果不满足预设条件的情况下,向所述光计算模块(21)发送所述第二结果,以作为下一次所述光计算模块(21)进行线性计算的数据。
2.根据权利要求1所述的系统,其特征在于,所述处理器(1)包括全局调度模块(11);
所述全局调度模块(11),用于向所述光计算模块(21)和所述电计算模块(22)分别发送所述模型的线性算子和非线性算子,并向所述加速卡(2)发送所述模型的参数和所述待计算数据;所述线性算子用于所述光计算模块(21)对所述待计算数据和所述模型进行线性计算,所述非线性算子用于所述电计算模块(22)对所述第一结果和所述模型进行非线性计算。
3.根据权利要求1所述的系统,其特征在于,所述电计算模块(22)包括数据处理单元(221)和电计算单元(222);
所述数据处理单元(221),用于接收所述待计算数据和所述模型,向所述光计算模块(21)发送所述待计算数据和所述模型中待计算数据对应的参数;
所述光计算模块(21),用于对所述待计算数据和所述待计算数据对应的参数进行线性计算,向所述数据处理单元(221)发送所述第一结果;
所述数据处理单元(221),用于向所述电计算单元(222)发送所述第一结果和所述模型中第一结果对应的参数;
所述电计算单元(222),用于对所述第一结果和所述第一结果对应的参数进行非线性计算,向所述光电循环模块(23)发送所述第二结果;
所述光电循环模块(23),用于向所述数据处理单元(221)发送所述第二结果;
所述数据处理单元(221),还用于向所述光计算模块(21)发送所述第二结果和所述模型中第二结果对应的参数。
4.根据权利要求1至3任一项所述的系统,其特征在于,所述处理器(1),还用于:
确定所述光计算模块(21)进行线性计算的内容的第一输入时间差;
向所述加速卡(2)发送所述第一输入时间差,以使输入所述光计算模块(21)进行线性计算的内容的时间差为所述第一输入时间差。
5.根据权利要求1至4任一项所述的系统,其特征在于,所述处理器(1),还用于:
确定所述电计算模块(22)进行非线性计算的内容的第二输入时间差;
向所述加速卡(2)发送所述第二输入时间差,以使输入所述电计算模块(22)进行非线性计算的内容的时间差为所述第二输入时间差。
6.根据权利要求1至5任一项所述的系统,其特征在于,所述光电循环模块(23),还用于在所述第二结果满足所述预设条件的情况下,向所述处理器(1)发送所述第二结果,以作为所述模型的输出。
7.根据权利要求1至6任一项所述的系统,其特征在于,所述预设条件为所述光电循环模块(23)向所述光计算模块(21)发送第二结果的次数达到第一阈值。
8.根据权利要求1至6任一项所述的系统,其特征在于,所述加速卡(2)应用于所述模型的训练过程;
所述预设条件为所述模型对应的损失值小于或等于第二阈值。
9.根据权利要求1至8任一项所述的系统,其特征在于,所述光电计算系统包括的加速卡(2)为多个;
多个所述加速卡(2)部署在相同的设备;或者,
多个所述加速卡(2)中至少存在两个加速卡(2)部署在不同的设备。
10.根据权利要求1至8任一项所述的系统,其特征在于,所述处理器(1)的数目大于或等于2,所述光电计算系统包括的加速卡(2)为一个。
11.一种加速卡,其特征在于,包括光计算模块(21)、电计算模块(22)和光电循环模块(23);
所述光计算模块(21),用于获取待计算数据和模型,对所述待计算数据和所述模型进行线性计算以得到第一结果,向所述电计算模块(22)发送所述第一结果;
所述电计算模块(22),用于获取所述模型,对所述第一结果和所述模型进行非线性计算以得到第二结果,向所述光电循环模块(23)发送所述第二结果;
所述光电循环模块(23),用于所述第二结果不满足预设条件的情况下,向所述光计算模块(21)发送所述第二结果,以作为下一次所述光计算模块(21)进行线性计算的数据。
12.根据权利要求11所述的加速卡,其特征在于,所述电计算模块(22)包括数据处理单元(221)和电计算单元(222);
所述数据处理单元(221),用于接收所述待计算数据和所述模型,向所述光计算模块(21)发送所述待计算数据和所述模型中待计算数据对应的参数;
所述光计算模块(21),用于对所述待计算数据和所述待计算数据对应的参数进行线性计算,向所述数据处理单元(221)发送所述第一结果;
所述数据处理单元(221),用于向所述电计算单元(222)发送所述第一结果和所述模型中第一结果对应的参数;
所述电计算单元(222),用于对所述第一结果和所述第一结果对应的参数进行非线性计算,向所述光电循环模块(23)发送所述第二结果;
所述光电循环模块(23),用于向所述数据处理单元(221)发送所述第二结果;
所述数据处理单元(221),还用于向所述光计算模块(21)发送所述第二结果和所述模型中第二结果对应的参数。
13.根据权利要求11或12所述的加速卡,其特征在于,所述光电循环模块(23),还用于在所述第二结果满足所述预设条件的情况下,输出所述第二结果,以作为所述模型的输出。
14.根据权利要求13所述的加速卡,其特征在于,所述预设条件为所述光电循环模块(23)向所述光计算模块(21)发送第二结果的次数达到第一阈值。
15.根据权利要求13所述的加速卡,其特征在于,所述加速卡应用于所述模型的训练过程;
所述预设条件为所述模型对应的损失值小于或等于第二阈值。
16.一种光电计算的调度方法,其特征在于,所述方法包括:
确定加速卡所运行的模型以及所述加速卡进行计算的待计算数据;
确定所述加速卡中光计算模块进行线性计算的内容的第一输入时间差,确定所述加速卡中电计算模块进行非线性计算的内容的第二输入时间差;
向所述加速卡发送所述模型、所述待计算数据、所述第一输入时间差和所述第二输入时间差;
接收所述加速卡发送的所述模型的输出结果。
17.根据权利要求16所述的方法,其特征在于,所述确定所述加速卡中光计算模块进行线性计算的内容的第一输入时间差,包括:
向所述光计算模块发送第一参考参数和第一参考数据,接收所述光计算模块返回的第一计算结果,所述第一计算结果为所述光计算模块对所述第一参考参数和所述第一参考数据进行线性计算获得的结果;
基于所述第一计算结果,确定所述光计算模块进行线性计算的内容的第一输入时间差。
18.根据权利要求16或17所述的方法,其特征在于,所述确定所述加速卡中电计算模块进行非线性计算的内容的第二输入时间差,包括:
向所述电计算模块发送第二参考参数和第二参考数据,接收所述电计算模块返回的第二计算结果,所述第二计算结果为所述电计算模块对所述第二参考参数和所述第二参考数据进行非线性计算获得的结果;
基于所述第二计算结果,确定所述电计算模块进行非线性计算的内容的第二输入时间差。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211256055.XA CN117892784A (zh) | 2022-10-13 | 2022-10-13 | 光电计算系统、加速卡和光电计算的调度方法 |
PCT/CN2023/105256 WO2024078059A1 (zh) | 2022-10-13 | 2023-06-30 | 光电计算系统、加速卡和光电计算的调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211256055.XA CN117892784A (zh) | 2022-10-13 | 2022-10-13 | 光电计算系统、加速卡和光电计算的调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117892784A true CN117892784A (zh) | 2024-04-16 |
Family
ID=90644622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211256055.XA Pending CN117892784A (zh) | 2022-10-13 | 2022-10-13 | 光电计算系统、加速卡和光电计算的调度方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117892784A (zh) |
WO (1) | WO2024078059A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117368A (zh) * | 2015-09-18 | 2015-12-02 | 浪潮(北京)电子信息产业有限公司 | 基于gpu的三维纵横波分离的弹性波方程的模拟方法及系统 |
CN106020425A (zh) * | 2016-05-27 | 2016-10-12 | 浪潮(北京)电子信息产业有限公司 | 一种fpga异构加速计算系统 |
US10387533B2 (en) * | 2017-06-01 | 2019-08-20 | Samsung Electronics Co., Ltd | Apparatus and method for generating efficient convolution |
CN113325917A (zh) * | 2020-02-28 | 2021-08-31 | 华为技术有限公司 | 一种光计算装置、系统以及计算方法 |
CN113630517B (zh) * | 2021-10-08 | 2022-01-25 | 清华大学 | 光电感算一体光场智能成像方法及装置 |
-
2022
- 2022-10-13 CN CN202211256055.XA patent/CN117892784A/zh active Pending
-
2023
- 2023-06-30 WO PCT/CN2023/105256 patent/WO2024078059A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024078059A1 (zh) | 2024-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ribeiro et al. | Mlaas: Machine learning as a service | |
CN111062521B (zh) | 一种在线预测方法、系统及服务器 | |
WO2020189844A1 (ko) | 인공 신경망을 처리하는 방법 및 이를 위한 전자 장치 | |
US11651198B2 (en) | Data processing method and apparatus for neural network | |
CN101860752A (zh) | 一种针对嵌入式多核系统的视频编码流水化并行方法 | |
CN111429142B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN111860853B (zh) | 在线预测系统、设备、方法及电子设备 | |
CN113515382B (zh) | 云资源的分配方法、装置、电子设备及存储介质 | |
CN109656544A (zh) | 一种基于执行路径相似度的云服务api适配方法 | |
CN115619005A (zh) | 一种智能用电网络资源优化配置方法及系统 | |
Liang et al. | DNN surgery: Accelerating DNN inference on the edge through layer partitioning | |
CN111882038A (zh) | 模型转换方法与装置 | |
CN114781635A (zh) | 模型部署方法、装置、设备和介质 | |
CN118297911A (zh) | 绝缘子缺陷故障检测方法、装置、存储介质及计算机设备 | |
CN117892784A (zh) | 光电计算系统、加速卡和光电计算的调度方法 | |
US20220019461A1 (en) | Platform health engine in infrastructure processing unit | |
Feng et al. | Group: An end-to-end multi-step-ahead workload prediction approach focusing on workload group behavior | |
US20230386194A1 (en) | System and method for on device edge learning | |
CN109719732B (zh) | 基于光神经网络的机器人系统 | |
CN114237182B (zh) | 机器人调度方法及系统 | |
CN109189031B (zh) | 具有分层框架的分布式控制系统、方法及应用 | |
Broderick et al. | Technique to interconnect and control co‐simulation systems | |
CN115391019B (zh) | 数据采集方法、装置、可读存储介质与芯片 | |
CN109117266B (zh) | 基于多层架构的视频人工智能训练平台 | |
Wang et al. | Towards Wide Area Remote Sensor Calibrations: Applications and Approaches |
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 |