CN113806758B - 基于认证的数据处理集群中的数据保护方法 - Google Patents
基于认证的数据处理集群中的数据保护方法 Download PDFInfo
- Publication number
- CN113806758B CN113806758B CN202011541611.9A CN202011541611A CN113806758B CN 113806758 B CN113806758 B CN 113806758B CN 202011541611 A CN202011541611 A CN 202011541611A CN 113806758 B CN113806758 B CN 113806758B
- Authority
- CN
- China
- Prior art keywords
- data processing
- processing accelerator
- accelerator
- resource
- cluster
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 338
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004891 communication Methods 0.000 claims abstract description 87
- 230000006870 function Effects 0.000 claims description 36
- 230000004044 response Effects 0.000 claims description 33
- 230000015654 memory Effects 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013473 artificial intelligence Methods 0.000 abstract description 66
- 238000000638 solvent extraction Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 15
- 238000012549 training Methods 0.000 description 13
- 230000003068 static effect Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 238000005265 energy consumption Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 239000007943 implant Substances 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- OWRCNXZUPFZXOS-UHFFFAOYSA-N 1,3-diphenylguanidine Chemical compound C=1C=CC=CC=1NC(=N)NC1=CC=CC=C1 OWRCNXZUPFZXOS-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/041—Abduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Health & Medical Sciences (AREA)
- Technology Law (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
- Advance Control (AREA)
Abstract
本公开公开了基于认证的数据处理集群中的数据保护方法,涉及人工智能,尤其涉及信息流领域。具体实现方案为:公开了用于数据处理加速器(DPA)集群中的数据保护的系统和方法。加速器集群可以包括可能不被信任的第三方的DPA。为了确保集群中的数据保护,从第二DPA接收访问第一DPA的资源的请求的第一DPA对第二DPA进行认证。如果第二DPA通过认证,则准许第二DPA访问第一DPA的非敏感资源,否则不准许第二DPA访问第一DPA的任何资源,并且第一DPA断开与第二DPA的通信链路。基于DPA之间的共享机密函数和由第一DPA生成的随机数来进行认证。共享机密函数可由例如来自DPA制造商的补丁来更新。
Description
技术领域
本公开大体上涉及在集群中配置的数据处理加速器。更具体地,本公开涉及诸如可用于执行人工智能模型训练和推断的数据处理加速器集群中的数据保护。
背景技术
随着AI技术部署在诸如图像分类、医学诊断或自主驾驶的各种领域中,人工智能(AI)模型(也称为“机器学习模型”)最近已被广泛地使用。与软件应用的可执行映像或二进制映像类似,AI模型在被训练时可以基于一组属性执行推断以分类为特征。AI模型的训练可能需要在收集、整理和过滤数据上进行大量投资,以生成产生有用预测的AI模型。此外,使用AI模型所产生的预测可以包含用户想要保护的个人敏感数据。
从AI模型生成预测可以是计算密集型处理。为了为一个或多个用户提供足够的计算能力,可以在集群中提供数据处理加速器(DPA)的集群。数据处理加速器与一个或多个通信链路互连。存在一种风险,即,包括通信链路和/或集群中的一个或多个数据处理加速器可能使得AI模型或由AI模型产生的推断可能被泄漏、被盗和/或被篡改。
为了处理计算密集型任务,可以设计数据处理加速器的集群来处理最大工作负荷。针对最大工作负荷选择的数据处理加速器的数量可以产生大量的热量和能量消耗。
建立具有满足最大工作负荷的多个数据处理加速器的集群系统可能代价高昂。成本可以促使灰色市场制造商生产在视觉上看起来与合法的名牌数据处理加速器相同的数据处理加速器。系统构建者或集成者可能无法验证数据处理加速器是否是由品牌制造商制造的。因此,系统构建者无法确保在集群中使用的数据处理加速器与构建者打算在集群中使用的名牌数据处理加速器一样安全。
发明内容
本申请的一个方面提供了一种配置多个数据处理加速器的计算机实现的方法,多个数据处理加速器通信地联接到主机设备。该方法可包括:由集群中的第一数据处理加速器从集群中的第二数据处理加速器接收由第二数据处理加速器访问第一数据处理加速器的资源的请求;响应于确定第二数据处理加速器所请求的资源是第一数据处理加速器的敏感资源,拒绝对由第二数据处理加速器所请求的资源的访问;以及响应于确定第二数据处理加速器所请求的资源是第一数据处理加速器的非敏感资源,由第一数据处理加速器认证第二数据处理加速器,并且响应于确定第二数据处理加速器被认证,准许对由第二数据处理加速器所请求的资源的访问。
本申请的另一方面提供了一种数据处理加速器,其作为联接到主机设备的数据处理加速器集群中的第一数据处理加速器操作。该数据处理加速器可包括资源管理器。资源管理器可执行以下操作:从集群中的第二数据处理加速器接收由第二数据处理加速器访问第一数据处理加速器的资源的请求;响应于确定第二数据处理加速器所请求的资源是第一数据处理加速器的敏感资源,拒绝对由第二数据处理加速器所请求的资源的访问;以及响应于确定第二数据处理加速器所请求的资源是第一数据处理加速器的非敏感资源,由第一数据处理加速器认证第二数据处理加速器,并且响应于确定第二数据处理加速器被认证,准许对由第二数据处理加速器所请求的资源的访问。
本申请的又一方面提供了一种具有至少一个硬件处理器的处理系统,硬件处理器联接到用可执行指令编程的存储器,可执行指令在由至少一个硬件处理器执行时使至少一个硬件处理器执行配置通信地联接到主机设备的多个数据处理加速器的操作。该操作可包括:由集群中的第一数据处理加速器从集群中的第二数据处理加速器接收由第二数据处理加速器访问第一数据处理加速器的资源的请求;响应于确定第二数据处理加速器所请求的资源是第一数据处理加速器的敏感资源,拒绝对由第二数据处理加速器所请求的资源的访问;响应于确定第二数据处理加速器所请求的资源是第一数据处理加速器的非敏感资源,由第一数据处理加速器对第二数据处理加速器进行认证;以及响应于确定第二数据处理加速器被认证,准许对由第二数据处理加速器所请求的资源的访问。
本申请的又一方面提供了存储有计算机指令的非瞬时计算机可读存储介质,计算机指令可使计算机执行操作:由集群中的第一数据处理加速器从集群中的第二数据处理加速器接收由第二数据处理加速器访问第一数据处理加速器的资源的请求;响应于确定第二数据处理加速器所请求的资源是第一数据处理加速器的敏感资源,拒绝对由第二数据处理加速器所请求的资源的访问;以及响应于确定第二数据处理加速器所请求的资源是第一数据处理加速器的非敏感资源,由第一数据处理加速器认证第二数据处理加速器,并且响应于确定第二数据处理加速器被认证,准许对由第二数据处理加速器所请求的资源的访问。
本申请的又一方面提供了一种计算机程序产品,其上存储有计算机程序,其中,当上述计算机程序在被处理器执行时,使得处理器:由集群中的第一数据处理加速器从集群中的第二数据处理加速器接收由第二数据处理加速器访问第一数据处理加速器的资源的请求;响应于确定第二数据处理加速器所请求的资源是第一数据处理加速器的敏感资源,拒绝对由第二数据处理加速器所请求的资源的访问;以及响应于确定第二数据处理加速器所请求的资源是第一数据处理加速器的非敏感资源,由第一数据处理加速器认证第二数据处理加速器,并且响应于确定第二数据处理加速器被认证,准许对由第二数据处理加速器所请求的资源的访问。
附图说明
本公开的实施例在附图的各个图中以示例的方式而不是限制的方式示出,其中,在附图中相同的附图标记表示类似的元件。
图1是示出根据一个实施例的安全处理系统的框图。
图2A和图2B是示出根据一个实施例的一个或多个主机与一个或多个数据处理加速器之间的安全计算环境的框图。
图3是示出根据实施例的控制数据处理加速器集群的主机的框图,每个数据处理加速器具有保护资源和非保护资源。
图4是示出根据实施例的保护根据策略划分的数据处理加速器集群中的数据的方法的框图。
图5A和图5B是示出根据实施例的保护根据策略划分的数据处理加速器集群中的数据的方法的框图。
图6是示出根据实施例的使用针对加速器的资源划分来保护数据处理加速器集群中的数据的方法的框图。
图7A和图7B是示出根据实施例的使用加速器的动态划分来保护数据处理加速器集群中的数据的方法的框图。
图8是示出根据实施例的使用数据处理加速器的认证来保护数据处理加速器集群中的数据的方法的框图。
图9是示出根据实施例的认证数据处理加速器的方法的框图。
具体实施方式
将参考以下讨论的细节来描述本公开的各种实施例和方面,并且附图将示出各种实施例。以下描述和附图是本公开的示例,而不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各种实施例的透彻理解。然而,在某些情况下,为了提供对本公开的实施例的简洁讨论,没有描述公知的或常规的细节。
在说明书中提及“一个实施例”或“实施例”意味着结合该实施例描述的特定特征、结构或特性可以被包括在本公开的至少一个实施例中。在说明书的各个位置中出现的短语“在一个实施例中”不一定都指同一实施例。
以下实施例涉及使用数据处理(DP)加速器来增加可从主机设备分流(或下放)到DP加速器的特定类型的操作的处理吞吐量。DP加速器可以是通用处理单元(GPU)、人工智能(AI)加速器、数学协处理器、数字信号处理器(DSP)或其它类型的处理器。DP加速器可以是专有设计,诸如AI加速器或另一GPU等。虽然用安全地联接到一个或多个DP加速器的主机设备来说明和描述实施例,但是这里描述的概念可以更一般地实现为分布式处理系统。
DP加速器可以链接成集群,集群由具有驱动器的主机设备管理,驱动器将应用程序处理请求转换为用于一个或多个DP加速器的处理任务。主机设备可以支持一个或多个虚拟机(VM),每个虚拟机具有与相应VM相关联的用户。驱动器可包括调度器,其调度来自多个VM的应用处理请求以供一个或多个DP加速器处理。在一个实施例中,驱动器可分析调度器中的处理请求以确定如何将集群中的一个或多个DP加速器分组以及是否指示一个或多个DP加速器从群组断开链接并进入低功率状态以降低热量并节省能量。
主机设备和DP加速器可以经由高速总线互连,诸如外围组件互连高速(PCIe)或其它高速总线。主机设备和DP加速器可以在执行下面描述的本发明的各方面的操作之前通过PCIe总线交换密钥并启动安全信道。一些操作包括DP加速器使用人工智能(AI)模型来使用由主机设备提供的数据执行推断。在主机设备信任AI模型推断之前,主机设备可以接入DP加速器来执行一个或多个验证测试,如下所述,包括确定AI模型的水印。在一些实施例和操作中,DP加速器不知道主机设备正在测试由DP加速器产生的结果的有效性。
主机设备可以包括中央处理单元(CPU),并且DP加速器可以是通过总线或互连联接到CPU的通用处理单元(GPU)。DP加速器可以以专用集成电路(ASIC)、现场可编程门阵列(FPGA)设备的形式或其它形式的集成电路(IC)来实现。替代地,主机处理器可以是主数据处理系统的一部分,而DP加速器可以是作为主系统能够通过网络远程分流其数据处理任务的辅助系统的许多分布式系统中的一个(例如,诸如软件即服务或SaaS系统或者平台即服务或PaaS系统的云计算系统)。主机处理器和DP加速器之间的链路可以是外围组件互连高速(PCIe)链路或诸如以太网连接的网络连接。每个DP加速器可以包括一个或多个链路寄存器,所述链路寄存器启用(建立链接)或禁用(断开链接)与另一DP加速器的通信链路。
在第一方面,一种配置由多个数据处理加速器(DPA)组成的集群的方法包括:由多个DPA中的每一个接收用于多个DPA的配置策略。在一个实施例中,集群中的所有DPA接收相同的配置策略,并且配置策略包含关于多个DPA中的每个DPA如何配置自身的指令。每个DPA的配置可以并且通常不同于集群中其它DPA的配置。配置可以包括DPA建立(建立链接)或断开(断开链接)该DPA与集群中的一个或多个其它DPA之间的通信链路,以在集群内形成一个或多个链接的DPA群组。
当形成DPA群组时,每个DPA生成与该组DPA中的至少一个DPA的通信链路。群组中的第一DPA与群组中的第二DPA之间的通信路径通过第一DPA与第二DPA之间的直接通信链路产生,或者通过经由至少第三DPA的间接路径产生,第一DPA和第二DPA通过第三DPA形成通信路径。每个DPA通信地链接到主机系统。在DPA的配置期间,每个DPA保持其到主机设备的链路。在配置DPA之后,DPA只能与主机设备和集群中的一组DPA中的一个或多个DPA通信。集群中可以存在多个非重叠的DPA群组。
每个DPA可以具有敏感(保护)资源和非敏感(非保护)资源。资源可以包括存储器、储存器、处理器和功能模块,诸如加密模块、真随机数生成模块、密钥管理器和密钥存储器。在配置之后,群组中的每个DPA可以访问该DPA具有通信路径的、组中的任何DPA的非保护资源。群组中的DPA无法与另一群组中的DPA通信或访问另一群组中的DPA的资源。主机设备和DPA总是可以访问该DPA的所有资源。
在第二方面,一种将通信地联接为DPA集群的多个DPA的资源进行划分的方法包括:将每个DPA的资源划分为敏感(保护)资源和非敏感(非保护)资源。敏感资源可包括存储一个或多个人工智能(AI)模型的存储器、加密模块、安全处理器、保存一个或多个内核的储存器或存储器、加密密钥管理器和加密密钥存储器、以及可能需要被保护的任何其它敏感数据或处理资源。非保护资源可包括通用处理器、保存临时计算的存储器、软件模块或不需要强保护的其它资源。DPA的资源的静态划分可以符合管理DPA集群的规范。该规范在主机系统中的驱动器中实现,驱动器将工作分配给集群中的各个DPA或DPA群组。资源的静态划分可以在固件或硬件中实现。
在一个实施例中,敏感资源在预定存储器地址空间内被访问,而非敏感资源在第二预定存储器地址空间内被访问。在一个实施例中,在制造DPA时,确定地址空间。对敏感资源的访问保护可以包括准许主机设备和其资源正被访问的DPA访问敏感资源和非敏感资源。其它DPA只能访问DPA的非敏感资源,而不能访问DPA的敏感资源。主机设备可以指示DPA访问DPA自己的敏感资源。例如,主机设备可以将人工智能(AI)模型发送到DPA,并指示DPA将AI模型存储在敏感存储器中,或者指示DPA在敏感资源分区的安全存储器中使用加密模块执行加密操作。
在第三方面,主机设备可以指示集群中的每个数据处理加速器(DPA)动态地将其自身重新划分到集群中的一组DPA或从集群中的一组DPA中重新划分出来。一种配置通信地联接到主机设备的多个数据处理加速器(DPA)的方法可以包括:由DPA集群中的每个DPA从主机设备的驱动器接收专用于DPA的配置指令,以将DPA配置到集群中的一组DPA中或配置离开集群中的一组DPA。每个DPA根据从主机设备接收的指令来配置自身。
响应于指示DPA将加入集群中的一组DPA的指令,配置可以包括由DPA生成到该群组中的至少一个DPA的通信链路,响应于指示DPA离开集群中的一组DPA的指令,DPA断开DPA与该群组中的所有DPA之间的通信链路。在完成集群中的所有DPA的配置之后,每个DPA或者通信地链接到集群中的一组DPA,或者DPA不通信地链接到群组。在集群中可以有多个群组。例如,八个(8)DPA的集群可以被分组为两个(2)群组,每个群组包括四个(4)DPA。DPA群组是不重叠的。在任何时间,集群中的DPA最多也只是一个群组的成员。
在一个实施例中,DPA可以不被指示加入一组DPA。在这种情况下,可以指示DPA将其自身设置为低功率状态。主机设备中的驱动器可以将单个用户或单个应用程序分配给一个群组,并且将不同的应用程序或用户分配给另一群组。驱动器可以在任何时间向一个或多个DPA发送指令,以重新配置它们自身来加入或离开一组DPA。例如,八个(8)DPA最初可以被配置成四个(4)DPA的两个(2)群组。驱动器随后可以指示四个(4)DPA的组中的一个组中的两个(2)DPA离开它们的组,断开与该组中的DPA的所有通信链路,并且转到低功率状态,使得该集群随之包括一组四个(4)DPA、一组两个(2)DPA以及当前未被使用并且被设置为低功率状态的两个(2)DPA。主机设备的驱动器维护处理任务的调度器,所述任务将被分配给集群的不同群组。当驱动器确定并不需要所有DPA来执行调度器中的处理任务时,驱动器可以指示一个或多个DPA离开群组并进入低功率状态以减少能量消耗并减少所产生的热量。
在第四方面,数据处理加速器(DPA)的集群可以包含多个DPA,其中一个或多个DPA可以是可能不可信的第三方DPA。在第四方面,通过在准许DPA访问另一DPA的非敏感资源之前认证DPA来实现集群中的数据保护。DPA被组织成集群,并且该集群通信地联接到主机设备,该主机设备具有与集群的DPA通信的驱动器。DPA的集群可以组织成群组,也可以不组织成群组。
第一DPA从集群中的第二DPA接收访问第一DPA的资源的请求。如果请求是针对第一DPA的敏感资源,则第一DPA拒绝该请求。只有主机设备或DPA可以访问该DPA的敏感资源。如果请求是针对非敏感资源,则第一DPA将认证第二DPA。如果第二DPA被成功认证,则准许第二DPA访问第一DPA的非敏感资源。认证第二DPA包括:第一DPA生成随机数并将其发送给第二DPA;第一DPA接收来自第二DPA的基于随机数和第一DPA与第二DPA之间的共享机密(secret)的输出;以及第一DPA根据共享机密和随机数生成输出。
如果由第一DPA生成的输出与从第二DPA接收的输出相匹配,则认为第二DPA被认证,否则认为第二DPA不被认证。在一个实施例中,如果第二DPA未被认证,则第一DPA断开第一DPA和第二DPA之间的通信链路。另外,或者替代地,如果第二DPA未被认证,则第一DPA可以向除第二DPA之外的与第一DPA具有通信链路的所有其他DPA发送非认证通知。在一个实施例中,如果第二DPA未被认证,则第一DPA可以向主机设备发送非认证通知。主机设备然后可以指示所有DPA断开它们可能具有的与第二DPA的任何通信链路。
认证依赖于第一DPA和第二DPA之间的共享机密。认证过程是用于确定第二DPA是否具有共享机密的测试。共享机密可以是在给定输入的情况下生成输出的单向函数,并且单向函数无法从单向函数的输出来确定。在一个实施例中,共享机密嵌入在第一DPA和第二DPA中,并且是可更新的,例如通过来自第一DPA和第二DPA的制造商的更新来进行更新。
上述功能中的任一个可以作为可执行指令被编程到一个或多个非暂时性计算机可读介质上。当可执行指令由具有至少一个硬件处理器的处理系统执行时,该处理系统使得实现上述功能。上述功能中的任一个可以通过具有至少一个硬件处理器的处理系统来实现,所述硬件处理器联接到用可执行指令编程的存储器,所述可执行指令在被执行时使所述处理系统实现上述功能。
图1是示出根据一些实施例的安全处理系统的框图。参照图1,系统配置100包括但不限于经由网络103通信地联接到DP服务器104(例如,主机)的一个或多个客户端设备101-102。客户端设备101-102可以是任何类型的客户端设备,诸如个人计算机(例如,台式计算机、膝上型计算机和平板计算机)、“瘦”客户端、个人数字助理(PDA)、启用Web的装置、智能手表或移动电话(例如,智能电话)等。替代地,客户端设备101-102可以是其它服务器。在一个方面,一个或多个客户端设备(例如,服务器)101-102托管作为数据处理服务器104的客户端的一个或多个虚拟机。网络103可以是任何类型的有线或无线网络,诸如局域网(LAN)、诸如因特网的广域网(WAN)、高速总线或它们的组合。
服务器(例如,主机)104可以是任何类型的服务器或服务器群集,诸如Web或云服务器、应用服务器、后端服务器或其组合。服务器104还包括接口(未示出),以允许诸如客户端设备101-102的客户端访问由服务器104提供的资源或服务(诸如由DP加速器经由服务器104提供的资源和服务)。例如,服务器104可以是向客户端提供各种云服务的云服务器或数据中心的服务器,例如,各种云服务诸如为云存储、云计算服务、人工智能训练服务、数据挖掘服务等。服务器104可以配置为云上的软件即服务(SaaS)或平台即服务(PaaS)系统的一部分,该云可以是私有云、公共云或混合云。接口可以包括Web接口、应用编程接口(API)和/或命令行接口(CLI)。
例如,客户端可以是客户端设备101的用户应用程序(例如,Web浏览器、应用程序)。客户端可以向服务器104发送或传输用于执行的指令(例如,AI训练、推断指令等),并且该指令经由网络103上的接口由服务器104接收。响应于该指令,服务器104与DP加速器105-107通信以完成指令的执行。在一些实施例中,指令是机器学习类型的指令,其中相比于由服务器104执行该指令,作为专用机器或处理器的DP加速器可以快许多倍地执行该指令。因此,服务器104可以以分布式方式控制/管理一个或多个DP加速器的执行工作。然后,服务器104将执行结果返回给客户端设备101-102。DP加速器或AI加速器可以包括一个或多个专用处理器,诸如可从公司获得的/>人工智能(AI)芯片组,或者替代地,DP加速器可以是来自另一AI芯片组提供商的AI芯片组。
根据一个实施例,访问由数据处理服务器104(也称为主机)托管的DP加速器105-107中的任一个的每个应用程序可以验证该应用程序是由可信源或供应商提供的。每个应用程序可以在用户存储器空间内启动和执行,并且由主机104的中央处理单元(CPU)执行。当应用程序被配置成访问DP加速器105-107中的任一个时,可以在主机104和DP加速器105-107中相应的一个之间建立模糊连接,从而保护在主机104和DP加速器105-107之间交换的数据免受恶意软件/入侵的攻击。
图2A是示出根据一些实施例的一个或多个主机与一个或多个数据处理加速器(DPA)之间的安全计算环境(例如,系统)200的框图。在一个实施例中,系统200在对DP加速器105-107进行或不进行硬件修改的情况下提供用于在主机104与DP加速器105-107之间进行模糊通信的保护方案。主机或服务器104可以被描述为具有一个或多个要防止入侵的层(诸如用户应用程序205、运行时库206、驱动器209、操作系统211、管理程序212和硬件213(例如,中央处理单元(CPU)和储存设备204))的系统。在应用程序205和运行时库206之下,可以安装一个或多个驱动器209以接口到硬件213和/或DP加速器105-107。
驱动器209可以包括调度器209A,其调度由一个或多个用户应用程序205请求的处理任务。驱动器209还可以包括具有逻辑的分析器209B,分析器209B分析被调度用于在DP加速器105-107上执行的处理任务,以基于诸如处理吞吐量、能量消耗和DP加速器所产生的热量等调度标准来确定如何最佳配置DP加速器105-107。驱动器209还可以包括用于配置DP加速器以实现调度标准的一个或多个策略。配置DP加速器可包括将DP加速器分组为一个或多个群组、从一个或多个群组移除一个或多个DP加速器。
未分配至一组DP加速器的DP加速器可以被设置为低功率状态以节省能量和减少热量。低功率状态可包括降低DP加速器的时钟速度或进入待机状态,在待机状态中,DP加速器仍可通信地联接到主机设备且可进入其中DP加速器准备好从主机设备接收处理任务的运行状态。替代地,未分配至一个群组的DP加速器可以保持在加电状态,使得驱动器209可以将工作分配给不是DP加速器群组的成员的单个DP加速器。
配置DP加速器还可以包括指示一个或多个DP加速器生成与一个或多个其它DP加速器的通信链路(建立链接),以在DP加速器集群内形成DP加速器群组。配置DP加速器还可以包括指示一个或多个DP加速器断开DP加速器与一个或多个其它DP加速器之间的通信链路(断开链接)。DP加速器的链路接通和链路断开可以由每个DP加速器中的一个或多个链路寄存器来支配。
在基于策略划分的实施例中,DP加速器配置策略是描述每个DP加速器的通信链路(接通或断开)的单个策略。虽然每个DP加速器的配置可以(并且通常将是)不同于其它DP加速器,但是每个DP加速器的配置包括在单个策略内,并且集群中的每个DP加速器接收相同的策略。然后,每个DP加速器根据策略中的描述配置该DP加速器的部分来配置自己。基于策略的划分可以基于对调度器209A中的处理任务的分析。该分析可以确定DP加速器群组的最佳分配。在一个实施例中,在一组处理器内或跨越多组处理器进行分时处理任务,以优化吞吐量、最小化能量消耗和产生的热量。基于策略将DP加速器划分成群组的优点包括快速划分DP加速器、灵活调度群组内或群组间的处理任务、DP加速器的分时和群组的分时。
在动态划分实施例中,为每个DP加速器生成DP加速器策略。驱动器209可以动态地改变每个DP加速器的配置,包括重新组织DP加速器的群组,从所有群组中去除一个或多个DP加速器,并将那些DP加速器设置为低功率状态。在动态划分实施例中,每组DP加速器被分配给单个用户,而不是在用户之间分时共享DP加速器。驱动器209可以包括分析器209B,分析器209B分析调度器209A内的处理任务以确定DP加速器的最佳分组。该分析可以为一个或多个DP加速器生成配置,并且该配置可以被部署到每个这样的、待重新配置的DP加速器。动态划分的优点包括通过将一个或多个处理器设置为低功率状态来节能以及针对DP加速器或DP加速器群组的用户专用处理,而不是在用户之间进行时间分片。
硬件213可以包括具有一个或多个处理器的处理系统201。硬件213还可以包括储存设备204。储存设备204可以包括一个或多个人工智能(AI)模型202和一个或多个内核203。内核203可以包括签名内核、启用水印的内核、加密和/或解密内核等。签名内核在被执行时可以根据内核的编程对任何输入进行数字签名。启用水印的内核可以从数据对象(例如,AI模型或其它数据对象)提取水印。启用水印的内核还可以将水印植入AI模型、推断输出或其它数据对象中。
水印内核(例如,继承水印的内核)可以从另一个数据对象继承水印,并将该水印植入不同的对象,例如推断输出或AI模型。如这里所使用的,水印是与AI模型或由AI模型生成的推断相关联的识别符、并且可以被植入到AI模型或由AI模型生成的推断中。例如,可以在一个或多个权重变量或偏置变量中植入水印。替代地,可创建一个或多个节点(例如,人工智能模型未使用或不太可能使用的伪节点)来植入或存储水印。
主机104可以是CPU系统,其可以控制和管理主机104和/或DP加速器105-107上的作业的执行。为了保护/模糊DP加速器105-107和主机104之间的通信信道215,可能需要不同的组件来保护主机系统中易受到数据入侵或攻击的不同层。
根据一些实施例,系统200包括主机系统104和DP加速器105-107。可以存在任何数量的DP加速器。DP加速器可包括AI芯片组或另一AI芯片组,诸如可执行人工智能(AI)密集型计算任务的图形处理单元(GPU)。在一个实施例中,主机系统104包括具有一个或多个CPU的硬件213,CPU可选地配备有主机104内的安全模块(诸如可选的可信平台模块(TPM))。可选的TPM是端点设备上的专用芯片,其存储专用于主机系统的用于硬件认证的密码密钥(例如,RSA密码密钥)。每个TPM芯片可以包含一个或多个RSA密钥对(例如,公钥对和私钥对),其被称为签注密钥(EK)或签注凭证(EC),即根密钥。密钥对被保持在可选的TPM芯片内部,并且无法被软件访问。然后,在执行固件和软件的关键部分之前,可以由EK或EC对它们进行哈希计算,以保护系统免于未授权的固件和软件修改。因此,主机机器上的可选的TPM芯片可以用作安全启动的信任根。
可选的TPM芯片还可以在工作内核空间中保护驱动器209和操作系统(OS)211以与DP加速器105-107通信。这里,驱动器209由DP加速器供应商提供,并且可以用作用户应用程序205的驱动器209,以控制主机和DP加速器之间的通信信道215。因为可选的TPM芯片和安全启动处理器在其内核空间中保护OS 211和驱动器209,所以TPM还有效地保护驱动器209和OS 211。
由于用于DP加速器105-107的通信信道215可以由OS 211和驱动器209专门使用,因此通信信道215可以通过可选的TPM芯片来保护。在一个实施例中,通信信道215包括外围组件互连(PCI)或外围组件互连快速(PCIE)信道。在一个实施例中,通信信道215是模糊的通信信道。
运行时库206可以将应用编程接口(API)调用转换为用于DP加速器的执行、配置和/或控制的命令。在一个实施例中,运行时库206提供由用户应用程序执行的预定的一组(例如,预定义的)内核。在一个实施例中,内核可以存储在储存设备204中作为内核203。
操作系统211可以是任何分布、/>OS或/>OS或者其他操作系统。
系统可以通过可选的基于TPM的安全启动来启动。可选的TPM安全启动确保仅在提供加速器服务的内核空间中启动经签署/认证的操作系统211和加速器驱动器209。在一个实施例中,可以通过管理程序212加载操作系统211。管理程序或虚拟机管理器212是创建和运行虚拟机的计算机软件、固件或硬件。内核空间是其中标识内核(即,用于执行的预定的一组(例如,预定义的)函数)以向用户应用程序提供功能性和服务的声明性区域或范围。在系统的完整性受到损害的情况下,可选的TPM安全启动可能无法启动,而是关闭系统。
在启动之后,运行时库206运行用户应用程序205。在一个实施例中,用户应用程序205和运行时库206被静态链接并一起启动。在另一个实施例中,首先启动运行时库206,然后动态加载用户应用程序205。静态链接的库是在编译时链接到应用程序的库。动态加载可以通过动态链接器执行。动态链接器加载并链接共享库,以便在运行时运行用户应用程序。这里,用户应用程序205和运行时库206在运行时彼此可见,例如,所有过程数据彼此可见。
在一个实施例中,用户应用程序205只能从运行时库206预定的内核集中调用内核。在另一个方面,用户应用程序205和运行时库206通过无侧信道算法而加固,以防止侧信道攻击,诸如基于高速缓存的侧信道攻击。侧信道攻击是基于从计算机系统的实现中获得的信息的任何攻击,而不是所实现的算法本身中的弱点(例如,密码分析和软件缺陷)。侧信道攻击的示例包括高速缓存攻击,其是基于攻击者监视虚拟化环境或云环境中的共享物理系统的高速缓存的能力的攻击。加固可以包括掩蔽高速缓存,其中由算法生成的输出将被放置在高速缓存上。接下来,当完成执行用户应用程序时,用户应用程序终止其执行并退出。
在一个实施例中,内核203的集合包括混淆内核算法。在一个实施例中,混淆内核算法可以是对称或非对称算法。对称混淆算法可以使用相同的算法来混淆和去混淆数据通信。非对称混淆算法需要一对算法,其中该对中的第一个算法被用于混淆,而该对中的第二个算法被用于去混淆,反之亦然。在另一个实施例中,非对称混淆算法包括用于混淆数据集的单个混淆算法,但是该数据集并不会被去混淆,例如,不存在对应的去混淆算法。
混淆是指通过使通信消息难以理解,通常使用混淆和不明确的语言来模糊通信的预期含义。模糊数据对于逆向工程来说更加困难和复杂。可以在传送数据之前应用混淆算法来模糊(加密/解密)数据通信,从而减少窃听的机会。在一个实施例中,混淆算法可以进一步包括加密方案,以进一步加密混淆数据,以附加地保护层。与可以计算密集的加密不同,混淆算法可以简化计算。
一些混淆技术可以包括但不限于字母混淆、名称混淆、数据混淆、控制流混淆等。字母混淆是用特定的替代字母替换数据中的一个或多个字母,从而使数据无意义的过程。字母混淆的例子包括字母旋转功能,其中每个字母沿着字母表的预定数量的位置变换或者旋转。另一个例子是基于特定图案重新排序或搅乱字母。名称混淆是用无意义字符串替换特定目标字符串的过程。控制流混淆可以用添加代码(插入死代码、插入不受控制的跳转、插入替代结构)来改变程序中的控制流的顺序,以隐藏算法/AI模型的真实控制流。
总之,系统200(针对包括机器学习模型、训练数据和推断输出的数据传输)为DP加速器提供多层保护,以免丢失数据机密和完整性。系统200可以包括可选的基于TPM的安全启动保护层和内核校验/验证层。系统200可以包括使用无侧信道算法的应用,以便防御侧信道攻击,诸如基于高速缓存的侧信道攻击。
运行时库206可提供混淆内核算法以混淆主机104与DP加速器105-107之间的数据通信。在一个实施例中,混淆可以与密码方案配对。在另一个实施例中,混淆是唯一的保护方案,并且对于DP加速器而言,基于密码的硬件变得不必要。
图2B是示出根据一个实施例的一个或多个主机与一个或多个数据处理(DP)加速器之间的安全计算环境的框图。在一个实施例中,主机信道管理器(HCM)250包括可选的认证模块251、可选的终止模块252、可选的密钥管理器253、可选的密钥存储器254和可选的加密引擎255。可选的认证模块251可以认证在主机服务器104上运行的用户应用程序,以准许访问或使用DP加速器105的资源。HCM 250可以经由通信信道215与DP加速器105的加速器信道管理器(ACM)280通信。
可选的终止模块252可以终止连接(例如,将终止与连接相关联的信道)。可选的密钥管理器253可以管理(例如,创建或销毁)非对称密钥对或对称密钥,以对不同的安全数据交换信道的一个或多个数据分组进行加密/解密。这里,每个用户应用程序(作为图2A的用户应用程序205的一部分)可以以一对多的关系对应于或映射到不同的安全数据交换信道,并且每个数据交换信道可以对应于DP加速器105。每个应用程序可以利用多个会话密钥,其中每个会话密钥用于对应于DP加速器(例如,加速器105-107)的安全信道。可选的密钥存储器254可以存储加密非对称密钥对或对称密钥。可选的加密引擎255可以加密或解密通过任何安全信道交换的数据的数据分组。注意,这些模块中的一些可以集成到更少的模块中。
在一个实施例中,DP加速器105包括ACM 280、非敏感资源290和敏感资源270。ACM280是对应于HCM 250的相对模块,负责管理主机104和DP加速器105之间的通信,例如资源访问控制。ACM 280包括链路配置模块281,其与主机服务器104的HCM 250协作以在主机服务器104和DP加速器105之间建立通信信道215。ACM 280还包括资源管理器282。资源管理器282实施对敏感资源270和非敏感资源290的受限访问。在一个实施例中,敏感资源270占用DP加速器105内的第一范围的地址空间。非敏感资源290占用DP加速器105内的第二范围的地址空间。在一个实施例中,第一地址空间和第二地址空间是互斥的和不重叠的。在一个实施例中,资源管理器282还包含准许主机服务器104对敏感资源270和非敏感资源290进行访问的逻辑(例如,访问控制逻辑)。在一个实施例中,资源管理器282实施从主机服务器104接收的访问和配置策略,这将在下面进一步描述。
敏感资源270可以包括可选的密钥管理器271、可选的密钥存储器272、真随机数生成器273、可选的加密引擎274和存储器/储存器277。可选的密钥管理器271可以管理(例如,生成、安全保持和/或销毁)非对称密钥对或对称密钥。可选的密钥存储器272可以将加密非对称密钥对或对称密钥存储在敏感资源270内的安全储存器中。真随机数生成器273可以生成用于密钥生成的种子,并且加密引擎274使用诸如认证链接的DP加速器。可选的加密引擎274可以加密或解密用于数据交换的密钥信息或数据分组。存储器/储存器277可以包括用于AI模型275和内核276的储存器。内核276可以包括水印内核(包括遗传水印内核、启用水印的内核、签名水印内核等)、加密和解密内核以及相关数据。
DP加速器105还可以包括非敏感资源290。非敏感资源290可以包括一个或多个处理器或处理逻辑291和存储器/储存器292。处理器或处理逻辑291能够执行指令或程序以执行各种处理任务,诸如AI任务(例如,机器学习处理)。
链路配置模块281负责建立或连接从DP加速器到另一DP加速器的链路或路径,或者终止或断开从DP加速器到另一DP加速器的链路或路径。在一个实施例中,响应于(例如,来自主机的)加入DP加速器群组的请求,链路配置模块281建立从群组或集群中的相应的DP加速器到至少一些DP加速器的链路或路径,使得DP加速器可以与其它DP加速器通信,例如,访问其它DP加速器的资源以用于AI处理。类似地,响应于从第一组DP加速器切换到第二组DP加速器的请求,链路配置模块281终止第一组的相应DP加速器的现有链路,并建立到第二组DP加速器的新链路。
在一个实施例中,DP加速器105还包括AI处理单元(未示出),AI处理单元可以包括AI训练单元和AI推断单元。AI训练和推断单元可以被集成到敏感资源270中的单个单元中。AI训练模块被配置为使用训练数据集来训练AI模型。可以经由通信链路215从主机系统104接收要训练的AI模型和训练数据。在一个实施例中,训练数据可以存储在非敏感资源290中。AI模型推断单元可以被配置为对一组输入数据(例如,一组输入特征)执行经训练的人工智能模型,以推断和分类输入数据。例如,可以将图像输入到AI模型以分类该图像是否包含人、景观等。经过训练的AI模型和输入数据也可以通过通信链路215经由接口从主机系统104接收。
在一个实施例中,敏感资源270中的水印单元(未示出)可以包括水印生成器和水印记录器(也称为“水印植入器”)。水印单元(未示出)可以包括敏感资源270的水印内核执行器或内核处理器(未示出),以执行内核276。在一个实施例中,可以从主机104接收内核,或者从永久或非永久储存器中检索内核,并且在DP加速器105的敏感资源270中的内核存储器276中执行内核。水印生成器被配置为使用预定的水印算法生成水印。替代地,水印生成器可以从现有水印继承水印,或者从另一个数据结构或数据对象提取水印,所述另一个数据结构或数据对象诸如为可以从主机系统104接收的人工智能模型或一组输入数据。水印植入器被配置为将水印记录或植入到诸如人工智能模型之类的数据结构或由人工智能模型生成的输出数据中。其中嵌入水印的人工智能模型或输出数据可以通过通信链路215从DP加速器105返回到主机系统104。应注意,DP加速器105-107具有相同或相似的结构或组件,并且关于DP加速器的描述将适用于本申请全文中的所有DP加速器。
图3以框的形式示出了根据实施例的控制数据处理(DP)加速器的集群310的主机104。主机104可以包括应用程序205(例如人工智能(AI)应用程序)、运行时库206、一个或多个驱动器209、操作系统211和硬件213,上文中已经参考图2A和图2B描述了上述各组件中的每一个,因此此处不再重复。在虚拟计算实施例中,主机104还可包括管理程序212,诸如或/>管理程序212可以是直接在物理服务器上运行的类型1“裸金属(bare metal)”或“本机”管理程序。在一个实施例中,管理程序212可以是类型2管理程序,其像任何其他应用程序一样加载到操作系统211内并由操作系统211管理。在任一情况下,管理程序212可支持主机104上的一个或多个虚拟机(未示出)。在这样的方面中,虚拟机(未示出)可以被视为图1的客户端设备101和102。
数据处理(DP)加速器集群310可以包括以上参考图2A和图2B描述的DP加速器105-107。参考图3,DP加速器群组310可以包括例如标记为A至H的八(8)个DP加速器。加速器群组310中的每个DP加速器可以具有到加速器群组310中的一个或多个其它DP加速器的一个或多个通信链路215。以上参考图2A和图2B描述了DP加速器通信链路215。集群310中的每个DP加速器根据从主机104的驱动器209接收的策略来配置。集群310中的每个DP加速器可以具有敏感资源270和非敏感资源290。
在图3所示的例子中,DP加速器A至DP加速器D被配置为第一组四(4)个DP加速器。DP加速器E至DP加速器H被配置为第二组四(4)个DP加速器。在第一组DP加速器中,每个DP加速器具有直接到另一个加速器的通信链路(例如,A-B、A-C、B-D和C-D),或者具有经由一个或多个居间加速器到另一个加速器的通信路径(例如,A-B-D、A-C-D等)。第二组被示为在第二组中的每个DP加速器和第二组中的每个其它DP加速器之间具有直接通信链路。驱动器209可以生成策略,其中群组中的每个DP加速器与群组中的每个或一些其它DP加速器具有直接通信链路。在第一组的情况下,驱动器209可以生成策略,该策略还包括例如用于DP加速器A和DP加速器D生成彼此之间的通信链路的指令以及用于DP加速器B和DP加速器C生成彼此之间的通信链路的指令。集群310中可以存在任何数量的DP加速器,这些DP加速器可以配置成任何数量的群组。
在基于静态策略的实施例中,单个策略定义DP加速器中的每一个的配置,且单个策略从驱动器209传输到集群310中的所有DP加速器。在一个实施例中,驱动器209可以在单个广播消息中向集群中的所有DP加速器发送策略。每个DP加速器读取该策略并建立(建立链接)或断开(断开链接)与集群310中的一个或多个DP加速器的通信链路,从而将DP加速器配置成一个或多个群组。在图3中,八(8)个DP加速器被配置为两组四(4)个DP加速器。群组中的每个DP加速器具有到该群组中的每个DP加速器的直接通信链路或者具有经由与DP加速器具有直接通信链路的一个或多个DP加速器到群组中的每个DP加速器的间接通信路径。在基于静态策略的环境中,驱动器209的调度器209A可以使用应用程序205和/或虚拟机的用户之间的时间分片来调度集群310的一个或多个群组上的处理任务。静态策略可以通过驱动器209生成新策略来改变,该新策略描述了集群310中的DP加速器中的每一个的配置。
集群310中的每个DP加速器(例如,链路配置模块281和/或资源管理器282)根据策略重新配置自身,DP加速器和集群310中的一个或多个其它DP加速器之间建立(建立链接)或断开(断开链接)通信链路。基于静态策略的配置是快速的,因为该配置在单个(例如,广播)消息中进行传输,并且每个DP加速器本身与集群310中的其它DP加速器大致并行地配置。由于用于所有DP加速器的策略同时被传送到所有DP加速器,所以可以非常快速地发生配置。例如,如果该策略包括使DP加速器“A”生成到DP加速器“B”的链路的指令,则该策略还具有使DP加速器B生成到DP加速器A的链路的指令。每个DP加速器可以基本同时地开启它们自己的链路端,从而非常快速地开启DP加速器A和DP加速器B之间的链路。在一个实施例中,可以将单个策略表示为DP加速器的邻接表。
基于静态策略的配置也是有效的,因为它支持不同用户之间的时间分片调度,并且支持将用户的处理任务分配给集群310中的一个以上DP加速器群组。静态策略可以从分析器209B生成,分析器209B确定调度器209A中的处理任务的特性。例如,调度器209A可包括使用相同AI模型来执行推断或进一步训练AI模型的大量任务。分析器可以生成配置多个DP加速器的策略以准备对AI模型执行推断或训练。配置可包含识别DP加速器的分组,且将一个或多个AI模型加载到DP加速器中的一个或多个的敏感存储器中,从而为调度器209A中的处理任务作准备。
在基于动态策略的实施例中,驱动器209可个别地配置集群310中的每个DP加速器以实现DP加速器的配置。策略被单独发送到每个DP加速器。实际上,在基于动态策略的实施例中,发送到每个DP加速器的策略通常彼此不同。DP加速器接收该策略并根据该策略配置自身。配置包括将DP加速器自身配置到集群310中的群组中或将DP加速器自身配置为离开集群310中的群组。DP加速器根据该策略,通过与群组中的至少一个DP加速器建立通信链路(建立链接)来将其自身配置到群组中。DP加速器通过断开DP加速器和群组中的所有DP加速器之间的通信链路(断开链接)而离开群组。在配置之后,如果DP加速器不是任何DP加速器群组的成员,则可以将DP加速器设置为低功率模式以降低热量并保存能量。在一个实施例中,调度器209A将DP加速器或DP加速器群组分配给每个用户或应用程序,其中调度器209A针对上述用户或应用程序将处理任务调度到集群310。
图4是示出保护根据静态划分策略划分的数据处理加速器的集群中的数据的方法400的流程图。方法400是基于静态策略将数据处理(DP)加速器划分为DP加速器的集群内的一个或多个群组的示例性实现方式。方法400可以由DP加速器的ACM(诸如ACM 280)来执行。
在操作401中,多个DP加速器中的每一个从主机系统接收配置策略。策略是包含集群中的每个DP加速器的配置信息的单个策略。每个DP加速器从主机接收相同的策略。在一个实施例中,主机可以将策略广播到集群中的所有DP加速器。DP加速器无法相互广播。为了防止由主机发送的策略被破坏,不准许DP加速器使用广播通信。DP加速器不能模拟主机。DP加速器只能与主机和与该DP加速器具有通信路径或通信链路的一个或多个其它DP加速器节点通信。在DP加速器不具有到任何其它DP加速器的通信链路的实施例中,DP加速器只能与主机通信。
在操作402中,每个DP加速器(例如,链路配置模块281)读取策略中的应用于该DP加速器的部分,并生成到一个或多个其它DP加速器的通信链路(建立链接)。对于策略中的尚未被提供指令来建立链接的每一个DP加速器,DP加速器声明断开链接(断开、终止或断开通信链路)。在一个实施例中,DP加速器可能不被指示与任何其它DP加速器建立链接。在这方面,DP加速器仍然可以从主机设备接收处理任务,以在DP加速器上进行处理。
在操作403中,第一组中的第一DP加速器从主机接收处理任务。第一DP加速器(例如,处理逻辑291)使用第一组中的一个或多个DP加速器来执行处理任务。在一个实施例中,一个或多个DP加速器中的每一个可以具有与DP加速器的通信路径。通信路径包括组中的DP加速器和另一DP加速器之间的直接通信链路,或通过该组中的一个或多个其它DP加速器的间接路径。
图5A和图5B是示出根据实施例的保护根据静态划分策略划分的数据处理加速器的集群中的数据的方法500的流程图。方法500是基于静态策略将数据处理(DP)加速器划分成DP加速器集群内的一个或多个群组的示例性实现方式。
现在参考图5A,在操作501中,将作为DP加速器集群的多个数据处理(DP)加速器通信地联接到主机设备。
在操作502中,可选地,在默认情况下,多个DP加速器中的每一个可以将其自身配置为具有到集群中的所有DP加速器的通信路径。每个DP加速器具有保护资源和非保护资源。主机系统(例如,主机104)中的驱动器(例如,驱动器209)可以访问集群中所有DP加速器的所有资源,包括集群中每个DP加速器的保护资源和非保护资源。
在操作503中,多个DP加速器中的每一个从主机系统接收相同的配置策略。配置策略包括用于集群中的所有DP加速器的配置指令,其中涉及每个DP加速器要配置通信链路的DP加速器。
在操作504中,集群中的每个DP加速器根据策略与集群中的一个或多个其它DP加速器建立通信链路(建立链接),从而将集群组织成DP加速器的一个或多个非重叠群组。
在操作505中,在根据策略配置所有DP加速器之后,第一组DP加速器中的每个DP加速器具有到第一组中的一个或多个其它DP加速器的通信路径。第二组DP加速器中的每个DP加速器具有到第二组中的一个或多个其它DP加速器的通信路径。第一组中的所有DP加速器都不具有到第二组中的DP加速器的通信链路,并且第二组中所有DP加速器都不具有到第一组中的DP加速器的通信链路。
在操作506中,第一DP加速器可以从主机设备接收要执行的处理任务,例如,人工智能(AI)推断。第一DP加速器还可以可选地接收用于执行处理任务的数据。
在操作507中,第一组中的第一DP加速器执行处理任务的第一子任务,并且第一DP加速器将处理任务的第二子任务委托给第一组中的第二DP加速器以供第二DP加速器执行。
在操作508中,第一DP加速器获得第一子任务的第一子结果。第一DP加速器还从第二DP加速器接收第二子任务的结果。第一DP加速器将处理任务的结果返回给主机设备。
图6是示出根据实施例的使用针对加速器的资源划分来保护数据处理(DP)加速器的集群中的数据的方法600的流程图。方法600涉及每个划分部内的敏感资源和非敏感资源的基于固件或硬件的划分。这种划分可以是DP加速器的制造过程的一部分。资源划分可由例如以上参考图2B所描述的资源管理器282来实施。
在操作601中,将多个DP加速器组织为集群。每个DP加速器通信地联接到主机设备。每个DP加速器具有多个资源。集群中的第一DP加速器与至少一个第二DP加速器通信地联接(建立链接)。
在操作602中,对于每个DP加速器,多个资源被划分为敏感(保护)资源和非敏感(非保护)资源。在一个实施例中,敏感资源可占用DP加速器的第一地址范围且非敏感资源可占用DP加速器的第二(非重叠的)地址范围。
在操作603中,第一DP加速器可以从主机设备接收用于访问第一DP加速器的敏感资源的指令。例如,主机设备可以指示第一DP加速器将人工智能(AI)模型存储到第一DP加速器的安全储存器中。在另一示例中,第二DP加速器可以对第一DP加速器发出请求来访问第一DP加速器的敏感资源,以便请求第一DP加速器对存储在第一DP加速器的安全储存器中的模型执行AI推断。
在操作604中,响应于指示第一DP加速器访问第一DP加速器的敏感资源的指令,第一DP加速器访问其自身的敏感资源。
在操作605中,响应于指示第一DP加速器被准许第二DP加速器访问第一DP加速器的敏感资源的指令,第一DP加速器拒绝第二DP加速器访问第一DP加速器的敏感资源。例如,如果从第二DP加速器到第一DP加速器的指令是指示第一DP加速器从第一DP加速器的敏感存储器读取AI模型并将AI模型传输到第二DP加速器,则该指令将被第一DP加速器拒绝。
在操作606中,响应于指示第一DP加速器被准许第二DP加速器访问第一DP加速器的非敏感资源的指令,第一DP加速器准许第二DP加速器访问该非敏感资源。
图7A和图7B是示出根据实施例的使用加速器的动态划分来保护数据处理加速器集群中的数据的方法700的流程图。在动态划分中,主机设备可以经由专用于DP加速器的策略来单独配置DP加速器集群中的每个DP加速器。在动态划分中,集群中的DP加速器可以被划分成多个群组,并且每个群组可以分配有一个用户或一个应用程序。主机设备的驱动器(例如,驱动器209)的调度器(例如,调度器209A)不将多个用户的时间分片的处理任务调度到一组DP加速器中。一个群组(划分部)被分配给一个用户。DP加速器在任何特定划分部中的数量可以变化。
在一个实施例中,分析器(例如,分析器209B)可分析调度器209A中的处理任务以确定DP加速器的最佳分组/划分。主机设备可以基于对调度器中的处理任务的分析来为每个DP加速器生成配置策略。在动态划分实施例中,一个或多个DP加速器可以从集群中的群组断连(断开链接),并被设置为低功率模式。替代地,可向一个或多个未链接的DP加速器分配处理任务以执行一个DP加速器。
在操作701中,每个DP加速器从主机设备的驱动器接收包含专用于DP加速器的配置指令的策略。配置指令指示DP加速器是要加入还是离开DP加速器的群组。所述指令专用于接收所述指令的DP加速器。
在操作702中,每个DP加速器根据从主机设备接收的用于该DP加速器的指令来配置自身。配置包括:响应于加入DP加速器群组的指令,DP加速器生成到DP加速器群组中的至少一个DP加速器的通信链路(建立链接),否则DP加速器断开DP加速器与DP加速器群组中的所有DP加速器之间的通信链路(断开链接)。
在操作703中,在完成集群中的所有DP加速器的配置之后,每个DP加速器或者通信地链接到集群中的多个DP加速器群组中的一个DP加速器群组,或者DP加速器不通信地链接到集群中的任何DP加速器群组。集群中的多个DP加速器群组是不重叠的。
现在参考图7B,在操作704中,响应于确定DP加速器没有通信地链接到集群中的任何DP加速器,可以将DP加速器设置为低功率状态,以减少能量消耗并减少所产生的热量。
在操作705中,主机设备将每个DP加速器群组分配给主机设备上的用户或应用程序。一个或多个DP加速器群组代表分配有一个或多个DP加速器群组中的每一个的用户或应用程序来执行一个或多个处理任务。
在操作706中,响应于一个或多个DP加速器从主机设备接收新配置指令,一个或多个DP加速器中的每一个根据用于该DP加速器的指令来配置自身。如果DP加速器被分配给新的或不同的DP加速器群组,则DP加速器断开DP加速器和先前DP加速器群组中的任何DP加速器之间的通信链路(断开链接),该DP加速器先前被指示加入上述先前DP加速器群组。DP加速器生成与新的或不同的DP加速器群组中的至少一个DP加速器的通信链路(建立链接),该新的或不同的DP加速器群组是在针对DP加速器的新的或不同的指令中指定的。如果DP加速器先前不是任何DP加速器群组的成员,并且处于低功率状态,则DP加速器加电并离开低功率状态,并且DP加速器生成到至少一个DP加速器的通信链路,该至少一个DP加速器是DP加速器已经被指示加入的群组的成员。
在操作707中,如果DP加速器先前被分配给一个群组,并且基于新接收的指令不再被分配给该群组,则DP加速器断开与该群组中的任何DP加速器的所有通信链路(断开链接)。DP加速器可以将其自身设置为低功率状态。在一个实施例中,所接收的指令可包含DP加速器不进入低功率状态的指令,即使DP加速器当前不是任何群组的成员。在这样的方面,DP加速器保持准备好从主机设备的驱动器接收工作,使得主机设备能够将工作分配给未分组的DP加速器。方法700结束。
图8是示出根据实施例的使用数据处理加速器的认证来保护数据处理加速器集群中的数据的方法800的流程图。在该实施例中,可以预见,数据处理(DP)加速器可以被添加到DP加速器的集群中,并且所添加的DP加速器可能来自未知的源或者不可信的第三方。在准许DP加速器访问第一DP加速器的任何资源之前,由第一DP加速器认证不可信的第二DP加速器。
在操作801中,DP加速器集群包含至少两个DP加速器:第一DP加速器和第二DP加速器。第一DP加速器和第二DP加速器可以被分组到同一个DP加速器群组。集群中的每个DP加速器具有敏感(保护)资源和非敏感(非保护)资源。集群中的所有DP加速器通信地联接到主机设备。第一DP加速器和第二DP加速器也可通信地彼此联接。
在操作802中,第一DP加速器从第二DP加速器接收访问第一DP加速器的资源的请求。
在操作803中,确定由第二DP加速器请求的资源是否是敏感资源。该确定可以由例如以上参考图2B所述的资源管理器282做出。如果由第二DP加速器请求的资源是敏感资源,则在操作804中,第一DP加速器拒绝第二DP加速器对该敏感资源的访问,并且方法800结束。否则,方法800在操作900处继续。
在操作900中,第一DP加速器认证第二DP加速器。下面参考图9描述操作900。
在操作806中,确定第一DP加速器是否成功认证第二DP加速器。如果是,则在操作807中,第一DP加速器准许第二DP加速器访问第二DP加速器所请求的资源。否则,在操作808中,第一DP加速器拒绝第二DP加速器对第二DP加速器所请求的资源的访问。
图9是示出第一DP加速器认证第二DP加速器的方法900的流程图。方法900可以由任何DP加速器调用。典型的使用情况是从方法800调用方法900,以确定是否准许第二DP加速器访问第一DP加速器的资源。上面参考图8描述了方法800。
认证以具有相同共享机密函数的第一DP加速器和第二DP加速器二者为前提,可信的DP加速器均具有该共享机密函数。机密函数是单向函数。该函数不能从该函数的输出中辨别出来。该函数可以是哈希函数,并且可以包含机密字符串。在一个实施例中,在DP加速器的制造期间,机密函数被嵌入到可信的DP加速器中。
第一DP加速器和第二DP加速器共享相同的机密函数。在操作901中,如果共享机密已经被泄露(盗用),则主机可以用更新的共享机密来更新(打补丁)集群中的所有DP加速器。
在操作902中,第一DP加速器生成随机数,并将该随机数发送到要被认证的第二DP加速器。第一DP加速器和第二DP加速器(如果是可信的)共享相同的机密函数。
在操作903中,第二DP加速器(如果是可信的)使用从第一DP加速器接收的随机数作为机密函数的输入,以从机密函数获得输出。第二DP加速器将机密函数的输出发送到第一DP加速器。
在操作904中,第一DP加速器验证从第二DP加速器接收的输出以确定第二DP加速器是否可信。第一DP加速器使用发送到第二DP加速器的相同随机数作为第一DP加速器上的机密函数的输入。第一DP加速器从第一DP加速器上的机密函数获得输出。如果从第二DP加速器接收的输出与由第一DP加速器上的机密函数生成的输出相匹配,则认为第二DP加速器被认证,否则第二DP加速器不被认证。方法900结束,并以第二DP加速器的状态被认证或未被认证返回到调用方法900的方法。
已经在对计算机存储器内的数据位的操作的算法和符号表示方面呈现了前面详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域的其他技术人员的方式。算法在这里通常被认为是导致期望结果的自一致的操作序列。这些操作是那些需要物理量的物理操纵的操作。
然而,应该记住,所有这些和类似的术语应与适当的物理量相关联,并且仅仅是施加于这些量的方便标签。除非与上面的讨论显而易见地另有具体说明,否则应当理解,在整个说明书中,利用诸如所附权利要求中所阐述的术语的讨论是指计算机系统或类似的电子计算设备的动作和过程,所述计算机系统或类似的电子计算设备操纵表示为计算机系统的寄存器和存储器内的物理(电子)量的数据并将这种数据转换为类似地表示为计算机系统存储器或寄存器或其它这样的信息存储设备、传输或显示设备内的物理量的其它数据。
本公开的实施例还涉及用于执行本文中的操作的装置。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘储存介质、光储存介质、闪存设备)。
在前面的图中描述的过程或方法可以由包括硬件(例如,电路、专用逻辑等)、软件(例如,实现在非暂时性计算机可读介质上)或两者的组合的处理逻辑来执行。尽管以上根据一些顺序操作描述了过程或方法,但是应当理解,所描述的一些操作可以以不同的顺序执行。此外,一些操作可以并行而不是顺序地执行。
本公开的实施例并未参考任何特定编程语言来描述。应了解,可使用各种编程语言来实施如本文所描述的本公开的实施例的教导。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在前面的说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。显而易见的,在不背离如所附权利要求书中所阐述的本公开的更宽泛的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图被认为是说明性的,而不是限制性的。
Claims (17)
1.一种配置多个数据处理加速器的计算机实现的方法,所述多个数据处理加速器通信地联接到主机设备,所述方法包括:
由集群中的第一数据处理加速器从所述集群中的第二数据处理加速器接收由所述第二数据处理加速器访问所述第一数据处理加速器的资源的请求;
响应于确定所述第二数据处理加速器所请求的资源是所述第一数据处理加速器的敏感资源,拒绝由所述第二数据处理加速器所请求的对所述资源的访问;
响应于确定所述第二数据处理加速器所请求的资源是所述第一数据处理加速器的非敏感资源,由所述第一数据处理加速器认证所述第二数据处理加速器,并且响应于确定所述第二数据处理加速器被认证,准许由所述第二数据处理加速器所请求的对所述资源的访问;
响应于确定所述第二数据处理加速器未被认证,断开所述第一数据处理加速器和所述第二数据处理加速器之间的通信链路,向与所述第一数据处理加速器具有通信链路的每个数据处理加速器发送所述第二数据处理加速器的非认证通知;以及
指示所述每个数据处理加速器断开所述每个数据处理加速器和所述第二数据处理加速器之间的通信链路。
2.根据权利要求1所述的方法,其中,认证所述第二数据处理加速器包括:
生成随机数并将所述随机数发送至所述第二数据处理加速器;
从所述第二数据处理加速器接收基于所述随机数和所述第一数据处理加速器与所述第二数据处理加速器之间的共享机密的第一输出;以及
根据所述共享机密和所述随机数生成第二输出,其中如果所述第二输出与所述第一输出匹配,则认为所述第二数据处理加速器被认证,否则认为所述第二数据处理加速器不被认证。
3.根据权利要求2所述的方法,其中,所述共享机密是单向函数,其中,所述单向函数无法从所述单向函数的输出确定。
4.根据权利要求2所述的方法,其中,所述共享机密嵌入在所述第一数据处理加速器和所述第二数据处理加速器中并且是能够更新的。
5.根据权利要求2所述的方法,还包括:
由所述第一数据处理加速器安装对所述共享机密的更新。
6.一种配置多个数据处理加速器的计算机实现的方法,所述多个数据处理加速器通信地联接到主机设备,所述方法包括:
由集群中的第一数据处理加速器从所述集群中的第二数据处理加速器接收由所述第二数据处理加速器访问所述第一数据处理加速器的资源的请求;
响应于确定所述第二数据处理加速器所请求的资源是所述第一数据处理加速器的敏感资源,拒绝由所述第二数据处理加速器所请求的对所述资源的访问;
响应于确定所述第二数据处理加速器所请求的资源是所述第一数据处理加速器的非敏感资源,由所述第一数据处理加速器认证所述第二数据处理加速器,并且响应于确定所述第二数据处理加速器被认证,准许由所述第二数据处理加速器所请求的对所述资源的访问;以及
响应于确定所述第二数据处理加速器未被认证,所述第一数据处理加速器向所述主机设备发送所述第二数据处理加速器的非认证通知,
其中,所述主机设备向所述集群中除所述第二数据处理加速器之外的每个数据处理加速器发送所述第二数据处理加速器的非认证通知,所述非认证通知指示所述每个数据处理加速器断开所述每个数据处理加速器与所述第二数据处理加速器之间的通信链路。
7.一种数据处理加速器,作为联接到主机设备的数据处理加速器集群中的第一数据处理加速器操作,所述数据处理加速器包括:
资源管理器,执行以下操作:
从所述集群中的第二数据处理加速器接收由所述第二数据处理加速器访问所述第一数据处理加速器的资源的请求;
响应于确定所述第二数据处理加速器所请求的资源是所述第一数据处理加速器的敏感资源,拒绝由所述第二数据处理加速器所请求的对所述资源的访问;
响应于确定所述第二数据处理加速器所请求的资源是所述第一数据处理加速器的非敏感资源,由所述第一数据处理加速器认证所述第二数据处理加速器,并且响应于确定所述第二数据处理加速器被认证,准许由所述第二数据处理加速器所请求的对所述资源的访问;
响应于确定所述第二数据处理加速器未被认证,断开所述第一数据处理加速器和所述第二数据处理加速器之间的通信链路,向与所述第一数据处理加速器具有通信链路的每个数据处理加速器发送所述第二数据处理加速器的非认证通知;以及
指示所述每个数据处理加速器断开所述每个数据处理加速器和所述第二数据处理加速器之间的通信链路。
8.根据权利要求7所述的数据处理加速器,其中,认证所述第二数据处理加速器包括:
生成随机数并将所述随机数发送至所述第二数据处理加速器;
从所述第二数据处理加速器接收基于所述随机数和所述第一数据处理加速器与所述第二数据处理加速器之间的共享机密的第一输出;以及
根据所述共享机密和所述随机数生成第二输出,其中如果所述第二输出与所述第一输出匹配,则认为所述第二数据处理加速器被认证,否则认为所述第二数据处理加速器不被认证。
9.根据权利要求8所述的数据处理加速器,其中,所述共享机密是单向函数,其中所述单向函数无法从所述单向函数的输出确定。
10.根据权利要求8所述的数据处理加速器,其中,所述共享机密嵌入在所述第一数据处理加速器和所述第二数据处理加速器中并且是能够更新的。
11.根据权利要求8所述的数据处理加速器,其中,所述第一数据处理加速器安装对所述共享机密的更新。
12.一种数据处理加速器,作为联接到主机设备的数据处理加速器集群中的第一数据处理加速器操作,所述数据处理加速器包括:
资源管理器,执行以下操作:
从所述集群中的第二数据处理加速器接收由所述第二数据处理加速器访问所述第一数据处理加速器的资源的请求;
响应于确定所述第二数据处理加速器所请求的资源是所述第一数据处理加速器的敏感资源,拒绝由所述第二数据处理加速器所请求的对所述资源的访问;
响应于确定所述第二数据处理加速器所请求的资源是所述第一数据处理加速器的非敏感资源,由所述第一数据处理加速器认证所述第二数据处理加速器,并且响应于确定所述第二数据处理加速器被认证,准许由所述第二数据处理加速器所请求的对所述资源的访问;以及
响应于确定所述第二数据处理加速器未被认证,所述第一数据处理加速器向所述主机设备发送所述第二数据处理加速器的非认证通知,
其中,所述主机设备向所述集群中的除所述第二数据处理加速器之外的每个数据处理加速器发送所述第二数据处理加速器的非认证通知,所述非认证通知指示所述每个数据处理加速器断开所述每个数据处理加速器和所述第二数据处理加速器之间的通信链路。
13.一种具有至少一个硬件处理器的处理系统,所述硬件处理器联接到用可执行指令编程的存储器,所述可执行指令在由所述至少一个硬件处理器执行时使所述至少一个硬件处理器执行对通信地联接到主机设备的多个数据处理加速器进行配置的操作,所述操作包括:
由集群中的第一数据处理加速器从所述集群中的第二数据处理加速器接收由所述第二数据处理加速器访问所述第一数据处理加速器的资源的请求;
响应于确定所述第二数据处理加速器所请求的资源是所述第一数据处理加速器的敏感资源,拒绝由所述第二数据处理加速器所请求的对所述资源的访问;
响应于确定所述第二数据处理加速器所请求的资源是所述第一数据处理加速器的非敏感资源,由所述第一数据处理加速器对所述第二数据处理加速器进行认证;
响应于确定所述第二数据处理加速器被认证,准许由所述第二数据处理加速器所请求的对所述资源的访问;
响应于确定所述第二数据处理加速器未被认证,断开所述第一数据处理加速器和所述第二数据处理加速器之间的通信链路,向与所述第一数据处理加速器具有通信链路的每个数据处理加速器发送所述第二数据处理加速器的非认证通知;以及
指示所述每个数据处理加速器断开所述每个数据处理加速器和所述第二数据处理加速器之间的通信链路。
14.根据权利要求13所述的处理系统,其中,认证所述第二数据处理加速器包括:
生成随机数并将所述随机数发送至所述第二数据处理加速器;
从所述第二数据处理加速器接收基于所述随机数和所述第一数据处理加速器与所述第二数据处理加速器之间的共享机密的输出;
根据所述共享机密和所述随机数生成输出;
响应于确定所生成的输出与从所述第二数据处理加速器接收的输出相匹配,认为所述第二数据处理加速器被认证,否则认为所述第二数据处理加速器不被认证。
15.根据权利要求14所述的处理系统,其中,所述共享机密是单向函数,其中所述单向函数无法从所述单向函数的输出确定。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-6中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/899,880 | 2020-06-12 | ||
US16/899,880 US11687629B2 (en) | 2020-06-12 | 2020-06-12 | Method for data protection in a data processing cluster with authentication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113806758A CN113806758A (zh) | 2021-12-17 |
CN113806758B true CN113806758B (zh) | 2024-04-09 |
Family
ID=78825497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011541611.9A Active CN113806758B (zh) | 2020-06-12 | 2020-12-23 | 基于认证的数据处理集群中的数据保护方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11687629B2 (zh) |
CN (1) | CN113806758B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108351927A (zh) * | 2015-10-23 | 2018-07-31 | 甲骨文国际公司 | 用于访问管理的无密码认证 |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539438B1 (en) | 1999-01-15 | 2003-03-25 | Quickflex Inc. | Reconfigurable computing system and method and apparatus employing same |
US6378027B1 (en) | 1999-03-30 | 2002-04-23 | International Business Machines Corporation | System upgrade and processor service |
US7844513B2 (en) | 2000-07-17 | 2010-11-30 | Galactic Computing Corporation Bvi/Bc | Method and system for operating a commissioned e-commerce service prover |
US7954121B2 (en) * | 2001-06-19 | 2011-05-31 | Jlb Ventures Llc | Methods and system for controlling access to individual titles |
US8224366B2 (en) | 2006-02-17 | 2012-07-17 | Qualcomm Incorporated | System and method for multiple simultaneous communication groups in a wireless system |
US8645514B2 (en) | 2006-05-08 | 2014-02-04 | Xerox Corporation | Method and system for collaborative self-organization of devices |
EP2043731A4 (en) * | 2006-07-13 | 2010-07-21 | St Jude Medical | MEDICAL INFORMATION MANAGEMENT IN A PATIENT INFORMATION HUD SYSTEM |
US7882365B2 (en) | 2006-12-22 | 2011-02-01 | Spansion Llc | Systems and methods for distinguishing between actual data and erased/blank memory with regard to encrypted data |
US8484327B2 (en) | 2007-11-07 | 2013-07-09 | Mcafee, Inc. | Method and system for generic real time management of devices on computers connected to a network |
US8825834B2 (en) | 2007-12-03 | 2014-09-02 | International Business Machines Corporation | Automated cluster member management based on node capabilities |
US8627052B2 (en) * | 2008-04-14 | 2014-01-07 | Dell Products, Lp | System and method of enabling a function within a module configured to be used within an information handling system |
DE102011119693A1 (de) * | 2011-11-29 | 2013-05-29 | Universität Heidelberg | System, Computer-implementiertes Verfahren und Computerprogrammprodukt zur direkten Kommunikation zwischen Hardwarebeschleunigern in einem Computercluster |
TWI462613B (zh) | 2012-02-03 | 2014-11-21 | Accton Technology Corp | 群播群組的管理方法及應用其之無線網路裝置 |
TWI471034B (zh) | 2012-03-06 | 2015-01-21 | Accton Technology Corp | 群播群組的傳輸方法及應用其之無線網路裝置 |
US20140173618A1 (en) | 2012-10-14 | 2014-06-19 | Xplenty Ltd. | System and method for management of big data sets |
US20140232733A1 (en) | 2013-02-19 | 2014-08-21 | Jason Caulkins | Graphics Processing Unit Pre-Caching |
WO2014189529A1 (en) | 2013-05-24 | 2014-11-27 | Empire Technology Development, Llc | Datacenter application packages with hardware accelerators |
US10349225B2 (en) | 2013-08-27 | 2019-07-09 | Verizon Patent And Licensing Inc. | Private multicast networks |
US9288596B2 (en) | 2013-09-30 | 2016-03-15 | Sonos, Inc. | Coordinator device for paired or consolidated players |
US9979674B1 (en) | 2014-07-08 | 2018-05-22 | Avi Networks | Capacity-based server selection |
US10250443B2 (en) | 2014-09-30 | 2019-04-02 | Nicira, Inc. | Using physical location to modify behavior of a distributed virtual network element |
US9736248B2 (en) | 2014-11-04 | 2017-08-15 | Comcast Cable Communications, Llc | Systems and methods for data routing management |
US9871823B2 (en) | 2014-12-23 | 2018-01-16 | Intel Corporation | Techniques to deliver security and network policies to a virtual network function |
US9917740B2 (en) | 2015-09-09 | 2018-03-13 | International Business Machines Corporation | Reducing internodal communications in a clustered system |
US20170171169A1 (en) | 2015-12-14 | 2017-06-15 | Qualcomm Incorporated | Packet number determination in a neighbor aware network |
US20170220499A1 (en) | 2016-01-04 | 2017-08-03 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications |
US10482062B1 (en) * | 2016-03-30 | 2019-11-19 | Amazon Technologies, Inc. | Independent evictions from datastore accelerator fleet nodes |
US11250118B2 (en) * | 2016-06-12 | 2022-02-15 | Apple Inc. | Remote interaction with a device using secure range detection |
US10282330B2 (en) * | 2016-09-29 | 2019-05-07 | Amazon Technologies, Inc. | Configurable logic platform with multiple reconfigurable regions |
US20180150256A1 (en) * | 2016-11-29 | 2018-05-31 | Intel Corporation | Technologies for data deduplication in disaggregated architectures |
US10649518B2 (en) | 2017-01-26 | 2020-05-12 | Ati Technologies Ulc | Adaptive power control loop |
US10241947B2 (en) * | 2017-02-03 | 2019-03-26 | Intel Corporation | Hardware-based virtual machine communication |
US11032144B2 (en) | 2017-07-12 | 2021-06-08 | Nec Corporation | Network control system, method and program |
US10699364B2 (en) | 2017-07-12 | 2020-06-30 | Citrix Systems, Inc. | Graphical rendering using multiple graphics processors |
US20190068466A1 (en) * | 2017-08-30 | 2019-02-28 | Intel Corporation | Technologies for auto-discovery of fault domains |
US10664321B2 (en) | 2017-10-18 | 2020-05-26 | General Electric Company | Apparatus and method for multitenancy in cloud environments for processing large datasets |
US11249781B2 (en) | 2018-06-11 | 2022-02-15 | Vmware, Inc. | Cloud agnostic blueprint |
US11599821B2 (en) | 2018-06-27 | 2023-03-07 | Amazon Technologies, Inc. | Attached accelerator based inference service |
US11443072B2 (en) * | 2018-06-29 | 2022-09-13 | Microsoft Technology Licensing, Llc | Peripheral device with resource isolation |
CN109360559A (zh) | 2018-10-23 | 2019-02-19 | 三星电子(中国)研发中心 | 多智能设备同时存在时处理语音指令的方法和系统 |
US11509531B2 (en) | 2018-10-30 | 2022-11-22 | Red Hat, Inc. | Configuration sharing and validation for nodes in a grid network |
DE102018127330A1 (de) * | 2018-11-01 | 2020-05-07 | Infineon Technologies Ag | System-on-Chip und Verfahren zum Betreiben eines System-on-Chip |
US10579547B2 (en) * | 2018-12-28 | 2020-03-03 | Intel Corporation | Technologies for providing I/O channel abstraction for accelerator device kernels |
US20220121421A1 (en) * | 2019-03-15 | 2022-04-21 | Intel Corporation | Multi-tile memory management |
US10848440B2 (en) * | 2019-03-20 | 2020-11-24 | Alibaba Group Holding Limited | Systems and methods for allocating bandwidth across a cluster of accelerators |
US10817441B2 (en) * | 2019-03-29 | 2020-10-27 | Intel Corporation | Shared accelerator memory systems and methods |
US20190228159A1 (en) * | 2019-03-29 | 2019-07-25 | Intel Corporation | Technologies for filtering memory access transactions received from one or more accelerators via coherent accelerator link |
US11086815B1 (en) * | 2019-04-15 | 2021-08-10 | Xilinx, Inc. | Supporting access to accelerators on a programmable integrated circuit by multiple host processes |
US11329882B2 (en) | 2019-04-25 | 2022-05-10 | Juniper Networks, Inc. | Multi-cluster configuration controller for software defined networks |
US20210019434A1 (en) * | 2019-07-16 | 2021-01-21 | Microsoft Technology Licensing, Llc | Cloud-based data access control |
US11392414B2 (en) | 2019-10-04 | 2022-07-19 | Target Brands, Inc. | Cooperation-based node management protocol |
US11379236B2 (en) * | 2019-12-27 | 2022-07-05 | Intel Corporation | Coherency tracking apparatus and method for an attached coprocessor or accelerator |
US11347875B2 (en) * | 2020-01-28 | 2022-05-31 | Intel Corporation | Cryptographic separation of memory on device with use in DMA protection |
US11403403B2 (en) * | 2020-04-13 | 2022-08-02 | KameleonSec Ltd. | Secure processing engine for securing a computing system |
US11736447B2 (en) * | 2020-07-23 | 2023-08-22 | Dell Products L.P. | Method and system for optimizing access to data nodes of a data cluster using a data access gateway and metadata mapping based bidding in an accelerator pool |
-
2020
- 2020-06-12 US US16/899,880 patent/US11687629B2/en active Active
- 2020-12-23 CN CN202011541611.9A patent/CN113806758B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108351927A (zh) * | 2015-10-23 | 2018-07-31 | 甲骨文国际公司 | 用于访问管理的无密码认证 |
Also Published As
Publication number | Publication date |
---|---|
US11687629B2 (en) | 2023-06-27 |
US20210390163A1 (en) | 2021-12-16 |
CN113806758A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7196132B2 (ja) | データプロセッシング(dp)アクセラレータのための難読化を用いたデータ伝送 | |
CN113806286B (zh) | 在基于策略划分的数据处理集群中进行数据保护的方法 | |
JP7331080B2 (ja) | 仮想化環境でのチェックポイント認証による仮想マシン移行の方法 | |
US11409653B2 (en) | Method for AI model transferring with address randomization | |
US11657332B2 (en) | Method for AI model transferring with layer randomization | |
US11740940B2 (en) | Method and system for making an artifical intelligence inference using a watermark-inherited kernel for a data processing accelerator | |
US11645116B2 (en) | Method and system for making an artificial intelligence inference using a watermark-enabled kernel for a data processing accelerator | |
US11775347B2 (en) | Method for implanting a watermark in a trained artificial intelligence model for a data processing accelerator | |
CN112528242A (zh) | 使用用于数据处理加速器的水印算法配置水印单元的系统和方法 | |
CN112528243A (zh) | 用于通过数据处理加速器处理数据的系统和方法 | |
CN112838926A (zh) | 加速器之间的密钥共享方法 | |
EP4002114B1 (en) | Method for virtual machine migration with artificial intelligence accelerator status validation in virtualization environment | |
CN113806758B (zh) | 基于认证的数据处理集群中的数据保护方法 | |
CN113806287B (zh) | 基于动态划分的数据处理集群的数据保护方法 | |
US11847501B2 (en) | Method for data protection in a data processing cluster with partition | |
US11709712B2 (en) | Method and system for artificial intelligence model training using a watermark-enabled kernel for a data processing accelerator | |
US11556859B2 (en) | Method for al model transferring with layer and memory randomization | |
CN112839021B (zh) | 带交换机的加速器之间的密钥共享方法 | |
US11343083B2 (en) | Method for key sharing between accelerators in virtual channel | |
US11405336B2 (en) | Method for key sharing between accelerators in virtual channel with switch |
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 |