CN117222982A - 加速器控制系统、加速器控制方法和加速器控制程序 - Google Patents
加速器控制系统、加速器控制方法和加速器控制程序 Download PDFInfo
- Publication number
- CN117222982A CN117222982A CN202180097178.0A CN202180097178A CN117222982A CN 117222982 A CN117222982 A CN 117222982A CN 202180097178 A CN202180097178 A CN 202180097178A CN 117222982 A CN117222982 A CN 117222982A
- Authority
- CN
- China
- Prior art keywords
- accelerator
- data
- metadata
- arithmetic processing
- function
- 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 description 42
- 238000012545 processing Methods 0.000 claims abstract description 134
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 134
- 238000010586 diagram Methods 0.000 description 14
- 238000012546 transfer Methods 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000010365 information processing Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
Classifications
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
Abstract
加速器控制装置(10)中,元数据缓冲器(11b)存储包含运算处理的对象的处理数据的所在和指定加速器(20)的运算处理的内容的信息的元数据。轮询功能(13a)在元数据缓冲器(11b)中保存有已由加速器(20)进行了运算处理的元数据的情况下,判定为该加速器(20)的运算处理完成。在加速器(20)中,读入功能(21b)从元数据缓冲器(11b)取得元数据。运算功能(24)按照所取得的元数据中包含的运算处理的对象处理数据的所在和指定加速器(20)的动作的信息,对运算处理的对象处理数据进行运算处理。在运算处理完成的情况下,写入功能(21c)将元数据保存于元数据缓冲器(11b)。
Description
技术领域
本发明涉及加速器控制系统、加速器控制方法和加速器控制程序。
背景技术
以往,已知有在运算处理系统中组装运算加速器(加速器)来使处理高速化的技术。由于半导体的微细化技术的极限,处理器的工作频率的提高、运算器的高集成化变得困难,因此通过该技术,专用于特定的处理而将处理转移(offload)到加速器,实现高性能的计算(参照非专利文献1~非专利文献3)。
具体而言,CPU进行用于经由加速器用的API以及设备驱动器来驱动加速器的控制,加速器读入复制到内核存储空间中的处理数据,进行如果由CPU执行将花费时间的运算处理。加速器在执行运算处理之后通过硬件中断向CPU通知处理完成。
现有技术文献
非专利文献
非专利文献1:J.Yang,D.B.Minturn,F.Hady,“When Poll is Better thanInterrupt”,FAST,vol.12,pp.3-3,[online],2012年,[2021年3月29日检索],互联网<URL:https://www.usenix.org/system/files/conference/fast12/yang.pdf>
非专利文献2:“CUDA Toolkit Documentation v11.2.2”,[online],NVIDIA,[2021年3月29日检索],因特网<URL:https://docs.nvidia.com/cuda/>
非专利文献3:K.Gulati,S.P.Khatri,“GPU Architecture and the CUDAProgramming Model”,Hardware acceleration of EDA algorithms,pp.23-30,[online],Springer,[2021年3月29日检索],因特网<URL:https://link.springer.com/content/pdf/10.1007%2F978-1-4419-0944-2_3.pdf>
发明内容
发明所要解决的课题
然而,在现有技术中,有时难以使用加速器使实时处理高速化。例如,由于加速器由CPU控制,因此每次进行向加速器写入数据、执行运算、读入数据等处理时,都会产生排他控制、处理完成的中断通知。此外,在数据的读入和写入中,在用户空间和内核空间中发生存储器复制。这些处理成为开销,延迟时间增大。在存在多个加速器的情况下,也同样地产生开销,可扩展性降低。因此,难以在实时处理的领域中使用加速器。
本发明是鉴于上述情况而完成的,其目的在于使用加速器使实时处理高速化。
用于解决课题的手段
为了解决上述问题并达成目的,本发明的加速器控制系统的特征在于,具有加速器控制装置和加速器,所述加速器控制装置具有:存储部,其存储控制用数据,该控制用数据包含运算处理的对象数据的所在和指定加速器的运算处理的内容的信息;以及判定部,其在所述存储部中保存有由所述加速器进行了运算处理的控制用数据的情况下,判定为该加速器的运算处理完成,所述加速器具有:取得部,其从所述存储部取得所述控制用数据;运算部,其根据所取得的所述控制用数据中包含的所述运算处理的对象数据的所在和指定加速器的动作的信息,对所述运算处理的对象数据进行运算处理;以及保存部,其在所述运算处理完成的情况下,将所述控制用数据保存于所述存储部。
发明效果
根据本发明,能够使用加速器使实时处理高速化。
附图说明
图1是例示本实施方式的加速器控制系统的概略结构的示意图。
图2是用于说明本实施方式的加速器控制系统的图。
图3是例示元数据的数据结构的图。
图4是例示元数据缓冲器的结构的图。
图5是用于说明数据缓冲器的图。
图6是示出加速器控制装置中的加速器控制处理过程的流程图。
图7是示出加速器中的加速器控制处理过程的流程图。
图8是示出加速器控制处理过程的时序图。
图9是用于说明实施例的图。
图10是示出执行加速器控制程序的计算机的一例的图。
具体实施方式
以下,参照附图,详细说明本发明的一个实施方式。另外,本发明并不限定于该实施方式。另外,在附图的记载中,对同一部分标注同一符号来表示。
[加速器控制系统的结构]
图1是例示本实施方式的加速器控制系统的概略结构的示意图。如图1所示,加速器控制系统1包括加速器控制装置10和加速器20。加速器控制装置10和加速器20能够经由例如总线布线等通信线路相互进行数据通信。
加速器控制装置10是使用CPU(中央处理单元)等通用处理器实现的信息处理装置。加速器控制装置10在用户空间中执行作为由用户定义的处理的应用。另外,在内核空间上进行加速器20等物理设备的工作、管理、用户空间处理中的物理设备的抽象化处理。
用户存储空间、内核存储空间由RAM(Random Access Memory:随机存取存储器)、闪存(Flash Memory)等半导体存储器元件、或者硬盘、光盘等存储装置实现,作为存储部发挥功能。使加速器控制装置10工作的处理程序、在处理程序的执行过程中使用的数据等被预先存储在存储部中,或者在每次处理时被临时存储。
使用通用处理器实现的控制部通过执行存储于存储器的处理程序,如图1所例示的那样,作为设备驱动器的存储器管理功能12、元数据控制功能13、后述的API14等各功能部发挥功能。此外,控制部也可以具备未图示的其他功能部。
在加速器控制装置10中,运算处理的对象数据(下文中也称为处理数据)被配置在用户空间中的用户存储空间中的数据缓冲器11a中。此外,在内核空间中的内核存储空间中的元数据缓冲器11b中配置控制用数据(下文中也称为元数据),该控制用数据包括运算处理的对象数据的所在和指定加速器的运算处理的内容的信息。
加速器20是由GPU(Graphics Processing Unit:图形处理单元)、FPGA(FieldProgrammable Gate Array:现场可编程门阵列)、DPU(Data Processing Unit:数据处理单元)等实现的运算加速器,如图1所例示的那样,作为元数据访问机构21、功能控制块22、数据传输功能23、运算功能24等各功能部发挥功能。
加速器20读入处理数据和元数据,实现运算处理的转移。具体地,加速器20通过对元数据缓冲器11b进行自主轮询来监视元数据是否被配置。加速器20在配置有元数据的情况下,读入所配置的元数据并进行分析来驱动加速器20。加速器20将针对处理数据的运算处理的结果存储在数据缓冲器11a中。
加速器控制装置10可以与加速器20非同步地进行到下一处理。当运算处理完成时,加速器20在元数据缓冲器11b中设置元数据。因此,加速器控制装置10认为运算处理完成。加速器控制装置10从数据缓冲器11a取得针对处理数据的运算处理的结果,并且进行到下一处理。
具体地,加速器控制装置10通过经由安装在设备驱动器中的元数据控制功能13将包括处理数据的所在和运算处理的内容的元数据设置在内核存储空间中的元数据缓冲器11b中,来确定加速器20的工作。
加速器控制装置10经由存储器管理功能12在用户存储空间中生成加速器控制装置10和加速器20能够参考的数据缓冲器11a,并且配置处理数据。
加速器20具有元数据访问机构21。元数据访问机构21具有对内核存储空间中的元数据缓冲器11b进行轮询的功能、读入元数据的功能以及将元数据写入元数据缓冲器的功能,并且能够自主地读入元数据,而与来自加速器控制装置10的明确控制信号无关。
在加载设备驱动器时,通过加速器初始化功能向加速器20通知元数据缓冲器11b的地址等的信息。
加速器20从元数据缓冲器11b读入元数据,元数据分析功能22a对数据进行分析,并按照其描述进行工作。加速器20基于元数据中包含的处理数据的地址、长度的信息,驱动数据传输功能23中的数据读入功能23a,从数据缓冲器11a读出处理数据,用于运算功能24中的运算。在运算功能24中,基于元数据中描述的运算信息来执行运算处理。元数据分析功能22a将分析结果传递给运算功能24,设定运算功能24的运算处理内容。
在运算处理结束后,从运算功能24将运算处理的结果传输给数据写入功能23b,写入到由数据传输控制功能22b指定的数据缓冲器中。然后,从数据传输功能23向完成通知功能22c发送数据传输结束的通知,通过元数据访问机构21的写入功能将元数据写入到元数据缓冲器11b,加速器20的工作完成。
这样,在加速器控制系统1中,将用于控制数据传输、运算处理的元数据配置于主存储器,加速器20自主地进行轮询和读入。由此,能够减少中断等、加速器控制的开销,进行实时处理。
另外,加速器20能够将处理数据直接传输到加速器控制装置10的用户空间,加速器控制装置10和加速器20能够非同步地驱动,因此,延迟和CPU使用率都被削减。
此外,由于加速器20可以通过访问加速器控制装置10的主存储器来工作,因此可以扩展到多个加速器20,可扩展性大大提高。
[加速器控制装置]
图2是用于说明本实施方式的加速器控制系统的图。如图2所例示,在加速器控制装置10中,API14是能够从应用调用的功能组,提供加速器20的工作所需的功能。例如,API作为数据缓冲器确保功能、数据缓冲器释放功能、元数据生成功能、元数据发送功能、运算完成感知功能发挥功能。
数据缓冲器确保功能生成用于与加速器20进行数据的收发的存储区域即数据缓冲器11a。数据缓冲器确保功能调用存储器管理功能12,从存储器管理功能12取得数据缓冲器11a的区域信息。
数据缓冲器释放功能删除数据缓冲器11a。数据缓冲器释放功能调用存储器管理功能12,通知要释放的数据缓冲器11a的区域信息,释放该区域。
元数据生成功能生成被附加了加速器20的控制信息的控制用数据即元数据。元数据发送功能将元数据生成功能生成的元数据发送到元数据控制功能13。运算完成感知功能调用元数据控制功能13,根据元数据控制功能13的返回值,确认任意的加速器20的处理是否结束。
设备驱动器存在于内核空间上,提供用于处理特定的设备的存储器管理功能12、元数据控制功能13等功能组。
存储器管理功能12被用户空间上的API14调用,进行数据缓冲器11a的区域的确保、释放、管理。
元数据缓冲器11b是用于与加速器20进行元数据的发送接收的存储区域,通过加速器初始化功能,根据加速器20的数量而生成。例如,元数据缓冲器11b存储包括运算处理的对象数据的所在和指定加速器的运算处理的内容的信息的元数据。元数据缓冲器11b按照多个加速器20中的每一个加速器20而存储不同的元数据。
元数据缓冲器11b包括用于向加速器20发送元数据的RQ(请求队列)缓冲器和用于从加速器20接收元数据的CQ(完成队列)缓冲器。
元数据控制功能13被用户空间上的API14调用,进行元数据缓冲器11b向RQ缓冲器/CQ缓冲器的读入、写入、管理。元数据控制功能13具有轮询功能13a和写入功能13b。
轮询功能13a对CQ缓冲器进行轮询,确认运算的完成。也就是说,轮询功能13a作为判定部发挥功能,监视已经由加速器20执行了运算处理的元数据是否存储在元数据缓冲器11b中。当已经由加速器20执行了运算处理的元数据被存储在元数据缓冲器11b中时,轮询功能13a判定为加速器20的运算处理完成。另外,写入功能13b对RQ缓冲器进行写入。
[加速器]
在加速器20中,元数据访问机构21包括轮询功能21a、读入功能21b、写入功能21c,作为访问内核空间中的元数据缓冲器11b的功能。
轮询功能21a轮询元数据缓冲器11b的RQ缓冲器,确认在RQ缓冲器中是否存在元数据。即,轮询功能21a作为监视部发挥功能,监视元数据缓冲器11b中是否存在元数据。
读入功能21b作为取得部发挥功能,从元数据缓冲器11b取得元数据。即,当轮询功能21a确认在RQ缓冲器中存在元数据时,读入功能21b读入元数据并将元数据传输到功能控制块22。
另外,写入功能21c向元数据缓冲器11b的CQ缓冲器写入元数据。即,写入功能21c作为保存部发挥功能,在运算处理完成的情况下,将元数据保存于元数据缓冲器11b。
功能控制块22控制针对加速器20的各功能部的必要的数据共享、驱动·停止定时。功能控制块22包括元数据分析功能22a、数据传输控制功能22b、完成通知功能22c。
元数据分析功能22a从由元数据访问机构21发送的元数据中提取工作、数据缓冲器11a的地址·长度的信息。数据传输控制功能22b提供对数据传输功能23中的数据的读入、写入进行控制的功能。完成通知功能22c向元数据访问机构21传输要写入CQ缓冲器的元数据。
运算功能24作为运算部发挥功能,按照所取得的元数据中包含的处理数据的所在和指定加速器20的动作的信息,进行针对处理数据的运算处理。
具体而言,运算功能24包括输入控制功能、运算电路、输出控制功能。运算电路具有多个独立的运算电路,能够对各个运算电路定义运算。输入控制功能基于从功能控制块22发送的元数据的信息,将从数据传输功能23的数据读入功能23a发送的数据输入到适当的运算电路。
输出控制功能将针对从运算电路输出的处理数据的运算处理的结果在适当的定时传输到数据传输功能23的数据写入功能23b。
数据传输功能23的数据写入功能23b作为保存部发挥功能,将针对处理数据的运算处理的结果保存在数据缓冲器11a中。
接着,图3是例示元数据的数据结构的图。如图3所示,元数据由32位的任务ID、32位的操作、32位的读出数据的长度、64位的读出数据的地址、32位的写入数据的长度、64位的写入数据的地址共计256位的数据构成。
另外,图4是例示元数据缓冲器的结构的图。如图4所示,图3所示的元数据被存储在RQ缓冲器/CQ缓冲器中。图4所示的RQ缓冲器的头部(head)信息由元数据控制功能13控制。元数据控制功能13将从API14的元数据发送功能发送的元数据成形为图3所示的结构,并存储在RQ缓冲器中后,将头部(head)的信息偏移到下一个位置。
同样地,元数据控制功能13在CQ缓冲器中也使用头部(head)的信息,在被API14的运算完成感知功能调用的情况下,从CQ缓冲器读出元数据,将头部(head)的信息偏移到下一个位置。
另外,图5是用于说明数据缓冲器的图。存储器管理功能12通过图5所例示的表来管理数据缓冲器11a的地址和状态。如图5所示,在表中管理数据缓冲器11a的物理地址及其地址的状态。当对加速器20设置元数据时,通过参考关键字(key)取得期望的数据缓冲器11a的物理地址,并且设置读出数据地址和写入数据地址。由此,能够吸收并管理内核空间和用户空间中的虚拟地址的差异。
[加速器控制处理]
接着,参照图6~图8,对本实施方式的加速器控制系统1的加速器控制处理进行说明。图6是示出加速器控制装置10中的加速器控制处理过程的流程图。图6的流程图例如在由应用指示了开始的定时开始。
首先,加速器控制装置10确保数据缓冲器11a(步骤S1)。加速器控制装置10将要传递给加速器20的处理数据保存(配置)在数据缓冲器11a中(步骤S2)。
另外,加速器控制装置10设置元数据的信息(步骤S3),并且将该信息提交到元数据缓冲器11b的RQ缓冲器(步骤S4)。然后,加速器控制装置10执行不依赖于加速器20的运算结果的处理(步骤S5)。
加速器控制装置10在使用加速器20的运算结果的情况下,访问元数据缓冲器11b的CQ缓冲器,确认加速器20是否正在发送元数据(步骤S6)。当CQ缓冲器中不存在元数据时(步骤S6,否),加速器控制装置10将处理返回到步骤S5。另一方面,在CQ缓冲器中存在元数据的情况下(步骤S6,是),加速器控制装置10判定为是运算处理的完成通知,从数据缓冲器11a取得处理数据的运算结果,并且继续处理(步骤S7)。
当加速器控制装置10再次使用加速器20时(步骤S8,否),使处理返回到步骤S2。在这种情况下,可以重用数据缓冲器11a。另一方面,当不需要再次使用加速器20时(步骤S8中,是),加速器控制装置10在应用结束时释放数据缓冲器11a的区域(步骤S9)。由此,一系列的处理结束。
图7是示出加速器20中的加速器控制处理过程的流程图。图7的流程图例如以规定的间隔开始。加速器20通过轮询来监视元数据缓冲器11b的RQ缓冲器(步骤S11)。
加速器20在RQ缓冲器中未设置有元数据的情况下(步骤S12,否),使处理返回至步骤S11。另一方面,在RQ缓冲器中设置有元数据的情况下(步骤S12,是),加速器20读入并分析元数据(步骤S13)。
另外,加速器20基于分析结果取得数据缓冲器11a的处理数据(步骤S14),并且执行运算处理(步骤S15)。接着,加速器20将经过了运算处理后的处理数据写入数据缓冲器11a(步骤S16),向CQ缓冲器发送元数据(步骤S17),完成处理。然后,加速器20将处理返回到步骤S11。
接着,图8是表示加速器控制处理步骤的时序图。在图8所示的示例中,加速器20由FPGA实现。如图8所示,加速器控制装置10首先将运算处理的处理数据配置在共享存储空间(数据缓冲器11a)中(步骤S21)。加速器控制装置10经由设备驱动器将加速器20用的元数据配置在内核存储空间中的元数据缓冲器11b的RQ缓冲器中(步骤S22)。
加速器20通过轮询RQ缓冲器来监视是否配置了元数据(步骤S23)。如果配置有元数据,则加速器20读入该元数据,对元数据中记述的处理内容和处理数据的所在进行分析,并读入处理数据(步骤S24)。
加速器20将经过了运算处理后的处理数据写入数据缓冲器11a(步骤S25),将元数据写入元数据缓冲器11b的CQ缓冲器(步骤S26)。
加速器控制装置10访问CQ缓冲器以确认是否配置有元数据,根据配置有元数据的情况而感知到加速器20的运算处理的完成(步骤S27)。在这种情况下,加速器控制装置10从数据缓冲器11a取得运算处理结果的数据(步骤S28)。
[效果]
如上所述,在本实施方式的加速器控制系统1中,在加速器控制装置10中,元数据缓冲器11b存储元数据,该元数据包括作为运算处理的对象处理数据的所在和指定加速器20的运算处理的内容的信息。当由加速器20执行了运算处理的元数据被存储在元数据缓冲器11b中时,轮询功能13a判定为加速器20的运算处理完成。在加速器20中,读入功能21b从元数据缓冲器11b取得元数据。运算功能24根据在所取得的元数据中包含的运算处理的对象处理数据的所在和指定加速器20的动作的信息,对运算处理的对象处理数据执行运算处理。在运算处理完成的情况下,写入功能21c将元数据保存于元数据缓冲器11b。
由此,加速器控制系统1在使用加速器20的处理中,能够减少排他控制、处理完成的中断通知、存储器复制等的开销,能高速地进行实时处理。
此外,轮询功能21a监视元数据缓冲器11b中是否存在元数据。因此,加速器20能够自主地执行处理。
此外,轮询功能13a监视在元数据缓冲器11b中是否存在经过运算处理的元数据。因此,加速器控制装置10能够与加速器20非同步地执行处理。
数据写入功能23b将针对运算处理对象的处理数据的运算处理的结果保存到数据缓冲器11a。由此,加速器控制装置10除了使用加速器20的运算处理结果的情况以外,能够与加速器20非同步地进行处理,因此能够实现使用加速器20的处理的高速化。
另外,元数据缓冲器11b针对多个加速器20中的每一个加速器20存储不同的元数据。由此,提高了基于多个加速器20的可扩展性。
[实施例]
图9是用于说明实施例的图。在图9中,例示了在上述实施方式的加速器控制系统1的处理(本发明方法)和现有技术的处理(现有方法)中,处理数据从加速器控制装置10经由加速器20回送并返回为止的时间的测量值。在此,总线技术在现有方法中使用PCIe Gen3x8,在本发明方法中使用PCIe Gen3x 16。
在图9中,例如关于128K字节的数据,示出了现有方法中的延迟时间为160usec以上,与此相对,在本发明方法中延迟时间为20usec。这样,确认了本发明方法与现有方法相比能够高速化。
[程序]
还可以生成以计算机可执行的语言来描述由上述实施方式的加速器控制装置10执行的处理的程序。在一个实施方式中,加速器控制装置10可以通过将执行加速器控制处理的加速器控制程序安装在期望的计算机中作为包软件或在线软件来实现。例如,通过使信息处理装置执行上述加速器控制程序,信息处理装置可以用作加速器控制装置10。在此所说的信息处理装置包括台式或笔记本型的个人计算机。另外,除此之外,信息处理装置还包括智能手机、移动电话机、PHS(Personal Handyphone System:个人手持电话系统)等移动通信终端、以及PDA(Personal Digital Assistant:个人数字助理)等平板终端等。加速器控制装置10的功能可以在云服务器中实现。
图10是示出执行加速器控制程序的计算机的示例的图。计算机1000例如具有存储器1010、CPU 1020、硬盘驱动器接口1030、盘驱动器接口1040、串行端口接口1050、视频适配器1060以及网络接口1070。这些各部通过总线1080连接。
存储器1010包括ROM(只读存储器)1011和RAM 1012。ROM 1011存储引导程序,例如基本输入输出系统(BIOS)。硬盘驱动器接口1030与硬盘驱动器1031连接。盘驱动器接口1040与盘驱动器1041连接。在盘驱动器1041中例如插入磁盘、光盘等可装卸的存储介质。例如,鼠标1051和键盘1052连接到串行端口接口1050。例如,显示器1061连接到视频适配器1060。
这里,硬盘驱动器1031例如存储OS1091、应用程序1092、程序模块1093和程序数据1094。上述实施方式中说明的各信息例如存储于硬盘驱动器1031、存储器1010。
另外,加速器控制程序例如作为记述有由计算机1000执行的指令的程序模块1093而存储于硬盘驱动器1031。具体地,描述由上述实施方式中描述的加速器控制装置10执行的处理的程序模块1093被存储在硬盘驱动器1031中。
另外,加速器控制程序的信息处理所使用的数据作为程序数据1094例如存储于硬盘驱动器1031。然后,CPU 1020根据需要将硬盘驱动器1031中存储的程序模块1093、程序数据1094读出到RAM 1012,执行上述的各步骤。
此外,加速器控制程序所涉及的程序模块1093、程序数据1094不限于存储于硬盘驱动器1031的情况,例如也可以存储于可装卸的存储介质,并经由盘驱动器1041等由CPU1020读出。或者,加速器控制程序所涉及的程序模块1093、程序数据1094也可以存储于经由LAN、WAN(Wide Area Network:广域网)等网络连接的其他计算机,并经由网络接口1070由CPU 1020读出。
以上,对应用了由本发明人完成的发明的实施方式进行了说明,但本发明并不限定于构成本实施方式的本发明的公开的一部分的记述以及附图。即,由本领域技术人员等基于本实施方式完成的其他实施方式、实施例以及运用技术等全部包含于本发明的范畴。
标号说明
10 加速器控制装置
11a 数据缓冲器(存储部)
11b 元数据缓冲器(存储部)
12 存储器管理功能
13 元数据控制功能
13a 轮询功能(判定部)
13b 写入功能
14 API
20 加速器
21 元数据访问机制
21a 轮询功能(取得部)
21b 读入功能
21c 写入功能(保存部)
22 功能控制块
22a 元数据分析功能
22b 数据传输控制功能
22c 完成通知功能
23 数据传输功能
23a 数据读入功能
23b 数据写入功能(保存部)
24 运算功能(运算部)
Claims (7)
1.一种加速器控制系统,其特征在于,具有加速器控制装置和加速器,
所述加速器控制装置具有:
存储部,其存储控制用数据,该控制用数据包含运算处理的对象数据的所在和指定加速器的运算处理的内容的信息;以及
判定部,其在所述存储部中保存有由所述加速器进行了运算处理的控制用数据的情况下,判定为该加速器的运算处理完成,
所述加速器具有:
取得部,其从所述存储部取得所述控制用数据;
运算部,其根据所取得的所述控制用数据中包含的所述运算处理的对象数据的所在和指定加速器的动作的信息,对所述运算处理的对象数据进行运算处理;以及
保存部,其在所述运算处理完成的情况下,将所述控制用数据保存于所述存储部。
2.根据权利要求1所述的加速器控制系统,其特征在于,所述加速器控制系统还具有监视部,该监视部监视所述存储部中是否存在所述控制用数据。
3.根据权利要求1所述的加速器控制系统,其特征在于,所述判定部监视在所述存储部中是否存在完成了所述运算处理的控制用数据。
4.根据权利要求1所述的加速器控制系统,其特征在于,所述保存部还将针对所述运算处理的对象数据的所述运算处理的结果保存在所述存储部中。
5.根据权利要求1所述的加速器控制系统,其特征在于,所述存储部针对多个加速器中的每一个加速器存储不同的所述控制用数据。
6.一种加速器控制方法,由加速器控制系统执行,所述加速器控制系统具有加速器控制装置和加速器,其特征在于,
所述加速器控制系统具有存储控制用数据的存储部,所述控制用数据包含运算处理的对象数据的所在和指定加速器的运算处理的内容的信息,
所述加速器控制方法包括如下步骤:
取得步骤,从所述存储部取得所述控制用数据;
运算步骤,按照所取得的所述控制用数据中包含的所述运算处理的对象数据的所在和指定加速器的动作的信息,对所述运算处理的对象数据进行运算处理;
保存步骤,在所述运算处理完成的情况下,将所述控制用数据保存于所述存储部;以及
判定步骤,在所述存储部中保存有进行了运算处理的控制用数据的情况下,判定为运算处理完成。
7.一种加速器控制程序,所述加速器控制程序用于使计算机作为权利要求1至5中任一项所述的加速器控制系统发挥功能。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/016314 WO2022224410A1 (ja) | 2021-04-22 | 2021-04-22 | アクセラレータ制御システム、アクセラレータ制御方法およびアクセラレータ制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117222982A true CN117222982A (zh) | 2023-12-12 |
Family
ID=83722218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180097178.0A Pending CN117222982A (zh) | 2021-04-22 | 2021-04-22 | 加速器控制系统、加速器控制方法和加速器控制程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240201986A1 (zh) |
EP (1) | EP4310679A4 (zh) |
JP (1) | JPWO2022224410A1 (zh) |
CN (1) | CN117222982A (zh) |
WO (1) | WO2022224410A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2567465B (en) * | 2017-10-12 | 2020-09-02 | Advanced Risc Mach Ltd | Message passing in a data processing system |
JP6913312B2 (ja) * | 2018-02-28 | 2021-08-04 | 日本電信電話株式会社 | データ処理装置及びデータ転送方法 |
-
2021
- 2021-04-22 EP EP21937903.9A patent/EP4310679A4/en active Pending
- 2021-04-22 JP JP2023515979A patent/JPWO2022224410A1/ja active Pending
- 2021-04-22 US US18/287,193 patent/US20240201986A1/en active Pending
- 2021-04-22 WO PCT/JP2021/016314 patent/WO2022224410A1/ja active Application Filing
- 2021-04-22 CN CN202180097178.0A patent/CN117222982A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4310679A4 (en) | 2024-09-25 |
US20240201986A1 (en) | 2024-06-20 |
WO2022224410A1 (ja) | 2022-10-27 |
JPWO2022224410A1 (zh) | 2022-10-27 |
EP4310679A1 (en) | 2024-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022156370A1 (zh) | 一种基于fpga的dma设备及dma数据搬移方法 | |
US20200334145A1 (en) | Storage device, computer system, and operation method of storage device configured to arbitrarily stop garbage collection | |
KR20110130435A (ko) | 메모리 세그먼테이션 및 acpi 기반 컨텍스트 전환을 사용하는 운영 시스템 로딩 | |
WO2020177577A1 (zh) | 一种控制器加载多核固件的方法、装置及计算机设备 | |
WO2019028682A1 (zh) | 一种多系统共享内存的管理方法及装置 | |
WO2023201987A1 (zh) | 请求处理方法、装置、设备及介质 | |
US20220027327A1 (en) | Distributed vfs with shared page cache | |
EP4428700A1 (en) | Service processing method and apparatus | |
CN111274044B (zh) | Gpu虚拟化资源限制处理方法及装置 | |
US10831684B1 (en) | Kernal driver extension system and method | |
JP2009087282A (ja) | 並列計算システムおよび並列計算方法 | |
CN112506676B (zh) | 进程间的数据传输方法、计算机设备和存储介质 | |
US20070038429A1 (en) | System simulation method | |
JP6050528B2 (ja) | セキュリティ・コプロセッサ・ブート性能 | |
CN117222982A (zh) | 加速器控制系统、加速器控制方法和加速器控制程序 | |
WO2014087654A1 (ja) | データ送信装置、データ送信方法、及び記録媒体 | |
WO2022224409A1 (ja) | アクセラレータ制御システム、アクセラレータ制御方法およびアクセラレータ制御プログラム | |
US20150312165A1 (en) | Temporal based collaborative mutual exclusion control of a shared resource | |
US20110191638A1 (en) | Parallel computer system and method for controlling parallel computer system | |
US20230418512A1 (en) | Hardware accelerator | |
US11273371B2 (en) | Game machine for development, and program execution method | |
US20230409226A1 (en) | Method and system for acceleration or offloading utilizing a multiple input data stream | |
CN114296640B (zh) | 用于加速计算的数据驱动方法、装置、设备和存储介质 | |
US11841808B2 (en) | System and method for processing requests in a multithreaded system | |
US10840943B1 (en) | System and method of data compression between backup server and storage |
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 |