Accelerating devices, computing systems, and accelerating methods

By performing bucketing and computation processing in the acceleration device, the problem of low processing efficiency in multi-party collaborative modeling scenarios is solved, achieving efficient encrypted data processing, reducing the computational load and I/O overhead of the host processing component, and improving acceleration performance.

CN115801221BActive Publication Date: 2026-06-05ALIBABA CLOUD COMPUTING CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ALIBABA CLOUD COMPUTING CO LTD
Filing Date
2022-10-11
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

In existing technologies, the need to bucket and compute multiple encrypted data for each feature results in a large amount of computation, affecting processing efficiency. This is especially true in multi-party joint modeling scenarios, where the large number of objects and features leads to significant I/O overhead and creates a bottleneck in acceleration performance.

Method used

An acceleration device is used, including a first storage component, a first acceleration component, and a second acceleration component. The first storage component stores multiple encrypted data, the second acceleration component performs bucketing processing, and the first acceleration component performs computation processing. The host processing component only needs to perform one data transfer. The acceleration device realizes bucketing and computation operations, reducing the computational load of the host processing component and reducing I/O overhead.

Benefits of technology

This improved processing efficiency, reduced the computational load on the host processing components, decreased I/O overhead, and ensured the acceleration performance of the acceleration device.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115801221B_ABST
    Figure CN115801221B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide an acceleration device, a computing system and an acceleration method. The acceleration device comprises a first storage component, a first acceleration component and a second acceleration component connected with the first storage component. The first storage component is connected with a first host processing component through a bus. The first storage component is configured to store a plurality of ciphertext data corresponding to a plurality of objects sent by the first host processing component. The second acceleration component is configured to obtain the plurality of ciphertext data from the first storage component, perform bucket processing on the plurality of ciphertext data for any feature, and obtain a plurality of bucket results. The plurality of bucket results are stored in the first storage component. The first acceleration component is configured to obtain the plurality of bucket results from the first storage component, perform calculation processing on the ciphertext data in the same bucket result to obtain a ciphertext processing result, and store the ciphertext processing result corresponding to each of the plurality of bucket results in the first storage component. The technical solution provided by the embodiments of the present application improves the processing efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to an acceleration device, computing system and acceleration method. Background Technology

[0002] With the development of science and technology, the value of data is receiving increasing attention. Different data providers often have a need for data fusion, but due to privacy concerns, data cannot be shared between them, creating data silos. To address this problem, privacy-preserving computation based on homomorphic encryption has emerged. It aims to break down data silos and utilize multi-party data for computation, modeling, and other tasks without compromising data privacy.

[0003] Homomorphic encryption is a type of encryption algorithm with special natural properties. Processing homomorphically encrypted data to obtain an output data, and then decrypting this output data, yields the same output as processing the unencrypted original data in the same way. In other words, computation before decryption is equivalent to decryption before computation. This characteristic is of great significance for protecting data security.

[0004] In a practical application, when multiple data providers possess the same object but have different characteristics, the following data joint processing requirement arises: The data initiator calculates the target data based on the characteristic values ​​of each object, performs homomorphic encryption to obtain ciphertext data, and then provides the ciphertext data corresponding to each of the multiple objects to the data receiver. The data receiver, for each characteristic it possesses, buckets the ciphertext data corresponding to the multiple objects according to the different characteristic values; it then performs calculations on the ciphertext data in each bucket to obtain the ciphertext processing result, and then returns the ciphertext processing results of each bucket corresponding to each characteristic to the data initiator. The data initiator can then decrypt to obtain the plaintext processing results of each bucket. Based on the plaintext processing results of each bucket, subsequent processing operations can be performed, thereby achieving the goal of the data initiator using the characteristics of the data receiver for data processing, while protecting the data security of both parties.

[0005] As described above, the computational workload is huge and affects processing efficiency because it is necessary to divide multiple ciphertext data into buckets for each feature and to perform calculations on the ciphertext data in each bucket. Summary of the Invention

[0006] This application provides an acceleration device, a computing system, and an acceleration method to solve technical problems affecting processing efficiency in the prior art.

[0007] In a first aspect, this application provides an acceleration device, including: a first storage component, a first acceleration component connected to the first storage component, and a second acceleration component; the first storage component is connected to a first host processing component via a bus.

[0008] The first storage component is used to store multiple encrypted data corresponding to multiple objects sent by the first host processing component;

[0009] The second acceleration component is used to obtain the plurality of encrypted data from the first storage component, and to perform bucketing processing on the plurality of encrypted data for any feature to obtain a plurality of bucketing results; and to store the plurality of bucketing results in the first storage component;

[0010] The first acceleration component is used to obtain the multiple bucketing results from the first storage component; perform calculations on the ciphertext data in the same bucketing result to obtain a ciphertext processing result; and store the ciphertext processing results corresponding to the multiple bucketing results to the first storage component.

[0011] The first storage component is used to provide the encrypted processing results corresponding to the multiple bucketing results to the first host processing component.

[0012] Secondly, this application provides a computing system, including a first computing device and a second computing device, wherein the first computing device includes a first host processing component and an acceleration device as described in any of the first aspects above.

[0013] The second computing device includes a second host processing unit and a second acceleration device; the second acceleration device includes a second storage unit and at least one third acceleration unit; the second storage unit is connected to the second host processing unit via a bus;

[0014] The second storage component is used to store multiple data to be processed sent by the second host processing component; the data to be processed is target data to be encrypted or ciphertext processing result to be decrypted;

[0015] The third acceleration component is used to obtain at least one piece of data to be processed from the second storage component; for any piece of data to be processed, the data to be processed is encrypted or decrypted to obtain a calculation result, and the calculation result is stored in the second storage component;

[0016] The second host processing component is used to obtain the calculation result corresponding to any data to be processed from the second storage component.

[0017] Thirdly, this application provides a computing device including a host processing component, a host storage component, and an acceleration device as described in the first aspect above.

[0018] Fourthly, this application provides an acceleration method applied to an acceleration device, the acceleration device including a first storage component, a first acceleration component connected to the first storage component, and a second acceleration component; the first storage component is connected to a first host processing component via a bus; wherein the first storage component stores multiple encrypted data corresponding to multiple objects sent by the first host processing component; the method includes:

[0019] Obtain the plurality of encrypted data from the first storage component;

[0020] For any given feature, the multiple encrypted data are bucketed to obtain multiple bucketing results;

[0021] The multiple bucketing results are stored in the first storage component; the first acceleration component is used to obtain the multiple bucketing results from the first storage component; the encrypted data in the same bucketing result is processed to obtain the encrypted processing result; the encrypted processing results corresponding to the multiple bucketing results are stored in the first storage component; the first storage component is used to provide the encrypted processing results corresponding to the multiple bucketing results to the first host processing component.

[0022] The acceleration device provided in this application embodiment comprises a first storage component, a first acceleration component connected to the first storage component, and a second acceleration component. The first storage component is connected to a first host processing component via a bus. The second acceleration component performs bucketing processing, and the first host processing component stores multiple encrypted data in the first storage component. Multiple features can share the multiple encrypted data for bucketing processing. Then, the first acceleration component obtains the bucketing result from the first storage component and performs calculation processing on the encrypted data in the same bucketing result to obtain the encrypted processing result. The encrypted processing result can then be provided to the first host processing component via the first storage component. Since the first host processing component only needs to perform one data transmission, the bucketing processing operation and calculation processing operation can be realized using the acceleration device, reducing the computational load of the host processing component, thereby improving processing efficiency and reducing I / O overhead, ensuring the acceleration performance of the acceleration device.

[0023] These or other aspects of this application will become more apparent in the following description of the embodiments. Attached Figure Description

[0024] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0025] Figure 1 A schematic diagram of one embodiment of the acceleration device provided in this application is shown;

[0026] Figure 2 A schematic diagram of the structure of one embodiment of the second acceleration component provided in this application is shown;

[0027] Figure 3 A schematic diagram of the structure of one embodiment of the first acceleration component provided in this application is shown;

[0028] Figure 4 A schematic diagram of the structure of one embodiment of the first computing unit provided in this application is shown;

[0029] Figure 5 This illustration shows a schematic diagram of the operational structure of the first operational unit in a practical application according to an embodiment of this application;

[0030] Figure 6a This application provides a schematic diagram illustrating the structure of one embodiment of a computing system.

[0031] Figure 6b This illustration shows an interactive scenario of the computing system provided in this application in a practical application;

[0032] Figure 7a A schematic diagram of one embodiment of the second acceleration device provided in this application is shown;

[0033] Figure 7b A schematic diagram of the structure of one embodiment of the third acceleration component provided in this application is shown;

[0034] Figure 8 A flowchart of one embodiment of the acceleration method provided in this application is shown;

[0035] Figure 9 A flowchart of one embodiment of the acceleration method provided in this application is shown;

[0036] Figure 10 A schematic diagram of one embodiment of a computing device provided in this application is shown. Detailed Implementation

[0037] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings.

[0038] In some of the processes described in the specification, claims, and accompanying drawings of this application, multiple operations appearing in a specific order are included. However, it should be clearly understood that these operations may not be executed in the order they appear herein, or may be executed in parallel. The operation numbers, such as 101, 102, etc., are merely used to distinguish different operations and do not themselves represent any execution order. Furthermore, these processes may include more or fewer operations, and these operations may be executed sequentially or in parallel. It should be noted that the descriptions such as "first," "second," etc., in this document are used to distinguish different messages, devices, modules, etc., and do not represent a chronological order, nor do they limit "first" and "second" to different types.

[0039] The technical solutions of the embodiments of this application can be applied to multi-party data joint processing scenarios, such as multi-party joint modeling scenarios, but this application is not limited thereto.

[0040] As described in the background section, a current data joint processing requirement is as follows: The data initiator calculates the target data based on the feature values ​​of each object, performs homomorphic encryption to obtain ciphertext data, and then provides the ciphertext data corresponding to multiple objects to the data receiver. The data receiver, for each feature it possesses, buckets the ciphertext data corresponding to multiple objects according to different feature values; it then processes the ciphertext data in each bucket result to obtain the ciphertext processing result, and returns the ciphertext processing result of each bucket result corresponding to each feature to the data initiator. The data initiator can then decrypt to obtain the plaintext processing result of each bucket result, and perform subsequent processing operations based on the plaintext processing result of each bucket result.

[0041] The aforementioned data joint processing requirements can exist in practical applications, for example, in scenarios involving multi-party joint modeling using federated learning. Taking multi-party joint modeling as an example, federated learning is a distributed machine learning approach that enables joint modeling using data from multiple parties while protecting data privacy. Vertical federated learning is a commonly used federated learning method, referring to multi-party joint modeling where the feature data and label information of sample objects are distributed among different data providers. Multiple data providers possess the same sample objects but have different feature data. For example, data provider A and data provider B possess the same user C, but data provider A has user C's education level data, and data provider B has user C's age data. Here, education level data and age data are the feature data. During joint modeling, typically only one party possesses the label data of the sample objects. The data provider with the label data is called the data initiator (active party), while the data provider without the label data is called the data receiver (passive party). Through vertical federated learning, the active party can leverage the feature data of the passive party to improve the capabilities of the machine learning model while protecting the data privacy of all participating parties.

[0042] In the vertical federated learning approach, the decision tree model is a commonly used machine learning model. The most important aspect of training a decision tree model is finding the optimal split point. The split point refers to the specific value of a certain feature data. For example, if the label data is user C and the target group is the target group, the split point might be age less than 20 years old or age less than 30 years old, etc.

[0043] When training a decision tree model, the typical approach is as follows: First, the active party determines the gradient information corresponding to the model based on the feature values ​​and label data of the sample objects it possesses. Then, it encrypts this gradient information using homomorphic encryption, transmitting it as ciphertext gradient information to the passive party. The passive party calculates the cumulative ciphertext gradient value for each feature's corresponding split space based on the ciphertext gradient information and sends this cumulative ciphertext gradient value back to the active party. The active party decrypts this to obtain the cumulative gradient value, and based on the cumulative gradient values ​​of multiple features, it can ultimately determine the optimal split point. It is evident that the passive party needs to perform ciphertext accumulation on the homomorphically encrypted ciphertext gradient information. To improve training efficiency, a bucketing approach can be used. For each feature data point, the passive party can bucket the ciphertext gradient information corresponding to different sample objects according to the feature value, accumulate the ciphertext gradient information within each bucket, and then send the cumulative ciphertext gradient value corresponding to each bucket result to the active party. The active party then determines the optimal split point based on the cumulative ciphertext gradient values ​​of each bucket result.

[0044] As described above, the data receiver needs to perform bucketing for each feature and corresponding calculations on the ciphertext gradient information within each bucket. Since these calculations are usually performed using the processing components in their respective computing devices, the host processing component also needs to perform other tasks, which results in a large amount of computation for the processing component, thus affecting processing performance and reducing processing efficiency.

[0045] To improve processing performance and efficiency, the inventors discovered that processing ciphertext data encrypted using homomorphic encryption algorithms essentially requires multiplying and adding large integers, consuming significant processing power. Therefore, they considered using a dedicated accelerator for ciphertext data processing to achieve better performance. However, they found that even with a dedicated accelerator, host processing components still need to perform bucketing. In practical applications, the number of objects is often large, especially in joint modeling scenarios where sample objects are typically in the hundreds of thousands or even millions, and the number of features is also very large. Since bucketing is required for each feature, and the bucketing results need to be transmitted to the accelerator for each feature, the data volume is: number of objects * number of features, which introduces significant I / O overhead, creating a bottleneck in acceleration performance.

[0046] Based on this, the inventors conducted a series of studies and proposed the technical solution of this application. The embodiments of this application provide an acceleration device, comprising a first storage component, a first acceleration component connected to the first storage component, and a second acceleration component. The first storage component is connected to a first host processing component via a bus. The second acceleration component performs bucketing processing. The first host processing component only needs to send multiple encrypted data corresponding to multiple objects once to the first storage component. Multiple features can share the multiple encrypted data for bucketing processing. Then, the first acceleration component obtains the bucketing result from the first storage component and performs calculation processing on the encrypted data in the same bucketing result to obtain the encrypted processing result. This encrypted processing result can then be provided to the first host processing component via the first storage component. Thus, the host processing component only needs to perform one data transmission. The acceleration device can achieve bucketing and calculation processing, reducing the computational load of the host processing component. Using a dedicated acceleration device to perform calculation processing operations improves processing efficiency and reduces the I / O overhead of the acceleration device, ensuring its acceleration performance.

[0047] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0048] Figure 1 This is a schematic diagram of one embodiment of an acceleration device provided in this application. The acceleration device may include a first storage component 101, a first acceleration component 102, and a second acceleration component 103, which are respectively connected to the first storage component 101. The first storage component 101 is connected to a first host processing component 100 via a bus. The bus type may be, for example, PCIE (Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard), or other high-speed buses such as Ethernet. This application does not limit the type of bus interconnection.

[0049] The acceleration device can be implemented using an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA). Of course, it can also be implemented using a digital signal processor (DSP), a digital signal processing device (DSPD), a programmable logic device (PLD), a controller, a microcontroller, a microprocessor, or other forms of integrated circuits (ICs). This application does not limit the implementation in this regard.

[0050] The acceleration device can be deployed in a first computing device, which, relative to the acceleration device, can be referred to as the host device of the acceleration device. The first host processing component can be, for example, the central processing unit (CPU) in the first computing device, which is responsible for traditional processing tasks in the first computing device.

[0051] The first storage component 101 is used to store multiple encrypted data corresponding to multiple objects sent by the first host processing component 100;

[0052] The second acceleration component 103 is used to obtain multiple encrypted data from the first storage component 101, and to perform bucketing processing on the multiple encrypted data according to any feature to obtain multiple bucketing results; and to store the multiple bucketing results in the first storage component 101.

[0053] The first acceleration component 102 is used to obtain multiple bucketing results from the first storage component; perform calculation and processing on the ciphertext data in the same bucketing result to obtain a ciphertext processing result; and store the ciphertext processing results corresponding to the multiple bucketing results to the first storage component.

[0054] The first storage component 101 is used to provide the encrypted processing results corresponding to the multiple bucketing results to the first host processing component 100.

[0055] Each object can correspond to one piece of ciphertext data, thus multiple objects can correspond to multiple pieces of ciphertext data. The ciphertext data can be obtained by encrypting the target data using a homomorphic encryption algorithm. In a practical application, such as a multi-party collaborative modeling scenario, this ciphertext data can refer to ciphertext gradient information, obtained by the data initiator by encrypting the gradient data using a homomorphic encryption algorithm.

[0056] The first host processing component 100 can transmit multiple encrypted data corresponding to multiple objects sent by the data sender to the first storage component 101 in the acceleration device for storage.

[0057] The first host processing component 100 can send corresponding instruction information to the first storage component 101, the first acceleration component 102, and the second acceleration component 103 to start or trigger each component to perform corresponding operations. For example, after the first host processing component 100 stores multiple encrypted data in the first storage component 101, it can send corresponding instruction information to the second acceleration component 103. The second acceleration component 103 can then retrieve the multiple encrypted data from the first storage component 101 based on this instruction information. Alternatively, the first host processing component 100 can also notify the first storage component 101, the first acceleration component 102, and the second acceleration component 103 to start after receiving multiple encrypted data sent by the data initiator. The first storage component 101, the first acceleration component 102, and the second acceleration component 103 can then trigger and execute their respective operations in real time or periodically.

[0058] The second acceleration component 103 is responsible for the bucketing processing operations corresponding to each feature possessed by the data receiver. It can bucket multiple encrypted data for each feature to obtain multiple bucketing results corresponding to each feature. Then, the bucketing results corresponding to different features can be stored in the first storage component 101. The second acceleration component 103 can also send a bucketing end notification to the first host processing component 100. After receiving the bucketing end notification, the first host processing component 100 can notify the first acceleration component 102 to obtain multiple bucketing results and perform calculations and processing, etc.

[0059] Optionally, to improve processing efficiency, the second acceleration component 103 can adopt a parallel approach, simultaneously performing bucketing processing on multiple encrypted data for multiple features. These multiple features can be obtained from notification by the first host processing component 100, etc. The first host processing component 100 can divide the features to be processed into multiple groups, each group including multiple features. After the bucketing operation corresponding to multiple features in any group is completed, multiple features of another group are then distributed.

[0060] After obtaining multiple bucket results from the first storage component 101, the first acceleration component 102 can perform calculations on the ciphertext data in the same bucket result to obtain the ciphertext processing result, and store the ciphertext processing results corresponding to the multiple bucket results in the first storage component; Optionally, the first acceleration component 102 can specifically perform calculations on the ciphertext data in the same bucket result according to the target calculation processing mode. The corresponding operation method can be determined according to the target calculation processing mode, and the calculation processing is performed according to the operation method corresponding to the target calculation processing mode.

[0061] The target computation processing mode or the operation method can be notified to the first acceleration component 102 by the first host processing component 100.

[0062] The target computation processing mode may include, for example, ciphertext accumulation, as well as ciphertext multiplication, ciphertext subtraction, etc. In the scenario of multi-party joint modeling, the target computation processing mode can specifically refer to ciphertext accumulation.

[0063] The ciphertext accumulation operation can be a point addition operation, such as in ECC (Elliptic Curve Cryptography), where ciphertext accumulation is converted into a point addition operation between two points on an elliptic curve. In homomorphic encryption algorithms based on elliptic curves, the point addition operation is actually converted into modular addition, modular multiplication, and other arithmetic operations.

[0064] After the first storage component 101 stores the encrypted processing results corresponding to the multiple bucketing results, it can notify the first host processing component 100, so that the first host processing component 100 can retrieve the encrypted processing results corresponding to the multiple bucketing results from the first storage component 100. The first storage component can be implemented using a high-bandwidth external memory, etc.

[0065] The first host processing component 100 can send the encrypted processing results corresponding to the multiple bucketing results to the data initiator, so that the data initiator can perform subsequent operations. For example, the data initiator can first decrypt to obtain the plaintext processing results corresponding to the multiple bucketing results for each feature, and then perform calculation processing on the plaintext processing results according to the target calculation processing mode; or it can first perform calculation processing on the encrypted processing results corresponding to the multiple bucketing results for each feature according to the target calculation processing mode, and then decrypt the processing results, etc.

[0066] The acceleration device provided in this embodiment can perform bucketing and computational processing operations. The host processing component only needs to transmit encrypted data once, which can be shared by multiple features for bucketing operations. This reduces the computational load of the host processing component, improves processing efficiency, reduces I / O overhead, and ensures the acceleration performance of the acceleration device.

[0067] In some embodiments, such as Figure 1 As shown, the acceleration device may further include a bus interface 104, which can be connected to a first computing device to enable the first acceleration component 102, the second acceleration component 103, and the first storage component 101 to be connected to the first host processing component 100 in the first computing device via a bus. The bus interface 104 allows the acceleration device to be pluggably installed in the first computing device.

[0068] In some embodiments, such as Figure 1 As shown, the acceleration device may further include a substrate 105, with a first storage component 101, a first acceleration component 102, and a second acceleration component 103 soldered onto the substrate 105 to achieve electrical connection between the first acceleration component 102 and the second acceleration component 103 and the first storage component 101, respectively.

[0069] By binning multiple encrypted data, multiple encrypted data can be divided into multiple data intervals. Each data interval is similar to a bucket, and the encrypted data contained in each data interval constitutes a binning result.

[0070] As an optional approach, the second acceleration component 103 may perform bucketing on multiple encrypted data for any feature to obtain multiple bucketing results, which may include: performing bucketing on multiple encrypted data according to at least one feature value corresponding to the feature for any feature to obtain multiple bucketing results.

[0071] Specifically, the bucketing operation can first divide multiple objects according to at least one feature value, and then divide the encrypted data corresponding to the multiple objects according to the division results, so that the encrypted data corresponding to objects located in the same feature value range are divided into the same bucket result.

[0072] For example, if the object is a user and the feature is age, with feature values ​​including 10, 20, and 30 years old, then the age can be divided into four age ranges: 0-10, 10-20, 20-30, and 30-∞ (infinity). Based on these four age ranges, multiple users can be divided into different age ranges. The encrypted data corresponding to users in the same age range will then be grouped into the same bucket, resulting in multiple bucketing results.

[0073] In this process, at least one feature value corresponding to each feature can be stored in the first storage component 100 by the first host processing component 100, and retrieved from the first storage component 100 by the second acceleration component 103. Of course, since the data volume is small, the first host processing component 100 can directly send at least one feature value corresponding to each feature to the second acceleration component 103.

[0074] In addition, as another option, the first storage component 101 is also used to store bucket information of multiple objects sent by the first host processing component 100, each corresponding to a different characteristic;

[0075] The second acceleration component 103 performs bucketing processing on multiple ciphertext data for any feature to obtain multiple bucketing results, including: determining the bucketing information corresponding to the feature for multiple objects respectively; dividing the ciphertext data corresponding to at least one object with the same bucketing information into the same bucket to obtain multiple buckets.

[0076] The bucketing information can refer to a bucket identifier, which is used to uniquely identify a bucket. It can be implemented using any combination of one or more characters (such as a combination of numbers, letters, etc.), and this application does not limit this. The bucketing information corresponding to multiple objects with different characteristics can be determined by the first host processing component 100.

[0077] After obtaining the encrypted data corresponding to each object, the first host processing component 100 can combine multiple features possessed by the data receiver. For each feature, based on at least one corresponding feature value, multiple objects can be divided, thus determining the feature value range of each object. Objects within the same feature value range are assigned the same bucket information, while different feature value ranges correspond to different bucket information. The first host processing component 100 can store the bucket information for each feature corresponding to each object in the first storage component 101. The second acceleration component 103 can then retrieve the bucket information for each feature corresponding to multiple objects from the first storage component 101. Alternatively, since the bucket information data volume is relatively small, the first host processing component 100 can send the bucket information for different features corresponding to multiple objects to the second acceleration component 103.

[0078] In some embodiments, such as Figure 2 As described above, the second acceleration component 103 may include a data loading unit 201, multiple bucket units 202, and a data storage unit 203.

[0079] The data loading unit 201 is used to obtain multiple encrypted data from the first storage component 101, provide the multiple encrypted data to multiple bucket units respectively, allocate features to be processed to the multiple bucket units respectively, and control the multiple bucket units to process the allocated features in parallel.

[0080] Bucketing unit 202 is used to perform bucketing processing on multiple encrypted data according to the features assigned to it, to obtain multiple bucketing results; and to send the multiple bucketing results to the storage unit.

[0081] Data storage unit 203 is used to store multiple bucketing results sent by each bucketing unit to the first storage component. The data storage unit can be implemented using RAM (Random Access Memory), etc.

[0082] Multiple features can be processed in parallel by using multiple bucketing units 202. Each bucketing unit 202 can be assigned to at least one feature, and this at least one feature can be processed by bucketing in a linear processing manner.

[0083] Optionally, each bucket unit 202 can be assigned a feature. The first host processing component 100 can determine the number of features to be processed in parallel at one time based on the number of units in the multiple bucket units 202. The number of features can be less than or equal to the number of units. The first host processing component 100 can select at least one feature based on the number of features, and provide the bucketing information of multiple objects corresponding to the at least one feature to the acceleration device. The data loading unit 201 then assigns the bucketing information of the at least one feature to at least one bucketing unit 202. Each bucketing unit 202 can obtain the bucketing information of one feature, and then, for the feature assigned to it, the encrypted data corresponding to at least one object with the same bucketing information are divided into the same bucketing result. Alternatively, the first host processing component 100 can also select at least one feature based on the number of features, and provide the at least one feature value corresponding to the at least one feature to the acceleration device. The data loading unit 201 then assigns the at least one feature value corresponding to the at least one feature to at least one bucketing unit 202. Each bucketing unit 202 can obtain the at least one feature value of one feature, and then, for the feature assigned to it, the multiple encrypted data are bucketed according to the at least one feature value.

[0084] Since the computational processing operation performed by the first acceleration component 101 on the encrypted data is also relatively large, in order to further improve processing efficiency and acceleration performance, the first acceleration component 101 may include at least one first acceleration unit.

[0085] Each first acceleration unit can be used to obtain at least one bucket result from the first storage component 101, and for any bucket result, perform calculation processing on multiple ciphertext data in the bucket result according to the target calculation processing mode to obtain a ciphertext processing result; and store the ciphertext processing result corresponding to any bucket result into the first storage component 101.

[0086] Optionally, the first acceleration component 101 may be configured with multiple first acceleration units, thereby improving parallel processing capability, processing efficiency, and acceleration performance.

[0087] In some embodiments, such as Figure 3 As shown, each first acceleration unit may include a first control unit 301 and a plurality of first computing units 302.

[0088] The first control unit 301 is used to obtain at least one bucketing result from the first storage component 101 and to assign the at least one bucketing result to at least one processing unit 302;

[0089] The first arithmetic unit 302 is used to perform calculations on multiple ciphertext data in any bucket result assigned to it, according to the target calculation and processing mode, to obtain the ciphertext processing result.

[0090] The first control unit 301 is used to store the encrypted processing result corresponding to any bucketing result into the first storage component 101.

[0091] Parallel computation of multiple bucket results can be achieved through multiple first processing units 302, thereby improving processing efficiency and further ensuring acceleration performance.

[0092] In some embodiments, such as Figure 3 As shown, each first acceleration unit 300 may further include a first storage unit 303;

[0093] The first processing unit 302 can also be used to save the encrypted processing result corresponding to any bucketing result to the first storage unit 303;

[0094] The first control unit 301 may store the encrypted processing result corresponding to any bucket result to the first storage component by storing the encrypted processing result corresponding to any bucket result stored in the first storage unit 303 to the first storage component 101.

[0095] In some embodiments, such as Figure 3 As shown, each first acceleration unit 300 may further include a first loading unit 304.

[0096] Specifically, the first control unit 301 may obtain at least one bucket result from the first storage component 101 by controlling the first loading unit 304 to obtain at least one bucket result from the first storage component 101.

[0097] Optionally, the first control unit 301 may perform corresponding operations according to the instructions of the first host processing component 100. Therefore, in some embodiments, the first control unit 301 may also be used to receive first control information sent by the first host processing component 100 and control the operation of multiple first arithmetic units 302, first storage units 303, and first loading units 304 according to the first control information.

[0098] The first control information may include a first total amount of data for at least one bucketed result to be acquired by the first acceleration unit 300, and a second total amount of data corresponding to the at least one bucketed result after calculation and processing. Furthermore, it may include a first storage address corresponding to the at least one bucketed result to be acquired, and a second storage address corresponding to at least one encrypted processing result obtained after calculation and processing of the at least one bucketed result. Therefore, the first control unit 301 can specifically acquire at least one bucketed result from the first storage component 101 according to the first total amount of data and the first storage address; and can control the first storage unit 303 to store at least one encrypted processing result in the first storage component 101 according to the second total amount of data and the second storage address. Specifically, the first control unit 301 can specifically control the first loading unit 304 to acquire at least one bucketed result from the first storage component 101 according to the first total amount of data and the first storage address.

[0099] In addition, the first control information may also include the target calculation processing mode or the calculation method corresponding to the target calculation processing mode, and the first control unit 301 may specifically notify the first calculation unit 302 of the corresponding calculation method according to the first control information.

[0100] The first operation unit 302 performs calculations on multiple ciphertext data in any assigned bucket result to obtain a ciphertext processing result, including: for any assigned bucket result, performing calculations on multiple ciphertext data in the bucket result according to the operation method to obtain a ciphertext processing result.

[0101] In one or more of the above embodiments, the operation method corresponding to each target calculation mode can be pre-configured with one or more corresponding operation instructions. By executing one or more operation instructions, the multiple encrypted data in each bucket result can be calculated and processed.

[0102] In practical applications, each of the first arithmetic units 302 can be implemented using a programmable processor (PC), which can store corresponding instructions to execute corresponding operations. In some embodiments, such as Figure 4 As shown, the first arithmetic unit 302 may include a first storage subunit 401, a first parsing subunit 402, a first calculation subunit 403, and a first control subunit 404;

[0103] The first storage subunit 401 is used to store one or more operation instructions corresponding to the target computing and processing mode;

[0104] The first parsing subunit 402 is used to parse one or more operation instructions;

[0105] The first control subunit 403 is used to send calculation instruction information to the first calculation subunit 404 based on the analysis result of the first analysis unit;

[0106] The first calculation subunit 404 is used to perform calculation processing on multiple ciphertext data based on the calculation instruction information to obtain the ciphertext processing result.

[0107] The one or more operation instructions, after being parsed, can be converted into corresponding calculation instruction information to control the operation of the first calculation subunit.

[0108] The first storage sub-unit can be implemented using RAM, etc.

[0109] In practical applications, this target computation processing mode can be ciphertext accumulation, corresponding to point addition. For example, the ciphertext data can be encrypted using an elliptic curve-based homomorphic encryption algorithm, such as the EC-ELGamal semi-homomorphic acceleration algorithm. EC-ELGamal is a type of ECC, which is an implementation of ElGamal based on elliptic curves. Its main computations include: elliptic curve point addition, point subtraction, point multiplication, modular inverse, and discrete logarithms. ElGamal, on the other hand, is an asymmetric encryption algorithm based on Diffie-Hellman key exchange.

[0110] Using the EC-ELGamal semi-homomorphic encryption algorithm, its encryption formula is:

[0111] Enc(P, m)=(C1=kG, C2=kP+mG)

[0112] Where P represents the public key, which is a point on the elliptic curve; G is the base point of the elliptic curve; k is a random number; m is the plaintext data to be encrypted, i.e., the target data; and Enc(P, m) represents the ciphertext obtained by encryption, which consists of point pairs C1 and C2.

[0113] The formula for adding ciphertext is:

[0114] Enc(P, m1) + Enc(P, m2)

[0115] =(k1G,+k2G,(k1P+m1G)+(k2P+m2G))

[0116] The decryption formula is:

[0117] M = C2 - sC1

[0118] =mG

[0119] Where M represents the decryption result, s represents the private key, and the private key multiplied by the base point is the public key. Therefore, sC1 = s * kG = kP, and thus C2 - sC1 = mG.

[0120] As can be seen, encryption essentially requires dot product on an elliptic curve and the addition of the results of dot products on two elliptic curves (dot addition). Ciphertext addition is essentially dot addition on an elliptic curve, while decryption requires dot product on an elliptic curve. The dot product operation is essentially composed of scalars and dots. For example, the dot product operation kP includes the scalar k and the dot P; the dot product operation mG includes the scalar m and the dot G.

[0121] Ciphertext accumulation means adding multiple ciphertext data together. In some embodiments, the first calculation subunit 404, based on calculation instruction information, performs calculations on multiple ciphertext data to obtain a ciphertext processing result. This can be done by: sequentially obtaining one ciphertext data from the multiple ciphertext data, performing a dot-add operation with the previous dot-add result, determining whether the current accumulation count meets the preset number, and if so, outputting the last dot-add result as the ciphertext processing result; otherwise, saving the dot-add result to the first storage subunit 401. The first control unit can provide the multiple ciphertext data to the first calculation subunit in the form of an input data stream.

[0122] In one implementation, the first storage subunit 401 may include a first instruction storage subunit, a first data storage subunit, and a first data storage subunit.

[0123] The first instruction storage unit is used to store one or more operation instructions, the first data storage subunit is used to store intermediate results in the calculation process, such as the previous addition result, and the first number storage unit is used to store the preset number of times, etc.

[0124] In addition, for target computation processing modes involving dot multiplication, the first storage subunit may also include a first scalar storage subunit for storing scalar data.

[0125] In a practical application, the operational diagram of the first operational unit 302 can be as follows: Figure 5 As shown, Figure 5The first instruction storage unit, first parsing subunit, first control subunit, first data storage subunit, first calculation subunit, first scalar storage subunit, and first scalar storage subunit described above have been described in detail previously and will not be repeated here. Combined with... Figure 5 As shown, the first computational subunit may have basic computational logic, which may include a first input A, a second input B, a third input C, and a fourth input D. The first input A may come from the input data stream or the first data storage subunit, and the second input B, the third input C, and the fourth input D may come from the first data storage subunit. Of course, each input can be empty. Taking the dot-matrix addition operation corresponding to ciphertext accumulation as an example: the ciphertext data obtained from the input data stream can enter the first input A, the previous dot-matrix addition result is used as the second input B, and the third input C and the fourth input D can be empty. The first computational subunit performs the dot-matrix addition operation, adding the first input A and the second input B to obtain the dot-matrix addition result. This dot-matrix addition result will be stored in the first data storage subunit or output as the ciphertext processing result.

[0126] In practical applications, the first computing device in this embodiment can be a computing device corresponding to the data receiver responsible for processing multiple encrypted data. The data initiator corresponds to a second computing device, used to transmit encrypted data corresponding to multiple objects to the first computing device.

[0127] like Figure 6a As shown in the illustration, this application embodiment also provides a computing system, which may include a first computing device 60 and a second computing device 70.

[0128] The first computing device 60 may include a first host processing component 100 and a first acceleration device 601. The specific structural implementation of the first acceleration device 601 can be found in the above description. Figures 1-5 The embodiments shown are described herein and will not be repeated here.

[0129] The second computing device 70 may include a second host processing component 700 and a second acceleration device 602.

[0130] That is, the second computing device 70 can also be configured with a second acceleration device 602 to accelerate encryption or decryption operations, etc. Therefore, the second acceleration device 602 can be used to acquire multiple data to be processed, encrypt or decrypt any data to be processed, and obtain the computing result.

[0131] The data to be processed can be target data to be encrypted or ciphertext processing results to be decrypted; correspondingly, the calculation processing results can be ciphertext data or plaintext processing results.

[0132] For encrypted data, the second host processing component 700 can obtain encrypted data corresponding to multiple objects from the second acceleration device 602 and send it to the first computing device 60.

[0133] For the plaintext processing result, the second host processing component 700 can obtain the plaintext processing result from the second acceleration device 602 and perform subsequent processing operations.

[0134] For example, in a practical application, the technical solution of this application embodiment can be applied to a scenario where multi-party joint modeling is performed using a vertical federated learning approach, such as... Figure 6b In the interactive diagram shown, the second acceleration device 602 in the second computing device 70 of the data initiator first encrypts the gradient information corresponding to different sample objects to obtain the ciphertext gradient information of multiple sample objects. The gradient information is calculated using a decision tree model based on the feature values ​​and label data corresponding to the sample objects provided by the data initiator.

[0135] Subsequently, the second acceleration device 602 sends the encrypted gradient information of multiple sample objects to the second host processing component 700, which then sends the encrypted gradient information of the multiple sample objects to the first computing device 60 corresponding to the data receiver.

[0136] After receiving the encrypted gradient information of multiple sample objects, the first host processing component 100 in the first computing device 60 can send the encrypted gradient information of multiple sample objects to the first acceleration device 601. The first acceleration device 601 can first perform bucketing processing on the encrypted gradient information of multiple sample objects according to different features to obtain multiple bucketing results for each feature. Then, using the technical solution of this application, the encrypted gradient accumulation value corresponding to the multiple bucketing results of each feature can be calculated and then sent to the first host processing component 100. The first host processing component 100 then sends the encrypted gradient accumulation value corresponding to the multiple bucketing results of each feature to the second computing device 70 of the data initiator.

[0137] The second host processing component 700 in the second computing device 70 receives the ciphertext gradient accumulation value corresponding to the multiple bucket results of each feature, and can send it to the second acceleration device 602.

[0138] The second acceleration device 602 can decrypt the gradient accumulation values ​​corresponding to the multiple bucketing results of each feature to obtain the gradient accumulation value corresponding to that feature. Alternatively, it can first accumulate the ciphertext gradient accumulation values ​​corresponding to the multiple bucketing results to obtain the ciphertext gradient accumulation value corresponding to that feature, and then decrypt the ciphertext gradient accumulation value corresponding to that feature to obtain the gradient accumulation value corresponding to that feature.

[0139] The second acceleration device 602 can send the gradient accumulation values ​​corresponding to multiple features to the second host processing component 700.

[0140] The second host processing component 700 can specifically determine the optimal split point of the decision tree model based on the accumulated gradient values ​​corresponding to multiple features. The decision tree model can then be constructed based on the optimal split point.

[0141] The decision tree model can be XGBoost (eXtreme Gradient Boosting), or other types of decision tree models, such as GBDT (Gradient Boosting Decision Tree) or GBM (Gradient Boosting Machine).

[0142] Gradient information can include the first-order gradient and second-order gradient corresponding to each sample object. It is obtained by taking the derivative of the loss function of the decision tree model. By inputting the feature values ​​of the sample object into the decision tree model, the prediction data can be obtained. The degree of inconsistency between the prediction data and the label data can be estimated by using the loss function. The first-order gradient and second-order gradient can be obtained by taking the derivative of the loss function.

[0143] As can be seen from the above description, for the second computing device, when the data to be processed is target data to be encrypted, the target data can be the gradient information corresponding to the decision tree model calculated based on the feature values ​​and label data of the sample object provided by the data initiator.

[0144] When the data to be processed is the ciphertext processing result to be decrypted, the data to be processed can be the ciphertext processing result to be decrypted calculated based on any feature provided by the data receiver. The ciphertext processing result to be decrypted can be the ciphertext gradient accumulation value, which can be the ciphertext gradient accumulation value corresponding to each feature or the ciphertext gradient accumulation value corresponding to each bucket result. The corresponding calculation and processing result obtained by decrypting it is the gradient accumulation value.

[0145] A connection is established between the first computing device 60 and the second computing device 70 via a network. The network provides a communication link medium between the first computing device 60 and the second computing device 70. The network can include various connection types, such as wired, wireless, or fiber optic cable, etc. Optionally, the wireless connection can be implemented through a mobile network, and correspondingly, the mobile network standard can be any one of 2G (GSM), 2.5G (GPRS), 3G (WCDMA, TD-SCDMA, CDMA2000, UTMS), 4G (LTE), 4G+ (LTE+), 5G, WiMax, etc. Optionally, a communication connection can also be established via Bluetooth, WiFi, infrared, etc.

[0146] The first computing device 60 and the second computing device 70 may also include other components, such as input / output interfaces, display components, communication components that realize the above-mentioned communication connections, and host storage components that store computer instructions for the host processing components to call and execute to achieve corresponding operations, etc. This application will not elaborate on these.

[0147] like Figure 7a As described above, in order to further improve processing efficiency and acceleration performance, the second acceleration device may include a second storage component 701 and at least one third acceleration component 702; the second storage component 701 is connected to the second host processing component 700 via a bus.

[0148] The second storage component 701 is used to store multiple data to be processed sent by the second host processing component 700; the data to be processed is target data to be encrypted or ciphertext processing result to be decrypted;

[0149] The third acceleration component 702 is used to obtain at least one piece of data to be processed from the second storage component; for any piece of data to be processed, the data to be processed is encrypted or decrypted to obtain the calculation result, and the calculation result is stored in the second storage component 701.

[0150] The second host processing component 700 obtains the calculation result corresponding to any data to be processed from the second storage component 701.

[0151] Optionally, the second acceleration device may be equipped with multiple third acceleration components 702, thereby improving parallel processing capabilities, processing efficiency, and acceleration performance.

[0152] In some embodiments, such as Figure 7b As shown, each third acceleration component 702 may include a second control unit 7021 and a plurality of second computing units 7022;

[0153] The second control unit 7021 is used to acquire at least one piece of data to be processed from the second storage component; and to assign the at least one piece of data to be processed to at least one second processing unit;

[0154] The second arithmetic unit 7022 is used to encrypt or decrypt any data to be processed assigned to it, and obtain the calculation result.

[0155] The second control unit 7021 is used to store the calculation result corresponding to any data to be processed into the second storage component 701.

[0156] In some embodiments, each third acceleration component 702 may further include a second storage unit 7023; the second arithmetic unit 7022 is further configured to save the calculation result corresponding to any data to be processed to the second storage unit 7023;

[0157] The second control unit 7021 stores the calculation result corresponding to any data to be processed to the second storage component 701, including: storing the calculation result corresponding to any data to be processed stored in the second storage unit 7023 to the second storage component 701.

[0158] In some embodiments, such as Figure 7b As shown, each third acceleration component 702 may further include a second loading unit 7024. The second control unit 7021 may specifically control the second loading unit 7024 to acquire at least one piece of data to be processed from the second storage component 701.

[0159] In some embodiments, the second control unit 7021 is further configured to receive second control information sent by the second host processing component 700, and control the operation of multiple second arithmetic units 7022 and second storage units 7023 according to the second control information;

[0160] The second control unit 7021 is also used to notify the second arithmetic unit 7022 of the corresponding arithmetic method according to the second control information; wherein, the arithmetic method corresponding to encryption is dot addition and dot multiplication, and the arithmetic method corresponding to decryption is dot multiplication.

[0161] The second control information may include a first total amount of at least one piece of data to be processed required by the third acceleration component, and a second total amount of data corresponding to the at least one piece of data to be processed after calculation and processing. Furthermore, it may include a first storage address corresponding to the at least one piece of data to be processed, and a second storage address corresponding to at least one calculation and processing result obtained after calculating and processing the at least one piece of data to be processed. Therefore, the second control unit 7021 can specifically obtain at least one piece of data to be processed from the second storage component 701 according to the first total amount of data and the first storage address; and can control the second storage unit 7023 to store at least one calculation and processing result in the second storage component 701 according to the second total amount of data and the second storage address. Specifically, the second control unit 7021 can specifically control the second loading unit 7024 to obtain at least one piece of data to be processed from the second storage component 701 according to the first total amount of data and the first storage address.

[0162] In addition, the second control information may also include the corresponding operation method for encryption or decryption, and the second control unit 7021 may specifically notify the second operation unit 7022 of the corresponding operation method according to the second control information.

[0163] The second operation unit 7022 performs calculations on any assigned data to obtain a calculation result, including: processing the assigned data according to the operation method to obtain a calculation result.

[0164] The encryption or decryption operations can be pre-configured with one or more corresponding operation instructions. Executing one or more operation instructions enables the computational processing of each piece of data to be processed. In some embodiments, the second operation unit 7022 can be implemented using a programmable processor (PC), which can store corresponding instructions to execute corresponding operations. The second operation unit 7022 may include a second storage subunit, a second parsing subunit, a second calculation subunit, and a second control subunit.

[0165] The second storage subunit is used to store one or more operation instructions corresponding to encryption or decryption;

[0166] The second parsing subunit is used to parse one or more operation instructions;

[0167] The second control subunit is used to send calculation instruction information to the second calculation subunit based on the parsing result of the parsing unit;

[0168] The second calculation subunit is used to perform calculations on the data to be processed based on the calculation instruction information to obtain the calculation results.

[0169] The one or more operation instructions, after being parsed, can be converted into corresponding calculation instruction information to control the operation of the first calculation subunit.

[0170] The second storage sub-unit can be implemented using RAM, etc.

[0171] In one implementation, the second storage subunit may include a second instruction storage subunit, a second data storage subunit, and a second data storage subunit.

[0172] The second instruction storage unit is used to store one or more operation instructions, the second data storage subunit is used to store intermediate results during the calculation process, and the second number storage unit is used to store preset number of times, etc.

[0173] In addition, since the encryption operation involves dot multiplication, the second storage subunit may also include a first scalar storage subunit for storing scalar data.

[0174] It should be noted that the specific structure of the second arithmetic unit can be the same as that of the first arithmetic unit 302 described in the corresponding embodiments above. Therefore, the specific implementation can be found in the explanation of the first arithmetic unit above, and will not be repeated here.

[0175] The technical solutions of this application embodiment can improve the processing efficiency of encryption or decryption operations in the second computing device and the processing efficiency of ciphertext accumulation operations in the first computing device, reduce the computational load of the host processing component, improve processing performance, improve acceleration performance, and realize efficient and high-performance data joint processing.

[0176] The first computing device and the second computing device can be physical machines, such as physical machines that provide cloud computing capabilities.

[0177] Furthermore, embodiments of this application also provide an acceleration method, which can be applied to, for example... Figure 1 The acceleration device shown includes a first storage component, a first acceleration component connected to the first storage component, and a second acceleration component. The first storage component is connected to a first host processing component via a bus. The first storage component stores multiple encrypted data corresponding to multiple objects sent by the first host processing component. The specific structural implementation of this acceleration device can be found in the corresponding embodiments, and will not be repeated here. This method can be specifically executed by the second acceleration component in the acceleration device, such as... Figure 8 As described herein, the method may include the following steps:

[0178] 801: Retrieve multiple encrypted data from the first storage component.

[0179] 802: For any given feature, multiple encrypted data are divided into buckets to obtain multiple bucketing results.

[0180] 803: Store the results of multiple buckets into the first storage component.

[0181] The first acceleration component is used to obtain multiple bucketing results from the first storage component; to perform calculations and processing on the ciphertext data in the same bucketing result to obtain a ciphertext processing result; to store the ciphertext processing results corresponding to the multiple bucketing results to the first storage component; and the first storage component is used to provide the ciphertext processing results corresponding to the multiple bucketing results to the first host processing component.

[0182] Furthermore, embodiments of this application also provide an acceleration method, which can be applied to, for example... Figure 1 The acceleration device shown includes a first storage component, a first acceleration component connected to the first storage component, and a second acceleration component. The first storage component is connected to a first host processing component via a bus. The first storage component stores multiple encrypted data corresponding to multiple objects sent by the first host processing component. The specific structural implementation of this acceleration device can be found in the corresponding embodiments, and will not be repeated here. This method can be specifically executed by the first acceleration component in the acceleration device, such as... Figure 9 As described herein, the method may include the following steps:

[0183] 901: Retrieve multiple bucket results from the first storage component.

[0184] The multiple bucketing results can be obtained by the second acceleration component from the first storage component by obtaining multiple ciphertext data and performing bucketing processing on the multiple ciphertext data according to multiple features.

[0185] 902: Perform calculations and processing on the ciphertext data in the same bucket result to obtain the ciphertext processing result.

[0186] 903: Store the encrypted processing results corresponding to the results of multiple buckets into the first storage component.

[0187] The first storage component is used to provide the encrypted processing results corresponding to the multiple bucket results to the first host processing component.

[0188] It should be noted that, Figure 8 The acceleration method described in the illustrated embodiment and Figure 9 The specific operation of each step in the acceleration method described in the illustrated embodiment has been described in detail in the relevant device embodiments, and will not be elaborated here.

[0189] Furthermore, embodiments of this application also provide a computing device, such as... Figure 10As described above, the computing device may include a host processing component 1001, a host storage component 1002, and an acceleration device 1003, wherein the acceleration device may employ, for example... Figures 1-5 or Figure 7a The structures described in any of the embodiments will not be repeated here.

[0190] The host storage component 1002 can store one or more computer instructions for the host processing component 1001 to call and execute in order to perform the corresponding operation.

[0191] Of course, computing devices may also include other components, such as input / output interfaces, display components, communication components, etc.

[0192] Input / output interfaces provide interfaces between processing components and peripheral interface modules, which can be output devices, input devices, etc. Communication components are configured to facilitate wired or wireless communication between computing devices and other devices.

[0193] The host processing component may include one or more processors to execute computer instructions to complete all or part of the steps in the above-described method. Alternatively, the host processing component may be implemented as one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic components to perform the above-described method.

[0194] Host storage components are configured to store various types of data to support the operation of computing devices. Host storage components can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk.

[0195] Acceleration devices can be implemented using application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic components. They can be connected to the host processing components via a bus and deployed in computing devices using a hot-swappable method.

[0196] This application also provides a computer-readable storage medium storing a computer program, which, when executed by a computer, can perform the above-described functions. Figure 8 or Figure 9 The acceleration method of the illustrated embodiment. The computer-readable medium may be included in the computing device described in the above embodiments; or it may exist independently and not assembled into the electronic device.

[0197] This application also provides a computer program product, which includes a computer program carried on a computer-readable storage medium, and the computer program, when executed by a computer, can perform the above-described functions. Figure 8 or Figure 9 The acceleration method of the illustrated embodiment. In such an embodiment, the computer program may be downloaded and installed from a network, and / or installed from a removable medium. When the computer program is executed by a processor, it performs the various functions defined in the system of this application.

[0198] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0199] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without any creative effort.

[0200] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus necessary general-purpose hardware platforms, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solutions, in essence or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments or some parts of the embodiments.

[0201] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application.

Claims

1. An acceleration device, characterized in that, include: A first storage component, a first acceleration component connected to the first storage component, and a second acceleration component; The first storage component is connected to the first host processing component via a bus; The first storage component is used to store multiple encrypted data corresponding to multiple objects sent by the first host processing component; The second acceleration component is used to obtain the plurality of encrypted data from the first storage component, and to perform bucketing processing on the plurality of encrypted data for any feature to obtain a plurality of bucketing results; and to store the plurality of bucketing results in the first storage component; The first acceleration component is used to obtain the multiple bucketing results from the first storage component; perform calculations on the ciphertext data in the same bucketing result to obtain a ciphertext processing result; and store the ciphertext processing results corresponding to the multiple bucketing results to the first storage component. The first storage component is used to provide the encrypted processing results corresponding to the multiple bucketing results to the first host processing component.

2. The device according to claim 1, characterized in that, The second acceleration component performs bucketing processing on the multiple encrypted data for any feature to obtain multiple bucketing results, including: determining the bucketing information corresponding to the feature for each of the multiple objects; dividing the encrypted data corresponding to at least one object with the same bucketing information into the same bucketing result to obtain multiple bucketing results; wherein the bucketing information corresponding to different features for the multiple objects is determined by the first host processing component. The first storage component is also used to store bucket information for the multiple objects sent by the first host processing component, each corresponding to a different characteristic.

3. The device according to claim 1, characterized in that, The second acceleration component includes a data loading unit, multiple bucket units, and a data storage unit; The data loading unit is used to obtain the plurality of encrypted data from the first storage component and provide the plurality of encrypted data to the plurality of bucketing units respectively; the data loading unit is also used to allocate features to be processed to the plurality of bucketing units respectively, and control the plurality of bucketing units to process the allocated features to be processed in parallel. The bucketing unit is used to perform bucketing processing on the multiple encrypted data according to the features assigned to it, to obtain multiple bucketing results; and to send the multiple bucketing results to the data storage unit; The data storage unit is used to store multiple bucketing results sent by each bucketing unit into the first storage component.

4. The device according to claim 1, characterized in that, It also includes a substrate, on which the first storage component, the first acceleration component, and the second acceleration component are soldered.

5. The device according to claim 1, characterized in that, The first acceleration component includes at least one first acceleration unit; The first acceleration unit is used to obtain at least one bucketing result from the first storage component, and for any bucketing result, perform calculation processing on multiple ciphertext data in the bucketing result according to the target calculation processing mode to obtain a ciphertext processing result; and store the ciphertext processing result corresponding to any bucketing result into the first storage component.

6. The device according to claim 5, characterized in that, The first acceleration unit includes a first control unit and multiple first computing units; The first control unit is configured to obtain at least one bucketing result from the first storage component; and to assign the at least one bucketing result to at least one first processing unit; The first computing unit is used to perform calculations on multiple ciphertext data in any bucketing result assigned to it, according to the target calculation and processing mode, to obtain the ciphertext processing result. The first control unit is used to store the encrypted processing result corresponding to any bucketing result into the first storage component.

7. The device according to claim 6, characterized in that, The first acceleration unit further includes a first storage unit; the first processing unit is also configured to save the ciphertext processing result corresponding to any bucketing result to the first storage unit; The first control unit stores the encrypted processing result corresponding to any bucket result into the first storage component by storing the encrypted processing result corresponding to any bucket result stored in the first storage unit into the first storage component.

8. The device according to claim 7, characterized in that, The first control unit is further configured to receive first control information sent by the first host processing component, and control the operation of the plurality of first arithmetic units and the first storage unit according to the first control information; The first control unit is also configured to notify the first arithmetic unit of the corresponding arithmetic method according to the first control information; The first processing unit performs calculations and processing on multiple ciphertext data in any assigned bucket result to obtain a ciphertext processing result, including: for any assigned bucket result, processing multiple ciphertext data in the bucket result according to the aforementioned calculation method to obtain a ciphertext processing result.

9. The device according to claim 6, characterized in that, The first arithmetic unit includes a first storage subunit, a first parsing subunit, a first calculation subunit, and a first control subunit; The first storage subunit is used to store one or more operation instructions corresponding to the target computing processing mode; The first parsing subunit is used to parse the one or more operation instructions; The first control subunit is used to send calculation instruction information to the first calculation subunit based on the parsing result of the first parsing subunit; The first calculation subunit is used to perform calculation processing on the plurality of ciphertext data based on the calculation instruction information to obtain the ciphertext processing result.

10. The device according to claim 9, characterized in that, The target calculation and processing mode is ciphertext accumulation, and the ciphertext accumulation operation method is dot addition operation; The first calculation subunit performs calculations on the multiple ciphertext data based on the calculation instruction information to obtain the ciphertext processing result, including: sequentially obtaining one ciphertext data from the multiple ciphertext data, performing a dot-add operation with the previous dot-add result, determining whether the current cumulative number of additions meets the preset number, and if so, outputting the last dot-add result as the ciphertext processing result; otherwise, saving the dot-add result to the first storage subunit.

11. A computing system, characterized in that, It includes a first computing device and a second computing device, wherein the first computing device includes a first host processing component and an acceleration device as described in any one of claims 1 to 10; The second computing device includes a second host processing unit and a second acceleration device; the second acceleration device includes a second storage unit and at least one third acceleration unit; the second storage unit is connected to the second host processing unit via a bus; The second storage component is used to store multiple data items to be processed sent by the second host processing component; The data to be processed is either the target data to be encrypted or the ciphertext processing result to be decrypted; The third acceleration component is used to obtain at least one piece of data to be processed from the second storage component; for any piece of data to be processed, the data to be processed is encrypted or decrypted to obtain a calculation result, and the calculation result is stored in the second storage component; The second host processing component is used to obtain the calculation result corresponding to any data to be processed from the second storage component.

12. The system according to claim 11, characterized in that, When the data to be processed is target data to be encrypted, the target data is the gradient information corresponding to the decision tree model calculated based on the feature values ​​and label data of the sample object provided by the data initiator. or, When the data to be processed is the ciphertext processing result to be decrypted, the data to be processed is specifically the ciphertext processing result to be decrypted calculated for any feature provided by the data receiver, and the calculation result corresponding to the ciphertext processing result is the gradient accumulation value; then the second host processing component is also used to determine the optimal split point of the decision tree model based on the gradient accumulation values ​​corresponding to multiple features.

13. A computing device, characterized in that, It includes a host processing component, a host storage component, and an acceleration device as described in any one of claims 1 to 10.

14. An acceleration method, characterized in that, An acceleration device is applied to an acceleration apparatus, the acceleration apparatus comprising a first storage component, a first acceleration component connected to the first storage component, and a second acceleration component; the first storage component is connected to a first host processing component via a bus; wherein the first storage component stores multiple encrypted data corresponding to multiple objects sent by the first host processing component; the method includes: Obtain the plurality of encrypted data from the first storage component; For any given feature, the multiple encrypted data are bucketed to obtain multiple bucketing results; The multiple bucketing results are stored in the first storage component; the first acceleration component is used to obtain the multiple bucketing results from the first storage component; the encrypted data in the same bucketing result is processed to obtain the encrypted processing result; the encrypted processing results corresponding to the multiple bucketing results are stored in the first storage component; the first storage component is used to provide the encrypted processing results corresponding to the multiple bucketing results to the first host processing component.