CN112953886B - 使用具有交换机的虚拟信道向加速器安全地广播消息的系统和方法 - Google Patents
使用具有交换机的虚拟信道向加速器安全地广播消息的系统和方法 Download PDFInfo
- Publication number
- CN112953886B CN112953886B CN202010516359.XA CN202010516359A CN112953886B CN 112953886 B CN112953886 B CN 112953886B CN 202010516359 A CN202010516359 A CN 202010516359A CN 112953886 B CN112953886 B CN 112953886B
- Authority
- CN
- China
- Prior art keywords
- data processing
- broadcast
- accelerator
- accelerators
- virtual data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- 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/3236—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 cryptographic hash functions
- H04L9/3242—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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0442—Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
-
- 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
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
实施方式公开了在虚拟DP加速器(DPA)之间广播消息的系统和方法。在一个实施方式中,响应于经由通信交换机从应用程序接收到广播指令,该广播指令指定多个虚拟DP加速器中的一个或多个虚拟DP加速器接收广播消息,系统基于用于广播通信会话的广播会话密钥对广播消息进行加密。系统确定各自与指定的虚拟DP加速器中的一个相关联的一个或多个安全密钥对的一个或多个公共密钥。系统基于所确定的一个或多个公共密钥对多个广播会话密钥进行加密。系统将加密的广播消息以及一个或多个加密的广播会话密钥广播给虚拟DP加速器。
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加速器相关联的相应私有密钥来对加密广播会话密钥进行解密,其中,基于广播会话密钥来解密消息。
附图说明
本公开的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同参考标记指示相似元件。
图1是示出根据一个实施方式的安全处理系统的框图。
图2A和图2B是示出根据一个实施方式的一个或多个主机与一个或多个虚拟数据处理加速器之间的安全计算环境的框图。
图3是示出根据实施方式的主机和虚拟数据处理加速器或者两个虚拟数据处理加速器生成用于安全通信的会话密钥的方法的框图。
图4是示出根据实施方式的主机计算设备和多个数据处理加速器的硬件配置的框图,其中,多个数据处理加速器各自包括彼此安全地通信的多个虚拟数据处理加速器。
图5A和图5B是示出根据实施方式的主机设备与多个虚拟数据处理加速器之间的安全通信邻接表,以及支持虚拟通信信道的交换机的安全通信邻接表,以及当经由交换机通信时,虚拟数据处理加速器之间的安全通信邻接表的框图。
图6是示出根据实施方式的主机设备指示多个虚拟数据处理加速器将其自身配置为经由交换机进行安全通信的方法的框图。
图7是示出根据实施方式的虚拟数据处理加速器将其自身配置为经由交换机与一个或多个其它数据处理加速器进行安全通信的方法的框图。
图8是示出根据实施方式的虚拟数据处理加速器从主机接收处理任务并通过一个或多个附加虚拟数据处理加速器执行任务的一个或多个子任务的方法的框图。
图9是示出根据实施方式的主机和一个或多个虚拟数据处理加速器的广播协议的流程图。
图10是示出根据实施方式的用于主机执行广播的示例性方法的流程图。
图11是示出根据实施方式的用于虚拟数据处理加速器执行广播的示例性方法的流程图。
图12是示出根据一个实施方式的数据处理系统的框图。
具体实施方式
将参考以下所讨论的细节来描述本公开的各种实施方式和方面,附图将示出所述各种实施方式。下列描述和附图是本公开的说明,而不应当解释为对本公开进行限制。描述了许多特定细节以提供对本公开的各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节,以提供对本公开的实施方式的简洁讨论。
本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可包括在本公开的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指同一实施方式。
以下实施方式涉及使用数据处理(DP)加速器来增加可从主机设备卸载(或委托)到一个或多个DP加速器的某些类型的操作的处理吞吐量。DP加速器可以是图形处理单元(GPU)、人工智能(AI)加速器、数学协处理器、数字信号处理器(DSP)或其它类型的处理器。DP加速器可以是专有设计,诸如AI加速器或另一GPU等。虽然用安全地联接至一个或多个DP加速器的主机设备来图解说明和描述实施方式,但是本文中所描述的概念可更一般地实施为分布式处理系统。
主机设备和DP加速器可经由诸如外围部件互连快速(PCIe)或其它高速总线的高速总线互连。DP加速器可配置为包括多个虚拟DP(VDP)加速器。VDP加速器中的每个均可经由交换机的虚拟通信信道与主机通信。VDP加速器中的每个均可通过不同的虚拟通信信道与VDP加速器中的至少一个通信。使用针对每个虚拟通信信道的不同会话密钥来保护每个虚拟通信信道。
主机设备和每个VDP加速器可在执行下面描述的本发明的各方面的操作之前通过PCIe总线交换密钥并启动安全虚拟通信信道。这里描述了用于生成确保主机与VDP加速器之间的安全通信的一个或多个密钥以及用于确保多个VDP加速器中的任何两个VDP加速器之间的安全通信的实施方式。在实施方式中,任何两个VDP加速器之间的通信使用相对于任何其它两个VDP加速器唯一的一个或多个密钥。由VDP加速器执行的操作中的一些包括VDP加速器使用人工智能(AI)模型利用由主机设备提供的数据执行推断。在AI模型推断被委托给VDP加速器以供计算之前,在主机与VDP加速器之间以及在VDP加速器与可参与AI模型推断的任何其它VDP加速器之间建立安全虚拟通信信道。
实施方式公开了在虚拟DP加速器(DPA)之间广播消息的系统和方法。在一个实施方式中,响应于经由通信交换机从应用程序接收到广播指令,该广播指令指定多个虚拟DP加速器中的一个或多个虚拟DP加速器接收广播消息,系统基于用于广播通信会话的广播会话密钥对广播消息进行加密。系统确定各自与指定的虚拟DP加速器中的一个相关联的一个或多个安全密钥对的一个或多个公共密钥。系统基于所确定的一个或多个公共密钥对多个广播会话密钥进行加密。系统将加密的广播消息和一个或多个加密的广播会话密钥广播给虚拟DP加速器,其中,指定的虚拟DP加速器基于与指定的虚拟DP加速器相关联的相应私有密钥来对加密的广播会话密钥进行解密,其中,基于广播会话密钥对消息进行解密。
上述功能中的任一个可作为可执行指令编程到一个或多个非暂时性计算机可读介质上。当可执行指令由具有至少一个硬件处理器的处理系统执行时,该处理系统使得实现该功能。
上述功能中的任一个可通过具有至少一个硬件处理器的处理系统来实现,硬件处理器联接至用可执行指令编程的存储器,可执行指令在被执行时使处理系统实现功能。
图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(VDP)加速器中的每个进行通信。任何DP加速器可独立于主机104经由交换机109与另一DP加速器通信。任何VDP加速器可独立于主机经由交换机的虚拟通信信道与不同DP加速器上的另一VDP加速器通信。
在一些实施方式中,从主机到DP加速器或VDP加速器的指令可以是机器学习类型的指令,其中,DP加速器或VDP加速器作为专用机器或处理器可比由服务器104执行快许多倍地执行指令。因此,服务器104可以以分布式方式控制/管理用于一个或多个DP加速器或VDP加速器的执行作业。然后,服务器104向客户端设备101至102返回执行结果。DP加速器或AI加速器可包括一个或多个专用处理器,诸如可从Baidu公司获得的人工智能(AI)芯片组,或者可替代地,DP加速器可以是来自另一AI芯片组提供商的AI芯片组。
根据一个实施方式,访问由数据处理服务器104(也称为主机)主管的DP加速器105至107(或DP加速器的VDP加速器)中的任一个的应用程序中的每个均可验证该应用程序是由受信任的来源或供应商提供的。每个DP加速器均均可配置为多个(例如,四个)虚拟DP(VDP)加速器。因此,例如,DP加速器105可配置为四个虚拟DP加速器105A、105B、105C和105D。应用程序中的每个均可在由主机104的中央处理单元(CPU)专门配置和执行的信任的执行环境(TEE)内启动和执行。当应用程序配置成访问VDP加速器(例如,105A至105D、106A至106D或107A至107D)中的任一个时,可在主机104与VDP加速器中的相应一个VDP加速器之间建立模糊的连接,从而保护在主机104与VDP加速器之间交换的数据免受恶意软件/入侵的攻击。
交换机109可以是可配置成用于在至少一个主机与多个DP加速器之间通信的任何类型的交换机设备。交换机可支持用于交换机的一个或多个物理通信端口的通信信道的虚拟化。例如,物理DP加速器105可配置有四个VDP加速器105A至105D。联接至DP加速器105的交换机的端口可配置为四个虚拟通信信道,使得VDP加速器105A至105D中的每个均在联接至DP加速器105的交换机端口的虚拟通信信道之一上通信。交换机可以是以太网交换机、PCIe交换机或其它高速总线或网络拓扑。
图2A是示出根据一些实施方式的用于主机系统104和数据处理(DP)加速器105至107之间的模糊通信的多层保护解决方案的示例的框图。在一个实施方式中,系统200在对DP加速器进行或不进行硬件修改的情况下,提供用于在主机104与DP加速器105至107之间进行模糊通信的保护方案。在实施方式中,每个DP加速器(例如,105至107)可配置为具有多个例如虚拟DP(VDP)加速器,虚拟DP(VDP)加速器中的每个均经由虚拟通信信道与主机通信。在实施方式中,主机104经由配置在主机与DP加速器之间的交换机109的虚拟通信信道通信地联接至每个DP加速器和VDP加速器。
参考图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层免受数据入侵。通信信道215可配置为携带多个虚拟信道。例如,主机104可通过包括多个(例如,四个)虚拟通信信道215A、215B、215C和215D的单个物理通信信道215与DP加速器105通信。在实施方式中,虚拟通信信道215A至215D可在物理信道通信信道215上被时分复用。每个虚拟通信信道均可具有用于保护虚拟通信信道上的通信的会话密钥,该会话密钥不同于任何其它虚拟通信信道的会话密钥。在实施方式中,通过虚拟通信信道发送的消息可使用先入先出、最大先出、最小先出、后入先出或其它排队逻辑中的任何一个,在排队的基础上通过物理通信信道发送。
根据一些实施方式,系统200包括主机系统104和DP加速器105至107。DP加速器可包括芯片组或另一AI芯片组,诸如可执行人工智能(AI)密集型计算任务的图形处理单元(GPU)。每个DP加速器均可根据从主机104接收的配置指令被配置为多个虚拟DP(VDP)加速器。在实施方式中,可在例如启动时间将配置指令提供给每个DP加速器,并且保持该配置直到主机104的下一个启动序列。在实施方式中,每个VDP加速器均通过虚拟通信信道与相邻的主机设备104或其它VDP加速器通信,该虚拟通信信道由在虚拟通信信道上通信的点(节点)限定。例如,主机104可通过主机104与交换机109之间的物理通信信道215与DP加速器通信,并且还通过虚拟通信信道从交换机109通信到DP加速器,或者通信到由DP加速器主管的VDP加速器。主机104可经由交换机109指示DP加速器105将其自身配置为四(4)个虚拟DP加速器105A、105B、105C和105D。主机104和DP加速器105可将其自身配置为将通信信道215作为四个虚拟通信信道215A、215B、215C和215D来处理。因此,主机104使用虚拟通信信道215A与虚拟DP加速器(VDPA)105A通信。类似地,主机104通过虚拟通信信道215B与VDPA 105B通信,并且类似地,对于VDPA 105C和105D,通过虚拟通信信道215C和215D进行通信。主机104可保持邻接表,该邻接表将在主机104上运行的进程与相应的虚拟数据处理加速器和会话密钥相关联。在实施方式中,每个会话密钥相对于其它虚拟通信信道的其它会话密钥均是唯一的。交换机109可保持每个DP加速器和VDP加速器的唯一标识符的邻接表。交换机109可包括邻接表,该邻接表包括节点(主机、DP加速器和VDP加速器)的唯一标识符的列表以及与DP加速器或VDP加速器的每个唯一标识符相关联的虚拟通信信道。
在实施方式中,主机系统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的示例可以是软件保护扩展(SGX)或/>安全加密虚拟化(SEV)。/> SGX和/或 SEV可包括一组中央处理单元(CPU)指令代码,其允许用户级代码分配CPU的存储器的专用区域,专用区域被保护以免于以较高特权级运行的进程。这里,TEE 210可保护用户应用程序205和运行时间库206,其中,用户应用程序205和运行时间库206可分别由终端用户和DP加速器供应商提供。这里,运行时间库206可将应用编程接口(API)调用转换为用于DP加速器的执行、配置和/或控制的命令。在一个实施方式中,运行时间库206提供由用户应用程序执行的预定的一组(例如,预定义的)内核。在实施方式中,内核可作为内核203存储在存储设备204中。
主机机器104可包括存储器安全应用程序207,其使用诸如Rust和GoLang等存储器安全语言来实现。这些在存储器安全的版本(诸如MesaLock />)上运行的存储器安全应用程序可进一步保护系统200免受数据保密性和完整性攻击。然而,操作系统可以是任何/>分布、/> OS或/> OS。
主机机器104可如下设置:将存储器安全的分布安装到配备有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)的安全信道,或者用于VDP加速器。密钥存储器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通信。
DP加速器105还可包括配置由DP加速器105主管的一个或多个虚拟DP加速器的逻辑。DP加速器105还可包括将物理通信信道215虚拟化为对应于DP加速器105的虚拟DP加速器的多个虚拟通信信道215A至215D的逻辑。每个这样的虚拟通信信道均可具有其自己的唯一会话密钥。
图3是示出根据实施方式的主机和虚拟数据处理加速器(VDP加速器或VDPA)或两个虚拟数据处理加速器生成用于保护通信的会话密钥的方法300的框图。方法300可用在第一虚拟数据处理(VDP)加速器“加速器1”与第二节点“节点2”之间。节点2可以是主机设备或第二VDP加速器。加速器1具有根密钥对PK_RK1和SK_RK1。PK_RK1是加速器1的根非对称密钥对(RK1)的公共密钥。SK_RK1是加速器1的根非对称密钥对(RK1)的私有(秘密)密钥(SK)。根密钥对RK1存储在加速器1的安全存储器中。类似地,节点2(主机或另一VDP加速器)具有根密钥对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和经由交换机109通信地联接至主机的多个数据处理(DP)加速器105至107的硬件配置400的框图。每个DP加速器(例如,105)均可配置为多个(例如,四个)虚拟数据处理(VDP)加速器105A至105D。DP加速器的每个VDP加速器可经由虚拟通信信道402与不同DP加速器的另一VDP加速器通信。例如,VDP加速器105A可配置成经由交换机109与主机104和VDP加速器106A和107A通信。VDP加速器105B可配置成与主机104和VDP加速器106B和107B通信。VDP加速器105C可配置成与主机104和VDP加速器106C和107C通信。VDP加速器105D可配置成与主机104和VDP加速器106D和107D通信。这些只是示例性配置。在实施方式中,任何VDP加速器均可配置成经由交换机109的虚拟通信信道402与任何其它VDP加速器通信。
为了实现配置,主机104和DP加速器105至107中的每个均可生成一个或多个邻接表,邻接表指示在DP加速器内配置的VDP加速器。DP加速器中的VDP加速器还可各自具有邻接表和会话密钥,邻接表指示每个VDP加速器可与之通信的其它VDP加速器以及用于保护虚拟通信信道402上的通信的会话密钥。
主机104通信地联接至DP加速器105、106和107中的每个。DP加速器105经由交换机109通信地联接至DP加速器106和107。主机104包括具有通信地联接至交换机109的一个或多个端口的通信接口。在图4中,DP加速器105的通信端口0可通信地联接至交换机109的通信端口0。DP加速器106的通信端口0可通信地联接至交换机109的通信端口1。DP加速器107的通信端口0可通信地联接至交换机109的通信端口2。DP加速器105至107也经由交换机109彼此通信联接。
上面的每个通信联接的物理端口对限定了物理通信信道401。每个物理通信信道401均可分成多个虚拟通信信道402。每个物理通信信道401的虚拟通信信道402的数量可大于或等于DP加速器为其配置的VDP加速器的数量。例如,如果DP加速器105配置有四个虚拟DP加速器,则DP加速器105的通信端口0可各自配置有四个或更多个虚拟通信信道402,使得存在与DP加速器105的每个VDP加速器105A至105D相关联的虚拟通信信道402。一个或多个附加虚拟通信信道402可经由交换机109配置在主机104与DP加速器105至107中的任一个之间,或者DP加速器105至107中的任一个之间。这种附加的虚拟通信信道402可用于在主机104与DP加速器之间或在DP加速器之间传送带外信息。在实施方式中,主机104可与DP加速器105通信以向DP加速器105传送配置信息,包括DP加速器105要为自身配置所识别的数量的VDP加速器的指令,每个VDP加速器均分配给一个或多个虚拟通信信道402。每个虚拟通信信道402均可具有与虚拟通信信道402的任何其他虚拟通信信道不同的会话密钥。如上针对DP加速器105描述的,主机104类似地指示其它DP加速器(106、107等)配置它们自己以及它们的VDP加速器和虚拟通信信道。
前述虚拟通信信道402中的每个均可通过与其它虚拟通信信道402不同的会话密钥来保护。因此,如果虚拟通信信道402中的任一个被损害,则其它虚拟通信信道402仍然是安全的。每个DP加速器105至107均可监视它自己的物理通信信道401,以确保每个通信信道401可操作。每个虚拟DP加速器均还可监视虚拟DP加速器所连接的虚拟通信信道402,以确保每个虚拟通信信道402可操作。如果虚拟通信信道402发生故障,则检测到该故障的VDP加速器可向其中配置了该VDP加速器的DP加速器通知该故障。DP加速器然后可使用保留用于带外通信的附加虚拟通信信道402中的一个来将故障通知给主机104。带外通信是用于主机104与VDP加速器之间或两个VDP加速器之间的工作相关通信之外的目的的那些通信。
主机104和虚拟DP加速器105A至105D、106A至106D和107A至107D中的每个均可具有邻接表,该邻接表存储主机104或VDP加速器105至107通信联接的节点(主机或VDP加速器)列表。下面参考图5描述邻接表。
图5A和图5B是示出了在主机104与多个虚拟DP加速器(VDP加速器)之间的安全通信邻接表500的框图。图5A示出了交换机109的示例性邻接表510。图5B分别示出了VDP加速器105B和106B的两个示例性邻接表520和521。
如上参考图4所述,每个DP加速器均可配置为具有多个虚拟数据处理(VDP)加速器。VDP加速器经由在交换机109与DP加速器的通信端口之间的物理通信信道401上实现的虚拟通信信道402与主机104和其它DP加速器的其它VDP加速器通信。在实施方式中,主机104和交换机109可实现主机与交换机之间的虚拟通信信道,但这不是必须的。主机104和交换机109可通过总线、物理端口或其它机制实现物理或虚拟通信信道。交换机109在交换机109与VDP加速器之间实现虚拟通信信道。
例如,主机104可具有邻接表500,其列出了通信地联接至主机104的VDP加速器。VDP加速器(例如,105A至105D、106A至106D和107A至107D)可各自具有唯一的虚拟设备ID(VID)501,例如VDP_105A_ID等,使得VDP加速器可通过名称来引用。在实施方式中,当主机想要向VDP加速器发送消息时,该消息可具有格式[源,message_payload(消息_有效载荷),目的地]。消息可以是由发送者指定的任何有效载荷。示例性有效载荷包括对VDP加速器的指令,以配置其自身用于与另一节点(主机或VDP加速器)的安全通信。有效载荷可包括从VDP加速器传送至另一VDP加速器的计算任务。有效载荷可包括另一VDP加速器将结果发送回给另一VDP加速器分配任务的VDP加速器。有效载荷还可以是主机与VDP加速器之间或两个VDP加速器之间的任何带外通信。带外通信可以是与执行终端用户或应用处理工作无关的任何通信。
主机,作为发送者(源),可通过其自己的VID 501(例如HOST_104_ID)来引用其自身。主机104可通过其唯一的VID 501(例如VDPA_106B_ID)来表示目的地VDP加速器。主机可查找目的地VDP加速器的VID 501,例如VDPA_106B_ID,以寻找对应于VDPA_106B_ID的会话密钥,并用会话密钥对消息有效载荷进行加密。当交换机109从主机104接收到去往VDP加速器的消息时,交换机109可使用交换机邻接表510来查找目的地(例如,VDPA_106B_ID)的VID501,以寻找用于VDPA_106B_ID的交换机109的虚拟信道503,并且通过虚拟通信信道将该消息转发至VDPA 106B,到目的地VDP加速器。
主机邻接表500还可包括与主机和经由虚拟通信信道402通信地联接至主机的特定VDP加速器相关的上下文信息505。上下文信息可包括主机进程(“Host_Proc_ID“)的标识符,其中,主机进程调用VDP加速器以代表主机104执行工作。上下文信息还可包括代表主机104执行工作的VDP加速器上的进程的标识符(例如,“VDPA_Proc_ID”)。上下文信息还可包括主机进程的状态,例如“等待来自VDP加速器进程的结果”和/或代表主机104执行工作的VDP加速器进程的状态,例如“等待VDP加速器106B子任务结果”或其它状态。上下文信息还可包括与主机进程相关联的用户的标识符(User_ID)。总而言之,上下文信息可用于回答主机处的用户查询,诸如“我请求的人工智能(AI)模型推断的状态是什么?”。主机104上的逻辑可查询邻接表以寻找具有特定User_ID的用户的上下文信息,然后确定正在为用户执行AI模型推断的每个VDP加速器和相关进程的状态。确定这种状态可包括对一个或多个VDP加速器的带外查询,以确定进程的具体子任务是否已在具体的VDP加速器处失败。可生成其他上下文信息,该其他上下文信息可用于帮助诊断由一个或多个VDP加速器代表调用者(例如,主机104)对一个或多个VDP加速器的一个或多个处理任务的性能。
在实施方式中,主机将工作委托给单个VDP加速器,指示将工作的一个或多个子任务委托给一个或多个VDP加速器。在实施方式中,单个VDP加速器可确定可执行一个或多个子任务的空闲VDP加速器,并且VDP可确定要委托给空闲VDP加速器的具体子任务。在实施方式中,主机104可向单个VDP加速器提供关于将一个或多个子任务委托给哪个VDP加速器的指令,并且该单个VDP加速器可覆盖主机的指令,以利于单个VDP加速器确定一个或多个VDP加速器当前是空闲的和可用的。
类似于主机104,交换机109可具有将DP加速器和VDP加速器映射到虚拟通信信道的邻接表510。交换机邻接表510中的每个行项目均可包括节点(主机、DP加速器或VDP加速器)的虚拟设备ID 501、物理通信端口502和虚拟通信信道503。例如,如交换机邻接表510中所示,DP加速器105可具有DPA_105_ID的VID。DP加速器105可映射到交换机109的物理端口0,并且具体地映射到交换机109的例如0.0的虚拟信道(物理信道0上的第0个虚拟信道)。主机104可向DP加速器105发送包含DP加速器105要配置四个虚拟DP加速器105A至105D的指令的消息。交换机109接收该消息,在交换机邻接表510中查找DPA_105_ID,并通过交换机109的物理端口0的虚拟信道0.0将该消息传送至目的地DP加速器105。
类似于主机104,DP加速器(例如,DP加速器105)可具有多个邻接表510A至510D,每个邻接表均用于DP加速器105的VDP加速器105A至105D中的每个。在图5B中,分别示出了VDP加速器105B和106B的示例性VDP加速器邻接表520和521。类似地,派生了用于任何其它VDP加速器(105A、105C至105D、106A、106C至106D和107A至107D)的VDP加速器邻接表。VDP加速器105B的邻接表521可包括端点虚拟ID 511(例如,HOST_104_ID,或相邻的VDP加速器VDPA_106B_ID和VDPA_107B_ID),以及会话密钥514,当在虚拟通信信道上与具有VID 511的相邻节点进行通信时使用该会话密钥514。类似地,派生了VDP 106B的邻接表(在图5B中示为521)。
每个邻接表(例如,521)均还可具有上下文信息(例如,505),用于处理可在相邻VDP加速器内执行的任务。上下文信息505可包括例如调用VDP加速器的节点(主机或VDP加速器)的标识,例如,调用VDP加速器105A的主机104。上下文信息505还可包括被调用VDP加速器的进程和节点(主机104或VDP加速器)的调用者状态,例如:Host_104_ID:Process_ID指示由调用例如VDP加速器105B的Process_ID标识的进程,并且等待对该调用的响应。VDP加速器105B可能已调用VDP加速器106B来执行形成VDP加速器105B正在为调用过程Host_104_ID:Process_ID执行的处理任务的子任务的工作。相对于被调用的VDP加速器106B而言,VDP加速器105B的调用状态是VDP加速器105B正在等待VDP加速器106B返回结果,然后VDP加速器105B才能将结果返回给Host_104_ID:Process_ID。与VDP加速器105B相邻的VDP加速器107B可以是空闲的,因此没有识别的调用者。
可为两个节点(主机104至VDP加速器,或VDP加速器至VDP加速器)之间的每个虚拟通信信道402生成会话密钥。上面参考图3描述了在两个节点之间生成会话密钥,下面参考图6描述了一种方法。会话密钥NULL(空)表示在具有NULL会话密钥的邻接表的行项目中引用的两个节点之间还没有确定会话密钥。当DP加速器从主机104接收指令和配置信息以在DP加速器上配置VDP加速器,并为每个VDP加速器生成邻接表时,将每个行项目的会话密钥字段最初设置为NULL。当为邻接表中的行项目生成会话密钥时,用生成的会话密钥替换NULL。当已经为DP加速器的所有VDP加速器中的邻接表的所有行项目生成了所有会话密钥时,则DP加速器可向主机104发送DP加速器及其相应的VDP加速器准备好接收处理任务的指示。当所有DP加速器向主机104发送这样的指示时,则主机104可使用所有配置的VDP加速器来执行处理任务。
图6是示出根据实施方式的主机设备指示多个虚拟数据处理加速器将其自身配置成用于安全通信的方法600的框图。
在操作601中,主机设备确定通信地联接至主机的通信端口的数据处理加速器(DPA)的列表。该确定可从例如列出DPA的DPA标识符的管理员配置文件做出。然后,主机可发送指令,以及可选地配置信息,指令和可选地配置信息指示每个DPA均将其自身配置为具有多个虚拟数据处理加速器(VDPA),并为DPA中的每个VDPA生成邻接表(例如,图5,表520或521)。
在操作602中,主机(例如,主机104)生成并存储邻接表,该邻接表列出了配置用于在虚拟通信信道上与主机进行通信的每个虚拟数据处理加速器(VDPA)。在实施方式中,一个或多个VDP加速器可由系统管理员使用配置文件来配置。配置文件可指示哪些VDP加速器可与哪些其它VDP加速器通信。配置文件可指定主机和VDP加速器的唯一标识符、每个DP加速器所分配的具体通信端口号、以及用于与VDP加速器通信的具体通信端口的虚拟通信信道。可有任何数量的VDP加速器。为简单起见,描述了一个主机104和三个DP加速器(例如,105至107),每个DP加速器均配置成用于四个VDP加速器。三个DP加速器各自具有四个VDP加速器的描述是示例性的而非限制性的。系统可配置有任意数量的主机,以及任意数量的DP加速器,每个DP加速器均配置有任意数量的VDP加速器。为主机生成的邻接表可类似于上面参考图5描述的主机表500。
在操作603中,主机中的逻辑可通过交换机109的虚拟通信信道遍历配置成用于与主机通信的VDP加速器的列表。对于每个VDP加速器,可执行操作604至606。如果列表中没有更多的VDP加速器,则方法600结束。
在操作604中,主机从列表中选择VDP加速器,并利用所选择的VDP加速器生成会话密钥。上面参考图3描述了在VDP加速器与主机(节点)之间生成会话密钥。主机将所生成的会话密钥存储在与所选择的VDP加速器相对应的主机邻接表中的条目中。主机使用管理员配置文件来完成用于所选择的VDP加速器的邻接表中的条目的行项目,包括VDP加速器的唯一标识符以及用于所选择的VDP加速器的任何相关上下文信息(如果有的话)。
在操作605中,主机向用于VDP加速器的所选VDP加速器传送指令以创建其自己的邻接表。主机传送的指令中的信息可从管理员配置文件中获得。指令包括在所选择的VDP加速器生成其自己的邻接表时所选择的VDP加速器将要包括的其它VDP加速器的列表。指令还可包括其它VDP加速器中的每个的唯一识别符和所生成的会话密钥。VDP加速器将为每个VDP加速器生成的会话密钥存储在与每个VDP加速器的VDP标识符(例如,图5的511)相关联的邻接表中的其自己的行项目中。指令还包括所选择的VDP加速器将与所选择的VDP加速器的邻接表中的其它VDP加速器中的每个生成会话密钥并存储。下面参考图7描述用于所选择的VDP加速器生成其自己的邻接表的方法。
在操作606中,主机从所选择的VDP加速器接收这样的信号,即所选择的VDP加速器已生成其自己的邻接表,用以上在操作605中提供的信息填充邻接表,并且已为所选择的VDP加速器的邻接表中的其它VDP加速器中的每个生成并存储会话密钥。在实施方式中,DP加速器可监视操作603至605的完成,并且当对于配置成用于DP加速器的所有VDP加速器完成操作603至605时,则DP加速器可向主机发送DP加速器的VDP加速器中每个均已配置并且具有会话密钥的单个消息。方法600在操作603处继续。
图7是示出根据实施方式的虚拟数据处理加速器将自身配置成用于与一个或多个其它虚拟数据处理加速器进行安全通信的方法700的框图。
在操作701中,DP加速器从主机设备接收指令,以生成多个虚拟DP加速器(VDP加速器),并为所生成的VDP加速器中的每个生成通信连接的节点(主机或VDP加速器)的邻接表。上面参考图5描述了示例性邻接表。主机传送的指令中的信息可由主机从管理员创建的配置文件获得。在实施方式中,指令可以是默认指令。
在操作702中,对于由DP加速器生成的VDP加速器中的每个,选择VDP加速器,并且DP加速器逻辑执行或致使所选择的VDP加速器执行以下操作703至706。当不再有VDP加速器要处理时,则方法700结束。
在操作703中,所选择的VDP加速器接收为所选择的VDP加速器生成邻接表的指令,该邻接表列出所选择的VDP经由所选择的VDP加速器与多个节点中的一个节点之间的虚拟通信信道通信地联接至的多个节点(主机或其它VDP加速器)。所选择的VDP加速器还接收与多个节点中的每个生成会话密钥的指令。
在操作704中,VDP加速器根据在操作703中接收的指令为所选择的VDP加速器生成并存储邻接表。如上所述,在图5中,邻接表可包括用于所选择的VDP加速器通信地联接至的其它节点(主机或VDP加速器)中的每个的行项条目。用于每个行项条目的信息可包括虚拟设备标识符(VID,例如图5,表510、VID 501)、所选择的DP加速器的通信端口(其对应于主管所选择的VDP加速器的DP加速器的物理端口(例如图5的502))、虚拟通信信道标识符(例如,图5的503),以及用于存储为在所选择的VDP加速器与其他节点之一之间的通信而生成的会话密钥的会话密钥字段。
在操作705中,所选择的VDP加速器为配置成用于与所选择的VDP加速器通信的其它节点(主机或VDP加速器)中的每个生成会话密钥。会话密钥存储在所选择的VDP加速器的邻接表的行项条目中,该行项条目与节点相关联。所选择的VDP加速器在所选择的VDP加速器与所选择的VDP加速器的其它相邻节点(主机或VDP加速器)中的每个之间生成不同的会话密钥。会话密钥用于在所选择的VDP加速器与其它节点之一之间进行通信。上面参考图3描述了在VDP加速器与节点(主机或VDP加速器)之间生成会话密钥。VDP加速器逻辑将会话密钥存储在与所选择的VDP加速器相关联的所选择的VDP加速器的邻接表中。
在操作706中,如果不再需要为DP加速器配置VDP加速器,并且因此不再需要为DP加速器的VDP加速器生成会话密钥,则DP加速器向主机传送这样的消息或信号,即DP加速器已完成配置VDP加速器,并且生成用于VDP加速器的邻接表和用于与邻接表中的其它VDP加速器中的每个进行安全通信的会话密钥。在实施方式中,邻接表中的每个会话密钥均与邻接表中的其它会话密钥不同。在实施方式中,DP加速器的每个配置的VDP加速器均分别通知主机104已配置了VDP加速器,并且为VDP加速器生成了会话密钥。在实施方式中,每个配置的VDP加速器均向主管VDP加速器的DP加速器通知:配置了VDP加速器,并且已为VDP加速器生成了会话密钥。然后,当配置了所选择的DP加速器的所有VDP加速器并且生成了会话密钥时,DP加速器通知主机104。方法700在操作702处继续。
图8是示出根据实施方式的虚拟数据处理(VDP)加速器从主机接收处理任务并通过一个或多个附加VDP加速器执行任务的一个或多个子任务的方法800的框图。
在操作801中,VDP加速器从主机设备接收处理任务。在实施方式中,处理任务包括关于将处理任务划分为要在至少一个附加VDP加速器上处理的子任务的指令,并且VDP加速器在VDP加速器的邻接表中具有用于与至少一个附加VDP加速器安全地通信的条目。在该实施方式中,假设主机已确定至少一个附加VDP加速器是空闲的,或者很快将是空闲的,使得至少一个附加VDP加速器可代表VDP加速器执行一个或多个子任务。
在操作802中,VDP加速器将一个或多个子任务传送到至少一个附加VDP加速器,以及执行子任务的指令。使用为在VDP加速器与至少一个附加VDP加速器之间使用而生成的会话密钥来保护传送一个或多个子任务的消息。至少一个附加VDP加速器执行一个或多个子任务。
在操作803中,VDP加速器还执行所接收的处理任务的一个或多个子任务。
在操作804中,VDP加速器从至少一个附加VDP加速器接收一个或多个结果。VDP加速器完成其处理任务的一个或多个子任务,并且向主机返回来自由VDP加速器执行的一个或多个子任务和由至少一个附加VDP加速器执行的一个或多个子任务的一个或多个结果。方法800结束。
DPA之间的对等通信可扩展以使用广播协议通过DPA之间的通信链或经由联接至DPA的通信交换机(诸如PCIe交换机)将消息从主机广播到选择数量的DPA(或DPA的子集或指定的DPA)。在需要主机将消息传送到多个DPA的情况下,可使用广播。当主机的应用程序调度要由DPA的子集(或指定的DPA)处理的作业并且要求该应用程序向DPA的子集发送相同的信息(例如,输入数据或模型)时,发生广播通信。广播协议可使用基于会话的对称密钥加密方案来实现。
此外,当多个应用程序/用户请求广播时,主机服务器可使DPA为每个相应的DPA产生一个或多个虚拟DPA(VDPA),每个VDPA利用DPA的资源的一部分来服务于一个或多个应用程序。DPA的虚拟化可由DPA的虚拟化模块(例如,图2的虚拟化模块282)管理,以为一个或多个应用程序提供沙箱环境。在一个实施方式中,主机服务器保持映射到一个或多个应用程序的VDPA的映射表,从而相应应用程序的通信数据由主机服务器路由到所映射的VDPA。当应用程序终止时,VDPA可被释放。相邻的VDPA可彼此通信,只要它们是为相同的一个或多个应用程序而产生的。
例如,参考图4,主机104的第一应用程序可向DPA 105至107请求广播,该请求使得主机104利用虚拟通信信道402A产生第一组虚拟DPA(105A、106A和107A),该虚拟通信信道402A具有与用于DPA 105至107的物理通信信道401的端口和配置相同的端口和配置。主机104的第二应用程序可向DPA 105至107请求广播,该请求使主机104产生第二组虚拟DPA(105B、106B和107B)。主机104的第三应用程序可向DPA 105至107请求广播,该请求使主机104产生第三组虚拟DPA(105C、106C和107C)。主机104的第四应用程序可向DPA 105至107请求广播,该请求使得主机104产生第四组虚拟DPA(105D、106D和107D)等。每组虚拟DPA均具有相应的虚拟通信信道402,该虚拟通信信道402具有与用于该组VDPA的物理通信信道401的端口和配置相同的端口和配置。联接至通信交换机(或交换机)109的VDPA中的每个(例如,105B)与联接至交换机109的所有其它VDPA(例如,106B至107B)相邻。基于邻接表,诸如图5A至图5B的表520,VDPA可通过交换机109将数据路由到其它VDPA。这里,交换机109可将数据从一个端口移动至另一端口。
图9是示出根据实施方式的主机和一个或多个虚拟数据处理加速器的广播协议的流程图。广播通信是指从主机或DPA或VDPA到许多听众(例如,许多DPA或VDPA)(例如,一对多关系)的数据通信,而不是一对一关系。接收VDPA可包括许多VDPA,包括与一个或多个主机通信的VDPA,或者与请求广播的请求应用程序通信的一个主机相关联的VDPA的子集。参考图9,方法900可由主机104和通信地联接至主机104的一个或多个VDPA 105至107执行,其中,VDPA经由如图4中所示的交换机彼此联接。
在一个实施方式中,在框901处,主机104从主机104的应用程序接收用于向DPA105至107的子集广播的广播请求。广播请求可以是向与主机104通信的DPA的子集广播相同或可重复的消息的请求。广播请求可通过DPA标识符将DPA子集标识为联接至主机104的DPA列表的一部分。在框902处,主机104基于联接至主机104的DPA生成VDPA列表,并生成将应用程序映射到生成的VDPA列表的映射表。主机104可向DPA发送请求,以使DPA基于映射表产生VDPA。在一个实施方式中,映射表指定与VDPA相关联的虚拟通信信道(例如,信道402)和端口,其中,VDPA将利用相应DPA的数据处理资源的一部分。基本上,VDPA将像DPA一样工作,但是在虚拟沙箱中向许多用户应用程序或环境(每个都具有它们自己的虚拟化DPA和通信信道的集合)提供数据处理资源。
一旦产生VDPA(例如,在本示例中为应用产生了105A、106A和107A),在框904处,主机104向VDPA的子集发送对与VDPA相关联的公共密钥的请求。公共密钥可以是由用于VDPA中的每个的安全单元的根密钥派生的安全密钥对的一部分。在框905处,VDPA生成派生的安全密钥对,其中,在框906处,这些密钥对的派生的私有密钥保持在VDPA的本地,并且将这些密钥对的派生的公共密钥发送至主机104。
在框907处,主机104选择广播VDPA。在一个实施方式中,可基于到来自广播VDPA的VDPA的子集中的每个的最短距离的平均值来选择广播VDPA,以使广播延迟最小化。在另一实施方式中,广播VDPA可基于当前调度的计算负载,或与其余VDPA相比的VDPA的可用计算容量来选择。在另一实施方式中,VDPA可基于随机数生成器随机选择。对于该示例,出于说明的目的,所选择的广播VDPA是VDPA 105A。在框908处,主机104将公共密钥发送至广播VDPA 105A,并且可选地,生成广播会话密钥并将其发送至广播VDPA 105A,其中,广播会话密钥是用于对广播通信会话进行加密和解密的对称密钥。在另一实施方式中,广播会话密钥由广播VDPA 105A在本地生成,并且广播会话密钥由广播VDPA 105A发送至主机104。在一个实施方式中,广播会话密钥可以是随机生成的会话密钥。
在框909处,在接收到公共密钥(以及可选地广播会话密钥)时,VDPA 105A利用公共密钥中的每个对广播会话密钥进行加密,以生成一组消息。在另一实施方式中,框909可由主机104执行,例如,主机104用公共密钥中的每个对广播会话密钥进行加密以生成一组消息,并且主机104将该组消息发送至VDPA 105A。
在框910处,广播VDPA 105A基于邻接表(例如,图5B的表520)将加密的广播会话密钥广播到广播VDPA 105A的相邻VDPA。由于该组的所有VDPA(例如,106A、107A)通过交换机与VDPA 105A相邻,所以VDPA 106A至107A将接收广播。
在框911处,在分配广播消息时,VDPA 105A通知主机104广播会话密钥被传递至相邻的VDPA。在框912处,接收加密的广播会话密钥的VDPA子集(例如,VDPA 105A至107A)中的每个均使用对应于VDPA的私有密钥进行解密并获得广播会话密钥。
此后,请求应用程序要广播的数据可由主机104基于广播会话密钥进行加密,并且数据可从主机104发送至广播VDPA 105A以进行传播,或者广播VDPA 105A基于广播会话密钥对数据进行加密,并且将加密的数据发送至相邻VDPA。在接收到广播数据时,具有广播会话密钥的VDPA的子集可解密并获得广播数据。在一些实施方式中,还可使用基于图5A至如5B的邻接表的相邻会话密钥来对上述相邻VADP之间的任何通信(或广播)进行加密。
图10是示出根据实施方式的用于主机执行广播的示例性方法的流程图。过程1000可由可包括软件、硬件或其组合的处理逻辑来执行。例如,过程1000可由主机系统执行,例如图4或图9的主机104。参考图10,在框1001处,处理逻辑确定经由交换机通信地联接至主机的数据处理加速器(DPA)的列表,并将可用DPA通知应用程序。在框1002处,响应于应用程序请求向DPA的子集广播,处理逻辑通过向DPA发送产生VDPA的请求来发起为DPA产生VDPA。在一个实施方式中,仅为DPA的子集产生VDPA的子集。在一个实施方式中,处理逻辑生成映射表以将应用程序映射到所产生的VDPA。在框1003处,处理逻辑通知VDPA的子集并收集用于VDPA的子集的公共密钥。在框1004处,处理逻辑向广播VDPA传送公共密钥。这里,可基于广播VDPA到其余VDPA的最近距离的平均值,或者基于DPA的计算能力的可用性,或者基于随机选择等来选择广播VDPA。在框1004处,处理逻辑接收指示以下的信号:广播VDPA已使用用于VDPA子集的公共密钥对广播会话密钥进行加密以生成一组加密的广播会话密钥,并将该组加密的广播会话密钥广播到一个或多个VDPA中的每个,其中,只有VDPA子集可解密并获得广播会话密钥。在另一实施方式中,主机104使用用于VDPA子集的公共密钥对广播会话密钥进行加密,并将加密的密钥发送至广播VDPA以进行传播。
图11是示出根据实施方式的用于虚拟数据处理加速器执行广播的示例性方法的流程图。过程1100可由可包括软件、硬件或其组合的处理逻辑来执行。例如,过程1100可由VDPA执行,诸如图4或图9的VDPA 105A。参考图11,在框1101处,响应于经由通信交换机从应用程序接收到广播指令,该广播指令指定多个虚拟DP加速器中的一个或多个(例如,子集)虚拟DP加速器来接收广播消息,处理逻辑基于用于广播通信会话的广播会话密钥来对广播消息进行加密。在框1102处,处理逻辑确定一个或多个安全密钥对的一个或多个公共密钥,每个安全密钥对均与指定的虚拟DP加速器之一相关联。在框1103处,处理逻辑基于所确定的一个或多个公共密钥对多个广播会话密钥进行加密。在框1104处,处理逻辑向虚拟DP加速器广播加密的广播消息和一个或多个加密的广播会话密钥,其中,指定的虚拟DP加速器基于与指定的虚拟DP加速器相关联的相应私有密钥来对加密的广播会话密钥进行解密,其中,基于广播会话密钥来对消息进行解密。
在一个实施方式中,接收广播指令的虚拟DP加速器是由应用程序选择来广播消息的广播虚拟DP加速器。在一个实施方式中,每个虚拟DP加速器的公共密钥和私有密钥与虚拟DP加速器的安全密钥对相关联,并且安全密钥对是由DP加速器的安全单元生成的派生安全密钥。
在一个实施方式中,通信交换机经由对应于DP加速器的物理通信信道联接至多个DP加速器中的每个。在一个实施方式中,基于为DP加速器配置的虚拟DP加速器的数量,将每个物理通信信道分成多个虚拟通信信道。
在一个实施方式中,多个虚拟DP加速器中的非指定虚拟DP加速器接收用于加密的广播会话密钥的广播,但是没有相应的密钥来对加密的广播会话密钥进行解密以生成广播会话密钥,并且非指定虚拟DP加速器不能访问广播会话密钥以对通信会话的广播消息进行解密。在一个实施方式中,一个或多个指定的虚拟DP加速器将同时执行一个或多个数据处理任务。
关于以上方面中的任一方面,主机处理器可以是中央处理单元(CPU),以及DP加速器可以是通过总线或互连件联接至CPU的通用处理单元(GPU)。DP加速器可以以专用集成电路(ASIC)、现场可编程门阵列(FPGA)设备或其它形式的集成电路(IC)的形式来实现。可替代地,主机处理器可以是主数据处理系统的一部分,而DP加速器可以是作为主系统可通过网络远程卸载其数据处理任务的辅助系统的许多分布式系统中的一个(例如,诸如软件即服务或SaaS系统或者平台即服务或Paas系统的云计算系统)。主机处理器与DP加速器之间的链路可以是外围部件互连快速(PCIe)链路或诸如以太网连接的网络连接。
应注意,如上文示出和描述的部件中的一些或全部可在软件、硬件或其组合中实施。例如,此类部件可实施为安装并存储在永久性存储装置中的软件,所述软件可通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请所述的过程或操作。可替代地,此类部件可实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,所述可执行代码可经由来自应用的相应驱动程序和/或操作系统来访问。此外,此类部件可实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。
图12是示出可与本发明的一个实施方式一起使用的数据处理系统的示例的框图。例如,系统1500可表示以上所述的执行上述过程或方法中的任一个的任何数据处理系统,例如,上面描述的客户端设备或服务器,诸如例如如上所述的主机104或DPA 105至107或VDPA 105A至107D。
系统1500可包括许多不同的部件。这些部件可实施为集成电路(IC)、集成电路的部分、分立电子装置或适用于电路板(诸如,计算机系统的主板或插入卡)的其它模块或者实施为以其它方式并入计算机系统的机架内的部件。
还应注意,系统1500旨在示出计算机系统的许多部件的高阶视图。然而,应当理解的是,某些实施例中可具有附加的部件,此外,其它实施例中可具有所示部件的不同布置。系统1500可表示台式计算机、膝上型计算机、平板计算机、服务器、移动电话、媒体播放器、个人数字助理(PDA)、智能手表、个人通信器、游戏装置、网络路由器或集线器、无线接入点(AP)或中继器、机顶盒或其组合。此外,虽然仅示出了单个机器或系统,但是术语“机器”或“系统”还应当理解为包括单独地或共同地执行一个(或多个)指令集以执行本文所讨论的任何一种或多种方法的机器或系统的任何集合。
在一个实施方式中,系统1500包括经由总线或互连件1510连接的处理器1501、存储器1503以及装置1505至1508。处理器1501可表示其中包括单个处理器内核或多个处理器内核的单个处理器或多个处理器。处理器1501可表示一个或多个通用处理器,诸如,微处理器、中央处理单元(CPU)等。更具体地,处理器1501可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理器1501还可以是一个或多个专用处理器,诸如,专用集成电路(ASIC)、蜂窝或基带处理器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、通信处理器、加密处理器、协处理器、嵌入式处理器、或者能够处理指令的任何其它类型的逻辑。
处理器1501(其可以是低功率多核处理器套接口,诸如超低电压处理器)可充当用于与所述系统的各种部件通信的主处理单元和中央集线器。这种处理器可实施为片上系统(SoC)。处理器1501配置成执行用于执行本文所讨论的操作和步骤的指令。系统1500还可包括与可选的图形子系统1504通信的图形接口,图形子系统1504可包括显示控制器、图形处理器和/或显示装置。
处理器1501可与存储器1503通信,存储器1503在一个实施方式中可经由多个存储器装置实施以提供给定量的系统存储。存储器1503可包括一个或多个易失性存储(或存储器)装置,诸如,随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或者其它类型的存储装置。存储器1503可存储包括由处理器1501或任何其它装置执行的指令序列的信息。例如,各种操作系统、装置驱动程序、固件(例如,输入输出基本系统或BIOS)和/或应用的可执行代码和/或数据可加载到存储器1503中并由处理器1501执行。操作系统可以是任何类型的操作系统,例如,来自公司的/>操作系统、来自苹果公司的Mac/>来自/>公司的/>或者诸如VxWorks的其它实时或嵌入式操作系统。
系统1500还可包括IO装置,诸如装置1505至1508,包括网络接口装置1505、可选的输入装置1506,以及其它可选的IO装置1507。网络接口装置1505可包括无线收发器和/或网络接口卡(NIC)。所述无线收发器可以是WiFi收发器、红外收发器、蓝牙收发器、WiMax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(GPS)收发器)或其它射频(RF)收发器或者它们的组合。NIC可以是以太网卡。
输入装置1506可包括鼠标、触摸板、触敏屏幕(其可与显示装置1504集成在一起)、指针装置(诸如,手写笔)和/或键盘(例如,物理键盘或作为触敏屏幕的一部分显示的虚拟键盘)。例如,输入装置1506可包括联接到触摸屏的触摸屏控制器。触摸屏和触摸屏控制器例如可使用多种触敏技术(包括但不限于电容、电阻、红外和表面声波技术)中的任一种,以及其它接近传感器阵列或用于确定与触摸屏接触的一个或多个点的其它元件来检测其接触和移动或间断。
IO装置1507可包括音频装置。音频装置可包括扬声器和/或麦克风,以促进支持语音的功能,诸如语音识别、语音复制、数字记录和/或电话功能。其它IO装置1507还可包括通用串行总线(USB)端口、并行端口、串行端口、打印机、网络接口、总线桥(例如,PCI-PCI桥)、传感器(例如,诸如加速度计运动传感器、陀螺仪、磁强计、光传感器、罗盘、接近传感器等)或者它们的组合。装置1507还可包括成像处理子系统(例如,摄像机),所述成像处理子系统可包括用于促进摄像机功能(诸如,记录照片和视频片段)的光学传感器,诸如电荷耦合装置(CCD)或互补金属氧化物半导体(CMOS)光学传感器。某些传感器可经由传感器集线器(未示出)联接到互连件1510,而诸如键盘或热传感器的其它装置可根据系统1500的具体配置或设计由嵌入式控制器(未示出)控制。
为了提供对诸如数据、应用、一个或多个操作系统等信息的永久性存储,大容量存储装置(未示出)也可联接到处理器1501。在各种实施方式中,为了实现更薄且更轻的系统设计并且改进系统响应性,这种大容量存储装置可经由固态装置(SSD)来实施。然而,在其它实施方式中,大容量存储装置可主要使用硬盘驱动器(HDD)来实施,其中较小量的SSD存储装置充当SSD高速缓存以在断电事件期间实现上下文状态以及其它此类信息的非易失性存储,从而使得在系统活动重新启动时能够实现快速通电。另外,闪存装置可例如经由串行外围接口(SPI)联接到处理器1501。这种闪存装置可提供系统软件的非易失性存储,所述系统软件包括所述系统的基本输入/输出软件(BIOS)以及其它固件。
存储装置1508可包括计算机可访问的存储介质1509(也称为机器可读存储介质或计算机可读介质),其上存储有体现本文所述的任何一种或多种方法或功能的一个或多个指令集或软件(例如,模块、单元和/或逻辑1528)。处理模块/单元/逻辑1528可表示上述部件中的任一个,图4的主机服务器104或DPA 105至107。处理模块/单元/逻辑1528还可在其由数据处理系统1500、存储器1503和处理器1501执行期间完全地或至少部分地驻留在存储器1503内和/或处理器1501内,数据处理系统1500、存储器1503和处理器1501也构成机器可访问的存储介质。处理模块/单元/逻辑1528还可通过网络经由网络接口装置1505进行传输或接收。
计算机可读存储介质1509也可用来永久性地存储以上描述的一些软件功能。虽然计算机可读存储介质1509在示例性实施方式中被示为单个介质,但是术语“计算机可读存储介质”应当被认为包括存储所述一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应当被认为包括能够存储或编码指令集的任何介质,所述指令集用于由机器执行并且使得所述机器执行本发明的任何一种或多种方法。因此,术语“计算机可读存储介质”应当被认为包括但不限于固态存储器以及光学介质和磁性介质,或者任何其它非暂时性机器可读介质。
本文所述的处理模块/单元/逻辑1528、部件以及其它特征可实施为分立硬件部件或集成在硬件部件(诸如,ASICS、FPGA、DSP或类似装置)的功能中。此外,处理模块/单元/逻辑1528可实施为硬件装置内的固件或功能电路。此外,处理模块/单元/逻辑1528可以以硬件装置和软件部件的任何组合来实施。
应注意,虽然系统1500示出为具有数据处理系统的各种部件,但是并不旨在表示使部件互连的任何特定架构或方式;因为此类细节和本发明的实施方式没有密切关系。还应当认识到,具有更少部件或可能具有更多部件的网络计算机、手持计算机、移动电话、服务器和/或其它数据处理系统也可与本公开的实施方式一起使用。
前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储装置、传输或显示装置内类似地表示为物理量的其它数据。
附图中所示的技术可使用在一个或多个电子设备上存储和执行的代码和数据来实现。这种电子设备使用计算机可读介质来存储和传送(内部地和/或通过网络与其他电子设备通信)代码和数据,计算机可读介质诸如为非暂时性计算机可读存储介质(例如磁盘;光盘;随机存取存储器;只读存储器;快闪存储器装置;相变存储器)和暂时性计算机可读传输介质(例如,电、光、声或其它形式的传播信号-诸如载波、红外信号、数字信号)。
前述附图中所描绘的过程或方法可由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可按不同的顺序执行。此外,一些操作可并行地执行而不是顺序地执行。
在以上的说明书中,已经参考本发明的具体示例性实施方式对本发明的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本发明的更宽泛精神和范围的情况下,可对本发明作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。
Claims (21)
1.一种向一个或多个虚拟数据处理加速器广播消息的计算机实施方法,所述方法包括:
经由通信交换机从由主机主管的应用程序接收广播指令,以向多个虚拟数据处理加速器中的一个或多个发送广播消息,每个虚拟数据处理加速器均通过虚拟通信信道通信;
使用与广播通信会话相关联的广播会话密钥对所述广播消息进行加密;
确定一个或多个安全密钥对的一个或多个公共密钥,每个安全密钥对均与所述一个或多个虚拟数据处理加速器中的一个相关联;
使用所确定的公共密钥中的每个对所述广播会话密钥进行加密,生成与所述一个或多个虚拟数据处理加速器相对应的一个或多个加密广播会话密钥;
将加密的广播消息和所述一个或多个加密广播会话密钥向所述虚拟数据处理加速器广播,其中,所述虚拟数据处理加速器中的每个均使用与所述虚拟数据处理加速器相关联的相应私有密钥来对所述加密广播会话密钥进行解密,其中,基于所述广播会话密钥来解密所述广播消息;以及
在所述多个虚拟数据处理加速器中的两个虚拟数据处理加速器处生成相同的会话密钥,以保护所述两个虚拟数据处理加速器之间的双向通信安全。
2.如权利要求1所述的方法,其中,接收所述广播指令的所述虚拟数据处理加速器是由所述应用程序选择来广播所述广播消息的广播虚拟数据处理加速器。
3.如权利要求1所述的方法,其中,每个虚拟数据处理加速器的公共密钥和私有密钥均与所述虚拟数据处理加速器的安全密钥对相关联,并且所述安全密钥对是由数据处理加速器的安全单元生成的派生安全密钥。
4.如权利要求3所述的方法,其中,所述通信交换机经由对应于所述数据处理加速器的物理通信信道联接至多个数据处理加速器中的每个。
5.如权利要求1所述的方法,其中,基于为数据处理加速器配置的虚拟数据处理加速器的数量将每个物理通信信道分成多个虚拟通信信道。
6.如权利要求1所述的方法其中,其中,所述多个虚拟数据处理加速器中的未指定虚拟数据处理加速器接收对所述加密广播会话密钥的所述广播,但不具有对所述加密广播会话密钥进行解密以生成广播会话密钥的相应密钥,并且所述未指定虚拟数据处理加速器不能访问所述广播会话密钥以对所述广播通信会话的广播消息进行解密。
7.如权利要求1所述的方法,其中,一个或多个指定虚拟数据处理加速器将同时执行一个或多个数据处理任务。
8.一种存储有指令的非暂时性机器可读介质,所述指令在由处理器执行时使所述处理器执行一个或多个操作,所述操作包括:
经由通信交换机从由主机主管的应用程序接收广播指令,以向多个虚拟数据处理加速器中的一个或多个发送广播消息,每个虚拟数据处理加速器均通过虚拟通信信道通信;
使用与广播通信会话相关联的广播会话密钥对所述广播消息进行加密;
确定一个或多个安全密钥对的一个或多个公共密钥,每个安全密钥对均与所述一个或多个虚拟数据处理加速器中的一个相关联;
使用所确定的公共密钥中的每个对所述广播会话密钥进行加密,生成与所述一个或多个虚拟数据处理加速器相对应的一个或多个加密广播会话密钥;将加密的广播消息和所述一个或多个加密广播会话密钥向所述虚拟数据处理加速器广播,其中,所述虚拟数据处理加速器中的每个均使用与所述虚拟数据处理加速器相关联的相应私有密钥来对所述加密广播会话密钥进行解密,其中,基于所述广播会话密钥来解密所述广播消息;以及
在所述多个虚拟数据处理加速器中的两个虚拟数据处理加速器处生成相同的会话密钥,以保护所述两个虚拟数据处理加速器之间的双向通信安全。
9.如权利要求8所述的非暂时性机器可读介质,其中,接收所述广播指令的所述虚拟数据处理加速器是由所述应用程序选择来广播所述广播消息的广播虚拟数据处理加速器。
10.如权利要求8所述的非暂时性机器可读介质,其中,每个虚拟数据处理加速器的公共密钥和私有密钥均与所述虚拟数据处理加速器的安全密钥对相关联,并且所述安全密钥对是由数据处理加速器的安全单元生成的派生安全密钥。
11.如权利要求10所述的非暂时性机器可读介质,其中,所述通信交换机经由对应于所述数据处理加速器的物理通信信道联接至多个数据处理加速器中的每个。
12.如权利要求8所述的非暂时性机器可读介质,其中,基于为数据处理加速器配置的虚拟数据处理加速器的数量将每个物理通信信道分成多个虚拟通信信道。
13.如权利要求8所述的非暂时性机器可读介质,其中,所述多个虚拟数据处理加速器中的未指定虚拟数据处理加速器接收对所述加密广播会话密钥的所述广播,但不具有对所述加密广播会话密钥进行解密以生成广播会话密钥的相应密钥,并且所述未指定虚拟数据处理加速器不能访问所述广播会话密钥以对所述广播通信会话的广播消息进行解密。
14.如权利要求8所述的非暂时性机器可读介质,其中,一个或多个指定虚拟数据处理加速器将同时执行一个或多个数据处理任务。
15.一种数据处理系统,包括:
处理器;以及
存储器,联接至所述处理器以存储指令,所述指令在由所述处理器执行时致使所述处理器执行操作,所述操作包括:
经由通信交换机从由主机主管的应用程序接收广播指令,以向多个虚拟数据处理加速器中的一个或多个发送广播消息,每个虚拟数据处理加速器均通过虚拟通信信道通信;
使用与广播通信会话相关联的广播会话密钥对所述广播消息进行加密;
确定一个或多个安全密钥对的一个或多个公共密钥,每个安全密钥对均与所述一个或多个虚拟数据处理加速器中的一个相关联;
使用所确定的公共密钥中的每个对所述广播会话密钥进行加密,生成与所述一个或多个虚拟数据处理加速器相对应的一个或多个加密广播会话密钥;
将加密的广播消息和所述一个或多个加密广播会话密钥向所述虚拟数据处理加速器广播,其中,所述虚拟数据处理加速器中的每个均使用与所述虚拟数据处理加速器相关联的相应私有密钥来对所述加密广播会话密钥进行解密,其中,基于所述广播会话密钥来解密所述广播消息;以及
在所述多个虚拟数据处理加速器中的两个虚拟数据处理加速器处生成相同的会话密钥,以保护所述两个虚拟数据处理加速器之间的双向通信安全。
16.如权利要求15所述的系统,其中,接收所述广播指令的所述虚拟数据处理加速器是由所述应用程序选择来广播所述广播消息的广播虚拟数据处理加速器。
17.如权利要求15所述的系统,其中,每个虚拟数据处理加速器的公共密钥和私有密钥均与所述虚拟数据处理加速器的安全密钥对相关联,并且所述安全密钥对是由数据处理加速器的安全单元生成的派生安全密钥。
18.如权利要求17所述的系统,其中,所述通信交换机经由对应于所述数据处理加速器的物理通信信道联接至多个数据处理加速器中的每个。
19.如权利要求15所述的系统,其中,基于为数据处理加速器配置的虚拟数据处理加速器的数量将每个物理通信信道分成多个虚拟通信信道。
20.如权利要求15所述的系统,其中,所述多个虚拟数据处理加速器中的未指定虚拟数据处理加速器接收对所述加密广播会话密钥的所述广播,但不具有对所述加密广播会话密钥进行解密以生成广播会话密钥的相应密钥,并且所述未指定虚拟数据处理加速器不能访问所述广播会话密钥以对所述广播通信会话的广播消息进行解密。
21.如权利要求15所述的系统,其中,一个或多个指定虚拟数据处理加速器将同时执行一个或多个数据处理任务。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/709,020 | 2019-12-10 | ||
US16/709,020 US11728996B2 (en) | 2019-12-10 | 2019-12-10 | System and method to securely broadcast a message to accelerators using virtual channels with switch |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112953886A CN112953886A (zh) | 2021-06-11 |
CN112953886B true CN112953886B (zh) | 2023-07-21 |
Family
ID=76209109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010516359.XA Active CN112953886B (zh) | 2019-12-10 | 2020-06-09 | 使用具有交换机的虚拟信道向加速器安全地广播消息的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11728996B2 (zh) |
CN (1) | CN112953886B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240098032A1 (en) * | 2022-09-21 | 2024-03-21 | Sandvine Corporation | System and method for managing network traffic in a distributed environment |
US11991281B1 (en) * | 2023-10-31 | 2024-05-21 | Massood Kamalpour | Systems and methods for digital data management including creation of storage location with storage access id |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110463231A (zh) * | 2017-03-24 | 2019-11-15 | 英特尔公司 | 用于基于组的服务配给的系统和方法 |
Family Cites Families (32)
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 |
US6553009B2 (en) * | 1999-07-09 | 2003-04-22 | Satellite-Smart Solutions Ltd. | Direct satellite communication |
US6912655B1 (en) * | 1999-08-09 | 2005-06-28 | Tristrata Security Inc. | Network security architecture system utilizing seals |
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 |
US20060161502A1 (en) * | 2005-01-18 | 2006-07-20 | International Business Machines Corporation | System and method for secure and convenient handling of cryptographic binding state information |
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 |
US8477941B1 (en) * | 2008-07-10 | 2013-07-02 | Sprint Communications Company L.P. | Maintaining secure communication while transitioning networks |
US8411867B2 (en) | 2009-04-06 | 2013-04-02 | Broadcom Corporation | Scalable and secure key management for cryptographic data processing |
EP2878112B1 (en) * | 2012-07-27 | 2015-10-21 | Telefonaktiebolaget L M Ericsson (PUBL) | Secure session for a group of network nodes |
GB2508606B (en) | 2012-12-04 | 2015-06-03 | Barclays Bank Plc | Credential recovery |
US9112824B2 (en) * | 2013-03-15 | 2015-08-18 | Red Hat, Inc. | Forwarding multicast messages in a messaging network |
EP3014803B1 (en) | 2013-06-25 | 2019-09-25 | Nokia Technologies Oy | A method and apparatus for anonymous and trustworthy authentication in pervasive social networking |
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 |
RU2756304C2 (ru) * | 2016-07-28 | 2021-09-29 | Конинклейке Филипс Н.В. | Идентификация сетевого узла, на который будут реплицироваться данные |
CN110073342A (zh) | 2016-12-23 | 2019-07-30 | 英特尔公司 | 用于硬件加速的虚拟信道 |
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 | 华为技术有限公司 | 一种通信方法、及相关产品 |
US11153271B2 (en) | 2018-02-16 | 2021-10-19 | Apple Inc. | Managing bearers in a radio access network |
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 |
-
2019
- 2019-12-10 US US16/709,020 patent/US11728996B2/en active Active
-
2020
- 2020-06-09 CN CN202010516359.XA patent/CN112953886B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110463231A (zh) * | 2017-03-24 | 2019-11-15 | 英特尔公司 | 用于基于组的服务配给的系统和方法 |
Non-Patent Citations (1)
Title |
---|
Design and implementation of the PULSAR programming system for large scale computing;kurzak;《Supercomputing Frontiers and Innovation》;20170412;第1-19页 * |
Also Published As
Publication number | Publication date |
---|---|
US20210176070A1 (en) | 2021-06-10 |
US11728996B2 (en) | 2023-08-15 |
CN112953886A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7196132B2 (ja) | データプロセッシング(dp)アクセラレータのための難読化を用いたデータ伝送 | |
CN112953855B (zh) | 将消息广播给加速器的系统和方法 | |
CN112948139B (zh) | 使用交换机向加速器安全地广播消息的系统和方法 | |
CN112838926B (zh) | 加速器之间的密钥共享方法 | |
CN113806286B (zh) | 在基于策略划分的数据处理集群中进行数据保护的方法 | |
KR102565414B1 (ko) | 데이터 처리 가속기에 사용되는, 난독화 유닛에 의해 난독화 를 진행하는 데이터 전송 | |
CN112953886B (zh) | 使用具有交换机的虚拟信道向加速器安全地广播消息的系统和方法 | |
CN112838923B (zh) | 具有交换机的虚拟信道中加速器之间的密钥共享方法 | |
US11516010B2 (en) | System and method to securely broadcast a message to accelerators using virtual channels | |
CN113806287B (zh) | 基于动态划分的数据处理集群的数据保护方法 | |
CN112838924B (zh) | 虚拟信道中加速器之间的密钥共享方法 | |
CN112839021B (zh) | 带交换机的加速器之间的密钥共享方法 | |
CN112650987B (zh) | 使用内核签名人工智能水印的方法和系统 | |
CN112650990B (zh) | 使用查询来签名人工智能水印的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211012 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. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |