CN111602117A - 具有记录及回放支持的任务关键型ai处理器 - Google Patents
具有记录及回放支持的任务关键型ai处理器 Download PDFInfo
- Publication number
- CN111602117A CN111602117A CN201980008559.XA CN201980008559A CN111602117A CN 111602117 A CN111602117 A CN 111602117A CN 201980008559 A CN201980008559 A CN 201980008559A CN 111602117 A CN111602117 A CN 111602117A
- Authority
- CN
- China
- Prior art keywords
- instruction
- task
- critical
- hardware
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 159
- 239000000872 buffer Substances 0.000 claims abstract description 94
- 238000012545 processing Methods 0.000 claims abstract description 78
- 238000004891 communication Methods 0.000 claims abstract description 46
- 238000012546 transfer Methods 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 46
- 238000004364 calculation method Methods 0.000 claims description 28
- 230000000977 initiatory effect Effects 0.000 claims description 9
- 239000013598 vector Substances 0.000 claims description 9
- 230000002093 peripheral effect Effects 0.000 claims description 7
- 230000007613 environmental effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 21
- 238000013528 artificial neural network Methods 0.000 description 7
- 239000004744 fabric Substances 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 238000010348 incorporation Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000036316 preload Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/263—Arrangements for using multiple switchable power supplies, e.g. battery and AC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2041—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2046—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
-
- 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
-
- 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/045—Combinations of networks
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2015—Redundant power supplies
-
- 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/815—Virtual
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
- Power Sources (AREA)
- Advance Control (AREA)
Abstract
本文中所述的实施例提供任务关键型人工智能(AI)处理器(MAIP),其包括指令缓冲区、处理电路、数据缓冲区、命令电路、以及通信电路。在操作期间,该指令缓冲区存储第一硬件指令及第二硬件指令。该处理电路执行该第一硬件指令,其计算AI模型的中间阶段。该数据缓冲区存储由执行该第一硬件指令所生成的数据。该命令电路确定该第二硬件指令是用于传送来自该数据缓冲区的该数据的硬件启动存储指令。基于该硬件启动存储指令,该通信电路经由通信接口将来自该数据缓冲区的该数据传送至包括该任务关键型处理器的计算系统的存储器装置。
Description
交叉参考
本申请要求2018年6月5日所提交的美国非临时申请号16/000,718的权益,该美国非临时申请要求2018年1月19日所提交的美国临时申请号62/619,505,2018年3月6日所提交的美国临时申请号62/639,451,2018年3月9日所提交的美国临时申请号62/640,800,以及2018年4月9日所提交的美国临时申请号62/654,761的权益。该美国非临时申请及美国临时申请通过参考包括于此。
技术领域
本披露通常涉及人工智能(artificial intelligence;AI)的领域。尤其,本披露涉及用于促进能够处理实时系统上的任务关键型AI应用的处理器的系统及方法。
背景技术
AI应用的指数级增长已使它们成为任务关键型系统(例如实时自动驾驶车辆或关键金融交易)的受欢迎的媒介。此类应用带来对有效AI处理的不断增长的需求。因此,设备供应商竞相制造具有多种功能(例如图形处理)的更大且更快的处理器,以有效处理AI相关应用。不过,图形处理器可能不适合有效处理任务关键型数据,该图形处理器可能受处理限制及设计复杂性等因素的限制。
随着越来越多的任务关键型特征(例如,依赖于快速且准确的决策的特征)被实施于各种系统中(例如,车辆的自动制动),AI系统作为系统设计者的价值主张正变得越来越重要。通常,AI系统使用数据、AI模型、以及计算能力。输入装置(例如,传感器、相机等)的广泛使用导致AI系统所使用的大量数据的生成,其常常被称为“大数据”。AI系统可使用大而复杂的模型,从而可从大数据推断决策。不过,在大数据上执行大模型的效率依赖于计算能力,它可能成为AI系统的瓶颈。为解决此问题,AI系统可使用能够处理AI模型的处理器。
因此,常常想要为处理器配备AI能力。通常,常使用张量来表示与AI系统相关的数据,存储AI操作的内部表示,以及分析和训练AI模型。为有效地处理张量,一些供应商使用张量处理单元(tensor processing unit;TPU),该些单元是为处理基于张量的计算而设计的处理单元。TPU可用于运行AI模型,并可为低精度数学运算提供高吞吐量。
尽管TPU为AI系统带来许多想要的特征,但对于处理任务关键性情景,一些问题仍未被解决。
发明内容
本文中所述的实施例提供任务关键型人工智能(AI)处理器(mission-criticalartificial intelligence;MAIP),其包括指令缓冲区(buffer)、处理电路、数据缓冲区、命令电路、以及通信电路。在操作期间,该指令缓冲区存储第一硬件指令及第二硬件指令。该处理电路执行该第一硬件指令,其计算AI模型的中间阶段。该数据缓冲区存储由执行该第一硬件指令所生成的数据。该命令电路确定该第二硬件指令是用于传送来自该数据缓冲区的该数据的硬件启动存储指令。基于该硬件启动存储指令,该通信电路经由通信接口将来自该数据缓冲区的该数据传送至包括该任务关键型处理器的计算系统的存储器装置。
在该实施例的一个变体中,该通信接口为以下的其中之一:周边组件互连快速(peripheral component interconnect express;PCIe)接口;以及网络接口卡(networkinterface card;NIC)。
在该实施例的一个变体中,该MAIP还包括加密电路,其加密该数据缓冲区中的该数据。
在该实施例的一个变体中,该处理电路包括多个处理单元,其包括以下的其中一个或多个:(i)数据流处理单元(dataflow processing unit;DPU),包括标量计算单元及向量计算单元;以及(ii)张量计算单元(tensor computing unit;TCU),包括DPU集群(cluster)、高带宽存储器装置、以及输入/输出(input/output;I/O)装置。
在另一个变体中,该MAIP包括控制电路,其通过关闭该多个处理单元的其中一个或多个处理单元而以低功率模式操作该处理电路。
在该实施例的一个变体中,该通信电路可在该计算系统的状态缓冲区中存储该处理电路的计算状态。这允许该计算系统的第二MAIP恢复与该计算状态相关的操作。
在该实施例的一个变体中,该通信电路利用远程存储器访问协议经由该通信接口在远程计算装置的存储装置中存储该数据。
在该实施例的一个变体中,该指令缓冲区可通过以下的其中一种来存储该第一及第二硬件指令:在运行时间之前存储该第一及第二硬件指令;以及在运行时间之前存储该第一硬件指令并在运行时间期间动态插入该第二硬件指令。
在该实施例的一个变体中,基于该硬件启动存储指令,该通信电路还将与该MAIP相关的上下文信息(contextual information)传送至该存储器装置。该上下文信息包括以下的其中一种或多种:与该数据缓冲区中的该数据相关的特征映射(feature maps);以及与该MAIP的一个或多个计算单元相关的信息。该信息包括以下的其中一种或多种:温度、工作条件、使用率、以及性能统计。
本文中的实施例提供一种促进任务关键型系统的硬件指令的系统。在操作期间,该系统识别包括一组硬件指令的指令块,其计算人工智能(AI)模型的中间阶段。该指令块的各指令可执行于任务关键型AI处理器(MAIP)上。基于一组参数,该系统确定与该指令块相关的上下文是否应当被记录。如果与该指令块相关的该上下文应当被记录,则该系统将硬件启动指令附加至该指令块。该硬件启动指令启动由该指令块所生成的数据向该MAIP的外部的传送。接着,该系统向该MAIP提供具有该硬件启动指令的该指令块。
在该实施例的一个变体中,该组参数包括可用存储、通信带宽、以及外部输入,外部输入包括数据中心的策略、客户偏好、开发者偏好、以及环境反馈。
在该实施例的一个变体中,在该MAIP的运行时间之前,该系统向该MAIP提供该指令块。
本文中的实施例提供一种任务关键型系统,其包括系统处理器、系统存储器装置、通信接口及与该通信接口耦接的第一任务关键型人工智能(AI)处理器(MAIP)、以及操作模块。该第一MAIP可包括指令缓冲区、处理电路、数据缓冲区、命令电路、以及通信电路。在操作期间,该操作模块在该第一MAIP的该指令缓冲区中加载(load)第一及第二硬件指令。该处理电路执行该第一硬件指令,其计算AI模型的中间阶段。该数据缓冲区存储由执行该第一硬件指令所生成的数据。该命令电路确定该第二硬件指令是用于传送来自该数据缓冲区的该数据的硬件启动存储指令。基于该硬件启动存储指令,该通信电路经由该通信接口将来自该数据缓冲区的该数据传送至该系统存储器装置。
在该实施例的一个变体中,该通信接口为以下的其中之一:周边组件互连快速(PCIe)接口;以及网络接口卡(NIC)。
在该实施例的一个变体中,该第一MAIP的该处理电路包括多个处理单元,其包括以下的其中一个或多个:(i)数据流处理单元(DPU),包括标量计算单元及向量计算单元;以及(ii)张量计算单元(TCU),包括DPU集群、高带宽存储器装置、以及输入/输出(I/O)装置。
在该实施例的一个变体中,该系统还包括备用功率(power)源以及功率电路。该功率电路可检测该系统的功率故障,将该第一MAIP切换至该备用功率源,以及减少该第一MAIP的操作以节约功率。
在该实施例的一个变体中,该系统还包括状态缓冲区以及高可用性电路。该状态缓冲区存储该第一MAIP的计算状态。该高可用性电路可检测该第一MAIP的故障。接着,该高可用性电路将该第一MAIP的该计算状态从该状态缓冲区加载至第二MAIP,并利用该第二MAIP恢复与该计算状态相关的操作。
在该实施例的一个变体中,该系统还包括网络接口,其可将该数据从该存储器装置传送至远程计算系统,用于回放该数据。
在该实施例的一个变体中,该操作模块可在运行时间之前在该任务关键性系统上电(power up)时加载该第一与第二硬件指令两者。或者,该操作模块可在运行时间之前在该任务关键性系统上电时加载该第一硬件指令,并在运行时间期间动态插入该第二硬件指令。
在该实施例的一个变体中,基于该硬件启动存储指令,该第一MAIP的该通信电路还将与该第一MAIP相关的上下文信息传送至该系统存储器装置。该上下文信息包括以下的其中一种或多种:与该数据缓冲区中的该数据相关的特征映射,以及与该第一MAIP的一个或多个计算单元相关的信息。此类信息包括以下的其中一种或多种:温度、工作条件、使用率、以及性能统计。
附图说明
图1A显示依据本申请的一个实施例配备有支持存储及回放的任务关键型AI处理器(MAIP)的示例任务关键型系统。
图1B显示依据本申请的一个实施例的任务关键型系统的示例系统堆叠。
图2A显示依据本申请的一个实施例在支持存储及回放的MAIP中的张量计算单元(TCU)的示例芯片架构。
图2B显示依据本申请的一个实施例在支持存储及回放的MAIP中的TCU集群的示例芯片架构。
图3显示依据本申请的一个实施例的MAIP的示例硬件启动存储指令。
图4A显示依据本申请的一个实施例支持硬件启动存储指令的MAIP的示例架构。
图4B显示依据本申请的一个实施例在MAIP中示例纳入硬件启动存储指令。
图5A显示依据本申请的一个实施例任务关键型系统虚拟化可用AI资源的方法的流程图。
图5B显示依据本申请的一个实施例任务关键型系统促进高可用性的方法的流程图。
图5C显示依据本申请的一个实施例任务关键型系统以低功率及降低的性能操作的方法的流程图。
图6A显示依据本申请的一个实施例编译器将硬件启动存储指令纳入与中间层相关的指令块中的方法的流程图。
图6B显示依据本申请的一个实施例MAIP的派发器执行硬件启动存储指令的方法的流程图。
图7显示依据本申请的一个实施例支持任务关键型系统的示例电脑系统。
图8显示依据本申请的一个实施例支持任务关键型系统的示例设备。
具体实施方式
下面的说明用以使本领域的技术人员能够制造和使用实施例,并在特定应用及其要求的上下文中提供。对所揭露的实施例的各种修改将对于本领域的技术人员显而易见,且本文中所定义的一般原理可被用于其它实施例及应用,而不背离本披露的精神及范围。因此,本文中所述的实施例不限于所示的实施例,而是将被赋予与本文中所揭露的原理及特征一致的最广范围。
概述
本文中所述的实施例通过以下方式解决促进任务关键型系统的AI处理器的问题:(i)在处理器中纳入高可用性、资源虚拟化、加密、以及功率调节能力;以及(ii)促进允许预测及决策的过程的记录及回放的指令或指令集。
许多任务关键型系统依赖于AI应用,以基于周围的实时环境作出即时且准确的决策。AI应用可使用一个或多个AI模型(例如,基于神经网络的模型),以产生决策。通常,系统使用若干输入装置,例如传感器(例如,声纳及激光)、相机、以及雷达,以获得实时数据。由于系统可使用大量的此类输入装置,它们可生成大量数据,AI应用可基于该些数据作决策。为处理如此大量的数据,系统可使用大而复杂的AI模型,其可生成决策。例如,汽车的安全特征如自动制动及车道偏离控制可使用AI模型,该AI模型处理来自该汽车的车载输入装置的实时数据。
利用现有技术,AI应用可运行于图形处理单元(graphics processing unit;GPU)或张量处理单元(tensor processing unit;TPU)上。通常,在这两个选项中,GPU可能具有较高的处理能力(例如,由每秒高浮点运算(floating point operations per second;FLOPS)计数标示)。不过,由于GPU是针对向量及矩阵操作设计的,故GPU可能不适合所有形式的张量。尤其,由于任务关键型系统可能使用来自各种输入装置的数据,故可基于具有不同维度的张量来表示输入数据。因此,GPU的处理能力可能无法被适当用于所有AI应用。
另一方面,TPU可能具有更有效地处理基于张量的计算的能力。不过,TPU可能具有较低的处理能力。而且,一些TPU可能仅被有效地用于应用AI模型,而不是用于训练该些模型。在任务关键型系统上使用这样的TPU可能限制该系统从新且动态的情形学习的能力。因此,现有的GPU及TPU可能无法以高吞吐量及低延迟处理任务关键型系统的大型且时间敏感的数据。此外,现有的GPU及TPU可能无法促进任务关键型系统的其它重要要求,例如针对故障情景的高可用性及低功率计算。
而且,对于一些AI模型,例如基于神经网络的模型,系统提供一组输入(称为输入层),以获得一组输出(称为输出层)。中间阶段的结果(称为隐藏层)通常不会提供给AI模型之外的任何实体。因此,如果由AI模型生成的预测及决策不足(亦即,AI模型无法产生正确的结果)或系统发生故障,则可能没有足够的信息来分析引起该故障的原因。
为解决这些问题,本文中所述的实施例提供任务关键型AI处理器(mission-critical AI processor;MAIP),其可为AI处理器芯片,该芯片可以高吞吐量及低延迟处理具有不同维度的张量。而且,该MAIP可提供记录及回放预测及决策的过程的功能,以允许分析中间阶段。任务关键型系统可使用一个或多个MAIP,从而可有效地处理该系统的输入装置可能生成的大量数据。而且,MAIP还可高效地处理训练数据。因此,可针对新的多种实时情景有效地训练该任务关键型系统。
而且,由于与该系统相关的任何故障可引起严重问题,因此,如果MAIP发生故障,则该MAIP允许实时转移(real-time handover)至备用MAIP。在一些实施例中,该MAIP可保持当前的计算结果及操作状态于存储器中,其可被移交给备用MAIP,以恢复操作。此特征允许该系统促进在严重故障情景下的高可用性。该MAIP还可在功率故障下以缩减的计算模式操作。如果该系统发生功率故障,则该MAIP可检测该故障并切换至备用功率源(例如,电池)。接着,该MAIP可仅使用处理关键操作的资源(例如,张量计算单元或TCU),从而使用低功率进行计算。
而且,该MAIP促进AI应用的硬件辅助虚拟化。例如,可虚拟化该MAIP的该些资源,以在多个AI应用之间有效地分配该些资源。每个AI应用都可认为该应用正在使用该MAIP的所有资源。此外,该MAIP配备有板上安全芯片(例如,基于硬件的加密芯片),其可加密指令的输出数据(例如,与该指令相关的计算的数据结果)。这防止任何恶意应用访问芯片上(on-chip)数据(例如,来自该MAIP的寄存器)。
而且,该MAIP的该记录及回放特征允许该系统(或该系统的用户)分析与AI模型的中间状态相关的阶段上下文(stage context),并确定与该系统及/或该模型相关的任何故障的原因。在检测到原因时,该系统(或该系统的该用户)可重新配置该系统,以避免将来的故障。可利用专用处理器/硬件指令(或指令集)针对该MAIP实施该记录及回放特征,以允许记录该AI模型的上下文,例如该AI模型的中间阶段上下文(例如,从该中间阶段生成的特征映射(feature map)及数据)。可将此指令附加至与中间阶段相关的指令块。该指令可被预加载(例如,在执行之前插入)或在运行时间期间动态插入。该回放可被执行于软件模拟器或独立的硬件系统上(例如,利用另一个MAIP执行)。
术语“处理器”是指任何硬件单元,例如电子电路,其可执行操作,例如对一些数据的数学操作或用于控制系统的动作的控制操作。该处理器可为专用集成电路(application-specific integrated circuit;ASIC)芯片。
术语“应用(application)”是指运行于用户装置上的应用,其可针对处理器发送指令。AI应用可为可针对该处理器发送与AI模型(例如,神经网络)相关的指令的应用。
示例系统
图1A显示依据本申请的一个实施例配备有支持存储及回放的MAIP的示例任务关键型系统。在此例子中,任务关键型系统110操作于实时环境100中,该实时环境可为系统110可作实时决策的环境。例如,环境100可为人通常使用的环境,例如具有交通的道路系统,且系统110可操作于汽车中。环境100还可为虚拟环境,例如金融系统,且系统110可确定金融交易。另外,环境100还可为极端环境,例如灾区,且系统110可操作于救援装置上。
任务关键型系统110依赖于AI应用114来基于周围环境110作即时且准确的决策。AI应用114可包括一个或多个AI模型113及115。系统110可配备有一个或多个输入装置112,例如传感器、相机、以及雷达,以获得实时输入数据102。系统110可对输入数据102应用AI模型113,以产生决策104。例如,如果AI模型113(或115)是基于神经网络的模型,则输入数据102可表示该模型的输入层,且决策104可为相应的输出层。
由于当代的任务关键型系统可使用大量的各种输入装置,故系统110的输入装置112可为多种多样且数量庞大。因此,输入装置112可生成大量的实时输入数据102。所以,为产生决策104,AI应用114需要能够处理大量数据。因此,AI模型113及115可为大而复杂的AI模型,其可实时生成决策104。例如,如果系统110促进汽车的安全特征,例如自动制动及车道偏离控制,则利用输入装置112进行道路状况的连续实时监控可生成大量的输入数据102。接着,AI应用114可应用AI模型113及/或115来确定决策104,该决策标示该汽车应当刹车还是已离开其车道。
系统110可包括一组系统硬件116,例如处理器(例如,通用或系统处理器)、存储器装置(例如,双列直插式存储器模块或DIMM(dual in-line memory module))、以及存储装置(例如,硬盘驱动器或固态驱动器(solid-state drive;SSD))。系统软件例如系统110的操作系统及装置固件(firmware),可运行于系统硬件116上。系统110还可包括一组AI硬件118。利用现有技术,AI硬件118可包括一组GPU或TPU。AI应用114可运行于AI硬件118的该GPU或TPU上。
不过,GPU可能不适合所有形式的张量。尤其,由于系统110可使用来自各种输入装置112的数据,故可基于具有不同维度的张量来表示输入数据102。因此,GPU的处理能力可能无法被AI应用114适当使用。另一方面,TPU可能具有更有效地处理基于张量的计算的能力。不过,TPU可能具有较低的处理能力,且可能仅被有效地用于应用AI模型,而不是用于训练该模型。在系统110上使用这样的TPU可能限制系统110从新且动态的情形学习的能力。
因此,现有的GPU及TPU可能无法为系统110有效地处理大型且时间敏感的输入数据102。此外,现有的GPU及TPU可能无法促进系统110的其它重要要求,例如针对故障情景的高可用性及低功率计算。而且,对于一些AI模型,来自中间隐藏层的上下文(通过应用该模型从输入数据102导出)通常不会提供给该AI模型之外的任何实体。因此,如果该AI模型无法产生正确的结果或系统110发生故障,则可能没有足够的信息来分析引起该故障的原因。
为解决这些问题,系统110的AI硬件118可配备有若干MAIP 122、124、126以及128,该些MAIP可有效地处理具有不同维度的张量。这些MAIP还可高效地处理训练数据。因此,可针对新的多种实时情景有效地训练系统110。此外,这些MAIP能够记录并回放与决策104相关的中间阶段。所以,配备有MAIP 122、124、126及128的AI硬件118可有效地运行AI应用114,该AI应用可对输入数据102应用AI模型113及/或115,从而以低延迟生成决策104。例如,利用现有技术,如果数据中心使用100个GPU,则该数据中心可使用10个GPU进行训练并使用90个GPU进行推理,因为通常使用90%的GPU进行推理。不过,利用10个MAIP进行训练并用15个MAIP进行推理可实现类似水平的计算性能。这可导致该数据中心的显着成本节约。因此,除任务关键型系统以外,MAIP也可促进数据中心的AI模型的有效计算。
MAIP(例如MAIP 128)可包括由若干TCU形成的TCU集群148。每个TCU(例如TCU146)可包括若干数据流处理单元(dataflow processor unit;DPU)集群。每个DPU集群(例如DPU集群144)可包括若干DPU。每个DPU(例如DPU 142)可包括标量计算单元(scalarcomputing unit;SCU)140以及向量计算单元(vector computing unit;VCU)141。SCU 140可包括多个传统的CPU核,以处理标量数据。VCU 141可包括多个张量核(tensor core),用于处理张量数据(例如,由向量、矩阵及/或张量表示的数据)。同样,MAIP 122、124及126可包括一个或多个TCU集群,每个TCU集群基于包括SCU及VCU的DPU形成。
而且,由于与系统110相关的任何故障可引起严重问题,因此,系统110可配备有备用MAIP 120,在正常操作期间(例如,没有任何故障),该备用MAIP可能不参与主动处理。此外,AI硬件118可包括高可用性模块134,其可监控MAIP 122、124、126及128。在操作期间,MAIP 128(及系统110的其它MAIP)可在状态缓冲区132中保持当前的计算结果及操作状态,该状态缓冲区可为存储器装置。若高可用性模块134检测到MAIP 128的故障,则高可用性模块134启动向备用MAIP 120的实时转移。MAIP 120可自状态缓冲区132获得MAIP 128的计算结果及操作状态,并恢复操作。此特征允许系统110促进在严重故障情景下的高可用性。
在一些实施例中,MAIP 128还可在功率故障下以缩减的计算模式操作。如果系统110发生功率故障,则MAIP 128可检测该故障并切换至备用功率源138。此功率源可为AI硬件118的部分或系统110的任意其它部分。接着,MAIP 128可使用用于处理系统110的关键操作的资源(例如,该些TCU)。MAIP 128可关闭一些TCU,以使用低功率进行计算。系统110还可关闭AI硬件118的该些MAIP的其中一个或多个,以节约功率。如果功率恢复,则系统110可恢复常规计算模式。
而且,MAIP 128可促进AI应用的硬件辅助虚拟化。例如,AI硬件118可包括虚拟化模块136,其可被纳入相应MAIP或独立模块中。虚拟化模块136可将MAIP 122、124、126、128的资源作为虚拟化资源130呈现,以在多个AI应用之间有效地分配该些资源。每个AI应用都可认为该应用正在使用MAIP及/或系统110的所有资源。
此外,MAIP 128可配备有板上安全芯片149,其可为基于硬件的加密芯片。芯片149可加密指令的输出数据。此数据可为与该指令相关的计算的结果。这防止任何恶意应用访问在MAIP 128的寄存器(register)中所存储的芯片上数据。例如,如果AI应用114中的应用被(例如,病毒)感染,则该被感染的应用可能无法自MAIP 128的寄存器访问由AI应用114中的其它应用所生成的数据。
而且,MAIP 128的该记录及回放特征允许系统110(或系统110的用户)分析阶段上下文,例如来自AI模型113(或115)的中间阶段的结果,并确定与系统110及/或AI模型113相关的任何故障的原因。在检测到原因时,系统110(或系统110的用户)可重新配置系统110,以避免将来的故障。利用可由MAIP 128执行的专用处理器/硬件指令(或指令集)针对MAIP128可实施该记录及回放特征。该指令可记录AI模型113的上下文,例如AI模型113的阶段上下文(例如,从该中间阶段生成的特征映射及数据)。可将此指令附加至与中间阶段相关的指令块。该指令可在运行时间之前被预加载(例如,在上电之后,在执行任何计算指令之前)或在运行时间期间动态插入。该回放可被执行于软件模拟器或独立的硬件系统上。
图1B显示依据本申请的一个实施例的任务关键型系统的示例系统堆叠。系统110的系统堆叠150基于TCU集群166(例如,在MAIP中)操作。调度器(scheduler)164运行于集群166上,以调度在TCU集群166上的操作。调度器164决定在TCU集群166上加载的指令的顺序。驱动器162允许不同的AI框架(framework)156访问TCU集群166的功能。AI框架156可包括可促进基于AI的计算(例如深度学习)的任何库(例如,软件库)。AI框架156的例子可包括但不限于TensorFlow、Theano、MXNet、以及DMLC。
可使用AI框架156来提供若干AI服务154。此类服务可包括视觉、语音、自然语言处理等。一个或多个AI应用152可操作以促进AI服务154。例如,确定来自用户的语音命令的AI应用可使用基于TensorFlow的自然语言处理服务。除AI框架156之外,驱动器162还可允许商业软件158访问TCU集群166。例如,操作系统110的操作系统可利用驱动器162访问TCU集群166。
芯片架构
图2A显示依据本申请的一个实施例在支持存储及回放的MAIP中的TCU的示例芯片架构。DPU 202可包括控制流单元(control flow unit;CFU)212及数据流单元(data flowunit;DFU)214,它们通过网络结构(例如,交叉开关(crossbar))彼此耦接,并可共用数据缓冲区。CFU 212可包括若干数字信号处理(digital signal processing;DSP)单元以及调度器、将它们互连的网络结构、以及存储器。DFU 214可包括若干张量核以及调度器、将它们互连的网络结构、以及存储器。基于交叉开关210互连的若干DPU 202、204、206、以及208形成DPU集群200。
基于网络结构240互连的若干DPU集群可形成TCU 230。一个这样的DPU集群可为DPU集群200。TCU 230还可包括存储器控制器232及234,其可促进高带宽存储器(high-bandwidth memory),例如HBM2。可基于晶圆级系统集成(wafer level systemintegration;WLSI)平台(例如CoWoS)设计TCU 230。此外,TCU 230可包括若干输入/输出(I/O)接口236。TCU 230的I/O接口可为序列化器/反序列化器(serializer/deserializer;SerDes)接口,其可在串行数据与并行接口之间转换数据。
图2B显示依据本申请的一个实施例在支持存储及回放的MAIP中的TCU集群的示例芯片架构。这里,基于TCU集群形成张量处理单元(TPU)250。一个这样的TCU可为TCU 230。在TPU 250中,该些TCU可利用各周边组件互连快速(peripheral component interconnectexpress;PCIe)接口或SerDes接口彼此耦接。这允许各TCU相互通信,以促进基于张量的数据的有效计算。
存储中间阶段上下文
图3显示依据本申请的一个实施例的MAIP的示例硬件启动存储指令。AI模型113可基于多层决策过程(例如,神经网络)。系统110可向AI模型113提供一组输入(称为输入层302)。AI模型113可通过一个或多个中间阶段(称为隐藏层)处理输入层302,以获得一组输出(称为输出层308)。在此例中,AI模型113可具有至少两个中间阶段(称为隐藏层304及306)。
利用现有技术,AI模型113基于“黑盒”原理操作,其中,在隐藏层304及306中所执行的计算在AI模型113之外不可用。换句话说,如果系统110(或系统110的用户)希望分析AI模型113的中间计算,系统110可能无法访问这些计算。因此,如果AI模型113无法产生正确的结果或系统110发生故障,可能无法获得由隐藏层304及306的中间计算所生成的数据来解释或分析引起故障的原因。
此问题通过将记录及回放AI模型113的各阶段的计算的功能纳入MAIP(例如MAIP128)中来解决。这允许系统110(或系统110的用户)分析故障的原因,并基于该分析,重新配置系统110,以避免将来的故障。MAIP 128可支持处理器指令(或指令集),其可使MAIP 128将自指令块生成的数据存储于系统110的存储器中。此处理器指令可为“硬件启动存储”指令(例如,硬件转储指令)。由于此指令为硬件启动,因此,它不涉及系统110的系统处理器的处理器周期,并可与系统处理器的操作并行执行。
应当注意,此硬件启动存储指令不同于基于软件的存储指令。该基于软件的存储指令要求系统处理器发出I/O中断,锁定在MAIP 128的缓冲区上的当前数据,以及将该数据传送至系统存储器。这实际上花费系统处理器的指令周期。由于系统110可配备有多个MAIP,每个MAIP包括运行AI模型113的多个TPU,因此,系统110可生成与隐藏层相关的大量数据。利用基于软件的存储指令来存储此类数据可能使系统处理器发出大量的中断并降低系统110的性能。
在执行该硬件启动存储指令时,MAIP 128可记录在其缓冲区中所存储的数据。因此,此存储指令可被附加在表示AI模型113的层的各指令块之后。例如,该存储指令可被附加至计算从输入层302至隐藏层304的转换的指令块。这将使MAIP 128记录与该计算相关的阶段上下文312。类似地,该存储指令还可使MAIP 128记录与从隐藏层304至隐藏层306的转换的计算相关的阶段上下文314。
阶段上下文312及314可为后续回放或诊断目的提供上下文,例如自计算生成的中间特征映射及数据。在阶段上下文312及314中所记录的信息包括但不限于中间特征映射及处理器信息,例如温度、工作条件、使用率、以及统计。该指令可在运行时间之前被预加载(例如,可被离线插入)或在运行时间期间动态插入。阶段上下文312及314可被传送至另一个系统,接着,其可被用于在该系统上的软件模拟器或MAIP上回放。
存储及回放
图4A显示依据本申请的一个实施例支持硬件启动存储指令的MAIP的示例架构。在此例中,系统110的系统硬件116包括系统处理器402(亦即,系统110的中央处理器)、存储器(memory)装置404(亦即,系统110的主存储器)、以及存储(storage)装置406。这里,存储器装置404及存储装置406在芯片外(off-chip)。MAIP 128可包括并行处理引擎的脉动阵列。在一些实施例中,该处理引擎形成矩阵乘法器单元(matrix multiplier unit;MXU)422。MXU 422可包括若干写入缓冲区421及423。MAIP 128还可包括累加缓冲区(例如,累加器)424,其可为一个或多个寄存器,该寄存器可存储由MXU 422执行的计算所生成的数据。MAIP128还可包括系统控制单元(system control unit;SCU)426。
MAIP 128还可包括一个(或多个)专用单元、命令序列器(command sequencer;CSQ)412,以执行在芯片上指令缓冲区430中的指令,从而控制脉动阵列(亦即,MXU 422)进行计算。CSQ 412的有限状态机(finite state machine;FSM)414派发指令缓冲区430中的相应指令。依据当前指令(例如,获取指令),FSM 414还可向缓冲区424派发指令,以获得在缓冲区424中所存储的数据。此外,在检测到控制指令(例如,切换至低功率模式的指令)时,FSM 414可向SCU 426派发指令。
由MXU 422的中间计算所生成的数据被存储于芯片上统一缓冲区416中。对于图3中的例子,阶段上下文312及314可被存储于统一缓冲区416中。来自统一缓冲区416的数据可被输入后续计算中。相应地,MXU 422可从统一缓冲区416检索数据,以供后续计算。MAIP128还可包括直接存储器访问(direct memory access;DMA)控制器420,其可在存储器装置404与统一缓冲区416之间传送数据。
MAIP 128可使用通信接口418与MAIP 128外部的系统110的组件通信。接口418的例子可包括但不限于PCIe接口以及网络接口卡(network interface card;NIC)。MAIP 128可利用接口418获得指令及输入数据,以及提供输出数据及/或所记录的上下文。例如,用于AI相关计算的指令经由接口418从系统110的系统软件410(例如,操作系统)被发送至指令缓冲区430。类似地,DMA控制器420可经由接口418将统一缓冲区416中的数据发送至存储器装置404。
在操作期间,软件410提供对应于与AI操作相关的计算的指令块。例如,软件410可通过接口418提供包括将在MAIP 128上执行的一个或多个指令的指令块432。指令块432可对应于AI模型(例如,神经网络)的一个计算阶段。类似地,软件410可提供对应于该AI模型的后续计算阶段的另一个指令块434。指令块432及434被存储于指令缓冲区430中。
为促进系统110的记录及回放操作,MAIP 128可支持硬件启动存储指令(其可为单个指令或指令集),以促进中间阶段上下文的记录。此记录可被存储于芯片上或芯片外存储器装置中。软件410确定与指令块432及434相关的执行序列,并确定应当在何处插入此指令。例如,如果指令块432及434对应于该AI模型的两个计算阶段,则软件410可在指令块432之后插入存储指令433并在指令块434之后插入另一个存储指令435。
在完成指令块432的执行时,从该执行生成的数据被存储于统一缓冲区416中。基于指令缓冲区430中的序列,FSM 414检索存储指令433,并相应地,指示DMA控制器420从统一缓冲区416启动传送。接着,DMA控制器420将该数据从统一缓冲区416传送至存储器装置404。这记录中间阶段上下文,从而从MAIP 128之外提供对阶段上下文的访问。类似地,在完成指令块434的执行时,从该执行生成的数据被存储于统一缓冲区416中。基于存储指令435,DMA控制器420将该数据从统一缓冲区416传送至存储器装置404。
对于更持久的存储,可将数据从存储器装置404传送至存储装置406。这允许在系统110发生故障的情况下检索上下文。DMA控制器420还可经由网络440直接通过公共通信信道(例如,利用远程DMA(remote DMA;RDMA))将上下文记录至远程存储服务器442上的非本地存储。在一些实施例中,存储服务器442可配备有软件模拟器或另一个MAIP,其可回放存储结果。
软件410可在运行时间之前预加载存储指令433及435,或在运行时间期间动态插入它们。例如,当系统110上电时,软件410可在运行时间之前将指令块432及434加载至指令缓冲区430。软件410可预加载指令433及435与指令块432及434。这可防止MAIP 128的操作的中断。软件410还可在运行时间期间动态插入指令433及435,以适应动态情景。例如,如果系统110促进汽车的安全特征,恶劣天气条件可能增加故障的概率。为分析潜在的故障,软件410可在检测到恶劣天气条件时动态插入存储指令。
插入存储指令433及435的时间、频率、以及位置可基于存储大小、通信带宽以及外部输入(例如数据中心的策略、客户偏好、开发者偏好、以及环境反馈等)进行参数化或计算。例如,用户可配置记录上下文的频率。类似地,外部环境(例如,恶劣天气条件)可触发上下文的记录。如果存储器装置404及/或存储装置406中的可用存储受限,则软件410可避免进一步插入存储指令,或者甚至从指令缓冲区430移除一个或多个存储指令。
图4B显示依据本申请的一个实施例在MAIP中示例纳入硬件启动存储指令。软件410可针对指令缓冲区430中的指令(其可包括由软件410插入的存储指令)生成执行序列。在一些实施例中,编译器460在编译时间期间插入存储指令。在操作期间,编译器460对开发装置450执行,以编译一个或多个AI模型的源代码464(例如,基于AI库的一段代码,如TensorFlow及Theano)。
编译器460还可获得一组编译参数462,该组编译参数可指定要插入的存储指令的时间、频率、以及位置。例如,在编译代码464时,编译器460可生成指令集466,该指令集可被执行于MAIP上。此编译过程生成由MAIP支持的指令。指令集466可包括指令块432及434。在编译时间期间,编译器460确定应在何处插入存储指令。应当注意,可在该编译过程的任何阶段插入存储指令(例如,在预处理、编译、汇编、以及链接阶段的其中任意阶段中)。
假设编译参数462标示应当在AI模型(例如,神经网络)的每个计算阶段之后插入存储指令。在图4A中的例子中,如果指令块432及434对应于AI模型的两个计算阶段,则编译器460可在指令块432之后插入存储指令433并在指令块434之后插入存储指令435。另一方面,如果编译参数462标示应当在该AI模型的初始计算阶段之后插入存储指令,则编译器460可在指令块432之后插入存储指令433,但可能无法在指令块434之后插入存储指令。
在生成指令集466时,开发装置450经由网络440将指令集466提供给系统110。软件410获得指令集466并经由接口418将它加载于指令缓冲区430上。应当注意,编译器460还可运行于系统110的软件410上。在这样的情况下,可在存储器装置404中生成指令集466。接着,软件410可经由接口418自存储器装置404将指令集466加载于指令缓冲区430上。
所记录的上下文可驻留于存储器装置404中。软件410可从存储器装置404向存储装置406定期传送上下文。例如,若所存储的上下文的大小达到阈值,则软件410可将上下文从存储器装置404传送至存储装置406。在一些实施例中,可将存储装置406中的上下文传送至回放(replay)装置470,以供进一步分析。回放装置470可包括软件模拟器472,其可模拟MAIP的操作。回放装置470还可包括另一个MAIP 474。可在模拟器472及/或MAIP 474上回放所记录的上下文,以分析所记录的上下文。应当注意,同一物理装置可充当开发装置450、回放装置470、以及存储服务器442,如结合图4A及图4B所述。
操作
图5A显示依据本申请的一个实施例的任务关键型系统虚拟化可用AI资源的的方法的流程图500。在操作期间,该系统识别该系统的各MAIP并确定相应MAIP的计算能力(操作502)。接着,该系统组合该计算能力来确定该系统的计算能力(操作504),并基于所确定的计算能力生成虚拟化AI资源(操作506)。该系统将该虚拟化AI资源提供给运行于该系统上的AI服务(操作508)。
图5B显示依据本申请的一个实施例的任务关键型系统促进高可用性的方法的流程图530。在操作期间,该系统检测与MAIP相关的故障(操作532),并(例如,从该系统的状态缓冲区)获得与该故障MAIP相关的当前状态及计算数据(操作534)。接着,该系统在该系统的备用MAIP的寄存器上加载该计算数据(操作536),并基于所获得的状态利用该备用MAIP继续处理(操作538)。
图5C显示依据本申请的一个实施例的任务关键型系统以低功率及降低的性能操作的方法的流程图。在操作期间,该系统检测与该系统相关的功率故障(操作552),并开启备用功率源(操作554)(例如,电池)。接着,该系统确定最低计算要求(操作556)。该系统可基于以下的其中一项或多项来确定该计算要求:该系统的配置、自该系统的环境的输入、以及用户输入。
接着,该系统指定可处理该系统的最低计算要求的MAIP及/或相应MAIP的计算单元,例如TPU(操作558)。接着,该系统利用该备用功率源开始操作该指定的MAIP及/或该计算单元(操作560)。该系统关闭未指定的MAIP及/或计算单元(操作562)。以此方式,该系统可通过使用仅用于最低计算要求而非其它的计算资源来节约功率。换句话说,该系统可通过关闭不用于该最低计算要求的计算资源来节约功率。
图6A显示依据本申请的一个实施例编译器将硬件启动存储指令纳入与中间层相关的指令块中的方法的流程图。在操作期间,该编译器获得一组编译参数及源代码,并启动编译过程(操作602)。该编译器可生成与中间隐藏层相关的指令块(操作604),并基于该编译参数确定是否插入“硬件启动存储”指令(操作606)。
如果指示在该编译参数中插入(操作608),则该编译器将“硬件启动存储”指令附加至该指令块(操作610)。另一方面,如果未指示插入(操作608),则该编译器检查在源代码是否已到达输出层(操作612)。如果已到达输出层(操作612),则该编译器可结束任务关键型系统的指令集(操作614)。否则,该编译器继续生成与中间隐藏层相关的指令块(操作604)。
图6B显示依据本申请的一个实施例MAIP的派发器(dispatcher)执行硬件启动存储指令的方法的流程图。在一些实施例中,该派发器可为在该MAIP的CSQ中的FSM。在操作期间,该派发器自CSQ的指令缓冲区读取“硬件启动存储”指令(操作632)。该派发器识别该MAIP的统一缓冲区中与先前的计算相关的数据(操作634)。接着,该派发器指示该MAIP的DMA控制器自统一缓冲区读取该识别数据并将该数据存储在系统存储器中(操作636)。
示例电脑系统及装置
图7显示依据本申请的一个实施例支持任务关键型系统的示例电脑系统。电脑系统700包括处理器702、存储器装置704、以及存储装置708。存储器装置704可包括易失性存储器装置(例如,双列直插式存储器模块(DIMM))。而且,电脑系统700可与显示装置710、键盘712、以及指向(pointing)装置714耦接。存储装置708可存储操作系统716、任务关键型系统718、以及数据736。任务关键型系统718可促进以下的其中一个或多个的操作:任务关键型系统110、存储服务器442、编译器460、以及回放装置470。在一些实施例中,电脑系统700还可包括AI硬件706,其包括一个或多个MAIP,如结合图1A所述。
任务关键型系统718可包括指令,当该指令由电脑系统700执行时,可使电脑系统700执行本披露中所述的方法及/或过程。具体地说,任务关键型系统718可包括用于任务关键型系统促进AI硬件706的MAIP中的高可用性的指令(高可用性模块720)。任务关键型系统718还可包括用于该任务关键型系统操作AI硬件706以在功率故障的情况下处理最低计算要求的指令(功率模块722)。
而且,任务关键型系统718包括用于该任务关键型系统虚拟化AI硬件706的资源的指令(虚拟化模块724)。此外,任务关键型系统718包括用于该任务关键型系统加密AI硬件706所生成的数据的指令(加密模块726)。任务关键型系统718还可包括供编译器将“硬件启动存储”指令插入可在AI硬件706的MAIP上执行的指令中的指令(指令模块728)。
任务关键型系统718还可包括用于该任务关键型系统通过执行“硬件启动存储”指令来记录上下文的指令(例如,在该任务关键型系统中或在远程存储服务器中)(记录模块730)。任务关键型系统718还可包括用于回放装置回放所记录的上下文的指令(回放模块732)。任务关键型系统718还可包括用于该任务关键型系统、该存储服务器、该编译器、以及该回放装置发送及接收消息的指令(通信模块734)。
数据736可包括可促进以下的其中一个或多个的操作的任何数据:任务关键型系统110、存储服务器442、编译器460以及回放装置470。数据736可包括以下的其中一种或多种:源代码、通过编译该源代码所生成的指令、“硬件启动存储”指令、以及所记录的上下文。
图8显示依据本申请的一个实施例支持任务关键型系统的示例设备。任务关键型设备800可包括多个单元或设备,它们可通过有线、无线、量子光、或电信通信信道彼此通信。设备800可利用一个或多个集成电路实现,且可包括比图8中所示的单元或设备更少或更多的单元或设备。另外,设备800可被集成于电脑系统中,或作为能够与其它电脑系统及/或装置通信的独立装置实现。具体而言,设备800可包括单元802-816(它们执行与图7的电脑系统700的模块720-734类似的功能或操作),包括:高可用性单元802、功率单元804、虚拟化单元806、加密单元808、指令单元810、记录单元812、回放单元814、以及通信单元816。
在此详细说明中所述的数据结构及代码通常被存储于电脑可读存储媒体上,该电脑可读存储媒体可为可存储代码及/或数据以供电脑系统使用的任何装置或媒体。该电脑可读存储媒体包括但不限于易失性存储器、非易失性存储器、磁及光存储装置,例如磁盘(disk)、磁带、CD(光盘)、DVD(数字多功能光盘或数字视频光盘),或现在已知或以后开发的能够存储电脑可读媒体的其它媒体。
在该详细说明部分中所述的方法及过程可被实施为代码及/或数据,其可被存储于如上所述的电脑可读存储媒体中。当电脑系统读取并执行在该电脑可读存储媒体上所存储的该代码及/或数据时,该电脑系统执行被实施为数据结构及代码并存储于该电脑可读存储媒体内的该方法及过程。
而且,上述方法及过程可被包括于硬件模块中。例如,该硬件模块可包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(field-programmable gate array;FPGA),以及现在已知或以后开发的其它可编程逻辑装置。当启动该硬件模块时,该硬件模块执行在该硬件模块内所包括的方法及过程。
本文中所述的上述实施例仅用于示例及说明目的。它们并非意图详尽无遗或将本文中所述的实施例限于所揭露的形式。相应地,许多修改及变更将对于本领域的技术人员显而易见。此外,上面的揭露并非意图限制本文中所述的实施例。本文中所述实施例的范围由所附权利要求定义。
权利要求书(按照条约第19条的修改)
1.一种任务关键型处理器,包括:
指令缓冲区,经配置以存储一个或多个指令,其中,该一个或多个指令包括一个或多个人工智能(AI)处理指令及一个或多个硬件启动存储指令;
处理电路,经配置以于当前指令属于该一个或多个AI处理指令时,依据该当前指令计算人工智能(AI)模型的中间阶段;
数据缓冲区,经配置以于该当前指令属于该一个或多个AI处理指令时,存储由执行该当前指令所生成的数据;以及
专用电路,经配置以将该数据从该数据缓冲区传送至计算系统的存储器装置,而没有该计算系统的系统处理器的软件参与,其中,该存储器装置位于该任务关键型处理器的外部。
2.如权利要求1所述的任务关键型处理器,其中,该数据通过通信接口传送,且该通信接口为以下的其中之一:
周边组件互连快速(PCIe)接口;以及
网络接口卡(NIC)。
3.如权利要求1所述的任务关键型处理器,还包括加密电路,经配置以加密该数据缓冲区中的该数据。
4.如权利要求1所述的任务关键型处理器,其中,该处理电路包括多个处理单元,该多个处理单元包括以下的其中一个或多个:
数据流处理单元(DPU),包括标量计算单元及向量计算单元;以及
张量计算单元(TCU),包括DPU集群、高带宽存储器装置、以及输入/输出(I/O)装置。
5.如权利要求4所述的任务关键型处理器,还包括控制电路,经配置以通过关闭该多个处理单元的其中一个或多个处理单元而以低功率模式操作该处理电路。
6.如权利要求1所述的任务关键型处理器,其中,该专用电路还经配置以在该计算系统的状态缓冲区中存储该处理电路的计算状态,从而允许该计算系统的第二任务关键型处理器恢复与该计算状态相关的操作。
7.如权利要求1所述的任务关键型处理器,其中,该专用电路还经配置以利用远程存储器访问协议经由该通信接口在远程计算装置的存储装置中存储该数据。
8.如权利要求1所述的任务关键型处理器,其中,该指令缓冲区经配置以通过以下的其中一种来存储该一个或多个指令:
在运行时间之前存储该一个或多个指令;以及
在运行时间之前存储该一个或多个AI处理指令并动态插入该一个或多个硬件启动存储指令。
9.如权利要求1所述的任务关键型处理器,其中,基于该硬件启动存储指令,该专用电路还经配置以将与该任务关键型处理器相关的上下文信息传送至该存储器装置,其中,该上下文信息包括以下的其中一种或多种:
与该数据缓冲区中的该数据相关的特征映射;
与该任务关键型处理器的一个或多个计算单元相关的信息,其中,该信息包括以下的其中一种或多种:
温度;
工作条件;
使用率;以及
性能统计。
10.一种促进任务关键型人工智能(AI)处理器的指令的电脑实施方法,该方法包括:
从指令缓冲区获取当前指令,其中,该指令缓冲区存储一个或多个指令,该一个或多个指令包括一个或多个人工智能(AI)处理指令及一个或多个硬件启动存储指令;
配置处理电路,以于该当前指令属于该一个或多个AI处理指令时,依据该当前指令计算AI模型的中间阶段;
配置数据缓冲区,以于该当前指令属于该一个或多个AI处理指令时,存储由执行该当前指令所生成的数据;以及
配置专用电路,以将该数据从该数据缓冲区传送至计算系统的存储器装置,而没有该计算系统的系统处理器的软件参与,其中,该存储器装置位于该任务关键型AI处理器的外部。
11.如权利要求10所述的方法,其中,在目标AI处理指令之后插入目标硬件启动存储指令的时间、频率或位置取决于一组参数,且其中,该组参数包括可用存储、通信带宽、以及外部输入,该外部输入包括数据中心的策略、客户偏好、开发者偏好、以及环境反馈。
12.如权利要求10所述的方法,还包括在该任务关键型AI处理器的运行时间之前,向该任务关键型AI处理器提供该一个或多个指令。
13.一种任务关键型系统,该任务关键型系统包括:
系统处理器;
系统存储器装置;
通信接口;以及
第一任务关键型处理器,与该通信接口耦接,其中,该第一任务关键型处理器包括:
指令缓冲区,经配置以存储一个或多个指令,其中,该一个或多个指令包括一个或多个人工智能(AI)处理指令及一个或多个硬件启动存储指令;
处理电路,经配置以于当前指令属于该一个或多个AI处理指令时,依据该当前指令计算人工智能(AI)模型的中间阶段;
数据缓冲区,经配置以于该当前指令属于该一个或多个AI处理指令时,存储由执行该当前指令所生成的数据;以及
专用电路,经配置以将该数据从该数据缓冲区传送至该任务关键型系统的该系统存储器装置,而没有该任务关键型系统的该系统处理器的软件参与,其中,该系统存储器装置位于该第一任务关键型处理器的外部;以及
操作模块,经配置以加载该第一任务关键型处理器的该指令缓冲区中的该一个或多个指令。
14.如权利要求13所述的任务关键型系统,其中,该通信接口为以下的其中之一:
周边组件互连快速(PCIe)接口;以及
网络接口卡(NIC)。
15.如权利要求13所述的任务关键型系统,其中,该第一任务关键型处理器的该处理电路包括多个处理单元,该多个处理单元包括以下的其中一个或多个:
数据流处理单元(DPU),包括标量计算单元及向量计算单元;以及
张量计算单元(TCU),包括DPU集群、高带宽存储器装置、以及输入/输出(I/O)装置。
16.如权利要求13所述的任务关键型系统,还包括:
备用功率源;以及
功率电路,经配置以:
检测该任务关键型系统的功率故障;
将该第一任务关键型处理器切换至该备用功率源;以及
减少该第一任务关键型处理器的操作以节约功率。
17.如权利要求13所述的任务关键型系统,还包括:
状态缓冲区,经配置以存储该第一任务关键型处理器的计算状态;以及
高可用性电路,经配置以:
检测该第一任务关键型处理器的故障;
将该第一任务关键型处理器的该计算状态从该状态缓冲区加载至第二任务关键型处理器;以及
利用该第二任务关键型处理器恢复与该计算状态相关的操作。
18.如权利要求13所述的任务关键型系统,还包括网络接口,经配置以将该数据从该系统存储器装置传送至远程计算系统,用于回放该数据。
19.如权利要求13所述的任务关键型系统,其中,该操作模块经配置以通过以下的其中一种来加载该一个或多个指令:
在运行时间之前加载该一个或多个指令;以及
在运行时间之前加载该一个或多个AI处理指令并在运行时间期间动态插入该一个或多个AI处理指令。
20.如权利要求13所述的任务关键型系统,其中,基于该硬件启动存储指令,该第一任务关键型处理器的该专用电路还经配置以将与该第一任务关键型处理器相关的上下文信息传送至该系统存储器装置,其中,该上下文信息包括以下的其中一种或多种:
与该数据缓冲区中的该数据相关的特征映射;以及
与该第一任务关键型处理器的一个或多个计算单元相关的信息,其中,该信息包括以下的其中一种或多种:
温度;
工作条件;
使用率;以及
性能统计。
Claims (20)
1.一种任务关键型处理器,包括:
指令缓冲区,经配置以存储第一硬件指令及第二硬件指令;
处理电路,经配置以执行该第一硬件指令,该第一硬件指令计算人工智能(AI)模型的中间阶段;
数据缓冲区,经配置以存储由执行该第一硬件指令所生成的数据;
命令电路,经配置以确定该第二硬件指令是用于传送来自该数据缓冲区的该数据的硬件启动存储指令;以及
通信电路,基于该硬件启动存储指令,经配置以经由通信接口将来自该数据缓冲区的该数据传送至包括该任务关键型处理器的计算系统的存储器装置。
2.如权利要求1所述的任务关键型处理器,其中,该通信接口为以下的其中之一:
周边组件互连快速(PCIe)接口;以及
网络接口卡(NIC)。
3.如权利要求1所述的任务关键型处理器,还包括加密电路,经配置以加密该数据缓冲区中的该数据。
4.如权利要求1所述的任务关键型处理器,其中,该处理电路包括多个处理单元,该多个处理单元包括以下的其中一个或多个:
数据流处理单元(DPU),包括标量计算单元及向量计算单元;以及
张量计算单元(TCU),包括DPU集群、高带宽存储器装置、以及输入/输出(I/O)装置。
5.如权利要求4所述的任务关键型处理器,还包括控制电路,经配置以通过关闭该多个处理单元的其中一个或多个处理单元而以低功率模式操作该处理电路。
6.如权利要求1所述的任务关键型处理器,其中,该通信电路还经配置以在该计算系统的状态缓冲区中存储该处理电路的计算状态,从而允许该计算系统的第二任务关键型处理器恢复与该计算状态相关的操作。
7.如权利要求1所述的任务关键型处理器,其中,该通信电路还经配置以利用远程存储器访问协议经由该通信接口在远程计算装置的存储装置中存储该数据。
8.如权利要求1所述的任务关键型处理器,其中,该指令缓冲区经配置以通过以下的其中一种来存储该第一及第二硬件指令:
在运行时间之前存储该第一及第二硬件指令;以及
在运行时间之前存储该第一硬件指令并在运行时间期间动态插入该第二硬件指令。
9.如权利要求1所述的任务关键型处理器,其中,基于该硬件启动存储指令,该通信电路还经配置以将与该任务关键型处理器相关的上下文信息传送至该存储器装置,其中,该上下文信息包括以下的其中一种或多种:
与该数据缓冲区中的该数据相关的特征映射;
与该任务关键型处理器的一个或多个计算单元相关的信息,其中,该信息包括以下的其中一种或多种:
温度;
工作条件;
使用率;以及
性能统计。
10.一种促进任务关键型系统的硬件指令的电脑实施方法,该方法包括:
识别包括一组硬件指令的指令块,该组硬件指令计算人工智能(AI)模型的中间阶段,其中,该指令块的各指令可执行于任务关键型AI处理器上;
基于一组参数,确定与该指令块相关的上下文是否应当被记录;
作为对确定与该指令块相关的上下文应当被记录的响应,将硬件启动指令附加至该指令块,其中,该硬件启动指令启动由该指令块所生成的数据向该任务关键型AI处理器的外部的传送;以及
向该任务关键型AI处理器提供具有该硬件启动指令的该指令块。
11.如权利要求10所述的方法,其中,该组参数包括可用存储、通信带宽、以及外部输入,该外部输入包括数据中心的策略、客户偏好、开发者偏好、以及环境反馈。
12.如权利要求10所述的方法,还包括在该任务关键型AI处理器的运行时间之前,向该任务关键型AI处理器提供该指令块。
13.一种任务关键型系统,该任务关键型系统包括:
系统处理器;
系统存储器装置;
通信接口;以及
第一任务关键型处理器,与该通信接口耦接;以及
操作模块,经配置以在该第一任务关键型处理器的指令缓冲区中加载第一硬件指令及第二硬件指令;以及
其中,该第一任务关键型处理器包括:
处理电路,经配置以执行该第一硬件指令,该第一硬件指令计算人工智能(AI)模型的中间阶段;
数据缓冲区,经配置以存储由执行该第一硬件指令所生成的数据;
命令电路,经配置以确定该第二硬件指令是用于传送来自该数据缓冲区的该数据的硬件启动存储指令;以及
通信电路,基于该硬件启动存储指令,经配置以经由该通信接口将来自该数据缓冲区的该数据传送至该系统存储器装置。
14.如权利要求13所述的任务关键型系统,其中,该通信接口为以下的其中之一:
周边组件互连快速(PCIe)接口;以及
网络接口卡(NIC)。
15.如权利要求13所述的任务关键型系统,其中,该第一任务关键型处理器的该处理电路包括多个处理单元,该多个处理单元包括以下的其中一个或多个:
数据流处理单元(DPU),包括标量计算单元及向量计算单元;以及
张量计算单元(TCU),包括DPU集群、高带宽存储器装置、以及输入/输出(I/O)装置。
16.如权利要求13所述的任务关键型系统,还包括:
备用功率源;以及
功率电路,经配置以:
检测该任务关键型系统的功率故障;
将该第一任务关键型处理器切换至该备用功率源;以及
减少该第一任务关键型处理器的操作以节约功率。
17.如权利要求13所述的任务关键型系统,还包括:
状态缓冲区,经配置以存储该第一任务关键型处理器的计算状态;以及
高可用性电路,经配置以:
检测该第一任务关键型处理器的故障;
将该第一任务关键型处理器的该计算状态从该状态缓冲区加载至第二任务关键型处理器;以及
利用该第二任务关键型处理器恢复与该计算状态相关的操作。
18.如权利要求13所述的任务关键型系统,还包括网络接口,经配置以将该数据从该系统存储器装置传送至远程计算系统,用于回放该数据。
19.如权利要求13所述的任务关键型系统,其中,该操作模块经配置以通过以下的其中一种来加载该第一及第二硬件指令:
在运行时间之前加载该第一及第二硬件指令;以及
在运行时间之前加载该第一硬件指令并在运行时间期间动态插入该第二硬件指令。
20.如权利要求13所述的任务关键型系统,其中,基于该硬件启动存储指令,该第一任务关键型处理器的该通信电路还经配置以将与该第一任务关键型处理器相关的上下文信息传送至该系统存储器装置,其中,该上下文信息包括以下的其中一种或多种:
与该数据缓冲区中的该数据相关的特征映射;以及
与该第一任务关键型处理器的一个或多个计算单元相关的信息,其中,该信息包括以下的其中一种或多种:
温度;
工作条件;
使用率;以及
性能统计。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862619505P | 2018-01-19 | 2018-01-19 | |
US62/619,505 | 2018-01-19 | ||
US201862639451P | 2018-03-06 | 2018-03-06 | |
US62/639,451 | 2018-03-06 | ||
US201862640800P | 2018-03-09 | 2018-03-09 | |
US62/640,800 | 2018-03-09 | ||
US201862654761P | 2018-04-09 | 2018-04-09 | |
US62/654,761 | 2018-04-09 | ||
US16/000,718 | 2018-06-05 | ||
US16/000,718 US10747631B2 (en) | 2018-01-19 | 2018-06-05 | Mission-critical AI processor with record and replay support |
PCT/US2019/013404 WO2019143537A1 (en) | 2018-01-19 | 2019-01-13 | Mission-critical ai processor with record and replay support |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111602117A true CN111602117A (zh) | 2020-08-28 |
Family
ID=67299330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980008559.XA Pending CN111602117A (zh) | 2018-01-19 | 2019-01-13 | 具有记录及回放支持的任务关键型ai处理器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10747631B2 (zh) |
CN (1) | CN111602117A (zh) |
WO (1) | WO2019143537A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113614749A (zh) * | 2021-06-25 | 2021-11-05 | 华为技术有限公司 | 人工智能模型的处理方法、装置、设备及可读存储介质 |
WO2023098031A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 数据访问方法及计算设备 |
CN116406490A (zh) * | 2020-10-28 | 2023-07-07 | 华为技术有限公司 | 人工智能ai芯片的控制装置、控制方法及控制器 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200010138A1 (en) * | 2018-07-09 | 2020-01-09 | Shimano Inc. | Information processing device |
CN115269717B (zh) * | 2019-08-22 | 2023-06-02 | 华为技术有限公司 | 存储设备、分布式存储系统以及数据处理方法 |
CN113139175A (zh) | 2020-01-19 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 处理单元、电子设备以及安全控制方法 |
CN111752713B (zh) * | 2020-06-28 | 2022-08-05 | 浪潮电子信息产业股份有限公司 | 模型并行训练任务负载均衡方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050053060A1 (en) * | 2003-01-21 | 2005-03-10 | Nextio Inc. | Method and apparatus for a shared I/O network interface controller |
US20100083034A1 (en) * | 2008-10-01 | 2010-04-01 | Fujitsu Limited | Information processing apparatus and configuration control method |
US20150193233A1 (en) * | 2014-01-08 | 2015-07-09 | Oracle International Corporation | Using a single-instruction processor to process messages |
US20150227365A1 (en) * | 2014-02-12 | 2015-08-13 | Imagination Technologies Limited | Processor Supporting Arithmetic Instructions with Branch on Overflow & Methods |
CN107295163A (zh) * | 2017-05-26 | 2017-10-24 | 广东欧珀移动通信有限公司 | 信息处理方法及相关产品 |
US9836691B1 (en) * | 2016-10-27 | 2017-12-05 | Google Inc. | Neural network instruction set architecture |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5097407A (en) * | 1986-08-08 | 1992-03-17 | Integrated Inference Machines | Artificial intelligence processor |
US6772355B2 (en) * | 2000-12-29 | 2004-08-03 | Stmicroelectronics, Inc. | System and method for reducing power consumption in a data processor having a clustered architecture |
US7581220B1 (en) * | 2005-11-22 | 2009-08-25 | Symantec Operating Corporation | System and method for modifying user memory from an arbitrary kernel state |
US7769938B2 (en) * | 2007-09-06 | 2010-08-03 | Intel Corporation | Processor selection for an interrupt identifying a processor cluster |
US8649257B2 (en) * | 2009-11-16 | 2014-02-11 | Cox Communications, Inc. | Systems and methods for locating power network failures on a network |
FR3011659B1 (fr) * | 2013-10-04 | 2015-10-16 | Commissariat Energie Atomique | Circuit electronique, notamment apte a l'implementation d'un reseau de neurones, et systeme neuronal |
US9614770B2 (en) * | 2014-07-21 | 2017-04-04 | Cisco Technology, Inc. | Network traffic control during limited power situations |
US10175980B2 (en) * | 2016-10-27 | 2019-01-08 | Google Llc | Neural network compute tile |
CN107086910B (zh) * | 2017-03-24 | 2018-08-10 | 中国科学院计算技术研究所 | 一种针对神经网络处理的权重加解密方法和系统 |
US11636327B2 (en) * | 2017-12-29 | 2023-04-25 | Intel Corporation | Machine learning sparse computation mechanism for arbitrary neural networks, arithmetic compute microarchitecture, and sparsity for training mechanism |
-
2018
- 2018-06-05 US US16/000,718 patent/US10747631B2/en not_active Expired - Fee Related
-
2019
- 2019-01-13 CN CN201980008559.XA patent/CN111602117A/zh active Pending
- 2019-01-13 WO PCT/US2019/013404 patent/WO2019143537A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050053060A1 (en) * | 2003-01-21 | 2005-03-10 | Nextio Inc. | Method and apparatus for a shared I/O network interface controller |
US20120218905A1 (en) * | 2003-01-21 | 2012-08-30 | Nextio Inc. | Method and apparatus for a shared i/o network interface controller |
US20100083034A1 (en) * | 2008-10-01 | 2010-04-01 | Fujitsu Limited | Information processing apparatus and configuration control method |
US20150193233A1 (en) * | 2014-01-08 | 2015-07-09 | Oracle International Corporation | Using a single-instruction processor to process messages |
US20150227365A1 (en) * | 2014-02-12 | 2015-08-13 | Imagination Technologies Limited | Processor Supporting Arithmetic Instructions with Branch on Overflow & Methods |
US9836691B1 (en) * | 2016-10-27 | 2017-12-05 | Google Inc. | Neural network instruction set architecture |
CN107295163A (zh) * | 2017-05-26 | 2017-10-24 | 广东欧珀移动通信有限公司 | 信息处理方法及相关产品 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116406490A (zh) * | 2020-10-28 | 2023-07-07 | 华为技术有限公司 | 人工智能ai芯片的控制装置、控制方法及控制器 |
CN116406490B (zh) * | 2020-10-28 | 2024-09-06 | 华为技术有限公司 | 人工智能ai芯片的控制装置、控制方法及控制器 |
CN113614749A (zh) * | 2021-06-25 | 2021-11-05 | 华为技术有限公司 | 人工智能模型的处理方法、装置、设备及可读存储介质 |
WO2022267049A1 (zh) * | 2021-06-25 | 2022-12-29 | 华为技术有限公司 | 人工智能模型的处理方法、装置、设备及可读存储介质 |
WO2023098031A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为技术有限公司 | 数据访问方法及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2019143537A1 (en) | 2019-07-25 |
US20190227887A1 (en) | 2019-07-25 |
US10747631B2 (en) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111602117A (zh) | 具有记录及回放支持的任务关键型ai处理器 | |
US20210141697A1 (en) | Mission-Critical AI Processor with Multi-Layer Fault Tolerance Support | |
US8250164B2 (en) | Query performance data on parallel computer system having compute nodes | |
US12019498B2 (en) | Core off sleep mode with low exit latency | |
JP2022547517A (ja) | 1つ又は複数のニューラル・ネットワークを使用するビデオ・アップサンプリング | |
CN104115091B (zh) | 多层级cpu高电流保护 | |
US9164769B2 (en) | Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array | |
US10417012B2 (en) | Reprogramming a field programmable device on-demand | |
US11150899B2 (en) | Selecting a precision level for executing a workload in an electronic device | |
US20210166114A1 (en) | Techniques for Accelerating Neural Networks | |
US10908987B1 (en) | Handling memory errors in computing systems | |
WO2021175226A1 (zh) | 环形网络的故障恢复方法及物理节点 | |
US20200257994A1 (en) | Inference processing system, inference processing device, and computer program product | |
US20230251979A1 (en) | Data processing method and apparatus of ai chip and computer device | |
US20200183788A1 (en) | Data processing pipeline failure recovery | |
US10437754B1 (en) | Diagnostic fault management controller for distributed computing | |
US10248466B2 (en) | Managing workload distribution among processing systems based on field programmable devices | |
US7600082B2 (en) | Virtualization logic | |
CN116348885A (zh) | 用于可部署推理系统的存储器映射的神经网络加速器 | |
Yamada et al. | A 20.5 TOPS multicore SoC with DNN accelerator and image signal processor for automotive applications | |
US20210319307A1 (en) | Heterogeneous computing on a system-on-chip, including machine learning inference | |
US20150067385A1 (en) | Information processing system and method for processing failure | |
US10942880B2 (en) | Aging tolerant system design using silicon resource utilization | |
US20210373975A1 (en) | Workgroup synchronization and processing | |
CN112988376A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200828 |