WO2022111456A1 - Procédé et appareil de partage de cœur basés sur un système multicœur, dispositif électronique et support - Google Patents

Procédé et appareil de partage de cœur basés sur un système multicœur, dispositif électronique et support Download PDF

Info

Publication number
WO2022111456A1
WO2022111456A1 PCT/CN2021/132357 CN2021132357W WO2022111456A1 WO 2022111456 A1 WO2022111456 A1 WO 2022111456A1 CN 2021132357 W CN2021132357 W CN 2021132357W WO 2022111456 A1 WO2022111456 A1 WO 2022111456A1
Authority
WO
WIPO (PCT)
Prior art keywords
core
shared
cluster
processing
storage area
Prior art date
Application number
PCT/CN2021/132357
Other languages
English (en)
Chinese (zh)
Inventor
吴臻志
祝夭龙
Original Assignee
北京灵汐科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京灵汐科技有限公司 filed Critical 北京灵汐科技有限公司
Publication of WO2022111456A1 publication Critical patent/WO2022111456A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present disclosure relates to the field of computer technologies, and in particular, to a core sharing method and apparatus based on a many-core system, an electronic device, and a computer-readable medium.
  • a many-core system usually has many cores (also called processing cores).
  • the core is the smallest computing unit in the many-core system that can be independently scheduled and has complete computing power.
  • the core has certain resources such as storage and computing.
  • the core of the many-core system can run program instructions independently, using the ability of parallel computing, can speed up the running speed of the program, and can provide multi-tasking ability.
  • the present disclosure provides a core sharing method and apparatus based on a many-core system, an electronic device, and a computer-readable medium.
  • the present disclosure provides a core sharing method based on a many-core system
  • the many-core system includes a plurality of pre-configured core clusters, each of the core clusters includes at least one second processing core
  • the method Including: receiving a core sharing request; according to the core sharing request, determining at least one second processing core from the second processing cores of the first core cluster and/or the predetermined second core cluster, as the first core cluster
  • the tasks corresponding to the core clusters respectively store first task data corresponding to the tasks of the first core cluster, and store second task data corresponding to the tasks of the second core cluster.
  • the many-core system further includes a first processing core
  • the receiving a core sharing request includes: receiving a core sharing request sent by an external host or a first processing core, where the core sharing request is the external Generated by the host or the first processing core based on common tasks corresponding to the first core cluster and the second core cluster; or, receiving a core sharing request sent by the main processing core of the second core cluster,
  • the main processing core of the second core cluster is a pre-designated second processing core in at least one second processing core of the second core cluster.
  • the method further includes: updating a core cluster list corresponding to the shared core, where the updated core cluster list includes Identification information corresponding to a core cluster and the second core cluster respectively.
  • the method further includes: creating a first shared core corresponding to the first core cluster in a storage area corresponding to the shared core array a storage area, the first shared storage area is used to store the first task data; a second shared storage area corresponding to the second core cluster is created in the storage area corresponding to the shared core array, the The second shared storage area is used to store the second task data.
  • the method before creating the first shared storage area corresponding to the first core cluster in the storage area corresponding to the shared core array, the method further includes: judging the storage area corresponding to the shared core array Whether there is available storage space in the storage area; in response to judging that there is available storage space in the storage area corresponding to the shared core array, executing the creation of the first core cluster in the storage area corresponding to the shared core array Corresponding steps of the first shared storage area.
  • the method further includes: in response to determining that the storage area corresponding to the shared core array does not exist Available storage space, determine an idle processing core in the processing cores that do not belong to any core cluster in the many-core system; determine at least one of the idle processing cores as the shared core, and add it to the shared core array .
  • the number of the shared cores is multiple, the storage area corresponding to the shared core array further includes a general shared storage area, the first shared storage area, the second shared storage area and the The general shared storage area corresponds to one or more shared cores respectively; wherein, the shared core corresponding to the first shared storage area is configured to store the first task data; the shared core corresponding to the second shared storage area is configured In order to store the second task data; the shared cores corresponding to the common shared storage area are configured to receive and execute tasks corresponding to the first core cluster and the second core cluster respectively.
  • the first task data includes first input data, first output data, and first task configuration information
  • the first shared storage area includes a first input data area, a first output data area, and a first a task configuration area; wherein the shared cores in the first input data area are configured to store the first input data; the shared cores in the first output data area are configured to store the first output data ; the shared core in the first task configuration area is configured to store the first task configuration information.
  • the present disclosure provides a core sharing apparatus, which is applied to a many-core system, where the many-core system includes a plurality of preconfigured core clusters, each core cluster includes at least one second processing core, the The core sharing apparatus includes: a receiving module for receiving a core sharing request; a sharing determining module for, according to the core sharing request, from the second processing cores of the first core cluster and/or the predetermined second core cluster, determining at least one second processing core as a shared core between the first core cluster and the second core cluster, and at least one shared core forms a shared core array; wherein the shared core array is configured to receive and execute the tasks corresponding to the first core cluster and the second core cluster respectively, store the first task data corresponding to the tasks of the first core cluster, and store the tasks corresponding to the second core cluster of the second task data.
  • the present disclosure provides an electronic device comprising: a plurality of processing cores; and an on-chip network configured to exchange data among the plurality of processing cores and external data; wherein one or more One or more instructions are stored in each of the processing cores, and the one or more instructions are executed by the one or more processing cores, so that the one or more processing cores can execute the above-mentioned core sharing method.
  • the present disclosure provides a computer-readable medium on which a computer program is stored, the computer program implementing the above-mentioned core sharing method when executed by a processing core.
  • the present disclosure provides a computer program product that, when running on a computer, causes the computer to execute the above-mentioned core sharing method.
  • At least one second processing core in one or more core clusters can be used as a shared core among multiple core clusters according to the received core sharing request, and multiple core clusters can share the shared core
  • multiple core clusters can share the shared core
  • FIG. 1 is a flowchart of a core sharing method based on a many-core system according to an embodiment of the present disclosure
  • FIG. 2 is a block diagram of the composition of a many-core system according to an embodiment of the present disclosure
  • FIG. 3 is a flowchart of a core sharing method according to an embodiment of the present disclosure
  • FIG. 4 is a flowchart of a core sharing method according to an embodiment of the present disclosure.
  • FIG. 5 is a schematic structural diagram of a shared core array according to an embodiment of the disclosure.
  • FIG. 6 is a block diagram of the composition of a core sharing apparatus according to an embodiment of the present disclosure.
  • FIG. 7 is a block diagram of the composition of an electronic device according to an embodiment of the present disclosure.
  • the many-core system includes a plurality of preconfigured core clusters, each core cluster includes at least one second processing core, and each core cluster is respectively used for executing corresponding computing tasks.
  • each core cluster performing the corresponding task, there may exist data and parameters (eg weights) of some processing cores, which are required by multiple core clusters at the same time.
  • the processing core corresponding to the branch network needs to use the data of the processing core corresponding to the backbone network to perform prediction processing.
  • how to effectively implement cross-cluster services between core clusters is a technical problem that needs to be solved urgently in the core cluster scenario of the many-core system.
  • FIG. 1 is a flowchart of a core sharing method based on a many-core system according to an embodiment of the present disclosure.
  • an embodiment of the present disclosure provides a core sharing method based on a many-core system, wherein the many-core system includes a plurality of pre-configured core clusters, each core cluster includes at least one second processing core, and the method can be implemented by a core
  • the device can be implemented by means of software and/or hardware, and the core sharing method includes:
  • Step S1 receiving a core sharing request.
  • Step S2 according to the core sharing request, determine at least one second processing core from the second processing cores of the first core cluster and/or the predetermined second core cluster, as the first core cluster and the second core cluster. Shared cores between core clusters, at least one shared core forms a shared core array.
  • the shared core array is configured to receive and execute tasks corresponding to the first core cluster and the second core cluster respectively, store first task data corresponding to the tasks of the first core cluster, and store tasks corresponding to the second core cluster Corresponding second task data.
  • the first task data includes first input data, first output data, and first task configuration information
  • the second task data includes second input data, second output data, and second task configuration information.
  • the input data can be, for example, the data required to execute the task
  • the output data can be, for example, the result of executing the task
  • the task configuration information is the configuration required to execute the task, such as memory configuration, routing configuration, operation sequence configuration, operation Time configuration, operator configuration and other information.
  • the present disclosure does not limit the specific categories of input data, output data, and task configuration information.
  • the first core cluster is any core cluster among the multiple core clusters in the many-core system
  • the second core cluster is any core cluster other than the first core cluster in the many-core system
  • the second core cluster is any core cluster other than the first core cluster in the many-core system.
  • the number of clusters can be one or more.
  • any core cluster or multiple core clusters can be used for multiple core clusters.
  • At least one second processing core in the core clusters is used as a shared core among multiple core clusters, and multiple core clusters can share the data of the shared core (for example, parameters required in the deep learning network, etc.), thereby realizing multiple core clusters.
  • the cross-cluster business between multiple core clusters of the core system satisfies the requirement that multiple core clusters need to share the data of some processing cores, improves the control ability of some processing cores in the many-core system, and improves the task processing of the many-core system. flexibility.
  • FIG. 2 is a block diagram of the composition of a many-core system provided by an embodiment of the present disclosure.
  • each core cluster has a main processing core, and the main processing core is the core cluster.
  • the core sharing method of the embodiment of the present disclosure can be applied to the main processing core of any core cluster in the many-core system, that is, the core sharing method of the embodiment of the present disclosure is implemented based on the main processing core of any core cluster, and the main processing core can be used for It handles the tasks corresponding to its own core cluster, and can also be used for task allocation and management within the cluster.
  • the main processing core of the second core cluster may Send a core sharing request to the main processing core of the first core cluster.
  • the core sharing request may include but is not limited to: identification information, address information corresponding to the second core cluster, one or more second core clusters to be shared in the first core cluster Processing core information, etc.
  • the main processing core of the first core cluster receives the core sharing request sent by the main processing core of the second core cluster, wherein the main processing core of the second core cluster is at least one of the second core cluster. A pre-designated second processing core among the second processing cores.
  • the many-core system includes a plurality of processing cores, wherein one processing core is pre-designated as the first processing core, and the remaining processing cores are the second processing cores, and the first processing core is used for receiving data from The tasks to be processed sent by the external host, and the core cluster for processing the tasks to be processed is formed in the many-core system, and the tasks to be processed are scheduled and managed in the many-core system.
  • the external host or the first processing core When the external host or the first processing core needs to establish or assign a common task to multiple core clusters, the external host or the first processing core can select any one of the multiple core clusters as the first core cluster, and the rest As the core cluster is the second core cluster, the external host or the first processing core can first send a core sharing request to the main processing core of the first core cluster.
  • the core sharing request may include but not limited to common tasks and the identifier corresponding to the second core cluster. information, address information, etc., so that the main processing cores of the first core cluster form shared cores for processing common tasks.
  • step S1 the main processing core of the first core cluster receives the core sharing request sent by the external host or the first processing core, and the core sharing request is based on the external host or the first processing core and the first core cluster and the core sharing request. It is generated by the public tasks corresponding to the second core cluster.
  • common tasks refer to tasks that both the first core cluster and the second core cluster need to perform.
  • the first core cluster needs to perform fast Fourier transform tasks (FFT) and window function filtering tasks
  • the second core cluster needs to perform fast Fourier transform task (FFT) and frequency domain multiplication task
  • the fast Fourier transform task (FFT) is the common task corresponding to the first core cluster and the second core cluster
  • the common task can be the backbone of the neural network Complex mathematical operations (such as matrix factorization, FFT, etc.) tasks in the network.
  • step S2 after receiving the core sharing request from the main processing core of the second core cluster, the main processing core of the first core cluster, according to the core sharing request, from the first core where it is located. At least one second processing core is determined from at least one second processing core of the cluster, the determined second processing core is used as a shared core, and the at least one shared core forms a shared core array.
  • the number of shared cores may be specifically determined according to the number of second processing cores requested to be shared by the main processing cores of the second core cluster, which is not limited in this embodiment of the present disclosure.
  • step S2 after receiving the core sharing request from the external host or the first processing core in the many-core system, the main processing core of the first core cluster, At least one second processing core is determined in at least one second processing core of the first core cluster, the determined second processing core is used as a shared core, and the at least one shared core forms a shared core array.
  • the number of shared cores may be determined according to the resource requirements required by the common tasks, which is not limited in the embodiments of the present disclosure, as long as the total remaining resources of the formed shared cores can meet (greater than or equal to) the required resources for the common tasks. resource requirements.
  • the resource requirement required by the common task refers to the amount of resources required to perform the common task, for example, the resources may be computing resources, storage resources, and bandwidth resources.
  • the resources may be computing resources, storage resources, and bandwidth resources.
  • For multiple core clusters that need to process common tasks by forming shared cores among multiple core clusters to process common tasks, the processing efficiency and flexibility of the tasks are improved, and multiple core clusters of the many-core system are realized at the same time.
  • the cross-cluster business between multiple core clusters satisfies the requirement that multiple core clusters need to share some processing core data.
  • the main processing core of the first core cluster selects an idle second processing core as a shared core. In some embodiments, in the case of receiving a core sharing request from the main processing core of the second core cluster, if there is no idle second processing core in the first core cluster where the second core cluster is located, the request to the second core cluster The main processing core returns a core sharing request failure message. In some embodiments, in the case of receiving a core sharing request from the external host or the first processing core, if there is no idle second processing core in the first core cluster where the user is located, the external host or the first processing core is sent to the external host or the first processing core. The core returns a core share request failure message.
  • step S2 after receiving the core sharing request from the external host or the first processing core in the many-core system, the primary processing core of the first core cluster, according to the core sharing request, from the second core At least one second processing core is determined from at least one second processing core of the cluster, and the determined second processing core serves as a shared core between the first core cluster and the second core cluster.
  • step S2 after receiving the core sharing request from the external host or the first processing core in the many-core system, the main processing core of the first core cluster, according to the core sharing request, There is no available (idle) second processing core in the first core cluster, then at least one second processing core is determined from at least one second processing core in the second core cluster, and the determined second processing core is used as the first processing core.
  • determining at least one second processing core from the at least one second processing core of the second core cluster as a shared core includes: sending a core sharing request to the main processing core of the second core cluster for the first In response to the core sharing request, the main processing core of the two-core cluster determines at least one second processing core from at least one second processing core in the core cluster where it is located as a shared core.
  • first and “second” in the first core cluster and the second core cluster are only for distinguishing different core clusters, and do not refer to a particular core cluster.
  • all the core clusters have the same status, can receive the core sharing request as the first core cluster, and execute the core sharing method in response to the core sharing request, and each core cluster in all the core clusters can also be used as the second core.
  • the cluster requests core sharing from other core clusters, which is not limited in this embodiment of the present disclosure.
  • the main processing core of the first core cluster after receiving the core sharing request from the external host or the first processing core in the many-core system, the main processing core of the first core cluster, according to the core sharing request, from at least one of the first core cluster where it is located. At least one second processing core is determined from one second processing core as a shared core, and at least one second processing core is determined from at least one second processing core of the second core cluster as a shared core. In other words, a part of the second processing cores can be selected from the first core cluster, and a part of the second processing cores can be selected from the second core cluster as shared cores together.
  • the main processing core of the first core cluster or the second core cluster further marks the second processing core to mark the second processing core It is shared for the management of each core in the cluster.
  • FIG. 3 is a flowchart of a core sharing method according to an embodiment of the present disclosure.
  • the core sharing method further includes:
  • Step S3 Update the core cluster list corresponding to the shared core, where the updated core cluster list includes identification information corresponding to the first core cluster and the second core cluster respectively.
  • each second processing core in each cluster prestores a core cluster list corresponding to the core cluster where the second processing core is located, and the core cluster list includes but is not limited to: the core cluster corresponding to the core cluster where the second processing core is located
  • Identification information, information of each member in the cluster, the information of each member in the cluster includes but not limited to: the identification, address, location, etc. of each member.
  • the main processing core of the first core cluster adds the identification information corresponding to the second core cluster in the core cluster list of each shared core, thereby updating the core cluster list corresponding to each shared core, and updating
  • the latter list of core clusters includes identification information corresponding to the first core cluster and the second core cluster, so that the shared core can identify that subsequent jobs belong to the first core cluster or the second core cluster, and perform corresponding processing.
  • the main processing core of the first core cluster after determining the shared core, also feeds back information of the shared core to the second core cluster, the information including but not limited to the identification and address information of the shared core, so as to facilitate The processing cores in the second core cluster can access the shared core to obtain required data, or implement required services through the shared core.
  • the main processing core of the two-core cluster in the case of receiving the core sharing request sent by the external host or the first processing core, if the main processing core of the first core cluster sends the core sharing request to the main processing core of the second core cluster, the After determining the shared core, the main processing core of the two-core cluster also feeds back the information of the shared core to the first core cluster, the information including but not limited to the identification and address information of the shared core, so as to facilitate the processing in the first core cluster
  • the cores can access the shared cores to obtain the required data, or implement the required services through the shared cores.
  • FIG. 4 is a flowchart of a core sharing method provided by an embodiment of the present disclosure.
  • the core sharing method further includes: :
  • Step S4 judging whether there is available storage space in the storage area corresponding to the shared core array, if so, go to step S5 , otherwise go to step S7 .
  • step S5 is performed; otherwise, step S7 is performed.
  • the storage area corresponding to the shared core array is the storage area of all shared cores in the shared core array.
  • the preset memory capacity may be the total memory capacity required for executing common tasks and storing task data of the common tasks; it may also be executing tasks corresponding to the first core cluster and the second core cluster, and storing The total memory capacity required for the first task data and the second task data.
  • the present disclosure does not limit the specific value of the preset memory capacity.
  • Step S5 Create a first shared storage area corresponding to the first core cluster in the storage area corresponding to the shared core array.
  • creating the first shared storage area corresponding to the first core cluster in the storage area corresponding to the shared core array is to create the first shared storage area in the available storage space of the shared core array.
  • step S5 in response to determining that there is available storage space in the storage area corresponding to the shared core array, a first shared storage area corresponding to the first core cluster is created in the storage area corresponding to the shared core array.
  • the storage area corresponding to the shared core array in response to determining that there is available storage space in the storage area corresponding to the shared core array, and determining that the memory capacity of the available storage space is greater than or equal to the preset memory capacity, the storage area corresponding to the shared core array A first shared storage area corresponding to the first core cluster is created in the area. The first shared storage area is used to store first task data corresponding to tasks of the first core cluster.
  • Step S6 Create a second shared storage area corresponding to the second core cluster in the storage area corresponding to the shared core array, and end the process.
  • creating the second shared storage area corresponding to the second core cluster in the storage area corresponding to the shared core array is to create the second shared storage area in the available storage space of the shared core array.
  • the second shared storage area is used for storing second task data of the task corresponding to the second core cluster.
  • the method further includes: creating a general shared storage area in the storage area corresponding to the shared core array, The general shared storage area is used to carry the execution and operation process of the tasks corresponding to the first core cluster and the second core cluster respectively.
  • Step S7 Determine the idle processing cores among the processing cores that do not belong to any core cluster in the many-core system.
  • Step S8 Add at least one of the idle processing cores to the first core cluster, determine the at least one idle processing core as a shared core, add it to the shared core array, and jump to step S5.
  • step S7 in response to determining that there is no available storage space in the storage area corresponding to the shared core array, determine an idle processing core among the processing cores that do not belong to any core cluster in the many-core system. In some embodiments, in response to determining that the memory capacity of the available storage space of the shared core array is less than the preset memory capacity, determining an idle processing core among the processing cores not belonging to any core cluster in the many-core system.
  • the main processing core of the first core cluster can monitor or obtain the status of each processing core in the many-core system, so as to determine all processing cores currently available in the many-core system, that is, idle Process the nucleus.
  • step S8 adding at least one idle processing core to the first core cluster where it is located may further include: creating an identifier of the idle processing core, and adding the identifier of the idle processing core, Add information such as address and location to the core cluster list corresponding to the first core cluster where you are located to update the core cluster list corresponding to the first core cluster where you are located, and at the same time send the core cluster list corresponding to the first core cluster where you are located to the idler processing core for storage.
  • the process may further jump to step S7.
  • the determined shared core array includes one shared core, then in step S5 and step S6, create a first shared storage area corresponding to the first core cluster from the storage area of the shared core, and create The second shared storage area corresponding to the second core cluster can also create a general shared storage area for carrying the operation process of the task.
  • the determined shared core array includes multiple shared cores, wherein the first shared storage area corresponding to the first core cluster may correspond to one or more shared cores in the array, that is, the first core cluster corresponds to The first shared storage area includes one or more shared core storage areas; similarly, the second shared storage area corresponding to the second core cluster may also correspond to one or more shared cores in the array, that is, the second core cluster
  • the corresponding second shared storage area includes storage areas of one or more shared cores; similarly, the general shared storage area may also correspond to one or more shared cores, that is, the general shared storage area includes storage areas of one or more shared cores. Area. Among them, the shared kernels corresponding to different regions are different.
  • the multiple shared cores can be divided into different areas, one of which corresponds to the first core cluster and is used to store the first task data corresponding to the tasks of the first core cluster , one area corresponds to the second core cluster, and is used to store the second task data corresponding to the tasks of the second core cluster, and the other area is used as a common computing path area for the first core cluster and the second core cluster, which is used to carry the first core cluster.
  • the execution operation process of the tasks corresponding to the cluster and the second core cluster respectively.
  • FIG. 5 is a schematic structural diagram of a shared core array according to an embodiment of the disclosure.
  • the shared core array includes a plurality of shared cores
  • the storage area corresponding to the shared core array includes a first shared storage area M1 corresponding to the first core cluster, and a second shared storage area corresponding to the second core cluster.
  • the area M2, the general shared storage area M0, the first shared storage area, the second shared storage area and the general shared storage area may respectively correspond to one or more shared cores.
  • the core may be configured to receive and execute tasks corresponding to the first core cluster and the second core cluster respectively, that is, an operation process carrying the tasks of the first core cluster and the second core cluster.
  • the first shared storage area M1 may include a first input data area, a first output data area, and a first task configuration area, and the first input data area is configured to store the data of the first core cluster.
  • the first output data area is configured to store the first output data corresponding to the task of the first core cluster;
  • the first task configuration area is configured to store the first task corresponding to the task of the first core cluster configuration information.
  • the first shared storage area M1 corresponds to multiple shared cores
  • the first input data area, the first output data area, and the first task configuration area may correspond to one or more shared cores, respectively, and the first input data area
  • the corresponding shared core is configured to store the first input data
  • the shared core corresponding to the first output data area is configured to store the first output data
  • the shared core corresponding to the first task configuration area is configured to store the first task configuration information.
  • the second shared storage area M2 may include a second input data area, a second output data area, and a second task configuration area, and the second input data area is configured to store the data of the second core cluster.
  • the second output data area is configured to store the second output data corresponding to the task of the second core cluster;
  • the second task configuration area is configured to store the second task corresponding to the task of the second core cluster configuration information.
  • the second shared memory area M2 corresponds to multiple shared cores
  • the second input data area, the second output data area, and the second task configuration area may respectively correspond to one or more shared cores
  • the corresponding shared core is configured to store the second input data
  • the shared core corresponding to the second output data area is configured to store the second output data
  • the shared core corresponding to the second task configuration area is configured to store the second task configuration information.
  • the shared core array is correspondingly configured with a task list
  • the task list may be stored in the main processing core of the first core cluster and/or the main processing core of the second core cluster, and the shared core array may be configured according to the task list.
  • the tasks are processed in sequence, and the task list may include, but is not limited to, computing tasks, signaling tasks, switching tasks, and the like.
  • the computing task is, for example, a task for instructing to perform operations such as computation, calculation, etc.
  • the signaling task is for example a task for instructing to send the required notification, request, etc.
  • the switching task is for example, for sharing
  • the core switches from serving one core cluster to serving another core cluster instructs the task of performing operations such as buffer reset and input and output address switching.
  • the corresponding task in the task list will be cleared.
  • FIG. 6 is a block diagram of the composition of a core sharing apparatus according to an embodiment of the present disclosure.
  • an embodiment of the present disclosure provides a core sharing apparatus 300 , and the core sharing apparatus 300 is applied to a many-core system, where the many-core system includes a plurality of preconfigured core clusters, and each core cluster includes at least one second core cluster.
  • the core sharing apparatus 300 includes: a receiving module 301 and a sharing determination module 302 .
  • the receiving module 301 is configured to receive a core sharing request; the sharing determining module 302 is configured to determine at least one first core cluster from the second processing cores of the first core cluster and/or the second predetermined core cluster according to the core sharing request.
  • Two processing cores are used as shared cores between the first core cluster and the second core cluster, and at least one shared core forms a shared core array.
  • the shared core array is configured to receive and execute tasks corresponding to the first core cluster and the second core cluster respectively, store first task data corresponding to tasks of the first core cluster, and store tasks corresponding to the second core cluster of the second task data.
  • the many-core system further includes a first processing core
  • the receiving module 301 is configured to: receive a core sharing request sent by an external host or a first processing core, where the core sharing request is the external Generated by the host or the first processing core based on common tasks corresponding to the first core cluster and the second core cluster; or, receiving a core sharing request sent by the main processing core of the second core cluster,
  • the main processing core of the second core cluster is a pre-designated second processing core in at least one second processing core of the second core cluster.
  • the core sharing apparatus 300 further includes an update module (not shown in the figure), the update module is configured to update the corresponding to the shared core after the sharing determination module 302 determines at least one second processing core A core cluster list, where the updated core cluster list includes identification information corresponding to the first core cluster and the second core cluster respectively.
  • the update module is configured to update the corresponding to the shared core after the sharing determination module 302 determines at least one second processing core A core cluster list, where the updated core cluster list includes identification information corresponding to the first core cluster and the second core cluster respectively.
  • the core sharing apparatus 300 further includes a shared storage area creation module (not shown in the figure), and the shared storage area creation module is configured to: after the sharing determination module 302 determines the at least one second processing core, A first shared storage area corresponding to the first core cluster is created in the storage area corresponding to the shared core array, and the first shared storage area is used to store the first task data; A second shared storage area corresponding to the second core cluster is created in the storage area corresponding to the array, and the second shared storage area is used to store the second task data.
  • a shared storage area creation module is configured to: after the sharing determination module 302 determines the at least one second processing core, A first shared storage area corresponding to the first core cluster is created in the storage area corresponding to the shared core array, and the first shared storage area is used to store the first task data; A second shared storage area corresponding to the second core cluster is created in the storage area corresponding to the array, and the second shared storage area is used to store the second task data.
  • the core sharing apparatus 300 further includes a judging module (not shown in the figure), the judging module is used for judging the corresponding to the shared core array before the shared memory area creation module creates the first shared memory area. Whether there is available storage space in the storage area; in response to judging that there is available storage space in the storage area corresponding to the shared core array, executing the creation of the first core cluster in the storage area corresponding to the shared core array Corresponding steps of the first shared storage area.
  • a judging module is used for judging the corresponding to the shared core array before the shared memory area creation module creates the first shared memory area. Whether there is available storage space in the storage area; in response to judging that there is available storage space in the storage area corresponding to the shared core array, executing the creation of the first core cluster in the storage area corresponding to the shared core array Corresponding steps of the first shared storage area.
  • the core sharing apparatus 300 further includes a core expansion module (not shown in the figure), and the core expansion module is configured to respond to the judgment module for judging that there is no available storage space in the storage area corresponding to the shared core array, Determine an idle processing core among the processing cores that do not belong to any core cluster in the many-core system; determine at least one idle processing core as a shared core, and add it to the shared core array.
  • a core expansion module (not shown in the figure)
  • the core expansion module is configured to respond to the judgment module for judging that there is no available storage space in the storage area corresponding to the shared core array, Determine an idle processing core among the processing cores that do not belong to any core cluster in the many-core system; determine at least one idle processing core as a shared core, and add it to the shared core array.
  • the number of the shared cores is multiple, the storage area corresponding to the shared core array further includes a general shared storage area, the first shared storage area, the second shared storage area and the The general shared storage area corresponds to one or more shared cores respectively; wherein, the shared core corresponding to the first shared storage area is configured to store the first task data; the shared core corresponding to the second shared storage area is configured In order to store the second task data; the shared cores corresponding to the common shared storage area are configured to receive and execute tasks corresponding to the first core cluster and the second core cluster respectively.
  • the first task data includes first input data, first output data, and first task configuration information
  • the first shared storage area includes a first input data area, a first output data area, and a first a task configuration area; wherein the shared cores in the first input data area are configured to store the first input data; the shared cores in the first output data area are configured to store the first output data ; the shared core in the first task configuration area is configured to store the first task configuration information.
  • the core sharing apparatus 300 provided by the embodiments of the present disclosure is used to implement the above-mentioned core sharing method.
  • the core sharing apparatus 300 reference may be made to the description in the above-mentioned core sharing method, which will not be repeated here.
  • An embodiment of the present disclosure also provides a processing core, where the processing core includes the above-mentioned core sharing device.
  • FIG. 7 is a block diagram of the composition of an electronic device according to an embodiment of the present disclosure.
  • an embodiment of the present disclosure provides an electronic device, the electronic device includes multiple processing cores 701 and an on-chip network 702, wherein the multiple processing cores 701 are all connected to the on-chip network 702, and the on-chip network 702 is used for interacting multiple data between cores and external data.
  • One or more instructions are stored in one or more processing cores 701, and one or more instructions are executed by one or more processing cores 701, so that one or more processing cores 701 can execute the above-mentioned core sharing method.
  • an embodiment of the present disclosure further provides a computer-readable medium on which a computer program is stored, wherein the computer program implements the above-mentioned core sharing method when executed by a processing core.
  • an embodiment of the present disclosure also provides a computer program product, which, when running on a computer, enables the computer to execute the above-mentioned core sharing method.
  • Such software may be distributed on computer-readable media, which may include computer storage media (or non-transitory media) and communication media (or transitory media).
  • computer storage media includes both volatile and nonvolatile implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules or other data flexible, removable and non-removable media.
  • Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cartridges, magnetic tape, magnetic disk storage or other magnetic storage devices, or may Any other medium used to store desired information and which can be accessed by a computer.
  • communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and can include any information delivery media, as is well known to those of ordinary skill in the art .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

La présente divulgation concerne un procédé et un appareil de partage de cœur basés sur un système multicœur, ainsi qu'un dispositif électronique et un support. Le système multicœur comprend de multiples groupes de cœurs préconfigurés, et chacun des groupes de cœurs comprend au moins un second cœur de traitement. Le procédé consiste à : recevoir une demande de partage de cœur ; et déterminer, selon la demande de partage de cœur, au moins un second cœur de traitement à partir d'un premier groupe de cœurs et/ou un second cœur de traitement prédéterminé d'un second groupe de cœurs destiné à être un cœur partagé entre le premier groupe de cœurs et le second groupe de cœurs, et au moins un cœur partagé constituant un réseau de cœurs partagés, le réseau de cœurs partagés étant configuré pour recevoir et exécuter des tâches correspondant respectivement au premier groupe de cœurs et au second groupe de cœurs, stocker des premières données de tâche correspondant à la tâche du premier groupe de cœurs, et stocker des secondes données de tâche correspondant à la tâche du second groupe de cœurs.
PCT/CN2021/132357 2020-11-24 2021-11-23 Procédé et appareil de partage de cœur basés sur un système multicœur, dispositif électronique et support WO2022111456A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011330876.4 2020-11-24
CN202011330876.4A CN114546493A (zh) 2020-11-24 2020-11-24 核共享方法及装置、处理核、电子设备、介质

Publications (1)

Publication Number Publication Date
WO2022111456A1 true WO2022111456A1 (fr) 2022-06-02

Family

ID=81660579

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/132357 WO2022111456A1 (fr) 2020-11-24 2021-11-23 Procédé et appareil de partage de cœur basés sur un système multicœur, dispositif électronique et support

Country Status (2)

Country Link
CN (1) CN114546493A (fr)
WO (1) WO2022111456A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116319610A (zh) * 2023-05-23 2023-06-23 南京芯驰半导体科技有限公司 数据传输方法、装置、电子设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472448B (zh) * 2023-12-28 2024-03-26 山东省计算中心(国家超级计算济南中心) 一种申威众核处理器从核簇加速并行方法、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622208A (zh) * 2011-01-27 2012-08-01 中兴通讯股份有限公司 一种多核可重构处理器簇及其实现重构的方法
US20140006714A1 (en) * 2012-06-29 2014-01-02 Naveen Cherukuri Scalable coherence for multi-core processors
CN105988970A (zh) * 2015-02-12 2016-10-05 华为技术有限公司 共享存储数据的处理器和芯片
CN110865968A (zh) * 2019-04-17 2020-03-06 成都海光集成电路设计有限公司 多核处理装置及其内核之间数据传输方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622208A (zh) * 2011-01-27 2012-08-01 中兴通讯股份有限公司 一种多核可重构处理器簇及其实现重构的方法
US20140006714A1 (en) * 2012-06-29 2014-01-02 Naveen Cherukuri Scalable coherence for multi-core processors
CN105988970A (zh) * 2015-02-12 2016-10-05 华为技术有限公司 共享存储数据的处理器和芯片
CN110865968A (zh) * 2019-04-17 2020-03-06 成都海光集成电路设计有限公司 多核处理装置及其内核之间数据传输方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116319610A (zh) * 2023-05-23 2023-06-23 南京芯驰半导体科技有限公司 数据传输方法、装置、电子设备及存储介质
CN116319610B (zh) * 2023-05-23 2023-08-29 南京芯驰半导体科技有限公司 数据传输方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN114546493A (zh) 2022-05-27

Similar Documents

Publication Publication Date Title
US10360199B2 (en) Partitioning and rebalancing data storage
EP3281359B1 (fr) Gestion unifiée de ressources pilotée par les applications et adaptative pour centres de données avec unité programmable multi-ressources (mrsu)
WO2022160886A1 (fr) Procédé de répartition de tâches, appareil, support de stockage, et dispositif électronique
US10572290B2 (en) Method and apparatus for allocating a physical resource to a virtual machine
CN108337109B (zh) 一种资源分配方法及装置和资源分配系统
US8645745B2 (en) Distributed job scheduling in a multi-nodal environment
WO2022111456A1 (fr) Procédé et appareil de partage de cœur basés sur un système multicœur, dispositif électronique et support
CN109729106B (zh) 处理计算任务的方法、系统和计算机程序产品
CN109886693B (zh) 区块链系统的共识实现方法、装置、设备和介质
US20190065544A1 (en) System and method for collaborative sharing of database information
US10831716B2 (en) Method and apparatus for configuring relevant parameters of MapReduce applications
WO2020042612A1 (fr) Procédé et dispositif de stockage et de lecture d'un message, serveur, et support de stockage
CN111542809A (zh) 管理虚拟网络功能
CN110389825B (zh) 管理专用处理资源的方法、设备和计算机程序产品
EP3370179A1 (fr) Procédé et système de distribution de licences flottantes pour des services en temps réel
JP2023545985A (ja) エッジ・コンピューティング環境におけるタスク・フローの管理
WO2021013185A1 (fr) Procédé, appareil et dispositif de génération de migration de stratégie et de traitement de machine virtuelle, et support d'informations
CN112860421B (zh) 用于作业处理的方法、设备和计算机程序产品
US20230082903A1 (en) Autonomic application service framework
CN115878309A (zh) 资源分配方法、装置、处理核、设备和计算机可读介质
CN110928693B (zh) 一种计算设备及资源分配方法
CN114546630A (zh) 任务处理方法及分配方法、装置、电子设备、介质
CN107615872A (zh) 一种释放连接的方法、装置及系统
US11768704B2 (en) Increase assignment effectiveness of kubernetes pods by reducing repetitive pod mis-scheduling
US11558301B2 (en) Method, device, and computer program product for accessing application system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21896957

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 21.09.2023)

122 Ep: pct application non-entry in european phase

Ref document number: 21896957

Country of ref document: EP

Kind code of ref document: A1