CN116302659B - Gpu显存错误处理方法及装置、电子设备和存储介质 - Google Patents
Gpu显存错误处理方法及装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116302659B CN116302659B CN202310468707.4A CN202310468707A CN116302659B CN 116302659 B CN116302659 B CN 116302659B CN 202310468707 A CN202310468707 A CN 202310468707A CN 116302659 B CN116302659 B CN 116302659B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- video memory
- host
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 303
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000000034 method Methods 0.000 claims abstract description 76
- 230000008569 process Effects 0.000 claims abstract description 34
- 238000006243 chemical reaction Methods 0.000 claims abstract description 28
- 238000001514 detection method Methods 0.000 claims description 113
- 238000012790 confirmation Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 abstract description 6
- 238000007726 management method Methods 0.000 description 47
- 238000010586 diagram Methods 0.000 description 22
- 238000012937 correction Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 101100498823 Caenorhabditis elegans ddr-2 gene Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within 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/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- 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)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及计算机技术领域,涉及一种GPU显存错误处理方法及装置、电子设备和存储介质。所述方法,包括:在接收到GPU中DDR控制器发送的中断信号的情况下,根据所述中断信号,确定不匹配的任务数据在GPU显存中的写入地址;对所述写入地址进行地址转换,得到任务地址;生成包含所述任务地址的请求信息,并发送给所述主机,所述请求信息用于指示所述主机对所述下发任务进行处置;其中,所述***管理单元设置在所述GPU显存以外的存储介质上。本公开实施例提高了GPU显存错误处理方法的可执行性,提高了GPU读取到的数据的准确度,进一步有效提高了GPU计算过程的稳定性和准确率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种GPU显存错误处理方法及装置、***、电子设备和存储介质。
背景技术
图形处理器(Graphic Processing Unit,GPU)为具有多核架构的显示芯片。由于其强大的并行计算能力、高吞吐率以及高性价比,已经成为高性能计算领域的主流加速器。
目前,对GPU显存进行错误检查和纠正保护,帮助GPU发现和纠正内部显存访问中的潜在显存错误,从而有效地抵御GPU上的显存错误。然而,对于其中的一些显存错误,报告错误后,被执行的任务就已经结束了,不能实时恢复。在GPU进行大规模的实时数据处理的情况下,被执行任务的简单中断,会降低GPU计算结果的准确度。
发明内容
有鉴于此,本公开提出了一种GPU显存错误处理技术方案。
根据本公开的一方面,提供了一种GPU显存错误处理方法,用于GPU的***管理单元,包括:在接收到GPU中双倍速率同步动态随机存储器DDR控制器发送的中断信号的情况下,根据所述中断信号,确定不匹配的任务数据在GPU显存中的写入地址,所述中断信号用于指示主机写入所述GPU显存中的第一任务数据和所述DDR控制器从所述GPU显存中读取的第二任务数据不匹配;对所述写入地址进行地址转换,得到任务地址,所述任务地址为所述不匹配的任务数据对应的下发任务在所述主机中的存放地址;生成包含所述任务地址的请求信息,并发送给所述主机,所述请求信息用于指示所述主机对所述下发任务进行处置;其中,所述***管理单元设置在所述GPU显存以外的存储介质上。
在一种可能的实现方式中,所述中断信号,用于指示所述DDR控制器检测到的第一检错数据和第二检错数据不匹配;其中,所述第一检错数据,由所述DDR控制器在所述主机向所述GPU显存中写入所述第一任务数据时根据所述第一任务数据生成,所述第二检错数据,由所述DDR控制器在从所述GPU显存中读取所述第一任务数据时根据读取到的所述第二任务数据生成。
在一种可能的实现方式中,所述第一检错数据和所述第二检错数据通过第一数据通道进行数据传送,所述第一任务数据和所述第二任务数据通过第二数据通道进行数据传送。
在一种可能的实现方式中,在所述生成包含所述任务地址的请求信息,并发送给所述主机后,所述方法还包括:指示所述GPU显存停止接受所述主机写入任务数据;在接收到所述主机针对所述请求信息返回的确认信息后,指示所述GPU显存恢复接受所述主机写入任务数据,所述确认信息用于指示所述主机已执行对所述下发任务的处置。
在一种可能的实现方式中,所述指示所述GPU显存停止接受所述主机写入任务数据,包括:指示所述GPU显存停止接受所述主机写入所述下发任务的任务数据,其中,所述下发任务以外的其它任务的任务数据正常写入所述GPU显存。
在一种可能的实现方式中,所述请求信息通过主机和GPU进程间通讯协议发送给所述主机。
根据本公开的另一方面,提供了一种GPU显存错误处理方法,用于主机,包括:接收GPU的***管理单元发送的包含任务地址的请求信息,所述请求信息用于指示写入GPU显存中的第一任务数据和GPU的DDR控制器从所述GPU显存中读取的第二任务数据不匹配;确定所述任务地址在所述主机中对应的下发任务;根据历史请求信息,对所述下发任务进行处置,所述历史请求信息为在接受所述请求信息前,所述***管理单元发送的写入地址的历史信息,所述写入地址为所述第一任务数据在所述GPU显存中的存放地址;其中,所述***管理单元设置在所述GPU显存以外的存储介质上。
在一种可能的实现方式中,所述根据历史请求信息,对所述下发任务进行处置,包括:在预设时间段内,在所述历史请求信息的数量超过阈值时,将所述第一任务数据删除;在预设时间段内,在所述历史请求信息的数量未超过阈值时,向所述GPU显存中重新写入所述第一任务数据。
根据本公开的另一方面,提供了一种GPU显存错误处理装置,包括DDR控制器、数据区域、***管理单元和地址转换模块,其中:所述DDR控制器,将主机写入所述数据区域的第一任务数据和从所述数据区域中读取的第二任务数据进行匹配,在不匹配的情况下,向所述***管理单元发送中断信号;所述***管理单元,根据收到的所述中断信号,确定不匹配的任务数据在所述数据区域中的写入地址,并将所述写入地址发送给所述地址转换模块;所述地址转换模块,对接收到的所述写入地址进行地址转换,得到任务地址,并将所述任务地址发送给所述***管理单元,所述任务地址为所述不匹配的任务数据对应的下发任务在所述主机中的存放地址;所述***管理单元,生成包含所述任务地址的请求信息,并发送给所述主机,以使主机根据所述请求信息,对所述下发任务进行处置;其中,所述***管理单元设置在所述数据区域以外的存储介质上。
在一种可能的实现方式中,所述DDR控制器,根据所述主机写入所述数据区域的第一任务数据,生成第一检错数据;根据从所述数据区域读取的第二任务数据,生成第二检错数据;将所述第一检错数据和所述第二检错数据进行匹配;所述装置,包括:检错区域,用于存储所述第一检错数据和所述第二检错数据。
在一种可能的实现方式中,所述***管理单元,在向所述主机发送所述请求信息后,指示所述数据区域停止接受所述主机写入的任务数据;在接收到确认信息后,指示所述数据区域恢复接受所述主机写入的任务数据,所述确认信息,为所述主机向所述***管理单元发送的表征已对所述下发任务进行处置的信息。
根据本公开的另一方面,提供了一种GPU显存错误处理装置,用于GPU的***管理单元,包括:写入地址确定模块,用于在接收到GPU中DDR控制器发送的中断信号的情况下,根据所述中断信号,确定不匹配的任务数据在GPU显存中的写入地址,所述中断信号用于指示主机写入所述GPU显存中的第一任务数据和所述DDR控制器从所述GPU显存中读取的第二任务数据不匹配;地址转换模块,用于对所述写入地址进行地址转换,得到任务地址,所述任务地址为所述不匹配的任务数据对应的下发任务在所述主机中的存放地址;请求信息发送模块,用于生成包含所述任务地址的请求信息,并发送给所述主机,所述请求信息用于指示所述主机对所述下发任务进行处置;其中,所述***管理单元设置在所述GPU显存以外的存储介质上。
在一种可能的实现方式中,所述中断信号,用于指示所述DDR控制器检测到的第一检错数据和第二检错数据不匹配;其中,所述第一检错数据,由所述DDR控制器在所述主机向所述GPU显存中写入所述第一任务数据时根据所述第一任务数据生成,所述第二检错数据,由所述DDR控制器在从所述GPU显存中读取所述第一任务数据时根据读取到的所述第二任务数据生成。
在一种可能的实现方式中,所述第一检错数据和所述第二检错数据通过第一数据通道进行数据传送,所述第一任务数据和所述第二任务数据通过第二数据通道进行数据传送。
在一种可能的实现方式中,所述装置还包括:第一指示模块,用于在执行所述请求信息发送模块后,指示所述GPU显存停止接受所述主机写入任务数据;第二指示模块,用于在接收到所述主机针对所述请求信息返回的确认信息后,指示所述GPU显存恢复接受所述主机写入任务数据,所述确认信息用于指示所述主机已执行对所述下发任务的处置。
在一种可能的实现方式中,所述第一指示模块,用于:指示所述GPU显存停止接受所述主机写入所述下发任务的任务数据,其中,所述下发任务以外的其它任务的任务数据正常写入所述GPU显存。
在一种可能的实现方式中,所述请求信息通过主机和GPU进程间通讯协议发送给所述主机。
根据本公开的另一方面,提供了一种GPU显存错误处理***,包括:GPU卡,其具有上述的GPU显存错误处理装置;主机,接收包含任务地址的请求信息;确定所述任务地址在所述主机中对应的下发任务;根据历史请求信息,对所述下发任务进行处置,所述历史请求信息为在接受所述请求信息前,所述***管理单元发送的写入地址的历史信息,所述写入地址为所述第一任务数据在GPU显存中的存放地址。
根据本公开的另一方面,提供了一种GPU显存错误处理装置,用于主机,包括:请求信息接收模块,用于接收GPU的***管理单元发送的包含任务地址的请求信息,所述请求信息用于指示写入GPU显存中的第一任务数据和GPU的DDR控制器从所述GPU显存中读取的第二任务数据不匹配;下发任务确定模块,用于确定所述任务地址在所述主机中对应的下发任务;下发任务处置模块,用于根据历史请求信息,对所述下发任务进行处置,所述历史请求信息为在接受所述请求信息前,所述***管理单元发送的写入地址的历史信息,所述写入地址为所述第一任务数据在所述GPU显存中的存放地址;其中,所述***管理单元设置在所述GPU显存以外的存储介质上。
在一种可能的实现方式中,所述下发任务处置模块,用于:在预设时间段内,在所述历史请求信息的数量超过阈值时,将所述第一任务数据删除;在预设时间段内,在所述历史请求信息的数量未超过阈值时,向所述GPU显存中重新写入所述第一任务数据。
根据本公开的另一方面,提供了一种电子设备,包括:
处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述的GPU显存错误处理方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述的GPU显存错误处理方法。
在本公开实施例中,将GPU显存错误处理方法运行在SMU上,SMU通过接收到的中断信号确定不匹配的任务数据在GPU显存中的写入地址,将写入地址进行地址转换后,获取该不匹配的任务数据对应的下发任务在主机中的任务地址,进而将包含该任务地址的请求信息发送给主机,指示主机对该下发任务进行处置。该过程首先将GPU显存错误处理方法运行在SMU上,而非DDR显存上,避免了DDR显存出现错误时,无法对该显存错误进行分析和处置,提高了GPU显存错误处理方法的可执行性;其次,该过程通过对GPU显存的双位或多位不匹配错误对应的下发任务的及时处置过程,替代了现有技术中 出现显存错误时对执行任务进行简单中断的处置过程,且在GPU显存出现错误时保持下发任务的连续稳定处理,提高了GPU读取到的数据的准确度,进一步有效提高了GPU计算过程的稳定性和准确率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的GPU显存错误处理方法的流程图。
图2示出根据本公开一实施例的GPU显存错误处理方法的流程图。
图3示出根据本公开一应用示例的示意图。
图4示出根据本公开一应用示例的***框图。
图5示出根据本公开一实施例的GPU显存错误处理装置的框图。
图6示出根据本公开一实施例的GPU显存错误处理装置的框图。
图7示出根据本公开一实施例的GPU显存错误处理装置的框图。
图8示出根据本公开一实施例的一种电子设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
随着大数据生态圈的发展,大规模的实时数据处理在过去几年中变得越来越普遍。而CPU的并行计算能力和效率较低,难以满足当前数据可视化、交互式分析等新兴领域中的大数据处理。
当前,图形处理器(Graphics Processing Unit, 简称 GPU),是用于应对大数据处理技术升级的非CPU的新重要平台之一。GPU相对CPU,具有更高的并行计算能力,其编程也更灵活,GPU的硬件进步为大数据处理带来了突破摩尔定律的契机。
GPU作为加速设备难以单独运行,需要和CPU相结合,但由于GPU相对CPU具有明显更高的计算能力和上升空间,目前的研究主要利用CPU作为控制器,而利用GPU作为执行器。一般的,CPU侧的主存和GPU侧的显存间,通过高速串行计算机扩展总线(PeripheralComponent Interconnect Express,PCIe)互连,以进行CPU-GPU间的数据移动。具体的,CPU-GPU间的数据移动主要包括:CPU先从文件***读取原始数据,将待GPU处理的数据放入***内存中;CPU将准备好的数据从***内存复制到GPU显存中;CPU指示GPU进行数据处理;CPU从GPU显存中读取处理好的数据。
当今主流的显存类型包括:同步动态随机存取显存(synchronous dynamicrandom access memory,SDRAM)、双倍速率同步动态随机存取显存(double data ratesynchronous dynamic random access memory,DDR SDRAM)等。为了更好的说明本公开,凸显本公开的主旨,本文的具体实施例以DDR SDRAM显存(简称DDR显存)这一类GPU显存为描述对象,本领域技术人员应当理解,对于其他类型的GPU显存,本公开也同样可以实施。
显存错误,表示DRAM(动态随机存取显存)的单位自发地变成相反的状态。具体的,根据产生的原因,显存错误可分为硬错误和软错误。其中,硬错误是由于硬件的损坏或缺陷造成的,因此,数据总是不正确的,此类错误是无法纠正的;软错误是随机出现的,例如在显存附近突然出现电子干扰等因素,可能造成显存软错误的出现。
在CPU-GPU间进行数据移动时,尤其是CPU将数据从***内存复制到GPU显存的过程中,由于高性能计算/深度学习领域的数据过于庞大,或电磁干扰、电流不稳定以及宇宙射线等因素的存在,会导致GPU显存中存储的数据发生错误,即GPU显存中出现显存错误,这些错误的出现会影响GPU运算的连续稳定可靠运行。
目前,对GPU进行错误检查和纠正(Error Checking and Correction,ECC)保护,帮助GPU发现和纠正内部显存访问中的潜在显存错误。具体的,DDR控制器通过为实际数据生成ECC单位纠错和双位检错(single error correction double error detection,SECDED)数据并存储到GPU显存中,可以对从GPU显存中读取的数据进行单位(1bit)纠错和双位(2bit)检错。但是对于双位或多位错误,往往在报告错误之后没有任何处理,出错的任务不能实时恢复。
图1示出根据本公开一实施例的GPU显存错误处理方法的流程图,该方法可以应用于GPU显存错误处理装置,GPU显存错误处理装置可以为终端设备、服务器或者其他处理设备等。其中,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。
在一些可能的实现方式中,该GPU显存错误处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
如图1所示,所述GPU显存错误处理方法,用于GPU的***管理单元,可以包括:
在步骤S11中,在接收到GPU中双倍速率同步动态随机存储器DDR控制器发送的中断信号的情况下,根据所述中断信号,确定不匹配的任务数据在GPU显存中的写入地址。
其中,GPU显存错误,是指GPU显存上至少一个最小单元存储的电荷自发地变成相反的状态。与前述的显存错误一样,GPU显存错误可以根据产生的原因,分为硬错误和软错误。DDR控制器是一种控制寄存器,能够处理DDR显存的数据读写,以及配置DDR显存错误的策略。
现有技术中,当主机写入DDR显存中的任务数据和从DDR显存中读取该任务数据时获取的实际数据,出现双位或多位不匹配错误时,由于GPU显存的错误检查和纠正程序运行在已出错的DDR(DDR/DDR2/DDR3)显存上,无法对该不匹配错误进行纠错,使得该程序在报告不匹配错误后就结束。在一示例中,可以将本公开实施例的GPU显存错误处理方法运行在GPU的***管理单元(system management unit,SMU)上,即,将所述***管理单元设置在所述GPU显存以外的存储介质上,具体的,可以不将SMU放置在DDR显存上,例如,可以放置在一块单独的内存上,此时,当DDR显存出现双位或多位不匹配错误时,不影响SMU的正常运行,为SMU进行GPU显存错误问题的解决提供了前提。
具体的,所述中断信号用于指示主机写入GPU显存中的第一任务数据和从GPU显存中读取的第二任务数据存在双位或多位不匹配。其中,第二任务数据为DDR控制器从GPU显存中读取第一任务数据时得到的数据。在一示例中,所述中断信号,用于指示所述DDR控制器检测到的第一检错数据和第二检错数据不匹配;
其中,所述第一检错数据,由所述DDR控制器在所述主机向所述GPU显存中写入所述第一任务数据时根据所述第一任务数据生成,所述第二检错数据,由所述DDR控制器在从所述GPU显存中读取所述第一任务数据时根据读取到的所述第二任务数据生成。
具体的,DDR控制器通过从主机传送的第一任务数据生成ECC数据,并存储到GPU显存中,并对从GPU显存中读取到的第二任务数据,再次生成ECC数据,并进行单位纠错和双位检错。ECC数据的生成和校验的顺序可以如下:
(1)在主机向DDR显存写入第一任务数据时,DDR控制器根据实际写入的数据生成ECC数据(第一检错数据)。DDR显存中,同时存储写入的第一任务数据和第一检错数据。
(2)在读取第一任务数据时,DDR控制器从DDR显存中,读取第一任务数据和相应的ECC数据(第一检错数据),并利用读取到的第二任务数据重新生成ECC数据(第二检错数据)。在一示例中,第一检错数据和第二检错数据的生成方法,可以是奇偶校验法。本公开对第一检错数据和第二检错数据的生成方法不作具体限定,可以根据实际情况进行选择。
(3)将第二检错数据与第一检错数据进行比较,当第一检错数据和第二检错数据匹配时,表示当前DDR显存中的第一任务数据没有出现错误;当第一检错数据和第二检错数据不匹配时,表示在当前DDR显存中存储的第一任务数据出现错误。具体的,出现错误的位置,可能是第一检错数据和第二检错数据不匹配处所对应的第一任务数据、在GPU显存中存放的位置。
进一步的,ECC数据(包括第一检错数据和第二检错数据)的存储方案可以有两种:(1)ECC数据和写入的第一任务数据存储在同一存储介质上;(2)ECC数据和写入的第一任务数据分别存储在不同存储介质上。本公开对ECC数据的具体存放方式不作限定,可以根据实际情况进行选择。
上述实施例中,DDR控制器根据写入GPU显存的第一任务数据生成第一检错数据,根据从GPU显存中读取到的第二任务数据生成第二检错数据,通过第一检错数据和第二检错数据的比对,即可发现存储第一任务数据的GPU显存是否存在错误。该过程通过第一检错数据和第二检错数据,实现了对GPU显存错误的有效检测,以便进一步根据检测到的错误,进行纠错,提高GPU计算过程的稳定性和正确度。
进一步的,DDR控制器在发现主机写入GPU显存中的第一任务数据和从GPU显存中读取到的第二任务数据不匹配时,可以在确定不匹配的任务数据(即,主机写入GPU显存中的第一任务数据和从GPU显存中读取到的第二任务数据不一致的数据)后,根据不匹配的任务数据的具体形式进行处置。具体的,当该不匹配的任务数据是单位(1bit)时,DDR控制器会主动纠正该GPU显存错误;当该不匹配的任务数据是双位(2bit)及以上时,DDR控制器会向SMU发送中断信号,以便SMU对该GPU显存错误进行处置。由于第一任务数据与写入DDR显存的地址是一一对应的,SMU能够根据中断信号,确定不匹配的任务数据的写入地址。
在步骤S12中,对所述写入地址进行地址转换,得到任务地址,所述任务地址为所述不匹配的任务数据对应的下发任务在所述主机中的存放地址。
具体的,CPU-GPU间进行数据移动时,下发任务的第一任务数据从主机中的存放位置被复制到DDR显存中的存放位置,两个位置是一一对应的,进而,在得知不匹配的任务数据的写入地址(即第一任务数据在DDR显存中的存放位置)后,可以对该写入地址进行地址转换,以确定该下发任务在主机中的存放位置。
在步骤S13中,生成包含所述任务地址的请求信息,并发送给所述主机。
具体的,所述请求信息用于指示所述主机对所述下发任务进行处置。在GPU显存出现双位或多位不匹配错误时,主机在未获知该错误的情况下,可能会指示GPU进行任务数据的重复计算,导致GPU计算能力的浪费或GPU产生大的计算偏差值。在一示例中,SMU可以在获取任务地址后,生成包含所述任务地址的请求信息,发送给主机,指示主机对该任务地址处的下发任务进行处置,所述处置方式可以是将出错的第一任务数据重新从主机复制到GPU上,以使GPU重新执行该第一任务数据的计算,或主机直接丢弃该任务。
在本公开实施例中,将GPU显存错误处理方法运行在SMU上,SMU通过接收到的中断信号确定不匹配的任务数据在GPU显存中的写入地址,将写入地址进行地址转换后,获取该不匹配的任务数据对应的下发任务在主机中的任务地址,进而将包含该任务地址的请求信息发送给主机,指示主机对该下发任务进行处置。该过程首先将GPU显存错误处理方法运行在SMU上,而非DDR显存上,减少了DDR显存出现错误时无法对该显存错误进行分析和处置的情况,提高了GPU显存错误处理方法的可执行性;其次,该过程通过对GPU显存的双位或多位不匹配错误对应的下发任务的及时处置过程,替代了现有技术中出现显存错误时对执行任务进行简单中断的处置过程,且在GPU显存出现错误时保持下发任务的连续稳定处理,提高了GPU读取到的数据的准确度,进一步有效提高了GPU计算过程的稳定性和准确率。
在检错数据(包括第一检错数据和第二检错数据)和任务数据(包括第一任务数据和第二任务数据)通过相同的数据通道进行数据传送过程中,在不匹配的任务数据出现时,可能会出现DDR控制器产生的检错数据被一并修改,进而使DDR控制器无法发现从GPU显存读取的第二任务数据和存储的第一任务数据不匹配的情况,进而无法对不匹配的任务数据进行纠错处理。在一种可能的实现方式中,所述第一检错数据和所述第二检错数据通过第一数据通道进行数据传送,所述第一任务数据和所述第二任务数据通过第二数据通道进行数据传送。该过程通过检错数据和任务数据通过不同的数据通道传送数据,减少了使用相同数据通道时ECC数据无法被检测到的情况,使得在第一任务数据和第二任务数据存在不匹配问题时,第一检错数据和第二检错数据不同的问题能够被快速发现并处理,提高了GPU显存错误处置的及时性。
在一种可能的实现方式中,在所述生成包含所述任务地址的请求信息,并发送给所述主机后,所述方法还包括:
指示所述GPU显存停止接受所述主机写入任务数据;
在接收到所述主机针对所述请求信息返回的确认信息后,指示所述GPU显存恢复接受所述主机写入任务数据,所述确认信息用于指示所述主机已执行对所述下发任务的处置。
具体的,在SMU向主机发送包含任务地址的请求信息后,等待主机对任务地址处的下发任务进行处置的时间段内,为避免GPU显存错误导致GPU计算的偏差,可以暂时中止主机向GPU显存中写入新的任务数据。进一步的,在收到主机向SMU发送的指示主机已对写入地址错误处对应的下发任务进行处置的确认信息后,即可使GPU显存重新接受主机写入的任务数据,继续进行数据处理。
在本公开实施例中,SMU在向主机发送请求信息后,即暂停主机向GPU显存中写入任务数据,而在主机发送针对该请求信息的确认信息后,即恢复主机向GPU显存中写入任务数据。该过程避免了GPU显存出现双位或多位不匹配错误而未解决时,GPU继续执行任务数据可能带来的DDR控制器重复产生中断信号,而使GPU不能正常计算的现象发生,提高了GPU计算过程的稳定性。
在一种可能的实现方式中,所述指示所述GPU显存停止接受所述主机写入任务数据,包括:
指示所述GPU显存停止接受所述主机写入所述下发任务的任务数据,其中,所述下发任务以外的其它任务的任务数据正常写入所述GPU显存。
具体的,在GPU显存错误处理过程中,可以仅停止不匹配的任务数据对应的下发任务从主机向GPU显存中写入,而不中止其他下发任务从主机向GPU显存中写入。该过程不仅避免了不匹配的任务数据对应的下发任务重复写入GPU显存时,DDR控制器重复产生中断信号,而使GPU不能正常计算的现象发生,同时使得主机下发的其他任务能够正常执行,提高了GPU的利用率。
在一种可能的实现方式中,所述请求信息通过主机和GPU进程间通讯协议发送给所述主机。
具体的,由于进程间通信(Inter-Process Communication,IPC)能够进行实时同步,SMU将请求信息通过主机和GPU进程间通讯协议发送给主机,能够实现请求信息在主机和SMU之间的同步,使得主机能够及时收到请求信息,尽早对GPU显存中不匹配的任务数据对应的下发任务进行处置,提高GPU计算的效率和准确度。
图2示出根据本公开一实施例的GPU显存错误处理方法的流程图,该方法可以应用于GPU显存错误处理装置,GPU显存错误处理装置可以为终端设备、服务器或者其他处理设备等。其中,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。
在一些可能的实现方式中,该GPU显存错误处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
如图2所示,该GPU显存错误处理方法,用于主机,可以包括:
在步骤S21中,接收GPU的***管理单元发送的包含任务地址的请求信息,所述请求信息用于指示写入GPU显存中的第一任务数据和GPU的DDR控制器从所述GPU显存中读取的第二任务数据不匹配;
在步骤S22中,确定所述任务地址在所述主机中对应的下发任务;
在步骤S23中,根据历史请求信息,对所述下发任务进行处置,所述历史请求信息为在接受所述请求信息前,所述***管理单元发送的写入地址的历史信息,所述写入地址为所述第一任务数据在所述GPU显存中的存放地址;
其中,所述***管理单元设置在所述GPU显存以外的存储介质上。
具体的,主机在接收请求信息后,根据请求信息指示的任务地址,可以确定任务地址处的下发任务,即确定GPU显存中不匹配的任务数据在主机中对应的下发任务。历史请求信息是在历史时间段内,GPU中不匹配的任务数据的写入地址处的请求信息的发送情况。由于历史请求信息能够反映GPU显存中写入地址处显存错误的发生频率,可以根据历史请求信息,确定对当前下发任务的处置方案。在一示例中,所述根据历史请求信息,对所述下发任务进行处置,包括:
在预设时间段内,在所述历史请求信息的数量超过阈值时,将所述第一任务数据删除;
在预设时间段内,在所述历史请求信息的数量未超过阈值时,向所述GPU显存中重新写入所述第一任务数据。
其中,预设时间段内的历史请求信息的数量,反映了预设时间段内,SMU发送的写入地址处的请求信息的发送频率,在该发送频率高(即,在预设时间段内,在所述历史请求信息的数量超过阈值)时,写入地址处的GPU显存可能存在问题(即该显存错误类型可能为硬错误),即使主机将第一任务数据再次写入GPU显存,GPU显存也有很大概率使该第一任务数据的读取再次出错,在此情况下,可将第一任务数据删除,暂不处理,进一步的,可以对GPU显存进行处理后,再进行第一任务数据的处理。本公开对阈值不作具体限定,可以根据实际情况进行选择。
而在该发送频率低(即,在预设时间段内,在所述历史请求信息的数量未超过阈值)时,写入地址处的GPU显存可能未存在问题(即该显存错误类型可能为软错误),不匹配的任务数据的出现是偶然事件,主机将第一任务数据重新写入GPU显存时,不匹配的任务数据可能不会出现,因此,主机可尝试将第一任务数据再次写入GPU显存,重新进行第一任务数据的处理。
上述实施例实现了对预设时间段内,不同历史请求信息数量的第一任务数据的不同处理。该过程实现了根据GPU中写入地址处向主机发送历史请求信息的频率,进行下发任务的处理,有利于提高第一任务数据的执行成功率,进而提升GPU的利用效率。
在本公开实施例中,主机通过接收的请求信息,确定该请求信息中任务地址对应的下发任务,进而根据GPU中下发任务的写入地址处的历史请求信息确定下发任务的处置方式。该过程实现了对GPU显存中出现不匹配的任务数据对应的下发任务的处置,避免了由于不匹配的任务数据的存在而产生的GPU的计算错误或偏差,提高了GPU计算的执行正确率。
本公开实施例提出了一种GPU显存错误处理方法,这一方法可以通过SMU和主机的交互实现GPU显存中两位或多位错误的有效处理。图3示出根据本公开一应用示例的示意图,如图3所示,该GPU显存错误处理过程可以大致分为五个步骤。
第一步,DDR控制器根据主机写入GPU显存中的第一任务数据,生成第一检错数据,根据从显存中读取到的第二任务数据,生成第二检错数据,所述第一检错数据和所述第二检错数据存储在检错区域,当第一检错数据和第二检错数据不匹配时,DDR控制器生成中断信号。
第二步,SMU接收DDR控制器发送的中断信号,并根据所述中断信号,确定不匹配的任务数据在GPU显存中的写入地址,SMU设置在GPU显存以外的存储介质。
第三步,SMU对写入地址进行地址转换,得到任务地址。具体的,所述任务地址为所述不匹配的任务数据对应的下发任务在主机中的存放地址。
第四步,SMU生成包含所述任务地址的请求信息,并发送给主机。
第五步,主机接收SMU发送的请求信息。
第六步,主机确定所述任务地址对应的下发任务。
第七步,主机根据所示任务地址处的历史请求信息,对所述下发任务进行处置。具体的,所述处置包括:第一任务数据删除或第一任务数据重新写入。
第八步,主机将下发任务已处置的消息发送给SMU,在下发任务的处置方式为重新下发时,恢复写入下发任务的第一任务数据。
在本公开实施例中,将GPU显存错误处理方法运行在SMU上,SMU通过接收到的中断信号确定不匹配的任务数据在GPU显存中的写入地址,将写入地址进行地址转换后,获取该不匹配的任务数据对应的下发任务在主机中的任务地址,进而将包含该任务地址的请求信息发送给主机,指示主机对该下发任务进行处置。该过程首先将GPU显存错误处理方法运行在SMU上,而非DDR显存上,避免了DDR显存出现错误时,无法对该显存错误进行分析和处置,提高了GPU显存错误处理方法的可执行性;其次,该过程通过对GPU显存的双位或多位不匹配错误对应的下发任务的及时处置过程,替代了现有技术中出现显存错误时对执行任务进行简单中断的处置过程,且在GPU显存出现错误时保持下发任务的连续稳定处理,提高了GPU读取到的数据的准确度,进一步有效提高了GPU计算过程的稳定性和准确率。
图4示出根据本公开一应用示例的***框图,如图4所示,该GPU显存错误处理***包括的组成部分有:主机应用程序(APP)、主机基于总线的驱动程序(Driver)、GPU内部的***管理单元(SMU)、地址哈希、DDR缓存、DDR控制器、地址转换模块、数据区域和检错区域,其中,***管理单元设置在数据区域以外的存储介质上。具体的,该GPU显存错误处理***的工作流程,可以包括:
第一步,第一任务数据写入。具体的,主机中的应用程序通过驱动程序,向数据区域写入第一任务数据。该过程在使用地址哈希将读写的数据区域的地址作哈希映射时,当DDR缓存中的数据不满一个缓存行的情况下,不会写任何数据到数据区域,只有DDR缓存中的数据满一个缓存行的情况下,才会把数据刷到数据区域。
第二步,数据匹配。具体的,在主机向数据区域写入第一任务数据时,DDR控制器根据该第一任务数据,生成第一检错数据;在DDR控制器从数据区域读取该第一任务数据时,根据读取到的第二任务数据,生成第二检错数据,同时,DDR控制器会一并读取该第一任务数据对应的第一检错数据;DDR控制器将第一检错数据和第二检错数据进行匹配,在不匹配的情况下,向***管理单元发送中断信号。其中,第一检错数据和第二检错数据存放在检错区域。
第三步,地址确认。具体的,***管理单元,根据收到的中断信号,确定不匹配的任务数据在数据区域中的写入地址,并将该写入地址发送给地址转换模块;地址转换模块,对接收到的写入地址进行地址转换,得到任务地址,并将该任务地址返回给***管理单元。其中,任务地址为不匹配的任务数据对应的下发任务在主机中的存放地址。
第四步,信息发送。具体的,***管理单元,生成包含上述任务地址的请求信息,并发送给主机。
第五步,任务处置。具体的,主机中的驱动程序根据收到的请求信息,对所述下发任务进行处置,例如重新下发第一任务数据或丢弃第一任务数据。
其中,主机和GPU之间存在两条数据路径:基于IPC的包括请求信息发送的路径和进行任务数据下发的路径。
主机将任务数据写入GPU,需要进行两次地址确认:地址哈希和地址转换,地址哈希主要用于确定将任务数据映射到DDR显存(即数据区域)中的具体的通道上,而地址转换用于确定将任务数据写入通道上的具体单元上。
需要说明的是,本公开实施例的显存错误处理方法不限于应用在上述GPU的显存错误处理中,可以应用于任意的显存错误处理,本公开对此不作限定。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了GPU显存错误处理装置、GPU显存错误处理***、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种GPU显存错误处理方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图5示出根据本公开实施例的GPU显存错误处理装置的框图。该GPU显存错误处理装置可以为终端设备、服务器或者其他处理设备等。其中,终端设备可以为用户设备(UserEquipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(PersonalDigital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。
在一些可能的实现方式中,该GPU显存错误处理装置可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
如图5所示,所述GPU显存错误处理装置50,可以包括DDR控制器51、数据区域52、***管理单元53和地址转换模块54,其中:
所述DDR控制器51,将主机写入所述数据区域52的第一任务数据和从所述数据区域52中读取的第二任务数据进行匹配,在不匹配的情况下,向所述***管理单元53发送中断信号;
所述***管理单元53,根据收到的所述中断信号,确定不匹配的任务数据在所述数据区域52中的写入地址,并将所述写入地址发送给所述地址转换模块54;
所述地址转化模块54,对接收到的所述写入地址进行地址转换,得到任务地址,并将所述任务地址发送给所述***管理单元53,所述任务地址为所述不匹配的任务数据对应的下发任务在所述主机中的存放地址;
所述***管理单元53,生成包含所述任务地址的请求信息,并发送给所述主机,以使主机根据所述请求信息,对所述下发任务进行处置;
其中,所述***管理单元53设置在所述数据区域52以外的存储介质上。
在一种可能的实现方式中,所述DDR控制器,根据所述主机写入所述数据区域的第一任务数据,生成第一检错数据;根据从所述数据区域读取的第二任务数据,生成第二检错数据;将所述第一检错数据和所述第二检错数据进行匹配;所述装置,包括:检错区域,用于存储所述第一检错数据和所述第二检错数据。
在一种可能的实现方式中,所述***管理单元,在向所述主机发送所述请求信息后,指示所述数据区域停止接受所述主机写入的任务数据;在接收到确认信息后,指示所述数据区域恢复接受所述主机写入的任务数据,所述确认信息,为所述主机向所述***管理单元发送的表征已对所述下发任务进行处置的信息。
图6示出根据本公开实施例的GPU显存错误处理装置的框图。该GPU显存错误处理装置可以为终端设备、服务器或者其他处理设备等。其中,终端设备可以为用户设备(UserEquipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(PersonalDigital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。
在一些可能的实现方式中,该GPU显存错误处理装置可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
如图6所示,所述GPU显存错误处理装置60,用于GPU的***管理单元,包括:
写入地址确定模块61,用于在接收到GPU中DDR控制器发送的中断信号的情况下,根据所述中断信号,确定不匹配的任务数据在GPU显存中的写入地址,所述中断信号用于指示主机写入所述GPU显存中的第一任务数据和所述DDR控制器从所述GPU显存中读取的第二任务数据不匹配;
地址转换模块62,用于对所述写入地址进行地址转换,得到任务地址,所述任务地址为所述不匹配的任务数据对应的下发任务在所述主机中的存放地址;
请求信息发送模块63,用于生成包含所述任务地址的请求信息,并发送给所述主机,所述请求信息用于指示所述主机对所述下发任务进行处置;
其中,所述***管理单元设置在所述GPU显存以外的存储介质上。
在一种可能的实现方式中,所述中断信号,用于指示所述DDR控制器检测到的第一检错数据和第二检错数据不匹配;其中,所述第一检错数据,由所述DDR控制器在所述主机向所述GPU显存中写入所述第一任务数据时根据所述第一任务数据生成,所述第二检错数据,由所述DDR控制器在从所述GPU显存中读取所述第一任务数据时根据读取到的所述第二任务数据生成。
在一种可能的实现方式中,所述第一检错数据和所述第二检错数据通过第一数据通道进行数据传送,所述第一任务数据和所述第二任务数据通过第二数据通道进行数据传送。
在一种可能的实现方式中,所述装置还包括:第一指示模块,用于在执行所述请求信息发送模块后,指示所述GPU显存停止接受所述主机写入任务数据;第二指示模块,用于在接收到所述主机针对所述请求信息返回的确认信息后,指示所述GPU显存恢复接受所述主机写入任务数据,所述确认信息用于指示所述主机已执行对所述下发任务的处置。
在一种可能的实现方式中,所述第一指示模块,用于:指示所述GPU显存停止接受所述主机写入所述下发任务的任务数据,其中,所述下发任务以外的其它任务的任务数据正常写入所述GPU显存。
在一种可能的实现方式中,所述请求信息通过主机和GPU进程间通讯协议发送给所述主机。
根据本公开的另一方面,提供了一种GPU显存错误处理***,包括:GPU卡,其具有上述的GPU显存错误处理装置;主机,接收包含任务地址的请求信息;确定所述任务地址在所述主机中对应的下发任务;根据历史请求信息,对所述下发任务进行处置,所述历史请求信息为在接受所述请求信息前,所述***管理单元发送的写入地址的历史信息,所述写入地址为所述第一任务数据在GPU显存中的存放地址。
图7示出根据本公开实施例的GPU显存错误处理装置的框图。该GPU显存错误处理装置可以为终端设备、服务器或者其他处理设备等。其中,终端设备可以为用户设备(UserEquipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(PersonalDigital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。
在一些可能的实现方式中,该GPU显存错误处理装置可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
如图7所示,所述GPU显存错误处理装置70,用于主机,包括:
请求信息接收模块71,用于接收GPU的***管理单元发送的包含任务地址的请求信息,所述请求信息用于指示写入GPU显存中的第一任务数据和GPU的DDR控制器从所述GPU显存中读取的第二任务数据不匹配;
下发任务确定模块72,用于确定所述任务地址在所述主机中对应的下发任务;
下发任务处置模块73,用于根据历史请求信息,对所述下发任务进行处置,所述历史请求信息为在接受所述请求信息前,所述***管理单元发送的写入地址的历史信息,所述写入地址为所述第一任务数据在所述GPU显存中的存放地址;
其中,所述***管理单元设置在所述GPU显存以外的存储介质上。
在一种可能的实现方式中,所述下发任务处置模块,用于:在预设时间段内,在所述历史请求信息的数量超过阈值时,将所述第一任务数据删除;在预设时间段内,在所述历史请求信息的数量未超过阈值时,向所述GPU显存中重新写入所述第一任务数据。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,当计算机可读代码在设备上运行时,设备中的处理器执行用于实现如上任一实施例提供的GPU显存错误处理方法的指令。
本公开实施例还提供了另一种计算机程序产品,用于存储计算机可读指令,指令被执行时使得计算机执行上述任一实施例提供的GPU显存错误处理方法的操作。
电子设备可以被提供为终端、服务器或其它形态的设备。
图8示出根据本公开实施例的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图8,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出接口1958。电子设备1900可以操作基于存储在存储器1932的操作***,例如WindowsServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (14)
1.一种GPU显存错误处理方法,其特征在于,用于GPU的***管理单元,包括:
在接收到GPU中双倍速率同步动态随机存储器DDR控制器发送的中断信号的情况下,根据所述中断信号,确定不匹配的任务数据在GPU显存中的写入地址,所述中断信号用于指示主机写入所述GPU显存中的第一任务数据和所述DDR控制器从所述GPU显存中读取的第二任务数据存在双位或多位不匹配,所述中断信号,用于指示所述DDR控制器检测到的第一检错数据和第二检错数据不匹配;其中,所述第一检错数据,由所述DDR控制器在所述主机向所述GPU显存中写入所述第一任务数据时根据所述第一任务数据生成,所述第二检错数据,由所述DDR控制器在从所述GPU显存中读取所述第一任务数据时根据读取到的所述第二任务数据生成;
对所述写入地址进行地址转换,得到任务地址,所述任务地址为所述不匹配的任务数据对应的下发任务在所述主机中的存放地址;
生成包含所述任务地址的请求信息,并发送给所述主机,所述请求信息用于指示所述主机对所述下发任务进行处置;
其中,所述***管理单元设置在所述GPU显存以外的存储介质上。
2.根据权利要求1所述的方法,其特征在于,所述第一检错数据和所述第二检错数据通过第一数据通道进行数据传送,所述第一任务数据和所述第二任务数据通过第二数据通道进行数据传送。
3.根据权利要求1所述的方法,其特征在于,在所述生成包含所述任务地址的请求信息,并发送给所述主机后,所述方法还包括:
指示所述GPU显存停止接受所述主机写入任务数据;
在接收到所述主机针对所述请求信息返回的确认信息后,指示所述GPU显存恢复接受所述主机写入任务数据,所述确认信息用于指示所述主机已执行对所述下发任务的处置。
4.根据权利要求3所述的方法,其特征在于,所述指示所述GPU显存停止接受所述主机写入任务数据,包括:
指示所述GPU显存停止接受所述主机写入所述下发任务的任务数据,其中,所述下发任务以外的其它任务的任务数据正常写入所述GPU显存。
5.根据权利要求4所述的方法,其特征在于,所述请求信息通过主机和GPU进程间通讯协议发送给所述主机。
6.一种GPU显存错误处理方法,其特征在于,用于主机,包括:
接收GPU的***管理单元发送的包含任务地址的请求信息,所述请求信息用于指示写入GPU显存中的第一任务数据和GPU的DDR控制器从所述GPU显存中读取的第二任务数据存在双位或多位不匹配,所述DDR控制器通过中断信号指示所述***管理单元发送所述请求信息,所述中断信号,用于指示所述DDR控制器检测到的第一检错数据和第二检错数据不匹配;其中,所述第一检错数据,由所述DDR控制器在所述主机向所述GPU显存中写入所述第一任务数据时根据所述第一任务数据生成,所述第二检错数据,由所述DDR控制器在从所述GPU显存中读取所述第一任务数据时根据读取到的所述第二任务数据生成;
确定所述任务地址在所述主机中对应的下发任务;
根据历史请求信息,对所述下发任务进行处置,所述历史请求信息为在接受所述请求信息前,所述***管理单元发送的写入地址的历史信息,所述写入地址为所述第一任务数据在所述GPU显存中的存放地址;
其中,所述***管理单元设置在所述GPU显存以外的存储介质上。
7.根据权利要求6所述的方法,其特征在于,所述根据历史请求信息,对所述下发任务进行处置,包括:
在预设时间段内,在所述历史请求信息的数量超过阈值时,将所述第一任务数据删除;
在预设时间段内,在所述历史请求信息的数量未超过阈值时,向所述GPU显存中重新写入所述第一任务数据。
8.一种GPU显存错误处理装置,其特征在于,包括DDR控制器、数据区域、***管理单元和地址转换模块,其中:
所述DDR控制器,将主机写入所述数据区域的第一任务数据和从所述数据区域中读取的第二任务数据进行匹配,在存在双位或多位不匹配的情况下,向所述***管理单元发送中断信号,所述中断信号,用于指示所述DDR控制器检测到的第一检错数据和第二检错数据不匹配;其中,所述第一检错数据,由所述DDR控制器在所述主机向所述GPU显存中写入所述第一任务数据时根据所述第一任务数据生成,所述第二检错数据,由所述DDR控制器在从所述GPU显存中读取所述第一任务数据时根据读取到的所述第二任务数据生成;
所述***管理单元,根据收到的所述中断信号,确定不匹配的任务数据在所述数据区域中的写入地址,并将所述写入地址发送给所述地址转换模块;
所述地址转换模块,对接收到的所述写入地址进行地址转换,得到任务地址,并将所述任务地址发送给所述***管理单元,所述任务地址为所述不匹配的任务数据对应的下发任务在所述主机中的存放地址;
所述***管理单元,生成包含所述任务地址的请求信息,并发送给所述主机,以使主机根据所述请求信息,对所述下发任务进行处置;
其中,所述***管理单元设置在所述数据区域以外的存储介质上。
9.根据权利要求8所述的装置,其特征在于,所述DDR控制器,根据所述主机写入所述数据区域的第一任务数据,生成第一检错数据;根据从所述数据区域读取的第二任务数据,生成第二检错数据;将所述第一检错数据和所述第二检错数据进行匹配;
所述装置,包括:
检错区域,用于存储所述第一检错数据和所述第二检错数据。
10.根据权利要求8所述的装置,其特征在于,所述***管理单元,在向所述主机发送所述请求信息后,指示所述数据区域停止接受所述主机写入的任务数据;在接收到确认信息后,指示所述数据区域恢复接受所述主机写入的任务数据,所述确认信息,为所述主机向所述***管理单元发送的表征已对所述下发任务进行处置的信息。
11.一种GPU显存错误处理装置,其特征在于,用于GPU的***管理单元,包括:
写入地址确定模块,用于在接收到GPU中DDR控制器发送的中断信号的情况下,根据所述中断信号,确定不匹配的任务数据在GPU显存中的写入地址,所述中断信号用于指示主机写入所述GPU显存中的第一任务数据和所述DDR控制器从所述GPU显存中读取的第二任务数据存在双位或多位不匹配,所述中断信号,用于指示所述DDR控制器检测到的第一检错数据和第二检错数据不匹配;其中,所述第一检错数据,由所述DDR控制器在所述主机向所述GPU显存中写入所述第一任务数据时根据所述第一任务数据生成,所述第二检错数据,由所述DDR控制器在从所述GPU显存中读取所述第一任务数据时根据读取到的所述第二任务数据生成;
地址转换模块,用于对所述写入地址进行地址转换,得到任务地址,所述任务地址为所述不匹配的任务数据对应的下发任务在所述主机中的存放地址;
请求信息发送模块,用于生成包含所述任务地址的请求信息,并发送给所述主机,所述请求信息用于指示所述主机对所述下发任务进行处置;
其中,所述***管理单元设置在所述GPU显存以外的存储介质上。
12.一种GPU显存错误处理***,其特征在于,包括:
GPU卡,其具有权利要求11所述的GPU显存错误处理装置;
主机,接收包含任务地址的请求信息;确定所述任务地址在所述主机中对应的下发任务;根据历史请求信息,对所述下发任务进行处置,所述历史请求信息为在接受所述请求信息前,所述***管理单元发送的写入地址的历史信息,所述写入地址为所述第一任务数据在GPU显存中的存放地址。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1至7中任意一项所述的方法。
14.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310468707.4A CN116302659B (zh) | 2023-04-27 | 2023-04-27 | Gpu显存错误处理方法及装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310468707.4A CN116302659B (zh) | 2023-04-27 | 2023-04-27 | Gpu显存错误处理方法及装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116302659A CN116302659A (zh) | 2023-06-23 |
CN116302659B true CN116302659B (zh) | 2023-08-08 |
Family
ID=86790767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310468707.4A Active CN116302659B (zh) | 2023-04-27 | 2023-04-27 | Gpu显存错误处理方法及装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302659B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118069402B (zh) * | 2024-04-16 | 2024-06-21 | 沐曦集成电路(上海)有限公司 | 一种任务包执行错误的处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109155146A (zh) * | 2016-05-28 | 2019-01-04 | 超威半导体公司 | 一体式封装后修复装置 |
CN109478158A (zh) * | 2016-07-15 | 2019-03-15 | 超威半导体公司 | Ddr存储器错误恢复 |
CN114428587A (zh) * | 2020-10-29 | 2022-05-03 | 三星电子株式会社 | 存储器扩展器、异构计算装置和异构计算装置的操作方法 |
CN114902187A (zh) * | 2019-12-30 | 2022-08-12 | 超威半导体公司 | 非易失性存储器模块的错误恢复 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200097362A1 (en) * | 2019-11-29 | 2020-03-26 | Intel Corporation | Methods and apparatus for reducing microbumps for inter-die double-data rate (ddr) transfer |
-
2023
- 2023-04-27 CN CN202310468707.4A patent/CN116302659B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109155146A (zh) * | 2016-05-28 | 2019-01-04 | 超威半导体公司 | 一体式封装后修复装置 |
CN109478158A (zh) * | 2016-07-15 | 2019-03-15 | 超威半导体公司 | Ddr存储器错误恢复 |
CN114902187A (zh) * | 2019-12-30 | 2022-08-12 | 超威半导体公司 | 非易失性存储器模块的错误恢复 |
CN114428587A (zh) * | 2020-10-29 | 2022-05-03 | 三星电子株式会社 | 存储器扩展器、异构计算装置和异构计算装置的操作方法 |
Non-Patent Citations (1)
Title |
---|
专业GPU计算卡重要参数及其特色技术研究;张金迪和沈骏杰;《中国新通信》;第22卷(第01期);第72页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116302659A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10789117B2 (en) | Data error detection in computing systems | |
US8990657B2 (en) | Selective masking for error correction | |
EP1974272B1 (en) | Method and apparatus for detecting a fault condition and restoration thereafter using user context information | |
US9921914B2 (en) | Redundant array of independent disks (RAID) write hole solutions | |
US9047192B2 (en) | Signature-based store checking buffer | |
WO2020124960A1 (zh) | 数据存储的检测方法、装置、存储介质及电子装置 | |
US9715351B2 (en) | Copy-offload on a device stack | |
CN116302659B (zh) | Gpu显存错误处理方法及装置、电子设备和存储介质 | |
WO2020173092A1 (zh) | 数据处理方法、独立硬盘冗余阵列控制器和数据存储*** | |
JP2012108890A (ja) | 同時読み出し及び書き込みメモリ動作を実行する方法及び装置 | |
US10489244B2 (en) | Systems and methods for detecting and correcting memory corruptions in software | |
US8868517B2 (en) | Scatter gather list for data integrity | |
WO2022146790A1 (en) | Providing host-based error detection capabilities in a remote execution device | |
US20210303162A1 (en) | Method, electronic device, and computer program product for recovering data | |
CN115129509B (zh) | 一种数据传输方法、装置、介质 | |
JP5341198B2 (ja) | 通信インタフェースにおけるビット反転 | |
US20210342070A1 (en) | Method, electronic device, and computer storage medium for information processing | |
US9054840B2 (en) | Error detection and correction of a data transmission | |
CN111061591A (zh) | 基于存储器完整性检查控制器实现数据完整性检查的***和方法 | |
US11855656B2 (en) | Detection circuit and detection method, electronic device, and computer-readable storage medium | |
EP4386536A1 (en) | Data processing method and apparatus | |
CN114461545B (zh) | 一种fpga,fifo存储装置及数据缓存方法 | |
CN114816805A (zh) | Fpga程序配置方法、控制器和*** | |
US9524202B2 (en) | Communication software stack optimization using distributed error checking | |
CN117669443A (zh) | 一种芯片原型验证方法、装置、设备及介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |