CN116701102A - 用于对加速器执行按需检查点的电子装置和方法 - Google Patents
用于对加速器执行按需检查点的电子装置和方法 Download PDFInfo
- Publication number
- CN116701102A CN116701102A CN202310141744.4A CN202310141744A CN116701102A CN 116701102 A CN116701102 A CN 116701102A CN 202310141744 A CN202310141744 A CN 202310141744A CN 116701102 A CN116701102 A CN 116701102A
- Authority
- CN
- China
- Prior art keywords
- accelerator
- host processor
- memory
- host
- checkpoint
- 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 42
- 230000015654 memory Effects 0.000 claims abstract description 133
- 230000004044 response Effects 0.000 claims abstract description 31
- 238000011084 recovery Methods 0.000 claims description 30
- 230000008859 change Effects 0.000 claims description 6
- 238000012549 training Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 3
- 230000007257 malfunction Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1461—Backup scheduling policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Retry When Errors Occur (AREA)
Abstract
提供了用于对加速器执行按需检查点的电子装置和方法。在一个总体方面,一种电子装置包括:主机处理器;以及加速器,被配置为根据由主机处理器发送到加速器的指令进行操作,其中,主机处理器的存储器和加速器的存储器以各自的不同间隔分别被检查点到存储设备,并且响应于确定主机处理器中已经发生故障,加速器的存储器被检查点到存储设备。
Description
本申请要求于2022年3月4日在韩国知识产权局提交的第10-2022-0028354号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
下面的描述涉及用于对加速器执行按需检查点的电子装置和方法。
背景技术
检查点(checkpoint)可被执行用于应用的稳定执行。通过在确定的时间存储正在执行的应用的状态和/或数据,并且在应用被执行时这样做,如果应用的执行由于某些原因最终失败,则检查点可用于从检查点的时间恢复应用的执行。
随着应用变得更加先进和复杂,加速器更常用于应用执行。
发明内容
提供本发明内容以便以简化的形式介绍下面在具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
在一个总体方面,一种电子装置包括:主机处理器;以及加速器,被配置为根据由主机处理器发送到加速器的指令进行操作,其中,主机处理器的存储器和加速器的存储器以各自的不同间隔分别被检查点到存储设备,并且响应于确定主机处理器中已经发生故障,加速器的存储器被检查点到存储设备。
加速器的存储器可响应于确定主机处理器中已经发生故障而被进行检查点,在不涉及主机处理器的情况下,存储在加速器的存储器中的数据可被发送到存储设备并被存储在存储设备中。
主机处理器的存储器可以以第一间隔被循环地检查点到存储设备,并且加速器的存储器可以以可比第一间隔长的第二间隔被循环地检查点到存储设备。
第一间隔可基于主机处理器的故障率被确定,并且第二间隔可基于可与主机处理器的故障率不同的加速器的故障率被确定。
当加速器的存储器可响应于确定主机处理器中已经发生故障而被检查点到存储设备时:主机处理器在被重新启动或重置之后可被配置为从主机存储设备接收主机存储器的最近检查点,并且加速器可被配置为:基于确定主机处理器中已经发生故障,从存储设备接收响应于确定已经发生故障而被进行检查点的加速器数据。
在主机处理器中发生故障之前在主机处理器中执行的多个操作的标记可被存储在存储设备中,由所述多个操作的标记指示的所述多个操作中的至少一些操作可被执行或应用,并且当主机处理器执行或应用由所述多个操作的标记指示的所述多个操作中的所述至少一些操作时,从存储设备接收的加速器数据可被保持。
加速器数据可通过不执行由所述多个操作的标记指示的所述多个操作之中的改变加速器的状态和/或存储器的一个或多个操作而被保持。
在由所述多个操作的标记指示的所述多个操作之中的读取加速器的状态和/或存储器的操作可通过从存储设备接收先前存储的读取加速器的状态和/或存储器的相应操作的结果值而被应用。
外部装置可被配置为监测主机处理器中是否发生故障,并且当外部检测到故障时,可发出用于对加速器执行检查点的指令。
控制器可监测是否存在主机处理器的故障,并且控制器可在主机处理器的故障被检测到时,发出用于对加速器执行检查点的指令。
所述电子装置的状态可通过将响应于确定主机处理器中的故障而取得的加速器检查点加载到加速器的存储器、将在对主机处理器进行检查点的间隔取得的主机处理器的最近检查点加载到主机处理器的存储器而被设置,响应于确定主机处理器中的故障而取得的加速器检查点可基于在主机处理器的最近检查点被取得之后发生的应用的操作;并且应用的执行可根据设置的状态来恢复。
应用的执行可包括:执行对设置的状态下的加速器的训练或使用设置的状态下的加速器进行推断。
在一个总体方面,一种方法包括:将电子装置的主机处理器的存储器的主机检查点捕获到存储设备,其中,主机检查点以第一间隔被捕获;将电子装置的加速器装置的存储器的加速器检查点捕获到存储设备,其中,加速器检查点以不同于第一间隔的第二间隔被捕获;以及基于主机处理器中发生故障,将加速器的存储器的故障检查点捕获到存储设备。
故障检查点可在不涉及主机处理器的情况下被捕获。
第一间隔的持续时间可与主机处理器的故障率成比例,并且第二间隔的持续时间可与加速器的故障率成比例。
与主机处理器中发生故障相关联地,所述方法还可包括:重新启动或重置主机处理器;将最近捕获的主机检查点从存储设备恢复到主机处理器的存储器;以及将加速器的故障检查点从存储设备恢复到加速器。
所述方法还可包括:在从最近捕获的主机检查点到故障的时间的时间段期间,将在主机处理器中执行的多个操作的标记记录到存储设备;以及基于恢复的最近捕获的主机检查点,根据所述多个操作的标记,在主机处理器中执行或应用由所述多个操作的标记指示的所述多个操作中的至少一些操作,其中,当主机处理器执行或应用所述多个操作中的至少一些操作时,加速器被配置为保持从存储设备接收的加速器数据,使得在所述多个操作中的至少一些操作已经被执行或应用之后,加速器存储器中的加速器数据不被改变。
在主机处理器中执行或应用所述多个操作中的所述至少一些操作可包括:不执行或应用由所述标记指示的将改变加速器的状态和/或存储器的一个或多个操作;或者通过从存储设备接收由所述标记指示的所述多个操作中的读取加速器的状态和/或存储器的一个或多个操作的结果值来应用所述一个或多个操作,所述结果值已经通过记录被存储在存储设备中。
在一个总体方面,一种方法包括:在主机处理器的故障之前,在主机处理器和加速器装置上执行应用的操作,其中,主机处理器的主机存储器和加速器装置的加速器存储器在所述操作可被执行时可被更新;周期性地将主机存储器的主机检查点捕获到存储设备;并且响应于主机处理器的故障,捕获按需加速器检查点;并且在从主机处理器的故障恢复之后,基于恢复最后捕获的主机检查点并且基于恢复按需加速器检查点来恢复执行应用的操作。
按需加速器检查点可包括与在最后捕获的主机检查点之后执行的操作的一部分对应的状态,其中,恢复丢失与尚未被进行检查点的操作的所述部分对应的主机存储器状态;以及在从主机处理器的故障恢复之后,基于恢复最后周期性捕获的主机检查点并且基于恢复按需加速器检查点来恢复执行应用的操作。
附图说明
图1示出根据一个或多个实施例的检查点操作和恢复操作的示例。
图2示出根据一个或多个实施例的电子装置中的组件及其检查点相关数据的示例。
图3示出根据一个或多个实施例的响应于主机处理器中发生的故障而对加速器的存储器按需进行检查点的示例。
图4示出根据一个或多个实施例的响应于主机处理器中发生的故障而执行的恢复操作的示例。
图5示出根据一个或多个实施例的对加速器的存储器按需进行检查点的操作的另一示例。
图6示出根据一个或多个实施例的检查点时间间隔的示例。
图7示出根据一个或多个实施例的响应于加速器中发生的故障的恢复时间的示例。
图8示出根据一个或多个实施例的响应于主机处理器中发生的故障的恢复时间的示例。
图9示出根据一个或多个实施例的解决恢复时间之间的不一致的操作的示例。
图10示出根据一个或多个实施例的电子装置的操作方法的示例。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些顺序,而是除了必须以特定的次序发生的操作之外,可如在理解本申请的公开之后将是清楚的那样被改变。此外,为了更加清楚和简明,可省略在理解本申请的公开之后已知的特征的描述。
在此描述的特征可以以不同的形式来实现,而不应被解释为限于在此描述的示例。相反,在此描述的示例已被提供,以仅示出在理解本申请的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
在此使用的术语仅用于描述各种示例,并且不应用于限制公开。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。如在此使用的,术语“和/或”包括相关联的所列项中的任何一个和任何两个或更多个的任何组合。作为非限制性示例,术语“包含”、“包括”和“具有”说明存在陈述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。
贯穿说明书,当组件或元件被描述为“连接到”、“结合到”或“接合到”另一组件或元件时,该组件或元件可直接“连接到”、“结合到”或“接合到”该另一组件或元件,或者可合理地存在介于其间的一个或多个其他组件或元件。当组件或元件被描述为“直接连接到”、“直接结合到”或“直接接合到”另一组件或元件时,可不存在介于其间的其他元件。同样地,例如“在……之间”和“紧接在……之间”以及“与……邻近”和“与……紧邻”的表述也可如前所述来解释。
尽管在此可使用诸如“第一”、“第二”和“第三”、或A、B、(a)、(b)等的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不应被这些术语限制。这些术语中的每个不用于限定例如相应的构件、组件、区域、层或部分的本质、次序或序列,而仅用于将相应的构件、组件、区域、层或部分与其他构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与由本公开所属领域的普通技术人员通常理解以及基于对本申请的公开的理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与它们在相关领域的上下文和本申请的公开中的含义一致的含义,并且不应被理想化或过于形式化地解释。在此关于示例或实施例(例如,关于示例或实施例可包括或实现什么)的术语“可”的使用表示存在这样的特征被包括或者实现的至少一个示例或实施例,而所有示例不限于此。
在下文中,将参照附图详细描述示例。当参照附图描述示例时,相同的附图标记表示相同或相似的组件,并且与其有关的重复描述将被省略。
图1示出根据一个或多个实施例的检查点(checkpoint)操作和恢复(recovery)操作的示例100。
参照图1,作为示例,示出以间隔执行的检查点操作和响应于发生故障而执行的恢复操作。
执行检查点(例如,在图1中用C表示)可涉及在应用执行期间以预定间隔存储应用的数据。当应用的执行由于各种可能原因中的任何原因而被中断时,检查点可在稍后被使用以从检查点的时间重新启动应用。检查点可包括应用在时间点的检查点状态(checkpointed state)和/或检查点数据(checkpointed data),并且可被存储在存储设备中。例如,将存储器检查点(checkpointing)到存储设备表示将通过对存储器执行检查点操作生成的检查点状态和/或检查点数据存储在存储设备中。通常,应用检查点的数据将是在与检查点相关联的时间点的应用的状态/数据。检查点的内容(例如,检查点文件)通常将表示刚好直到(或在)该时间点但不在该时间点之后的状态/数据。为了稳定存储检查点数据,存储设备可被配置为不受应用的执行中断或可能导致应用的执行中断的事件的影响。例如,存储设备可以是与用于执行应用的装置不同的远程存储服务器、云存储服务等,但是示例可不限于前述示例。在一些示例中,可使用内部存储设备。在其他示例中,存储设备可以是内部存储设备和外部存储设备的组合。
在图1的示例中,电子装置可在应用执行期间以预定的检查点间隔执行检查点(“预定的”表示在间隔结束之前的任何时间或直到间隔结束的时间确定)。这里,“在应用执行期间”并不表示应用必须在检查点的执行期间被执行;由于(取决于应用)可能需要确保检查点在检查点的时间捕获应用的一致(并且与应用可能需要的一样完整)状态,所以应用可被短暂地暂停或挂起。在应用的执行期间可能发生故障,这可能中断或干扰应用的执行。电子装置可从最近的检查点时间重新启动应用。如在此使用的,“重新启动”表示重置应用的执行的一般概念,无论是通过启动(一个或多个)新进程、重启电子装置、启动新线程、重置处理器等。应用可从最近的检查点时间开始再次执行,并且从检查点到故障发生时间的时间可能是浪费的执行时间(即,在检查点之后由应用执行的工作丢失)。
尽管这样的浪费的时间可通过减少检查点间隔的长度(检查点之间的时间)而被减少,但是频繁的进行检查点可能增加资源的使用或用于检查点的总时间,并且可能因此降低整体应用或系统性能。另外,由于除了包括在电子装置中的主机处理器之外,加速器也用于执行应用,因此加速器的存储器也可被进行检查点。此外,由于这样的加速器的存储器容量可随时间增大,因此对加速器进行检查点的检查点操作可需要更多的时间。因此,如参照图2详细描述的,可基于浪费时间和检查点开销来确定检查点间隔。
图2示出根据一个或多个实施例的电子装置中的组件及其检查点相关数据的示例。
参照图2,电子装置200可包括主机处理器210和加速器220。电子装置200可以是或可包括例如各种计算装置(例如,移动电话、智能电话、平板计算机、电子书装置、膝上型计算机、个人计算机(PC)、台式机、工作站、虚拟机、云服务器或服务器)、各种可穿戴装置(例如,智能手表、智能眼镜、头戴式显示器(HMD)或智能服装)、各种家用电器(例如,智能扬声器、智能电视(TV)或智能冰箱)或其他装置(例如,智能车辆、智能自助服务终端、物联网(IoT)装置、步行辅助装置(WAD)、无人机或机器人)。
电子装置200可执行一个或多个应用,并且在这种情况下,电子装置200可使用主机处理器210和加速器220二者来执行给定应用的操作。主机处理器210可以是用于控制包括在电子装置200中的组件的操作的装置,并且可包括例如一个或多个中央处理器(CPU)。加速器220可以是在主机处理器210的控制下操作的装置,并且由于例如基于神经网络的操作的特性,加速器220可处理由单独的专用处理器(例如,加速器220)而不是由通用主机处理器(例如,主机处理器210)更高效地处理的任务。加速器220可包括例如图形处理器(GPU)、神经处理器(NPU)、张量处理器(TPU)、输入/输出(I/O)处理器等。多个计算类型的多个加速器可被包括在电子装置中;如在此使用的“加速器”表示一种或多种类型的一个或多个加速器装置(描述的用于对单个加速器装置进行检查点的技术被容易地扩展到同一系统中的多个加速器)。
当通过使用主机处理器210和加速器220执行应用时,检查点操作可在预定时间被执行,在这种情况下,例如,将被进行检查点的主机处理器210的存储器容量可以是100千兆字节(GB),并且将被进行检查点的加速器220的存储器容量可以是480GB。另外,例如,主机处理器210的时间故障(failure in time,FIT)率可以是200,加速器220的FIT率可以是50。在这种情况下,FIT率可以是在预定时段期间发生的故障的预期数量,并且增大的FIT率是在预定时段内发生的故障的增加的数量。然而,为了便于描述,提供了存储容量或FIT率的前述数值,并且示例不限于此。详细地讲,FIT率表示在每单位时间预期的故障方面的故障率,例如,FIT率100可表示每单位时间100次故障(例如,每24小时100次故障)。FIT率可与平均故障间隔时间(mean time between failure,MTBF)等的倒数成比例。与故障率相关的任何类型的统计可被使用,并且FIT率是在此用于解释的非限制性示例。如在此使用的,术语“故障率”表示与作为时间的函数的预期、预测(例如,建模)或历史上发生的故障数量成比例(成反比或不成反比)的任何度量。
执行应用的电子装置200中的故障可以是包括在电子装置200中的一些组件(例如,主机处理器210、加速器220、存储器等)中发生的任何问题。故障可以是影响应用执行或正确执行的能力的任何事件,例如,硬件故障、逻辑/代码故障(例如,内核中不正确的存储器引用)、操作系统故障、网络连接丢失等。当电子装置200中发生故障时,例如,无论发生问题的组件如何,电子装置200(和/或其组件)通常都可重新启动。电子装置200包括的组件越多,发生故障的可能性越大。
在图2的示例中,电子装置200的FIT率可被确定为电子装置200的组件的FIT率之和(例如,200+50=250)。检查点间隔可与FIT率成反比或与其成比例的某个数字来确定。然而,加速器220可具有比主机处理器高得多的存储器容量以及可显著小于主机处理器210的FIT率的FIT率。也就是说,加速器可能不太频繁地发生故障,并且可花费更长的时间进行检查点。在这种情况下,加速器220可例如以与1/50对应的检查点间隔而不是与1/250对应的较短间隔被充分地进行检查点。也就是说,如果以主机处理器210的FIT率的间隔进行检查点,则加速器220可被不必要地频繁进行检查点,并且这可能导致例如电子装置200的资源浪费和性能劣化。
此外,电子装置200的故障可能不涉及包括在电子装置200中的所有组件的故障。例如,即使当主机处理器210中发生故障时,加速器220也能够继续正常操作或具有一些功能(例如,具有读出其状态的功能)操作,并且在不涉及主机处理器210的情况下,加速器220的数据可通过内部接口(例如,外围组件互连高速(PCIe)接口和/或网络接口卡(NIC))被发送到外部存储设备。也就是说,尽管仅主机处理器210(或一些其他组件)中发生故障,但是加速器220的存储器可被按需进行检查点,因此,加速器220的存储器可能不需要像主机处理器210那样被频繁地进行检查点,并且这样做可能是浪费的。
因此,当为具有相对增加的容量的加速器(例如,加速器220)的周期性例程检查点设置检查点间隔(检查点频率)时,仅加速器(例如,加速器220)的FIT率可被应用以确定其检查点间隔,并且其他组件(例如,主机处理器210等)的FIT率可被忽略。在这种情况下,加速器的检查点间隔可增大,并且相关的整体检查点开销因此可被减少。换句话说,可为各个组件设置不同的检查点间隔,因此,电子装置200可在以更少的检查点操作稳定地执行应用的同时具有更优的性能。例如,主机处理器210可以以与1/200对应的第一间隔执行检查点操作,并且加速器220可以以与1/50对应的第二间隔执行检查点操作(主机处理器210可更频繁地执行检查点)。
图3示出了根据一个或多个实施例的响应于主机处理器中发生的故障而对加速器的存储器按需进行检查点的操作的示例。
参照图3,图3示出响应于主机处理器中发生的故障而按需执行检查点操作的示例。
故障可被分类为加速器安全故障(accelerator-safe failure)和加速器临界故障(accelerator-critical failure)。加速器安全故障可以是以下类型的故障:尽管发生故障,但是加速器的存储器仍然可被进行检查点。加速器临界故障可以是以下类型的故障:在故障发生之后,加速器的存储器可能不能被读出和存储(即,被按需进行检查点),加速器临界故障可包括例如GPU存储器双位错误、网络故障等。参照图3描述的故障被假设为加速器安全故障,加速器临界故障参照图7被详细描述。
操作节点310可以是用于执行应用的节点,并且可对应于上面描述的电子装置(例如,电子装置200)。操作节点310可包括主机处理器、加速器、存储器、PCIe(外围组件互连快速)交换机和NIC(网络接口卡)。任何这样的组件也可以是虚拟组件,并且任何这样的组件可与其他操作节点共享、在操作节点之间划分等。存储器可包括可用作操作节点310的主存储器的动态随机存取存储器(DRAM)。PCIe交换机可在包括在操作节点310中的组件之间执行数据转移,并且NIC可将数据发送出或发送到操作节点310中。
主节点320可监测操作节点310的状态。例如,主节点320可定期监测操作节点310中(或与操作节点310相关联)是否发生故障。
存储节点330可存储来自操作节点310的用于进行检查点的数据。存储节点330可以是单独的节点,存储节点330可不受操作节点310中的故障的影响,并且包括例如远程存储服务器、远程存储服务等。
在操作1中,主机处理器中可发生故障。由于故障发生,主机处理器可能不再正常操作(或根本操作),而操作节点310的其他组件(例如,加速器、PCIe交换机和NIC)可继续正常操作。因此,存储节点330能够通过NIC读取或接收加速器的数据。
在操作2中,主节点320可检测在操作节点310中发生的故障。尽管示例可不限于以下示例,但是主节点320可通过使用心跳(heartbeat)来检测操作节点310中的故障。例如,操作节点310可定期地将ping信号发送到主节点320,并且当ping信号未从操作节点310被检测到时,主节点320可确定操作节点310中已经发生故障。
在操作3中,主节点320可将加速器备份指令发送到存储节点330。加速器备份指令可以是用于对加速器的存储器按需进行检查点的指令。
在操作4中,基于加速器备份指令,存储节点330可对操作节点310的加速器的存储器进行检查点,并且这样的检查点操作可在不必涉及主机处理器的情况下被执行。例如,可通过基于PCIe对等(P2P)通信经由PCIe交换机和NIC将数据从加速器的存储器发送到存储节点330来绕过或避免主机处理器和/或其存储器。如上所述,由于在示例中,仅主机处理器中发生故障,并且其他组件仍然能够以其他方式正常操作,因此这样的按需加速器检查点操作可被执行。
图4示出根据一个或多个实施例的响应于主机处理器中发生的故障而执行的恢复操作的示例。
参照图4,作为示例,示出在主机处理器中发生故障和当检查点操作被执行时的恢复操作。
在操作5中,当针对加速器的存储器的检查点操作完成并且加速器存储器转储433已经被生成(例如,如参照图3所讨论的按需)时,操作节点410可重新启动或重置。在这种情况下,主节点420可涉及到操作节点410的重新启动,但是实施方式不限于前述示例。
在操作6中,存储在存储节点430中的主机存储器转储431可被发送到操作节点410的主机处理器。主机存储器转储431可以是主机处理器的定期检查点存储器,并且可包括主机处理器的存储器的最近检查点数据(在一些示例中,增量检查点可被执行,并且最近检查点可包括主机存储器的先前检查点数据)。如上所述,可以以与对加速器进行检查点不同的间隔对主机进行检查点。在一些示例中,加速器可仅被按需进行检查点,并且仅主机处理器以规则的间隔被进行检查点。
在操作7中,存储在存储节点430中的加速器存储器转储433可被发送到操作节点410的主机处理器。加速器存储器转储433可包括响应于主机处理器中发生的故障(例如,按图3和/或图5的操作4)而按需进行检查点的数据。
图5示出根据一个或多个实施例的对加速器的存储器按需进行检查点的操作的另一示例。
参照图5,作为另一示例,示出操作节点500将要从加速器530进行检查点的数据存储到操作节点500中的存储设备540。图5中示出的示例可对应于(i)仅通过操作节点500执行检查点操作而没有单独的主节点或单独的存储节点的情况,或者(ii)包括在具有单独的主节点或单独的存储节点的操作节点500中的NIC中的故障的情况,但是单独的主节点或单独的存储节点可不涉及到检查点操作(例如,对加速器530进行检查点)。
操作节点500可包括主机处理器510、控制器520、加速器530、存储设备540、存储器和PCIe交换机。
在操作1中,主机处理器510中可发生故障。由于故障发生,主机处理器510可能无法操作或可能无法正确操作,但是操作节点500的其他组件可能能够继续正常操作。因此,加速器530的存储器可被按需(例如,基于主机处理器510的故障)进行检查点。
在操作2中,控制器520可检测主机处理器510中的故障。控制器520可以是用于检测操作节点500中的组件中是否发生故障的装置,并且包括例如基板管理控制器(BMC)或即使主机处理器510发生故障也可操作的类似组件。
在操作3中,控制器520可将加速器备份指令发送到存储设备540。在这种情况下,加速器备份指令可以是用于对加速器530的存储器按需进行检查点的指令。存储设备540可以是非易失性存储设备,并且可包括例如固态驱动器(SSD),但是示例可不限于前述示例。
在操作4中,存储设备540可对加速器530的存储器进行检查点,并且当加速器530、存储设备540和PCIe交换机正常操作时,检查点操作可在不必涉及主机处理器510的情况下被执行。在一些示例中,可存在主机处理器510的一些最小参与(例如,将寄存器读出到控制器520)。然而,通常,主机处理器510可不涉及到将加速器的存储器传送到存储设备540。
当针对加速器530的存储器的检查点操作完成时,操作节点500可重新启动、重启、重置等。先前存储在存储设备540中的主机存储器转储(例如,按主机处理器510的检查点间隔进行检查点)可被发送到重新启动后的主机处理器510并被加载到其存储器中,并且加速器存储器转储可被发送到加速器530并被加载到其存储器中。参照图4提供的描述也可应用于恢复操作。
参照前述示例提供的描述也可应用于以下示例。例如,当操作节点500包括多个加速器时,上面参照前述示例描述的检查点操作和恢复操作可在多个加速器中的全部或一些加速器上执行或应用于多个加速器中的全部或一些加速器。换句话说,可以以不同的方式对主机的不同加速器进行检查点。此外,用于存储检查点的存储设备可以是主机的内部/本地存储设备、外部存储设备或它们的组合,并且对于相同主机的不同加速器,这样的存储设备的组成可不同。
在上面描述的检查点操作中,对发送到存储节点或内部存储设备的数据进行压缩可有效地减少检查点开销。例如,数据可在加速器中被压缩,并且压缩后的数据可在被进行检查点(被存储在存储设备中)之前被发送到存储节点或内部存储设备。另外,将被进行检查点的数据可被增量编码(delta encode)并发送。增量编码可以是以顺序数据之间的差的形式存储或发送数据的方法。将增量编码应用于存储在加速器(例如,加速器530)的存储器中的数据并将增量编码后的数据发送到存储节点或内部存储设备可减少发送的数据量并有效地减少检查点开销。
图6示出根据一个或多个实施例的检查点时间间隔的示例600。
参照图6,可以以第一间隔或时序执行主机处理器备份,并且可以以第二间隔或时序执行加速器备份。如上面参照图2所述,当主机处理器的FIT率大于加速器的FIT率时,第一(主机)间隔可短于第二(加速器)间隔。间隔可被调度为重复,即,主机处理器和加速器可以以不同的各自的频率被定期进行检查点。可基于主机处理器的故障频率的概率或预测(或历史)来确定第一间隔,并且可基于加速器的故障频率的概率或预测(或历史)来确定第二间隔。因此,主机处理器和加速器可不影响彼此的检查点间隔,并且可基于其相应的故障频率(等)来确定优化的检查点间隔。在图6的示例中,可针对主机处理器的每五个检查点对加速器进行一次检查点。在一些实施例中,第二间隔可以是第一间隔的倍数,使得有时主机(主机和加速器)的完整检查点可被获取。在其他实施例中,第一间隔和第二间隔不同步,并且通常可在不同的时间发生。
图7示出根据一个或多个实施例的响应于加速器中发生的故障的恢复时间的示例700。
参照图7,在时间t1,主机处理器的存储器和加速器的存储器二者可被进行检查点(例如,当它们的间隔一致时),并且主机数据(例如,主机处理器数据)和加速器数据可被存储在存储设备(本地和/或外部)中。在时间t2,主机处理器的检查点间隔较短,仅主机处理器的存储器(或至少不是加速器的存储器)可被进行检查点,并且主机数据可被存储在存储设备中。此后且在时间t3之前(在进一步进行检查点之前),在时间t2a,加速器中可发生故障。加速器中的该故障可对应于上面描述的加速器临界故障。在这种情况下,加速器的存储器的按需检查点操作可不被执行,因此,恢复操作可被执行以恢复到加速器数据最近被存储(被进行检查点,例如,每第二间隔)的时间。在图7的示例中,在时间t1存储/进行检查点的加速器数据是最近被存储的加速器数据,因此,在电子装置的重新启动之后,在时间t1存储的主机数据和加速器数据可分别被发送到主机处理器和加速器,然后,恢复操作可被执行,恢复主机和加速器以从与时间t1对应的状态恢复计算。
图8示出根据一个或多个实施例的响应于主机处理器中发生的故障的恢复时间的示例800。
参照图8,在时间t1,主机处理器的存储器和加速器的存储器二者可按调度被进行检查点,并且相应的主机数据和加速器数据可被存储在存储设备(内部和/或外部)中。在时间t2,可仅对主机处理器的存储器进行检查点,并且该主机数据可被存储在存储设备中。此后并且在时间t3之前(在另一调度的检查点之前),在时间t2a,主机处理器中可发生故障。如上所述,主机处理器中的该故障可对应于加速器安全故障,在这种情况下,加速器的存储器可被按需进行检查点。
当加速器的存储器的按需检查点完成时,在电子装置的重新启动/重置之后,最近存储在存储设备中的数据可被发送到主机处理器和加速器。例如,在作为最近主机检查点的时间t2存储的主机数据可被发送到主机处理器,并且在作为最近加速器检查点的时间t2a按需存储的加速器数据可被发送到加速器。
因此,当加速器的存储器的按需检查点被执行时,主机处理器和加速器可分别被恢复到不同时间的状态(即,主机和加速器可以不同步),这可与恢复时间可在主机的所有组件中一致的典型检查点方法相矛盾。换句话说,应用相对于主机处理器的恢复状态可与应用相对于加速器的恢复状态不一致。将参照图9和图10详细描述解决恢复时间之间的这样的不一致的方法。
图9示出解决被恢复到相应的不同检查点时间的主机处理器与加速器之间的状态不一致的操作的示例。
当主机处理器的恢复数据的恢复时间和加速器的恢复数据的恢复时间由于加速器的存储器的按需检查点而各自不一致时,解决这样的不一致的方法可如下。
第一种方法可以是忽略(或原样接受)在主机处理器中恢复的主机数据并在恢复之后执行应用操作,或者在不一致的时间恢复数据并在恢复之后执行操作。当执行可能仅需要保持加速器数据以用于应用的实际性能的应用时,该方法可以是适用的。换句话说,应用可基于主机处理器和加速器的不一致状态来执行,并且它们的初始不一致状态可通过应用的执行以持续的方式被更新。
例如,考虑用于基于存储在加速器中的神经网络执行推断操作或学习操作的应用。在基于神经网络的推断操作的情况下,相对更重要的数据(诸如,参数)可被存储在加速器中,因此,无论主机处理器的数据如何,应用都可容易地执行(出于使用神经网络的应用的目的,状态不一致性可以是可容忍的)。另外,在基于神经网络的学习操作的情况下,即使在学习期间可能发生轻微的数据错误或偏差,这样的轻微的数据错误或差异可能不会显著影响学习结果(其可能在多次学习迭代中被执行),因此,使用不一致的时间的数据重新启动应用对于应用可以是足够有效或实用的。然而,示例可不限于前述示例,并且第一方法可无限制地被应用于加速器的数据比主机处理器的数据更重要的任何应用。
第二种方法可以是在存储设备中存储(例如,记录(log或journal))从主机处理器最近被进行检查点的时间(例如,图9的时间t2)直到发生故障的时间(例如,图9的时间t2a)(或者直到新的主机检查点被捕获,此时对操作的标记(indicia)进行存储可被重新开始)在主机处理器(例如,用于应用)中执行的操作910的标记。如此存储的操作910的标记可被应用于主机处理器的恢复状态920,以获得或恢复主机处理器在时间t2a发生故障时具有的状态930。
利用该方法,当存储设备存储从时间t2直到时间t2a在主机处理器中执行的操作910的标记时,存储设备可针对函数(例如,malloc()、memcpy()等)的每次调用来存储函数的标识、函数的参数和函数的返回值。该技术可提供条目的记录或历史(日志),记录或历史(日志)指示哪些功能被执行、以哪种次序执行以及执行到什么程度。主机处理器的这样的操作日志的大小可能不大,并且将其操作日志存储在存储设备中可相应地具有低开销。用于监测和捕获函数调用等的技术是已知的,并且其描述可在其他地方找到。
如所指出的,主机处理器的初始恢复状态920可以是操作910(其标记被存储在存储设备中)尚未被应用的状态,然而,响应于主机处理器中发生的故障而按需进行检查点的加速器的状态可对应于时间t2a(操作910已经被执行并且加速器的状态与其对应的时间)。因此,主机处理器可利用存储的操作记录910被调整到时间t2a处的状态930,使得恢复时间是一致的。在将主机处理器更新到状态930以对应于其在时间t2a的状态时,加速器可保持从其按需检查点恢复的恢复状态,例如,当主机处理器使用存储的操作910的标记“赶上”加速器时,加速器可以是空闲的。
操作910可包括例如改变加速器的状态和/或存储器的操作或读取加速器的状态和/或存储器的操作。因为这样的操作已经被应用于(或影响)恢复的加速器,所以可能需要防止再次执行一个或多个操作以保持加速器的状态对应于时间t2a。例如,虚设装置(例如,临时虚拟装置)可被配置(或连接)为主机处理器的目标,同时存储的操作910被应用于主机处理器,然后加速器可重新连接到主机处理器。
作为另一示例,在存储的指示的操作910之中,将改变加速器的状态和/或存储器的操作可在恢复之后不在主机处理器中被执行,并且可被跳过。另外,可不在主机处理器中执行存储的操作910中的读取加速器的状态和/或存储器的操作。相反,操作的结果值可从存储设备被发送到主机处理器,并且可用于更新主机处理器的状态。
因此,在保持恢复的加速器的状态(即,不允许加速器状态改变)的同时,可从对应于时间t2的主机处理器的恢复状态920获得(重构)在时间t2a的主机处理器的状态930。然后,恢复的加速器的状态可对应于时间t2a的状态,并且主机处理器和加速器因此可具有一致的状态。
图10示出根据一个或多个实施例的电子装置的操作方法的示例。
在以下示例中,可顺序地执行操作,但不一定限于此。例如,操作的次序可改变,并且操作中的至少两个可并行执行。操作1010至操作1020可由电子装置的至少一个组件(例如,主机处理器、加速器等)执行。
在操作1010中,电子装置可以以不同的间隔或频率将主机处理器的存储器和加速器的存储器检查点到存储设备。例如,电子装置可以以第一间隔将主机处理器的存储器检查点到存储设备,并且以比第一间隔长的第二间隔将加速器的存储器检查点到存储设备。可基于指示主机处理器的故障频率的信息来确定第一间隔(例如,第一间隔的长度、持续时间或时序),并且可基于指示加速器的故障频率的信息来确定第二间隔。
在操作1020中,响应于确定主机处理器中已经发生故障,电子装置可将加速器的存储器按需检查点到存储设备。在不必要涉及主机处理器的情况下,电子装置可将存储在加速器的存储器中的数据发送到存储设备。
另外,当加速器的存储器响应于主机处理器中发生的故障而被按需检查点到存储设备时,主机处理器可被重新启动或重置,可将最近进行检查点的主机数据从存储设备传送到主机处理器,并且可将(响应于主机处理器中发生的故障,即,按需)被进行检查点的加速器数据从存储设备传送到加速器。
另外,电子装置可存储从主机处理器的最近检查点的时间直到主机处理器中发生故障为止在主机处理器中执行的操作(操作的标记),并且当主机处理器从存储设备接收主机数据时,主机处理器中发生故障之前执行的操作中的仅一些可在主机处理器中被执行(或应用于主机处理器)。在这种情况下,当主机处理器重新执行(或重新应用)在故障发生之前执行的一些操作时,加速器可保持从存储设备接收的加速器数据。电子装置可不在主机处理器中重新执行(或重新应用)存储的操作之中的将改变加速器的状态和/或存储器的那些操作。例如,电子装置可不执行(或应用)存储的操作之中的读取加速器的状态和/或存储器的操作,而是可从存储设备接收操作的结果值并将其应用于主机处理器。
参照图1至图9提供的描述也可应用于参照图10提供的操作,因此,其进一步的详细描述被省略。
在此针对图1至图10描述的计算设备、电子装置、处理器、存储器、信息输出系统和硬件、存储装置以及其他设备、装置、单元、模块和组件由硬件组件实现或表示硬件组件。可用于执行在本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行在本申请中描述的操作的任何其他电子组件。在其他示例中,执行在本申请中描述的操作的硬件组件中的一个或多个通过计算硬件(例如,通过一个或多个处理器或计算机)来实现。处理器或计算机可通过一个或多个处理元件(诸如,逻辑门的阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用),以执行本申请中描述的操作。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简单起见,单数术语“处理器”或“计算机”可用于本申请中描述的示例的描述中,但是在其他示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元件或二者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可通过一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其他硬件组件可通过一个或多个其他处理器、或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。
执行在本申请中描述的操作的图1至图10中示出的方法通过计算硬件(例如,通过一个或多个处理器或计算机)来执行,计算硬件被实现为如上所述地执行指令或软件,以执行本申请中描述的由该方法执行的操作。例如,单个操作或者两个或更多个操作可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可通过一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机如机器或专用计算机那样进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中示出的框图和流程图以及在此的相应描述,使用任何编程语言编写指令或软件,附图中示出的框图和流程图以及在此的相应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-RLTH、BD-RE、蓝光或光盘存储设备、硬盘驱动器(HDD)、固态驱动器(SSD)、卡式存储器(诸如,多媒体卡或者微型卡(例如,安全数字(SD)或者极限数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘、以及任何其他装置,任何其他装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器或计算机可执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式的方式被存储、访问和执行。
虽然本公开包括特定的示例,但是在理解本申请的公开之后将清楚,在不脱离权利要求及它们的等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例应仅在描述意义上被考虑,而不是出于限制的目的。每个示例中的特征或方面的描述应被认为可适用于其他示例中的类似特征或方面。如果描述的技术以不同的次序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其他组件或它们的等同物替换或补充,则可实现合适的结果。
因此,除了上面的公开之外,公开的范围还可由权利要求和它们的等同物限定,并且在权利要求和它们的等同物的范围内的所有变化应被解释为被包括在公开中。
Claims (20)
1.一种电子装置,包括:
主机处理器;以及
加速器,被配置为根据由主机处理器发送到加速器的指令进行操作,
其中,主机处理器的存储器和加速器的存储器以各自的不同间隔分别被检查点到存储设备,并且
响应于确定主机处理器中已经发生故障,加速器的存储器被检查点到存储设备。
2.根据权利要求1所述的电子装置,其中,
当加速器的存储器响应于确定主机处理器中已经发生故障而被进行检查点时,在不涉及主机处理器的情况下,存储在加速器的存储器中的数据被发送到存储设备并被存储在存储设备中。
3.根据权利要求1所述的电子装置,其中,
主机处理器的存储器以第一间隔被循环地检查点到存储设备,并且
加速器的存储器以比第一间隔长的第二间隔被循环地检查点到存储设备。
4.根据权利要求3所述的电子装置,其中,
第一间隔基于主机处理器的故障率被确定,并且
第二间隔基于与主机处理器的故障率不同的加速器的故障率被确定。
5.根据权利要求1所述的电子装置,其中,
当加速器的存储器响应于确定主机处理器中已经发生故障而被检查点到存储设备时,主机处理器在被重新启动或重置之后被配置为从存储设备接收最近被进行检查点的主机数据,
其中,加速器被配置为:基于确定主机处理器中已经发生故障,从存储设备接收响应于确定已经发生故障而被进行检查点的加速器数据。
6.根据权利要求5所述的电子装置,其中,所述电子装置被配置为:
将在主机处理器中发生故障之前在主机处理器中执行的多个操作的标记存储在存储设备中;
执行或应用由所述多个操作的标记指示的所述多个操作中的至少一些操作;并且
在主机处理器执行或应用由所述多个操作的标记指示的所述多个操作中的所述至少一些操作时,保持从存储设备接收的加速器数据。
7.根据权利要求6所述的电子装置,其中,
主机处理器被配置为:通过不执行由所述多个操作的标记指示的所述多个操作之中的改变加速器的状态和/或存储器的一个或多个操作,来保持加速器数据。
8.根据权利要求6所述的电子装置,其中,主机处理器被配置为:通过从存储设备接收先前存储的读取加速器的状态和/或存储器的相应操作的结果值,来应用在由所述多个操作的标记指示的所述多个操作之中的读取加速器的状态和/或存储器的操作。
9.根据权利要求1至权利要求8中的任一项所述的电子装置,其中,所述电子装置的存储设备被配置为:
当外部装置检测到故障时,从外部装置接收用于对加速器执行检查点的指令,外部装置被配置为监测主机处理器中是否发生故障。
10.根据权利要求1至权利要求8中的任一项所述的电子装置,还包括:
控制器,被配置为监测是否存在主机处理器的故障,
其中,当主机处理器的故障被检测到时,控制器被配置为发送指令以对加速器执行检查点。
11.根据权利要求1至权利要求8中的任一项所述的电子装置,其中,
所述电子装置被配置为通过以下处理设置所述电子装置的状态:将响应于确定主机处理器中的故障而被进行检查点的加速器数据加载到加速器的存储器;以及将在对主机处理器进行检查点的间隔取得的主机处理器的最近被进行检查点的主机数据加载到主机处理器的存储器,其中,响应于确定主机处理器中的故障而取得的加速器数据基于在主机处理器的最近被进行检查点的主机数据被取得之后发生的应用的操作;并且
根据设置的状态恢复应用的执行。
12.根据权利要求11所述的电子装置,其中,应用的执行包括:执行对设置的状态下的加速器的训练或使用设置的状态下的加速器进行推断。
13.一种用于对加速器执行按需检查点的方法,包括:
将电子装置的主机处理器的存储器的主机检查点捕获到存储设备,其中,主机检查点以第一间隔被捕获;
将电子装置的加速器的存储器的加速器检查点捕获到存储设备,其中,加速器检查点以不同于第一间隔的第二间隔被捕获;以及
基于主机处理器中发生故障,将加速器的存储器的故障检查点捕获到存储设备。
14.根据权利要求13所述的方法,其中,
故障检查点在不涉及主机处理器的情况下被捕获。
15.根据权利要求13所述的方法,其中,
第一间隔的持续时间与主机处理器的故障率成比例,并且
第二间隔的持续时间与加速器的故障率成比例。
16.根据权利要求13至权利要求15中的任一项所述的方法,还包括:与主机处理器中发生故障相关联地执行以下步骤:
重新启动或重置主机处理器;
将最近捕获的主机检查点从存储设备恢复到主机处理器的存储器;以及
将加速器的故障检查点从存储设备恢复到加速器。
17.根据权利要求16所述的方法,还包括:
在从主机检查点被最近捕获到的时间到故障的时间的时间段期间,将在主机处理器中执行的多个操作的标记记录到存储设备;以及
基于恢复的最近捕获的主机检查点,根据所述多个操作的标记,在主机处理器中执行或应用由所述多个操作的标记指示的所述多个操作中的至少一些操作,
其中,当主机处理器执行或应用所述多个操作中的至少一些操作时,加速器被配置为保持从存储设备接收的故障检查点,使得在所述多个操作中的至少一些操作已经被执行或应用之后,加速器的存储器中的加速器数据不被改变。
18.根据权利要求17所述的方法,其中,
在主机处理器中执行或应用所述多个操作中的所述至少一些操作包括:
不执行或应用由所述标记指示的将改变加速器的状态和/或存储器的一个或多个操作;或者
通过从存储设备接收由所述标记指示的所述多个操作中的读取加速器的状态和/或存储器的一个或多个操作的结果值来应用所述一个或多个操作,所述结果值已经通过记录被存储在存储设备中。
19.一种用于对加速器执行按需检查点的方法,包括:
在主机处理器的故障之前:在主机处理器和加速器装置上执行应用的操作,其中,主机处理器的主机存储器和加速器装置的加速器存储器在所述操作被执行时被更新;并且周期性地将主机存储器的主机检查点捕获到存储设备;
响应于主机处理器的故障,捕获按需加速器检查点;以及
在从主机处理器的故障恢复之后,基于恢复最后捕获的主机检查点并且基于恢复按需加速器检查点来恢复执行应用的操作。
20.根据权利要求19所述的方法,其中,按需加速器检查点包括与在最后捕获的主机检查点之后执行的操作的一部分对应的状态,其中,恢复最后捕获的主机检查点丢失了与尚未被进行检查点的操作的所述部分对应的主机存储器状态;以及
在从主机处理器的故障恢复之后,基于恢复最后周期性捕获的主机检查点并且基于恢复按需加速器检查点来恢复执行应用的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0028354 | 2022-03-04 | ||
KR1020220028354A KR20230131017A (ko) | 2022-03-04 | 2022-03-04 | 가속기에 대해 온-디멘드 체크포인트를 수행하는 전자 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116701102A true CN116701102A (zh) | 2023-09-05 |
Family
ID=85036525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310141744.4A Pending CN116701102A (zh) | 2022-03-04 | 2023-02-17 | 用于对加速器执行按需检查点的电子装置和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US12019520B2 (zh) |
EP (1) | EP4239482A1 (zh) |
JP (1) | JP2023129318A (zh) |
KR (1) | KR20230131017A (zh) |
CN (1) | CN116701102A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240184731A1 (en) * | 2022-12-02 | 2024-06-06 | Boston Dynamics, Inc. | Data transfer assemblies for robotic devices |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02287858A (ja) * | 1989-04-28 | 1990-11-27 | Toshiba Corp | 分散処理システムのリスタート方式 |
JP3154942B2 (ja) * | 1995-09-11 | 2001-04-09 | 株式会社東芝 | 分散チェックポイント生成方法および同方法が適用される計算機システム |
US7200772B2 (en) * | 2003-04-29 | 2007-04-03 | Intel Corporation | Methods and apparatus to reinitiate failed processors in multiple-processor systems |
US7409589B2 (en) * | 2005-05-27 | 2008-08-05 | International Business Machines Corporation | Method and apparatus for reducing number of cycles required to checkpoint instructions in a multi-threaded processor |
US9286109B1 (en) * | 2005-08-26 | 2016-03-15 | Open Invention Network, Llc | Method and system for providing checkpointing to windows application groups |
US7873869B2 (en) | 2008-10-09 | 2011-01-18 | International Business Machines Corporation | Checkpointing a hybrid architecture computing system |
US8108662B2 (en) * | 2008-10-09 | 2012-01-31 | International Business Machines Corporation | Checkpointing a hybrid architecture computing system |
US9135117B2 (en) * | 2012-12-10 | 2015-09-15 | International Business Machines Corporation | Recovery for long running multithreaded processes |
US9280383B2 (en) * | 2014-06-12 | 2016-03-08 | International Business Machines Corporation | Checkpointing for a hybrid computing node |
US9652336B2 (en) * | 2015-03-13 | 2017-05-16 | International Business Machines Corporation | Resilient programming frameworks for handling failures in parallel programs |
US9588767B2 (en) * | 2015-06-25 | 2017-03-07 | International Business Machines Corporation | Silent store detection and recording in memory storage |
EP3478311A4 (en) * | 2016-06-29 | 2021-01-06 | The Regents of the University of California | STRUCTURE-BASED PEPTIDE INHIBITORS OF THE ALPHA-SYNUCLEIN AGGREGATION |
US10275851B1 (en) | 2017-04-25 | 2019-04-30 | EMC IP Holding Company LLC | Checkpointing for GPU-as-a-service in cloud computing environment |
US10698766B2 (en) | 2018-04-18 | 2020-06-30 | EMC IP Holding Company LLC | Optimization of checkpoint operations for deep learning computing |
US10877847B2 (en) * | 2018-10-09 | 2020-12-29 | International Business Machines Corporation | Using accelerators for distributed data compression and decompression to improve checkpoint / restart times |
US11586510B2 (en) * | 2018-10-19 | 2023-02-21 | International Business Machines Corporation | Dynamic checkpointing in a data processing system |
GB2582783B (en) | 2019-04-02 | 2021-05-12 | Graphcore Ltd | Checkpointing |
US11016861B2 (en) | 2019-04-11 | 2021-05-25 | International Business Machines Corporation | Crash recoverability for graphics processing units (GPU) in a computing environment |
US11231868B2 (en) | 2020-04-07 | 2022-01-25 | Eidetic Communications Inc. | System and method for performing computational storage utilizing a hardware accelerator |
-
2022
- 2022-03-04 KR KR1020220028354A patent/KR20230131017A/ko unknown
- 2022-11-21 US US17/991,189 patent/US12019520B2/en active Active
-
2023
- 2023-01-20 EP EP23152733.4A patent/EP4239482A1/en active Pending
- 2023-02-17 CN CN202310141744.4A patent/CN116701102A/zh active Pending
- 2023-02-27 JP JP2023027910A patent/JP2023129318A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US12019520B2 (en) | 2024-06-25 |
EP4239482A1 (en) | 2023-09-06 |
KR20230131017A (ko) | 2023-09-12 |
US20230281081A1 (en) | 2023-09-07 |
JP2023129318A (ja) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230305732A1 (en) | Replication Among Storage Systems Hosting An Application | |
US8132043B2 (en) | Multistage system recovery framework | |
CN109690487B (zh) | 用于执行软件容器的实时迁移的系统和方法 | |
US7627728B1 (en) | System and method for efficient generation of application snapshots | |
US20170300505A1 (en) | Snapshot creation | |
US7543180B2 (en) | Enhancing throughput and fault-tolerance in a parallel-processing system | |
US20150339366A1 (en) | Replication for on-line hot-standby database | |
US9342420B2 (en) | Communication of conditions at a primary storage controller to a host | |
US9256489B2 (en) | Synchronized debug information generation | |
US10055307B2 (en) | Workflows for series of snapshots | |
US9195528B1 (en) | Systems and methods for managing failover clusters | |
CN116701102A (zh) | 用于对加速器执行按需检查点的电子装置和方法 | |
US9933953B1 (en) | Managing copy sessions in a data storage system to control resource consumption | |
US20100085871A1 (en) | Resource leak recovery in a multi-node computer system | |
US8537662B2 (en) | Global detection of resource leaks in a multi-node computer system | |
WO2023165512A1 (zh) | 一种故障文件保存方法及相关装置 | |
Dinu et al. | Hadoop’s overload tolerant design exacerbates failure detection and recovery | |
Chen et al. | Fault-Tolerance Implementation in Typical Distributed Stream Processing Systems. | |
Meyer et al. | RADIC: A faulttolerant middleware with automatic management of spare nodes | |
KR102052816B1 (ko) | 비휘발성 주기억장치 환경에서 에러 복구 방법 및 그 시스템 | |
US20230385156A1 (en) | Distributed fault-tolerance via disaggregated memory boards | |
US20240176703A1 (en) | Application-consistent disaster recovery for container-based applications | |
CN116070110A (zh) | 用于故障恢复的系统、设备和方法 | |
Rodríguez et al. | Improving an MPI application-level migration approach through checkpoint file splitting | |
WO2022159157A1 (en) | Application replication among storage systems synchronously replicating a dataset |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |