CN112839021B - 带交换机的加速器之间的密钥共享方法 - Google Patents

带交换机的加速器之间的密钥共享方法 Download PDF

Info

Publication number
CN112839021B
CN112839021B CN202010514201.9A CN202010514201A CN112839021B CN 112839021 B CN112839021 B CN 112839021B CN 202010514201 A CN202010514201 A CN 202010514201A CN 112839021 B CN112839021 B CN 112839021B
Authority
CN
China
Prior art keywords
data processing
accelerator
accelerators
switch
communication channel
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
Application number
CN202010514201.9A
Other languages
English (en)
Other versions
CN112839021A (zh
Inventor
刘勇
程越强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kunlun Core Beijing Technology Co ltd
Baidu USA LLC
Original Assignee
Kunlun Core Beijing Technology Co ltd
Baidu USA LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kunlun Core Beijing Technology Co ltd, Baidu USA LLC filed Critical Kunlun Core Beijing Technology Co ltd
Publication of CN112839021A publication Critical patent/CN112839021A/zh
Application granted granted Critical
Publication of CN112839021B publication Critical patent/CN112839021B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)

Abstract

主机处理设备(“主机”)指示多个数据处理(DP)加速器将其配置成用于安全通信。主机生成多个DP加速器(“DPA”)中的每个的邻接表。主机经由交换机可通信地联接至多个DPA。主机向交换机传送DPA的列表,并指示交换机生成DPA的邻接表,该表包括每个DPA的唯一标识符和与DPA相关联的交换机的通信端口。主机与每个DPA建立会话密钥通信,并向DPA发送DPA将与之建立会话密钥的其它DPA的列表,以实现DPA之间的安全通信。DPA为多个DPA中的每对建立不同的会话密钥。当所有DPA已建立用于与其它DPA通信的会话密钥时,主机可通过多个DPA分配性能的工作任务,每个DPA均通过单独的安全通信通道进行通信。

Description

带交换机的加速器之间的密钥共享方法
技术领域
本公开的实施方式总体涉及人工智能模型训练和推断。更具体地,本公开的实施方式涉及在配置为彼此通信的数据处理加速器之间共享密钥。
背景技术
配置为与主机计算设备通信的数据处理加速器(DPA)通常不能彼此安全地通信。DPA之间的通信(例如,对等通信)是有用的,使得两个或更多个DPA可协作和协调以代表主机计算设备执行数据处理任务。然而,重要的是DPA安全地通信,从而安全地执行由协作DPA执行的处理任务,使得另一计算实体不能改变由通信DPA产生的结果,并且不能够从任何通信DPA窃取代码或数据。
发明内容
在第一方面,本公开提供了一种第一数据处理(DP)加速器经由交换机与一个或多个第二DP加速器安全地通信的计算机实施的方法,该方法包括:由第一DP加速器经由交换机的第一通信信道从主机设备接收一个或多个第二DP加速器的列表;对于一个或多个第二DP加速器中的每个,至少经由交换机的第一通信信道和交换机的第二通信信道,确定第一DP加速器与第二DP加速器之间的会话密钥,其中,至少第二通信信道由交换机确定;以及由第一DP加速器经由交换机的第一通信信道向主机设备传送第一DP加速器配置成用于与一个或多个第二DP加速器中的每个之间的安全通信的指示,其中,主机设备和第一DP加速器使用第一会话密钥。
在第二方面,本公开提供了一种存储有指令的非暂时性机器可读介质,该指令在由处理器执行时致使处理器执行用于第一数据处理(DP)加速器经由交换机与一个或多个第二DP加速器安全地通信的操作,该操作包括:由第一DP加速器经由交换机的第一通信信道从主机设备接收一个或多个第二DP加速器的列表;对于一个或多个第二DP加速器中的每个,至少经由交换机的第一通信信道和交换机的第二通信信道,确定第一DP加速器与第二DP加速器之间的会话密钥,其中,至少第二通信信道由交换机确定;以及由第一DP加速器经由交换机的第一通信信道向主机设备传送第一DP加速器配置成用于与一个或多个第二DP加速器中的每个之间的安全通信的指示,其中,主机设备和第一DP加速器使用第一会话密钥。
在第三方面,本公开提供了一种数据处理系统,该数据处理系统包括处理器和存储器,其中,存储器联接至处理器以存储指令,该指令在由处理器执行时致使处理器执行用于第一数据处理(DP)加速器经由交换机与一个或多个第二DP加速器安全地通信的操作,该操作包括:由第一DP加速器经由交换机的第一通信信道从主机设备接收一个或多个第二DP加速器的列表;对于一个或多个第二DP加速器中的每个,至少经由交换机的第一通信信道和交换机的第二通信信道,确定第一DP加速器与第二DP加速器之间的会话密钥,其中,至少第二通信信道由交换机确定;以及由第一DP加速器经由交换机的第一通信信道向主机设备传送第一DP加速器配置成用于与一个或多个第二DP加速器中的每个之间的安全通信的指示,其中,主机设备和第一DP加速器使用第一会话密钥。
在第四方面,本公开提供了一种处理系统,该处理系统包括处理器和存储器,其中,存储器联接至处理器以存储指令,该指令在由处理器执行时致使处理器执行用于主机设备配置多个数据处理(DP)加速器安全地通信的操作,该操作包括:对于多个DP加速器中的每个DP加速器:在主机设备与DP加速器之间建立会话密钥;由主机设备将会话密钥存储在主机设备的邻接表中,其中,邻接表中的每个条目均包括:会话密钥和DP加速器的唯一标识符;经由交换机的第一通信信道向DP加速器传送一个或多个附加DP加速器的列表以及DP加速器为每个附加DP加速器生成唯一会话密钥的指令,唯一会话密钥用于保护DP加速器与一个或多个附加DP加速器的列表中的附加DP加速器之间的通信;以及经由交换机的第一通信信道从DP加速器接收DP加速器已完成生成用于在DP加速器与一个或多个附加DP加速器之间通信的唯一会话密钥的指示,其中,使用第一会话密钥来保护第一通信信道和第一DP加速器,第一会话密钥相对于交换机的多个其它通信信道是唯一的。
附图说明
本公开的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同参考标记指示相似元件。
图1是示出根据一个实施方式的安全处理系统的框图。
图2A和图2B是示出根据一个实施方式的一个或多个主机与一个或多个数据处理加速器之间的安全计算环境的框图。
图3是示出根据实施方式的主机和数据处理加速器或者两个数据处理加速器生成用于安全通信的会话密钥的方法的框图。
图4是示出根据实施方式的彼此安全地通信的主机计算设备和多个数据处理加速器的硬件配置的框图。
图5是示出根据实施方式的当经由交换机进行通信时主机设备与多个数据处理加速器之间的安全通信邻接表的框图。
图6是示出根据实施方式的主机设备指示多个数据处理加速器将其自身配置为经由交换机进行安全通信的方法的框图。
图7是示出根据实施方式的数据处理加速器将其自身配置为经由交换机与一个或多个其它数据处理加速器进行安全通信的方法的框图。
图8是示出根据实施方式的数据处理加速器从主机接收处理任务并通过一个或多个附加数据处理加速器执行任务的一个或多个子任务的方法的框图。
具体实施方式
将参考以下所讨论的细节来描述本公开的各种实施方式和方面,附图将示出所述各种实施方式。下列描述和附图是本公开的说明,而不应当解释为对本公开进行限制。描述了许多特定细节以提供对本公开的各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节,以提供对本公开的实施方式的简洁讨论。
本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可包括在本公开的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指同一实施方式。
以下实施方式涉及使用数据处理(DP)加速器来增加可从主机设备卸载(或委托)到一个或多个DP加速器的某些类型的操作的处理吞吐量。DP加速器可以是图形处理单元(GPU)、人工智能(AI)加速器、数学协处理器、数字信号处理器(DSP)或其它类型的处理器。DP加速器可以是专有设计,诸如
Figure BDA0002529550790000041
AI加速器或另一GPU等。虽然用安全地联接至一个或多个DP加速器的主机设备来图解说明和描述实施方式,但是本文中所描述的概念可更一般地实施为分布式处理系统。
主机设备和DP加速器可经由诸如外围部件互连快速(PCIe)或其它高速总线的高速总线互连。主机设备和每个DP加速器可在执行下面描述的本发明的各方面的操作之前通过PCIe总线交换密钥并启动安全信道。这里描述了用于生成确保主机与DP加速器之间的安全通信的一个或多个密钥以及用于确保多个DP加速器中的任何两个DP加速器之间的安全通信的实施方式。在实施方式中,任何两个DP加速器之间的通信使用相对于任何其它两个DP加速器唯一的一个或多个密钥。由DP加速器执行的操作中的一些包括DP加速器使用人工智能(AI)模型利用由主机设备提供的数据执行推断。在AI模型推断被委托给DP加速器以供计算之前,在主机与DP加速器之间以及在DP加速器与可参与AI模型推断的任何其它DP加速器之间建立安全通信信道。
在第一方面,第一数据处理(DP)加速器与一个或多个第二DP加速器安全地通信的计算机实施的方法包括:通过第一DP加速器经由第一通信信道经由交换机从主机设备接收一个或多个第二DP加速器的列表。对于一个或多个第二DP加速器中的每个,确定第一DP加速器与第二DP加速器之间的会话密钥。主机与第一DP加速器之间的通信在交换机的第一通信信道上完成。在交换机的第二通信信道上完成第一DP加速器与第二DP加速器之间的通信。会话密钥由第一DP加速器与第二DP加速器相关联地存储,并且第一DP加速器配置成用于与一个或多个第二DP加速器中的每个进行安全通信的指示由第一DP加速器经由第一通信信道发送至主机设备。交换机不会知晓、存储或访问在主机与第一DP加速器之间建立的任何会话密钥或在第一DP加速器与任何第二DP加速器之间建立的任何会话密钥。在实施方式中,该方法还包括通过第一DP加速器生成具有用于一个或多个第二DP加速器中的每个的条目的邻接表。每个条目均包括行项目上的DP加速器的唯一标识符、用于行项目的DP加速器的会话密钥,以及可选地包括与DP加速器的状态相关的上下文信息。状态信息可包括行项目的DP加速器是空闲的、正在处理还是在等待另一DP加速器的结果。在实施方式中,为第一DP加速器和一个或多个第二DP加速器中的一个生成的会话密钥对于第一DP加速器和一个或多个第二DP加速器中的任何其它DP加速器是唯一的。在实施方式中,用于一个或多个第二DP加速器中的一个的每个条目均还包括一个或多个第二DP加速器中的一个的唯一标识符。在实施方式中,DP加速器条目还可包括与DP加速器的状态相关的上下文信息。状态信息可包括该行项目的DP加速器是空闲的、正在处理还是等待另一DP加速器的结果。
该方法还可包括通过第一DP加速器经由交换机的第一通信信道从主机设备接收要执行的处理任务,以及一个或多个第二DP加速器中的一个执行处理任务的至少一部分的指示。该方法还可包括:使用用会话密钥保护的消息,通过第一DP加速器经由交换机的第二通信信道指示一个或多个第二DP加速器中的一个执行处理任务的至少一部分,该会话密钥与第一DP加速器和一个或多个第二DP加速器中的一个相关联。在实施方式中,该方法还可包括通过第一DP加速器经由交换机的第二通信信道从一个或多个第二DP加速器中的一个接收使用会话密钥保护的消息,该会话密钥与第一DP加速器和一个或多个第二DP加速器中的一个相关联。消息可包括来自任务的至少一部分的结果。第一DP加速器可经由交换机的第一通信信道向主机返回消息。该消息可包含处理任务的结果。可使用与第一DP加速器和主机设备相关联的会话密钥来保护该消息。
在一些实施方式中,主机设备可向DP加速器发送内核,以用于代表主机执行一个或多个操作。在本文中,内核是一小段代码,提供给DP加速器,由DP加速器执行以执行内核的预期功能。在实施方式中,内核由主机设备提供给DP加速器,作为由DP加速器执行将由主机设备验证的信任证明操作的一部分。在一些实施方式中,DP加速器不知道其代表主机设备执行的内核的目的。
在一些实施方式中,内核可以是“启用水印的内核”。启用水印的内核是这样的内核,当执行时,该内核能够从人工智能(AI)模型中提取水印。AI水印与特定的AI模型相关联,并且可使用几种不同的方法嵌入或“植入”AI模型内。水印可植入到AI模型的一个或多个节点的一个或多个权重变量中。在实施方式中,水印存储在AI模型的一个或多个节点的一个或多个偏置变量中,或者通过在训练期间创建AI模型的一个或多个附加节点来存储水印。
在第二方面,主机设备包括处理系统,处理系统包括一个或多个处理器和联接至处理器以存储指令的存储器。指令在由处理器执行时致使处理器执行用于主机设备的操作,主机设备配置多个数据处理(DP)加速器以用于安全通信。操作包括,对于多个DP加速器中的每个DP加速器:在主机设备与DP加速器之间建立会话密钥,以及通过主机设备将会话密钥存储在主机的邻接表中,其中,邻接表中的每个条目均包括:会话密钥和DP加速器的唯一标识符。邻接表还可包括与由DP加速器中的每个执行的处理有关的上下文信息,和/或DP加速器中的每个的状态。邻接表使得主机设备能够使用会话密钥与多个DP加速器中的每个DP加速器安全地通信,会话密钥对于主机设备正在与之通信的具体DP加速器是唯一的。操作还包括:主机设备经由交换机的第一通信信道的向DP加速器发送一个或多个附加DP加速器的列表,以及DP加速器为每个附加DP加速器生成唯一会话密钥的指令,唯一会话密钥用于保护DP加速器与一个或多个附加DP加速器的列表中的附加DP加速器之间的通信。为了在DP加速器与附加DP加速器之间建立会话密钥,DP加速器和附加DP加速器经由交换机的第二通信信道通信,而与主机无关。交换机和主机不知晓、存储或访问第一DP加速器与附加DP加速器之间的会话密钥。
该操作还包括经由交换机的第一通信信道从DP加速器接收DP加速器已完成生成唯一会话密钥的指示,唯一会话密钥用于DP加速器与一个或多个附加DP加速器之间的通信。一旦DP加速器向主机确认DP加速器已完成为附加DP加速器中的每个建立用于安全通信的唯一会话密钥,则主机设备可开始向DP加速器分配处理任务。在实施方式中,该操作还包括通过主机设备经由交换机的第一通信信道向DP加速器发送用于DP加速器和一个或多个附加DP加速器中的至少一个执行的处理任务,使用为主机设备和DP加速器建立的会话密钥来保护该发送。主机设备可经由交换机的第一通信信道从DP加速器接收来自处理任务的结果。可使用为主机设备和DP加速器建立的会话密钥来保护该结果。在实施方式中,发送处理任务可包括从主机设备向DP加速器发送关于处理任务的子任务将由一个或多个附加DP加速器中的特定一个执行的指令。在实施方式中,处理任务可以是以下中的一个或多个:人工智能推断、加密或解密数据、对数据数字地签名、从AI模型提取水印、将水印植入AI模型、将水印植入AI模型推断结果或这些的组合。
上述功能中的任一个可作为可执行指令编程到一个或多个非暂时性计算机可读介质上。当可执行指令由具有至少一个硬件处理器的处理系统执行时,该处理系统使得实现该功能。
上述功能中的任一个可通过具有至少一个硬件处理器的处理系统来实现,硬件处理器联接至用可执行指令编程的存储器,可执行指令在被执行时使处理系统实现功能。
图1是示出根据一些实施方式的用于经由配置有多个通信信道的交换机109来保护主机104与数据处理(DP)加速器105至107之间的通信的系统配置的示例的框图。参照图1,系统配置100包括但不限于通过网络103通信地联接至DP服务器104(例如,主机)的一个或多个客户端设备101至102。客户端设备101至102可以是任何类型的客户端设备,诸如个人计算机(例如,台式计算机、膝上型计算机和平板计算机)、“瘦”客户端、个人数字助理(PDA)、启用Web的设备、智能手表或移动电话(例如,智能电话)等。可替代地,客户端设备101至102可以是其它服务器。网络103可以是任何类型的网络,诸如局域网(LAN)、诸如因特网的广域网(WAN)、或其有线或无线的组合。
服务器(例如,主机)104可以是任何类型的服务器或服务器集群,诸如Web或云服务器、应用服务器、后端服务器或其组合。服务器104还包括接口(未示出),以允许诸如客户端设备101至102的客户端访问由服务器104提供的资源或服务(诸如由DP加速器经由服务器104提供的资源和服务)。例如,服务器104可以是向客户端提供各种云服务(诸如,例如云存储、云计算服务、人工智能训练服务、数据挖掘服务等)的云服务器或数据中心的服务器。服务器104可配置为云上的软件即服务(SaaS)或平台即服务(PaaS)系统的一部分,该云可以是私有云、公共云或混合云。接口可包括Web接口、应用编程接口(API)和/或命令行接口(CLI)。
例如,在该示例中,客户端,即客户端设备101的用户应用程序(例如,Web浏览器应用程序),可向服务器104发送或传送用于执行的指令(例如,人工智能(AI)训练、推断指令等),服务器104经由网络103上的接口接收指令。响应于该指令,服务器104与DP加速器105至107通信以完成指令的执行。服务器104可经由交换机109的一个或多个信道与DP加速器105至107中的每个通信。任何DP加速器可独立于主机104经由交换机109的信道与另一DP加速器通信。
在一些实施方式中,从主机到DP加速器的指令可以是机器学习类型的指令,其中,DP加速器作为专用机器或处理器可比由服务器104执行快许多倍地执行指令。因此,服务器104可以以分布式方式控制/管理用于一个或多个DP加速器的执行作业。然后,服务器104向客户端设备101至102返回执行结果。DP加速器或AI加速器可包括一个或多个专用处理器,诸如可从Baidu公司获得的
Figure BDA0002529550790000091
人工智能(AI)芯片组,或者可替代地,DP加速器可以是来自另一AI芯片组提供商的AI芯片组。
根据一个实施方式,访问由数据处理服务器104(也称为主机)主管的DP加速器105至107中的任一个的应用程序中的每个均可验证该应用程序是由受信任的来源或供应商提供的。应用程序中的每个均可在由主机104的中央处理单元(CPU)专门配置和执行的信任的执行环境(TEE)内启动和执行。当应用程序配置成访问DP加速器105至107中的任一个时,可在主机104与DP加速器105至107中的相应一个DP加速器之间建立模糊的连接,从而保护在主机104与DP加速器105至107之间交换的数据免受恶意软件/入侵的攻击。
交换机109可以是可配置成用于在至少一个主机与多个DP加速器之间通信的任何类型的交换机设备。交换机可以是以太网交换机、PCIe交换机或其它高速总线或网络拓扑。
图2A是示出根据一些实施方式的用于主机系统104和数据处理(DP)加速器105至107之间的模糊通信的多层保护解决方案的示例的框图。在一个实施方式中,系统200在对DP加速器进行或不进行硬件修改的情况下,提供用于在主机104与DP加速器105至107之间进行模糊通信的保护方案。参考图2A,主机机器或服务器104可描述为具有受保护以免受入侵一个或多个层的系统,一个或多个层诸如为用户应用程序205、运行时间库206、驱动器209、操作系统211和硬件213(例如,安全模块(信任的平台模块(TPM))/中央处理单元(CPU))。存储器安全应用程序207可在沙箱存储器中运行。在应用程序205和运行时间库206之下,可安装一个或多个驱动器209以接口到硬件213和/或DP加速器105至107。
硬件213可包括一个或多个处理器201和存储设备204。存储设备204可包括一个或多个人工智能(AI)模型202和一个或多个内核203。内核203可包括签名内核、启用水印的内核、加密和/或解密内核等。签名内核在执行时可根据内核的编程数字地签署任何输入。启用水印的内核可从数据对象(例如,AI模型或其它数据对象)提取水印。启用水印的内核还可将水印植入AI模型、推断输出或其它数据对象中。水印内核(例如,继承水印的内核)可继承来自另一数据对象的水印,并将该水印植入诸如例如推断输出或AI模型的不同对象中。如这里所使用的,水印是与AI模型或由AI模型生成的推断相关联的标识符,并且可植入到AI模型或由AI模型生成的推断中。例如,可在一个或多个权重变量或偏置变量中植入水印。可替代地,可创建一个或多个节点(例如,人工智能模型未使用或不太可能使用的伪节点)以植入或存储水印。
主机机器104通常是CPU系统,其可控制和管理主机机器104和/或DP加速器105至107上的作业的执行。为了保护/模糊DP加速器105至107与主机机器104之间的通信信道215,可能需要不同的部件来保护主机系统中易于数据入侵或攻击的不同层。例如,信任的执行环境(TEE)可保护用户应用程序205层和运行时间库206层免受数据入侵。
根据一些实施方式,系统200包括主机系统104和DP加速器105至107。DP加速器可包括
Figure BDA0002529550790000101
AI芯片组或另一AI芯片组,诸如可执行人工智能(AI)密集型计算任务的图形处理单元(GPU)。每个DP加速器均可根据从主机104接收的配置指令配置为与主机和多个附加DP加速器通信。在实施方式中,可在例如启动时间将配置指令提供给每个DP加速器,并且保持该配置直到主机104的下一个启动序列。在实施方式中,每个DP加速器均通过通信信道与相邻的主机设备104或DP加速器通信,该通信信道由在通信信道上通信的端点(节点)限定。例如,主机104可通过主机104与交换机109之间以及交换机109与DP加速器之间的通信信道215与DP加速器通信。主机104可保持邻接表,该邻接表将在主机104上运行的进程与相应的DP加速器和会话密钥相关联。在实施方式中,每个会话密钥相对于其它通信信道的其它会话密钥均是唯一的。交换机109可保持每个DP加速器的唯一标识符和与DP加速器的每个唯一标识符相关联的通信信道的邻接表。
在实施方式中,主机系统104包括具有一个或多个CPU的硬件213,硬件213配备有主机机器104内的安全模块(诸如信任的平台模块(TPM))。TPM是端点设备上的专用芯片,其存储专用于主机系统的用于硬件认证的密码密钥(例如,RSA密码密钥)。每个TPM芯片均可包含称为签注密钥(EK)或签注凭证(EC)(即,根密钥)的一个或多个RSA密钥对(例如,公共密钥对和私有密钥对)。密钥对保持在TPM芯片内部,并且不能被软件访问。然后,在执行固件和软件的关键部分之前,可由EK或EC对它们进行散列,以保护系统免于未授权的固件和软件修改。因此,主机机器上的TPM芯片可用作安全启动的信任根。TPM芯片可包括用于存储例如硬件中的根密钥和从根密钥派生的密钥的安全存储器。在实施方式中,安全存储器可包括根非对称密钥对(RK):非对称根密钥(RK)对的公共密钥(PK_RK)和私有密钥(SK_RK)。
TPM芯片还保护在工作内核空间中的驱动器209和操作系统(OS)211,以与DP加速器105至107通信。这里,驱动器209由DP加速器供应商提供,并且可用作用户应用程序的驱动器,以控制主机与DP加速器之间的通信信道215。因为TPM芯片和安全启动处理器在其内核空间中保护OS 211和驱动器209,所以TPM芯片还有效地保护驱动器209和OS 211。
由于用于DP加速器105至107的通信信道215可被OS 211和驱动器209专门占用,因此,通信信道215可通过TPM芯片来保护。在一个实施方式中,通信信道215包括外围部件互连(PCI)或外围部件互连快速(PCIE)信道。在一个实施方式中,通信信道215是模糊的通信信道。通信信道可连接至驱动器209可访问的一个或多个硬件通信端口,用于通过通信信道215与DP加速器105至107进行通信。通信信道215可使用这里描述的会话密钥来保护。可使用与其它通信信道215不同的会话密钥来保护每个通信信道215。驱动器209可包括将DP加速器105至107各自映射到硬件通信端口的邻接表,以及与每个硬件通信端口相关联的会话密钥。
主机机器104可包括信任的执行环境(TEE)210,其被TPM/CPU213强制安全。TEE是安全环境。TEE可保证装载在TEE内的代码和数据受到保密性和完整性方面的保护。TEE的示例可以是
Figure BDA0002529550790000121
软件保护扩展(SGX)或
Figure BDA0002529550790000122
安全加密虚拟化(SEV)。
Figure BDA0002529550790000123
SGX和/或
Figure BDA0002529550790000124
SEV可包括一组中央处理单元(CPU)指令代码,其允许用户级代码分配CPU的存储器的专用区域,专用区域被保护以免于以较高特权级运行的进程。这里,TEE 210可保护用户应用程序205和运行时间库206,其中,用户应用程序205和运行时间库206可分别由终端用户和DP加速器供应商提供。这里,运行时间库206可将应用编程接口(API)调用转换为用于DP加速器的执行、配置和/或控制的命令。在一个实施方式中,运行时间库206提供由用户应用程序执行的预定的一组(例如,预定义的)内核。在实施方式中,内核可作为内核203存储在存储设备204中。
主机机器104可包括存储器安全应用程序207,其使用诸如Rust和GoLang等存储器安全语言来实现。这些在存储器安全的
Figure BDA0002529550790000125
版本(诸如MesaLock
Figure BDA0002529550790000126
)上运行的存储器安全应用程序可进一步保护系统200免受数据保密性和完整性攻击。然而,操作系统可以是任何
Figure BDA0002529550790000127
分布、
Figure BDA0002529550790000128
OS或
Figure BDA0002529550790000129
OS。
主机机器104可如下设置:将存储器安全的
Figure BDA00025295507900001210
分布安装到配备有TPM安全启动的系统上。该安装可在制造或准备阶段期间离线执行。该安装还可确保使用存储器安全编程语言对主机系统的用户空间的应用程序进行编程。确保在主机系统104上运行的其它应用程序是存储器安全应用程序可进一步减轻对主机系统104的潜在保密性和完整性攻击。
在安装之后,系统然后可通过基于TPM的安全启动来启动。TPM安全启动确保仅在提供加速器服务的内核空间中启动经签署/认证的操作系统和加速器驱动程序。在一个实施方式中,可通过管理程序(未示出)加载操作系统211。管理程序或虚拟机管理器是创建和运行虚拟机的计算机软件、固件或硬件。内核空间是其中标识内核(即,用于执行的预定的一组(例如,预定义的)函数)以向用户应用程序提供功能性和服务的声明性区域或范围。在系统的完整性受到损害的情况下,TPM安全启动可能无法启动,并且代替地关闭系统。
在安全启动之后,运行时间库206运行并创建TEE 210,TEE 210将运行时间库206置于与CPU 213相关联的信任的存储器空间中。接下来,在TEE 210中启动用户应用程序205。在一个实施方式中,用户应用程序205和运行时间库206被静态链接并一起启动。在另一实施方式中,运行时间库206首先在TEE 210中启动,然后用户应用程序205动态加载到TEE 210中。在另一实施方式中,首先在TEE中启动用户应用程序205,然后在TEE 210中动态加载运行时间库206。静态链接的库是在编译时链接到应用程序的库。动态加载可由动态链接器执行。动态链接器加载并链接共享库,以便在运行时间运行用户应用程序。这里,TEE210内的用户应用程序205和运行时间库206在运行时间彼此可见,例如,所有过程数据彼此可见。然而,拒绝对TEE的外部访问。
在一个实施方式中,用户应用程序205只能从运行时间库206预定的一组内核中调用内核。在另一实施方式中,用户应用程序205和运行时间库206用侧信道自由算法进行硬化,以防御诸如基于高速缓存的侧信道攻击的侧信道攻击。侧信道攻击是基于从计算机系统的实现中获得的信息的任何攻击,而不是在所实现的算法本身中的弱点(例如,密码分析和软件缺陷)。侧信道攻击的示例包括高速缓存攻击,其是基于攻击者在虚拟化环境或云环境中监控共享物理系统的高速缓存的能力的攻击。硬化可包括掩蔽高速缓存,由算法生成的输出放置在高速缓存上。接下来,当用户应用程序完成执行时,用户应用程序终止其执行并从TEE退出。
在一个实施方式中,TEE 210和/或存储器安全应用程序207不是必需的,例如,用户应用程序205和/或运行时间库206托管在主机104的操作系统环境中。
在一个实施方式中,该组内核包括混淆内核算法。在一个实施方式中,混淆内核算法可以是对称或非对称算法。对称混淆算法可使用相同的算法对数据通信进行混淆和去混淆。非对称混淆算法需要一对算法,其中,该对算法中的第一个用于混淆,以及该对算法中的第二个用于去混淆,反之亦然。在另一实施方式中,非对称混淆算法包括用于混淆数据集的单个混淆算法,但是该数据集不打算进行去混淆,例如,不存在对应的去混淆算法。混淆是指通过使通信消息难以理解(通常使用令人迷惑和不明确的语言)来模糊通信的预期含义。对于逆向工程师而言,模糊的数据更加困难和复杂。在传送数据之前,可应用混淆算法来模糊(加密/解密)数据通信,从而减少窃听的机会。在一个实施方式中,混淆算法还可包括加密方案,以进一步对用于附加保护层的混淆数据进行加密。与可以是计算密集的加密不同,混淆算法可简化计算。一些混淆技术可包括但不限于字母混淆、名称混淆、数据混淆、控制流混淆等。字母混淆是用特定的替代字母替换数据中的一个或多个字母,致使数据无意义。字母混淆的示例包括字母旋转功能,其中,每个字母均沿字母表上的字母移动或旋转了预定数量的位置。另一示例是基于特定图案将字母重新排序或弄乱。名称混淆是用无意义字符串替换特定目标字符串的过程。控制流混淆可使用附加代码改变程序中的控制流的顺序(插入死代码,插入不受控制的跳转,插入替代性结构),以隐藏算法/AI模型的真实控制流。下文将描述用于共享用于混淆的密钥的系统和方法。
总之,系统200为DP加速器提供多层保护(用于包括机器学习模型、训练数据和推断输出的数据传输),以免丢失数据机密和完整性。系统200可包括基于TPM的安全启动保护层、TEE保护层和内核校验/验证层。此外,系统200可通过确保主机机器上的其它应用程序用存储器安全编程语言来实现而提供存储器安全用户空间,存储器安全编程语言可通过消除潜在的存储器破坏/漏洞来进一步消除攻击。此外,系统200可包括使用侧信道自由算法来防御侧信道攻击(诸如基于高速缓存的侧信道攻击)的应用程序。
运行时间库206可提供混淆内核算法以混淆主机104与DP加速器105至107之间的数据通信。在一个实施方式中,混淆可与密码方案配对。在另一实施方式中,混淆是唯一的保护方案,并且对于DP加速器而言,基于密码的硬件变得不必要。
图2B是示出根据一些实施方式的通信地联接至与DP加速器105至107接口的一个或多个加速器信道管理器(ACM)270的主机信道管理器(HCM)259的示例的框图。参考图2B,在一个实施方式中,HCM 259包括认证模块251、终止模块252、密钥管理器253、密钥存储器254和密码引擎255。认证模块251可认证在主机服务器104上运行的用户应用程序,以允许访问或使用DP加速器105的资源。终止模块252可终止连接(例如,将终止与连接相关联的信道)。密钥管理器253可管理(例如,创建或销毁)非对称密钥对或对称密钥,以便对不同的安全数据交换信道的一个或多个数据包进行加密/解密。这里,每个用户应用程序(作为图2A的用户应用程序205的一部分)均可以以一对多的关系对应于或映射到不同的安全数据交换信道,并且每个数据交换信道均可对应于DP加速器105。每个应用程序均可利用多个会话密钥,其中,每个会话密钥均用于对应于DP加速器(例如,加速器105至107)的安全信道。密钥存储器254可存储加密非对称密钥对或对称密钥。密码引擎255可对通过安全数据交换信道中的任一个交换的数据的数据包进行加密或解密。应注意,这些模块中的一些可集成到更少的模块中。
在一个实施方式中,DP加速器105包括ACM 270和安全单元(SU)275。安全单元275可包括密钥管理器271、密钥存储器272、真实随机数生成器273和密码引擎274。密钥管理器271可管理(例如,生成、安全保持和/或销毁)非对称密钥对或对称密钥。密钥存储器272可将密码非对称密钥对或对称密钥存储在安全单元275内的安全存储器中。真实随机数生成器273可生成用于密钥生成和密码引擎274使用的种子。密码引擎274可对用于数据交换的密钥信息或数据包进行加密或解密。在一些实施方式中,ACM 270和SU 275是集成模块。
DP加速器105还可包括存储器/存储装置280,其可存储人工智能模型277、水印内核278(包括继承的水印内核、启用水印的内核、水印签名内核等)、加密和解密内核281和数据279。HCM 259可经由通信信道215与ACM 270通信。
图3是示出根据实施方式的主机和数据处理加速器或两个数据处理加速器生成用于保护通信的会话密钥的方法300的框图。方法300可用在第一数据处理(DP)加速器“加速器1”与第二节点“节点2”之间。节点2可以是主机设备或第二DP加速器。加速器1具有根密钥对PK_RK1和SK_RK1。PK_RK1是加速器1的根非对称密钥对(RK1)的公共密钥。SK_RK1是加速器1的根非对称密钥对(RK1)的私有(秘密)密钥(SK)。根密钥对RK1存储在加速器1的安全存储器中。类似地,节点2(主机或另一DP加速器)具有根密钥对PK_RK2和SK_RK2。RK2可存储在节点2的安全存储器中。
在操作301中,加速器1从根密钥对PK_RK1和SK_RK1生成派生的非对称密钥对PK_D1和SK_D1。派生非对称密钥对在本领域中是已知的,并且在此将不进行描述。
在操作302中,加速器1向节点2发送“获取公共密钥”命令(GET_PUB_KEY)以请求节点2的公共密钥。GET_PUB_KEY命令包括对加速器1的公共密钥PK_RK1和PK_D1中的两个加密。在实施方式中,可使用加速器1的私有根密钥SK_RK1来对PK_RK1和PK_D1进行加密。GET_PUB_KEY命令还包括明文形式的加速器1的公共根密钥PK_RK1。节点2可使用PK_RK1对加速器1的加密密钥进行解密,并验证GET_PUB_KEY请求实际上确实来自加速器1。
在操作303中,节点2从节点2的根密钥对PK_RK2和SK_RK2生成派生的非对称密钥对PK_D2和SK_D2。派生的密钥PK_D2和SK_D2可存储在节点2的安全存储器中。
在操作304中,节点2可使用加速器1的明文公共根密钥PK_RK1来对从加速器1接收的"GET_PUB_KEY"命令进行解密。一旦被解密,节点2获得加速器1的派生公共密钥:PK_D1。
在操作305中,节点2向加速器1发送“返回公共密钥”(RET_PUB_KEY)消息。该消息包括使用节点2的私有根密钥SK_RK2加密的节点2的PK_RK2和PK_D2。节点2的公共根密钥PK_RK2与加密密钥PK_RK2和PK_D2打包,然后打包的密钥使用加速器1的派生公共密钥PK_D1加密。
在操作306中,加速器1使用加速器1的私有派生密钥SK_D1对RET_PUB_KEY消息进行解密。在解密之后,加速器1可获得节点2的公共根密钥PK_RK2。然后,加速器1使用节点2的新获得的公共根密钥PK_RK2对加密密钥PK_RK2和PK_D2进行解密。然后,加速器1可获得节点2的派生公共密钥PK_D2。在实施方式中,加速器1可通过检查主机设备或PK_RK2的历史副本来验证PK_RK2或者解密的PK_RK2和明文PK_RK2两者。
在操作307中,加速器1可生成新鲜值“nc1”。
在操作308中,加速器1可向节点2发送命令“生成会话密钥”(CMD_SESS_KEY)。该命令包括使用节点2的公共派生密钥PK_D2加密的新鲜值nc1。CMD_SESS_KEY指示节点2从加速器1的新鲜值nc1和由节点2生成的新鲜值nc2生成会话密钥。
在操作309中,节点2可使用节点2的私有派生密钥SK_D2来对接收到的CMD_SESS_KEY中的新鲜值nc1进行解密。
在操作310中,节点2可生成新鲜值nc2。节点2然后可基于新鲜值nc1和nc2生成会话密钥。节点2将会话密钥存储在节点2的邻接表中。会话密钥与加速器1和加速器1的唯一标识符相关联地存储。
在操作311中,节点2可向加速器1发送新鲜值nc2。节点2将nc1、nc2和PK_D1打包在第一包中,并使用节点2的私有派生密钥SK_D2对第一包进行加密。然后,节点2将PK_D2添加到加密的第一包,并生成使用加速器1的公共派生密钥PK_D1加密的第二加密包。然后将加密的第二包发送至加速器1。
在操作312中,加速器1从节点2接收加密的第二包,并使用加速器1的派生私有密钥SK_D1对第二包进行解密。然后,加速器1可从解密的第二包中去除PK_D2,仅留下加密的第一包。在实施方式中,加速器1可验证从解密的第二包中移除的PK_D2与先前在上面的操作305中接收的并且在操作306中解密的PK_D2相匹配。加速器1还可验证从解密的第一包获得的并且先前在操作308中发送至节点2的nc1没有到期(aka,“验证”新鲜值的“新鲜度”)。然后,加速器1可基于新鲜值nc1和nc2生成会话密钥。加速器1可将生成的会话密钥与节点2的唯一标识符和会话密钥相关联地存储在加速器1的邻接表中。
此时,加速器1和节点2都具有从新鲜值nc1和nc2派生的相同会话密钥。加速器1和节点2都已将会话密钥存储在它们各自的邻接表中。下面参考图5详细描述邻接表。
图4是示出根据实施方式的彼此安全地通信的主机计算设备104和多个数据处理(DP)加速器105至107的硬件配置400的框图。每个DP加速器均经由交换机109通信地联接至主机。每个DP加速器均可经由交换机109与附加DP加速器通信,而无需主机104的干预。
主机104通信地联接至DP加速器105、106和107中的每个。主机104包括具有例如端口0的通信接口。交换机具有例如端口0至端口3的通信接口。在图4中,DP加速器105的通信端口0可通信地联接至交换机109的通信端口1。DP加速器106的通信端口0可通信地联接至交换机109的通信端口2。DP加速器107的通信端口0可通信地联接至交换机109的通信端口3。主机104具有通信地联接至交换机109的通信端口0的通信接口端口0。DP加速器105至107还经由交换机109彼此通信联接,而无需主机104的干预。端口数量和接口配置是示例性的,而非限制性的。
前述通信信道中的每个均可通过与其它通信信道不同的会话密钥来保护。因此,如果通信信道中的任一个被损害,则其它通信信道仍然是安全的。此外,在与主机设备104的通信中存在冗余。每个DP加速器105和107均可监控其自己的通信端口以确保每个通信信道可操作。如果通信信道发生故障,则该信道任一端处的DP加速器中的一个或两者可向主机104通知发生故障的通信信道。
主机104和DP加速器105、106和107中的每个均可具有邻接表,该邻接表存储主机104或DP加速器105至107通信联接的节点(主机或DP加速器)列表。下面参考图5描述邻接表。
图5是示出了根据实施方式的在主机设备104、交换机109和多个数据处理(DP)加速器105至107之间的安全通信邻接表500、510、520、530和540的框图。
如上参考图4所述,主机104和DP加速器105至107经由交换机109经由主机和DP加速器中的每个上的通信端口通信地联接。
例如,交换机109可具有邻接表500,其列出了通信地联接至交换机109的DP加速器(DPA)和主机。DP加速器(例如,105至107)可各自具有唯一的设备ID 501,例如DP_105A_ID等,使得DP加速器可通过名称来引用。在实施方式中,当主机想要向DP加速器发送消息时,该消息可具有格式[源,message_payload(消息_有效载荷),目的地]。消息可以是由发送者指定的任何有效载荷。示例性有效载荷包括去往DP加速器的用于将其自身配置成与另一节点(主机或DP加速器)安全通信指令,或者从主机去往交换机的用于配置通信地联接至交换机109的设备的邻接表的指令。有效载荷可包括从DP加速器传送至另一DP加速器的计算任务。有效载荷可包括另一DP加速器将结果发送回向该另一DP加速器分配要执行的处理子任务的DP加速器。有效载荷还可以是主机与DP加速器、主机与交换机、DP加速器与交换机之间或两个DP加速器之间的任何带外通信。带外通信可以是与执行终端用户或应用处理工作无关的任何通信。
主机,作为发送者(源),可通过其自己的ID 501(例如HOST_104_ID)来引用其自身。主机可通过其唯一的ID 501来表示目的地DP加速器。因此,如果具有HOST_104_ID的ID501的主机向DP加速器106发送消息,则该主机可使用DP加速器106的ID 501作为目的地。该消息可使用用于主机和DP加速器106的会话密钥514进行加密。当交换机109从主机104接收到该消息时,交换机109在交换机109邻接表500中查找目的地的ID(此处为DPA_106_ID),以确定目的地DP加速器所连接的交换机109的端口502或地址503。然后交换机109可将该消息路由到与目的地DP加速器相对应的交换机端口502或地址503。类似地,DP加速器(例如,DP加速器105)可具有存储在DP加速器105的存储器中的邻接表520,该邻接表指示相邻主机104和DP加速器106和107的ID,以及用于主机104和DP加速器106和107中的每个的会话密钥524。DP加速器106可具有存储在DP加速器106的存储器中的邻接表530,该邻接表指示用于与主机104、DP加速器105和DP加速器107中的每个通信的ID 531和会话密钥534。DP加速器107可具有存储在DP加速器107的存储器中的邻接表540,该邻接表指示主机104、DP加速器105和DP加速器106的ID 531和会话密钥544。
主机邻接表510和DP加速器105、106和107邻接表520、530和540分别可各自另外包含邻接表中每个行项目的上下文信息505(未示出)。上下文信息可包括主机进程(“Host_Proc_ID“)的标识符,其中,主机进程调用DP加速器以代表主机104执行工作。上下文信息还可包括代表主机104执行工作的DP加速器上的进程的标识符(例如,“DPA_Proc_ID”)。上下文信息还可包括主机进程的状态,例如“等待来自DP加速器进程的结果”和/或代表主机104执行工作的DP加速器进程的状态,例如“等待DP加速器106子任务结果”或其它状态。上下文信息还可包括与主机进程相关联的用户的标识符(User_ID)。总而言之,上下文信息可用于回答主机处的用户查询,诸如“我请求的人工智能(AI)模型推断的状态是什么?”。主机104上的逻辑可查询邻接表以寻找具有特定User_ID的用户的上下文信息,然后确定正在为用户执行AI模型推断的每个DP加速器和相关进程的状态。确定这种状态可包括对一个或多个DP加速器的查询,以确定进程的具体子任务是否已在具体的DP加速器处失败。可生成其它上下文信息,该其它上下文信息可用于帮助诊断由一个或多个DP加速器代表调用者(例如,主机104)对一个或多个DP加速器的一个或多个处理任务的性能。
在实施方式中,主机104将工作委托给单个DP加速器,指示将工作的一个或多个子任务委托给一个或多个DP加速器。在实施方式中,单个DP加速器可确定可执行一个或多个子任务的空闲DP加速器,并且DP可确定要委托给空闲DP加速器的具体子任务。在实施方式中,主机104可向单个DP加速器提供关于将一个或多个子任务委托给哪个DP加速器的指令,并且该单个DP加速器可覆盖主机的指令,以利于单个DP加速器确定一个或多个DP加速器当前是空闲的和可用的。
类似于主机104,交换机109可具有将多个DP加速器中的每个映射到通信端口的邻接表500。交换机邻接表500中的每个行项目均可包括节点(主机或DP加速器)的设备ID501、物理通信端口502和端口地址503。例如,如交换机邻接表500中所示,DP加速器105可具有DPA_105_ID的ID。DP加速器105可映射到交换机109的物理端口1。主机104可将消息发送至例如DP加速器105,该消息具有去往DP加速器105的用于生成可由DP加速器105访问的主机和DP加速器的邻接表的指令。主机104还可指示DP加速器105生成会话密钥并将其存储在邻接表中,该会话密钥用于保护与DP加速器105的邻接表中列出的节点(主机和DP加速器)中的每个的通信。交换机109从主机接收消息,确定目的地是具有DPA_105_ID的ID 501的DP加速器105,并在交换机109邻接表500中查找DPA_105_ID。交换机109然后根据交换机109邻接表500通过交换机109的物理端口1将该消息传送至目的地DP加速器105。
类似于主机104,DP加速器105至107各自可分别具有邻接表520、530和540。每个DP加速器邻接表均可包括DP加速器可访问的主机和其它DP加速器的ID。邻接表中的每个主机和其它DP加速器具有关联的会话密钥,该会话密钥相对于任何其它DP加速器是唯一的。在图4中所示的实施方式中,每个DP加速器均经由单个DP加速器通信端口和交换机端口联接至单个交换机。另外,每个DP加速器均经由交换机与其它DP加速器通信。因此,用于DP加速器的邻接表不需要指定用于访问其它DP加速器的通信端口,因为该通信端口隐含地是DP加速器的单个端口。在其中DP加速器通信地联接至多个交换机109并且每个交换机均与DP加速器的通信端口相关联的实施方式中,则DP加速器邻接表可扩展以引用DP加速器的通信端口,该通信端口访问适当的交换机以到达邻接表中的特定DP加速器。
上面参考图3描述了确定和生成用于两个设备之间的每个通道(主机到DP加速器,或者DP加速器到DP加速器)的会话密钥,下面参考图6描述了一种方法。会话密钥NULL(空)表示在具有NULL会话密钥的邻接表的行项目中引用的两个节点(主机或DP加速器)之间还没有确定会话密钥。例如,DP加速器106邻接表530指示具有唯一ID DPA_105_ID的DP加速器105的行项目和NULL会话标识符。NULL会话标识符指示DP加速器106和DP加速器105尚未确定用于DP加速器106与DP加速器105之间的通信的会话密钥。当DP加速器从主机104接收指令和配置信息以生成用于每个DP加速器的邻接表时,将每个行项目的会话密钥字段最初设置为NULL。当为邻接表中的行项目生成会话密钥时,用生成的会话密钥替换NULL。当已经为DP加速器的邻接表的所有行项目生成了所有会话密钥时,则DP加速器可向主机104发送DP加速器准备好接收处理任务的指示。当所有DP加速器向主机104发送这样的指示时,则主机104可使用所有配置的DP加速器来执行处理任务。
图6是示出根据实施方式的主机设备指示多个数据处理加速器将其自身配置成用于安全通信的方法600的框图。
在操作601中,主机(例如,主机104)生成并存储邻接表,该邻接表列出了配置用于经由交换机与主机进行通信的每个DP加速器。在实施方式中,一个或多个DP加速器可由系统管理员使用配置文件来配置。配置文件可指示哪些DP加速器可与哪些其它DP加速器通信。配置文件可指定主机和DP加速器的唯一标识符、每个DP加速器所分配的具体通信端口号和/或对应于与DP加速器相关联的主机通信端口号的存储器地址。可有任何数量的DP加速器。为简单起见,描述了一个主机104和三个DP加速器(例如,105至107)。为主机生成的邻接表可类似于上面参考图5描述的主机表500。
在操作602中,主机将配置为用于与主机通信的所有DP加速器的列表传送至交换机。交换机为联接至该交换机的主机和DP加速器生成邻接表。邻接表的每个行项目均可包括节点(主机或DP加速器)的唯一标识符、交换机与节点进行通信的交换机的物理端口号以及端口在交换机的存储器中映射的地址(可选的,端口的列表)。在实施方式中,交换机邻接表不会知晓、存储或访问在联接至交换机的一对节点之间生成的任何会话密钥。
在操作603中,主机中的逻辑可遍历为主机配置的DP加速器的列表。对于每个DP加速器,可执行操作604至606。如果在列表中没有更多的DP加速器,则方法600结束。
在操作604中,主机从列表中选择DP加速器,并利用所选择的DP加速器生成会话密钥。主机与DP加速器之间生成会话密钥的通信通过交换机传递。上面参考图3描述了在DP加速器与主机(节点)之间生成会话密钥。主机将所生成的会话密钥存储在与所选择的DP加速器相对应的主机邻接表中的条目中。主机使用管理员配置文件来完成邻接表中的条目,包括DP加速器的唯一标识符和会话密钥。
在操作605中,主机向用于DP加速器的所选DP加速器传送指令以创建其自己的邻接表。主机传送的指令中的信息可从配置文件中获得。指令包括在所选择的DP加速器生成其自己的邻接表时所选择的DP加速器将要包括的其它DP加速器的列表。指令还可包括其它DP加速器中的每个的唯一识别符和在DP加速器与其它DP加速器中的每个之间生成的会话密钥。最初,将会话密钥设置为与其它DP加速器中的每个相关联的会话密钥的空(NULL)值。指令还包括所选择的DP加速器将与所选择的DP加速器的邻接表中的其它DP加速器中的每个生成会话密钥并存储。下面参考图7描述用于所选择的DP加速器生成其自己的邻接表的方法。
在操作606中,主机从所选择的DP加速器接收这样的信号,即所选择的DP加速器已生成其自己的邻接表,用以上在操作604中提供的信息填充邻接表,并且已为所选择的DP加速器的邻接表中的其它DP加速器中的每个生成并存储会话密钥。方法600在操作603处继续。
图7是示出根据实施方式的数据处理加速器将自身配置成用于与一个或多个其它数据处理加速器进行安全通信的方法700的框图。
在操作701中,DP加速器(“该”DP加速器)从主机设备接收指令以生成用于该DP加速器的的邻接表。主机传送的指令中的信息可由主机从管理员创建的配置文件获得。在实施方式中,指令可以是默认指令。指令可包括其它DP加速器的列表,当该DP加速器生成其自己的邻接表时,DP加速器将包括所述其它DP加速器。指令还可包括其它DP加速器中的每个的唯一标识符和与其它DP加速器中的每个相关联的会话密钥的NULL值。指令还包括以下指令:DP加速器将生成其自己的邻接表,并与该DP加速器的邻接表中的其它DP加速器中的每个生成并存储会话密钥。
在操作702中,DP加速器生成并存储邻接表,该邻接表列出了该DP加速器将为其生成和存储会话密钥的其它DP加速器中的每个。
在操作703中,DP加速器的逻辑遍历之前未为其生成会话密钥(即,会话密钥当前为NULL)的其它DP加速器的列表。如果其它DP加速器列表中有更多的DP加速器,且其会话密钥具有NULL条目,则逻辑将从列表中选择下一个DP加速器。
在操作704中,(“该”)DP加速器和所选择的DP加速器生成会话密钥,以用于在该DP加速器与所选择的DP加速器之间进行通信。该DP加速器和所选择的DP加速器通过经由交换器的通信而生成会话密钥,而无需主机干预。上面参考图3描述了在DP加速器与节点(主机或DP加速器)之间生成会话密钥。DP加速器逻辑将会话密钥存储在与所选择的DP加速器相关联的该DP加速器的邻接表中。
在操作705中,如果列表中没有更多的DP加速器,并且因此没有更多的会话密钥生成,则该DP加速器经由交换机向主机传送消息或信号,表明该DP加速器已完成其邻接表的生成并已生成用于与邻接表中的其它DP加速器中的每个进行安全通信的会话密钥。在实施方式中,邻接表中的每个会话密钥均与邻接表中的其它会话密钥不同。
图8是示出根据实施方式的数据处理(DP)加速器从主机接收处理任务并通过一个或多个附加数据处理加速器执行任务的一个或多个子任务的方法800的框图。
在操作801中,DP加速器经由交换机从主机设备接收处理任务。使用在DP加速器与主机之间生成的会话密钥来保护消息。在实施方式中,处理任务包括关于将处理任务划分为要在至少一个附加DP加速器上处理的子任务的指令,并且DP加速器在DP加速器的邻接表中具有用于与至少一个附加DP加速器安全地通信的条目。在该实施方式中,假设主机确定至少一个附加DP加速器是空闲的,或者很快将是空闲的,使得至少一个附加DP加速器可代表DP加速器执行一个或多个子任务。
在操作802中,DP加速器经由交换机将一个或多个子任务传送到至少一个附加DP加速器,以及执行子任务的指令。使用在主机与至少一个DP加速器之间生成的会话密钥来保护包括指令的消息。
在操作803中,至少一个附加DP加速器执行处理任务的一个或多个子任务。
在操作804中,DP加速器从至少一个附加DP加速器接收一个或多个结果。DP加速器完成其处理自身任务的一个或多个子任务,并且经由交换机向主机返回来自由DP加速器执行的一个或多个子任务和由至少一个附加DP加速器执行的一个或多个子任务的一个或多个结果。方法800结束。
关于以上方面中的任一方面,主机处理器可以是中央处理单元(CPU),以及DP加速器可以是通过总线或互连件联接至CPU的通用处理单元(GPU)。DP加速器可以以专用集成电路(ASIC)、现场可编程门阵列(FPGA)设备或其它形式的集成电路(IC)的形式来实现。可替代地,主机处理器可以是主数据处理系统的一部分,而DP加速器可以是作为主系统可通过网络远程卸载其数据处理任务的辅助系统的许多分布式系统中的一个(例如,诸如软件即服务或SaaS系统或者平台即服务或Paas系统的云计算系统)。主机处理器与DP加速器之间的链路可以是外围部件互连快速(PCIe)链路或诸如以太网连接的网络连接。
应注意,如上文示出和描述的部件中的一些或全部可在软件、硬件或其组合中实施。例如,此类部件可实施为安装并存储在永久性存储装置中的软件,所述软件可通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请所述的过程或操作。可替代地,此类部件可实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,所述可执行代码可经由来自应用的相应驱动程序和/或操作系统来访问。此外,此类部件可实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。
前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其它技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储装置、传输或显示装置内类似地表示为物理量的其它数据。
本公开的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存存储器装置)。
前述附图中所描绘的过程或方法可由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可按不同的顺序执行。此外,一些操作可并行地执行而不是顺序地执行。
本公开的实施方式并未参考任何特定的编程语言进行描述。应认识到,可使用多种编程语言来实施如本文描述的本公开的实施方式的教导。
在以上的说明书中,已经参考本公开的具体示例性实施方式对本公开的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本公开的更宽泛精神和范围的情况下,可对本发明作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。

Claims (21)

1.一种第一数据处理加速器经由交换机与一个或多个第二数据处理加速器安全地通信的计算机实施的方法,所述方法包括:
由所述第一数据处理加速器经由所述交换机的第一通信信道从主机设备接收所述一个或多个第二数据处理加速器的列表;
对于所述一个或多个第二数据处理加速器中的每个,至少经由所述交换机的第一通信信道和所述交换机的第二通信信道,确定所述第一数据处理加速器与所述第二数据处理加速器之间的会话密钥,其中,至少所述第二通信信道由所述交换机确定;以及
由所述第一数据处理加速器经由所述交换机的第一通信信道向所述主机设备传送所述第一数据处理加速器配置成用于与所述一个或多个第二数据处理加速器中的每个之间的安全通信的指示,其中,所述主机设备和所述第一数据处理加速器使用第一会话密钥。
2.根据权利要求1所述的方法,还包括:
由所述第一数据处理加速器生成具有用于所述一个或多个第二数据处理加速器中的每个的条目的邻接表,每个条目均包括所述一个或多个第二数据处理加速器中的一个第二数据处理加速器的唯一标识符,以及所述会话密钥与所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器关联存储。
3.根据权利要求2所述的方法,其中,为所述第一数据处理加速器和所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器生成的所述会话密钥相对于所述第一数据处理加速器和所述一个或多个第二数据处理加速器中的任何其它第二数据处理加速器都是唯一的。
4.根据权利要求1所述的方法,其中,用于所述一个或多个第二数据处理加速器中的一个第二数据处理加速器的每个条目还包括所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器的唯一标识符。
5.根据权利要求1所述的方法,还包括:
由所述第一数据处理加速器经由所述交换机的第一通信信道从所述主机设备接收要执行的处理任务,以及所述一个或多个第二数据处理加速器中的一个第二数据处理加速器执行所述处理任务的至少一部分的指示;以及
由所述第一数据处理加速器使用消息经由所述交换机的第二通信信道指示所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器执行所述处理任务的至少一部分,所述消息利用与所述第一数据处理加速器和所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器相关联的会话密钥进行保护。
6.根据权利要求5所述的方法,还包括:
由所述第一数据处理加速器经由所述交换机的第一通信信道从所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器接收消息,该消息使用与所述第一数据处理加速器和所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器相关联的会话密钥进行保护,该消息包括来自所述处理任务的至少一部分的结果;以及
由所述第一数据处理加速器经由所述交换机的第一通信信道向所述主机设备返回包含所述处理任务的结果的消息,该消息使用与所述第一数据处理加速器和所述主机设备相关联的会话密钥进行保护。
7.根据权利要求1所述的方法,其中,使用所述交换机未知或不能够访问的会话密钥来保护使用所述第二通信信道的通信。
8.一种存储有指令的非暂时性机器可读介质,所述指令在由处理器执行时使得所述处理器执行第一数据处理加速器经由交换机与一个或多个第二数据处理加速器安全地通信的操作,所述操作包括:
由所述第一数据处理加速器经由所述交换机的第一通信信道从主机设备接收所述一个或多个第二数据处理加速器的列表;
对于所述一个或多个第二数据处理加速器中的每个,至少经由所述交换机的第一通信信道和所述交换机的第二通信信道,确定所述第一数据处理加速器与所述第二数据处理加速器之间的会话密钥,其中,至少所述第二通信信道由所述交换机确定;以及
由所述第一数据处理加速器经由所述交换机的第一通信信道向所述主机设备传送所述第一数据处理加速器配置成用于与所述一个或多个第二数据处理加速器中的每个之间的安全通信的指示,其中,所述主机设备和所述第一数据处理加速器使用第一会话密钥。
9.根据权利要求8所述的机器可读介质,其中,所述操作还包括:
由所述第一数据处理加速器生成具有用于所述一个或多个第二数据处理加速器中的每个的条目的邻接表,每个条目均包括所述一个或多个第二数据处理加速器中的一个第二数据处理加速器的唯一标识符,以及所述会话密钥与所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器关联存储。
10.根据权利要求8所述的机器可读介质,其中,所述操作还包括:
由所述第一数据处理加速器经由所述交换机的第一通信信道从所述主机设备接收要执行的处理任务,以及所述一个或多个第二数据处理加速器中的一个第二数据处理加速器执行所述处理任务的至少一部分的指示;以及
由所述第一数据处理加速器使用消息经由所述交换机的第二通信信道指示所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器执行所述处理任务的至少一部分,所述消息利用与所述第一数据处理加速器和所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器相关联的会话密钥进行保护。
11.根据权利要求10所述的机器可读介质,其中,所述操作还包括:
由所述第一数据处理加速器经由所述交换机的第一通信信道从所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器接收消息,该消息使用与所述第一数据处理加速器和所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器相关联的会话密钥进行保护,该消息包括来自所述处理任务的至少一部分的结果;以及
由所述第一数据处理加速器经由所述交换机的第一通信信道向所述主机设备返回包含所述处理任务的结果的消息,该消息使用与所述第一数据处理加速器和所述主机设备相关联的会话密钥进行保护。
12.一种数据处理系统,包括:
处理器;以及
存储器,联接至所述处理器以存储指令,所述指令在由所述处理器执行时致使所述处理器执行第一数据处理加速器经由交换机与一个或多个第二数据处理加速器安全地通信的操作,所述操作包括:
由所述第一数据处理加速器经由所述交换机的第一通信信道从主机设备接收所述一个或多个第二数据处理加速器的列表;
对于所述一个或多个第二数据处理加速器中的每个,至少经由所述交换机的第一通信信道和所述交换机的第二通信信道,确定所述第一数据处理加速器与所述第二数据处理加速器之间的会话密钥,其中,至少所述第二通信信道由所述交换机确定;以及
由所述第一数据处理加速器经由所述交换机的第一通信信道向所述主机设备传送所述第一数据处理加速器配置成用于与所述一个或多个第二数据处理加速器中的每个之间的安全通信的指示,其中,所述主机设备和所述第一数据处理加速器使用第一会话密钥。
13.根据权利要求12所述的系统,其中,所述操作还包括:
由所述第一数据处理加速器生成具有用于所述一个或多个第二数据处理加速器中的每个的条目的邻接表,每个条目均包括所述一个或多个第二数据处理加速器中的一个第二数据处理加速器的唯一标识符,以及所述会话密钥与所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器关联存储。
14.根据权利要求13所述的系统,其中,为所述第一数据处理加速器和所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器生成的所述会话密钥相对于所述第一数据处理加速器和所述一个或多个第二数据处理加速器中的任何其它第二数据处理加速器都是唯一的。
15.根据权利要求12所述的系统,其中,用于所述一个或多个第二数据处理加速器中的一个第二数据处理加速器的每个条目还包括所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器的唯一标识符。
16.根据权利要求12所述的系统,其中,所述操作还包括:
由所述第一数据处理加速器经由所述交换机的第一通信信道从所述主机设备接收要执行的处理任务,以及所述一个或多个第二数据处理加速器中的一个第二数据处理加速器执行所述处理任务的至少一部分的指示;以及
由所述第一数据处理加速器使用消息经由所述交换机的第二通信信道指示所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器执行所述处理任务的至少一部分,所述消息利用与所述第一数据处理加速器和所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器相关联的会话密钥进行保护。
17.根据权利要求16所述的系统,其中,所述操作还包括:
由所述第一数据处理加速器经由所述交换机的第一通信信道从所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器接收消息,该消息使用与所述第一数据处理加速器和所述一个或多个第二数据处理加速器中的所述一个第二数据处理加速器相关联的会话密钥进行保护,该消息包括来自所述处理任务的至少一部分的结果;以及
由所述第一数据处理加速器经由所述交换机的第一通信信道向所述主机设备返回包含所述处理任务的结果的消息,该消息使用与所述第一数据处理加速器和所述主机设备相关联的会话密钥进行保护。
18.一种处理系统,包括:
一个或多个处理器;以及
存储器,联接至所述处理器以存储指令,所述指令在由所述处理器执行时致使所述处理器执行用于主机设备配置多个数据处理加速器安全地通信的操作,所述操作包括:
对于所述多个数据处理加速器中的每个数据处理加速器:
在所述主机设备与所述数据处理加速器之间建立第一会话密钥;
由所述主机设备将所述第一会话密钥存储在所述主机设备的邻接表中,其中,所述邻接表中的每个条目均包括:所述第一会话密钥和所述数据处理加速器的唯一标识符;
所述主机设备经由交换机的第一通信信道向所述数据处理加速器传送一个或多个其它数据处理加速器的列表以及所述数据处理加速器为每个其它数据处理加速器生成唯一会话密钥的指令,所述唯一会话密钥用于保护所述数据处理加速器与所述一个或多个其它数据处理加速器的列表中的所述其它数据处理加速器之间的通信;以及
经由所述交换机的所述第一通信信道从所述数据处理加速器接收所述数据处理加速器已完成生成用于在所述数据处理加速器与所述一个或多个其它数据处理加速器之间通信的所述唯一会话密钥的指示,
其中,使用所述第一会话密钥来保护所述第一通信信道和所述数据处理加速器,所述第一会话密钥相对于所述交换机的多个其它通信信道的其它会话秘钥是唯一的。
19.根据权利要求18所述的系统,其中,所述操作还包括:
经由所述交换机的第一通信信道向所述数据处理加速器传送用于所述数据处理加速器和所述一个或多个其它数据处理加速器中的至少一个执行的处理任务,所述传送使用为所述主机设备和所述数据处理加速器建立的是会话密钥进行保护;以及
经由所述交换机的第一通信信道从所述数据处理加速器接收来自所述处理任务的结果,所述结果使用为主机设备和所述数据处理加速器建立的会话密钥进行保护。
20.根据权利要求19所述的系统,其中,传送所述处理任务包括从所述主机设备向所述数据处理加速器传送所述处理任务的子任务将由所述一个或多个其它数据处理加速器中的特定数据处理加速器执行的指令。
21.根据权利要求19所述的系统,其中,所述处理任务是人工智能推断。
CN202010514201.9A 2019-11-22 2020-06-08 带交换机的加速器之间的密钥共享方法 Active CN112839021B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/693,015 US11558357B2 (en) 2019-11-22 2019-11-22 Method for key sharing between accelerators with switch
US16/693,015 2019-11-22

Publications (2)

Publication Number Publication Date
CN112839021A CN112839021A (zh) 2021-05-25
CN112839021B true CN112839021B (zh) 2023-04-18

Family

ID=75923151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010514201.9A Active CN112839021B (zh) 2019-11-22 2020-06-08 带交换机的加速器之间的密钥共享方法

Country Status (2)

Country Link
US (1) US11558357B2 (zh)
CN (1) CN112839021B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003019442A2 (en) * 2001-08-23 2003-03-06 Sphera Corporation A system and method for administrating a plurality of computers
US10148736B1 (en) * 2014-05-19 2018-12-04 Amazon Technologies, Inc. Executing parallel jobs with message passing on compute clusters
CN110024324A (zh) * 2016-09-23 2019-07-16 苹果公司 网络通信业务的安全传送

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US642945A (en) 1899-06-29 1900-02-06 Ellery C Wright Last.
US6426945B1 (en) 1998-10-06 2002-07-30 Nokia Telecommunications, Oy Method and apparatus for providing resource discovery using multicast scope
US7099912B2 (en) 2001-04-24 2006-08-29 Hitachi, Ltd. Integrated service management system
US8423763B2 (en) 2002-03-20 2013-04-16 Research In Motion Limited System and method for supporting multiple certificate status providers on a mobile communication device
US7206807B2 (en) 2003-01-21 2007-04-17 Bea Systems, Inc. Asynchronous invoking a remote web service on a server by a client who passes on a received invoke request from application code residing on the client
US7966646B2 (en) * 2006-07-31 2011-06-21 Aruba Networks, Inc. Stateless cryptographic protocol-based hardware acceleration
US8775824B2 (en) * 2008-01-02 2014-07-08 Arm Limited Protecting the security of secure data sent from a central processor for processing by a further processing device
US8767964B2 (en) * 2008-03-26 2014-07-01 International Business Machines Corporation Secure communications in computer cluster systems
US8411867B2 (en) * 2009-04-06 2013-04-02 Broadcom Corporation Scalable and secure key management for cryptographic data processing
US20120272051A1 (en) * 2011-04-22 2012-10-25 International Business Machines Corporation Security key distribution in a cluster
GB2508606B (en) * 2012-12-04 2015-06-03 Barclays Bank Plc Credential recovery
CN105308897B (zh) * 2013-06-25 2019-09-13 诺基亚技术有限公司 用于渗透式社交联网中的匿名和可信认证的方法和装置
US9166964B2 (en) 2014-01-08 2015-10-20 Google Inc. Secure challenge system for verifying access rights to media content
TW201546649A (zh) * 2014-06-05 2015-12-16 Cavium Inc 用於基於硬體安全模組的基於雲端的web服務安全管理的系統和方法
US9571464B2 (en) 2014-08-11 2017-02-14 Intel Corporation Network-enabled device provisioning
IL238690B (en) * 2015-05-07 2019-07-31 Mellanox Technologies Ltd Network-based computational accelerator
EP3491801B1 (en) * 2016-07-28 2021-01-13 Koninklijke Philips N.V. Identifying a network node to which data will be replicated
WO2018112886A1 (en) * 2016-12-23 2018-06-28 Intel Corporation Virtual channels for hardware acceleration
US10241947B2 (en) * 2017-02-03 2019-03-26 Intel Corporation Hardware-based virtual machine communication
CN108540982B (zh) * 2017-03-06 2021-10-22 上海诺基亚贝尔股份有限公司 用于虚拟基站的通信方法和设备
US10659468B2 (en) 2017-05-24 2020-05-19 Micro Focus Llc Access control values
US10841243B2 (en) * 2017-11-08 2020-11-17 Mellanox Technologies, Ltd. NIC with programmable pipeline
US20200389322A1 (en) 2017-12-07 2020-12-10 Telefonaktiebolaget Lm Ericsson (Publ) Security for group communication
CN113411755B (zh) 2017-12-28 2022-10-04 华为技术有限公司 一种通信方法、及相关产品
EP3575980A3 (en) * 2018-05-29 2020-03-04 Accenture Global Solutions Limited Intelligent data quality
US10813001B1 (en) 2018-06-19 2020-10-20 Synapse Wireless, Inc. Multicast messaging based on distance estimation of network devices
US11457354B2 (en) 2019-12-10 2022-09-27 Baidu Usa Llc System and method to securely broadcast a message to accelerators

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003019442A2 (en) * 2001-08-23 2003-03-06 Sphera Corporation A system and method for administrating a plurality of computers
US10148736B1 (en) * 2014-05-19 2018-12-04 Amazon Technologies, Inc. Executing parallel jobs with message passing on compute clusters
CN110024324A (zh) * 2016-09-23 2019-07-16 苹果公司 网络通信业务的安全传送

Also Published As

Publication number Publication date
US11558357B2 (en) 2023-01-17
CN112839021A (zh) 2021-05-25
US20210160225A1 (en) 2021-05-27

Similar Documents

Publication Publication Date Title
CN112953855B (zh) 将消息广播给加速器的系统和方法
CN112948139B (zh) 使用交换机向加速器安全地广播消息的系统和方法
US11409653B2 (en) Method for AI model transferring with address randomization
CN113806286B (zh) 在基于策略划分的数据处理集群中进行数据保护的方法
CN112838926B (zh) 加速器之间的密钥共享方法
CN112953886B (zh) 使用具有交换机的虚拟信道向加速器安全地广播消息的系统和方法
US20210350264A1 (en) Method for obfuscated ai model training for data processing accelerators
US11657332B2 (en) Method for AI model transferring with layer randomization
CN112839021B (zh) 带交换机的加速器之间的密钥共享方法
US11516010B2 (en) System and method to securely broadcast a message to accelerators using virtual channels
CN112838923B (zh) 具有交换机的虚拟信道中加速器之间的密钥共享方法
CN112838924B (zh) 虚拟信道中加速器之间的密钥共享方法
CN113806758B (zh) 基于认证的数据处理集群中的数据保护方法
US11556859B2 (en) Method for al model transferring with layer and memory randomization
CN113806287B (zh) 基于动态划分的数据处理集群的数据保护方法
US11847501B2 (en) Method for data protection in a data processing cluster with partition

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
TA01 Transfer of patent application right

Effective date of registration: 20211011

Address after: California, USA

Applicant after: Baidu (USA) Co.,Ltd.

Applicant after: Kunlun core (Beijing) Technology Co.,Ltd.

Address before: California, USA

Applicant before: Baidu (USA) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant