WO2020135385A1 - 通用机器学习模型、模型文件的生成和解析方法 - Google Patents

通用机器学习模型、模型文件的生成和解析方法 Download PDF

Info

Publication number
WO2020135385A1
WO2020135385A1 PCT/CN2019/127752 CN2019127752W WO2020135385A1 WO 2020135385 A1 WO2020135385 A1 WO 2020135385A1 CN 2019127752 W CN2019127752 W CN 2019127752W WO 2020135385 A1 WO2020135385 A1 WO 2020135385A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
communication
data
chip
descriptor
Prior art date
Application number
PCT/CN2019/127752
Other languages
English (en)
French (fr)
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
Priority claimed from CN201811646353.3A external-priority patent/CN111382116B/zh
Priority claimed from CN201811647273.XA external-priority patent/CN111381946B/zh
Priority claimed from CN201811641903.2A external-priority patent/CN111381958B/zh
Priority claimed from CN201811646712.5A external-priority patent/CN111382117A/zh
Priority claimed from CN201811646630.0A external-priority patent/CN111382109B/zh
Priority claimed from CN201811646507.9A external-priority patent/CN111382110A/zh
Priority claimed from CN201811641509.9A external-priority patent/CN111382857B/zh
Priority claimed from CN201811646708.9A external-priority patent/CN111382858A/zh
Application filed by 上海寒武纪信息科技有限公司 filed Critical 上海寒武纪信息科技有限公司
Publication of WO2020135385A1 publication Critical patent/WO2020135385A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit

Definitions

  • the detecting whether the communication configuration information in the storage space and the data to be sent are complete includes:
  • the parsing at least one piece of communication configuration information in the communication configuration information queue to obtain corresponding communication descriptors respectively includes:
  • the communication descriptor includes: a source address of data to be sent, a destination address of the data to be sent, an offset of the data to be sent, and a data block size of the data to be sent One or more.
  • the method further includes:
  • the acquisition module is used to acquire the communication configuration information queue and the data to be sent;
  • the parsing module is configured to parse at least one piece of communication configuration information in the communication configuration information queue to obtain corresponding communication descriptors respectively;
  • the data sending module is configured to send the data to be sent according to the communication descriptor.
  • a board card used in a data transmission method includes: a plurality of artificial intelligence processors, and the memory corresponding to the plurality of artificial intelligence processors is multi-channel memory; wherein, the target artificial intelligence processor is used in After receiving the artificial intelligence processor calculation instruction issued by the general-purpose processor CPU through the target parallel thread, through the memory channel corresponding to the target parallel thread, the physical memory corresponding to the memory channel is performed according to the artificial intelligence processor calculation instruction Access; the target artificial intelligence processor is any artificial intelligence processor among the plurality of artificial intelligence processors, and the target parallel thread is any one of the plurality of parallel threads started by the CPU; the multiple At least two of the parallel threads correspond to different memory channels.
  • a motherboard is used in neural network data processing.
  • the motherboard includes: a general-purpose processor CPU and the above-mentioned board.
  • the electronic device used in neural network data processing.
  • the electronic device includes the above-mentioned motherboard.
  • a data receiving method includes:
  • the acquiring communication data and communication configuration information includes:
  • the parsing the communication configuration information to obtain a communication descriptor includes:
  • control instruction analyze the communication configuration information to obtain a communication descriptor.
  • the communication descriptor includes: a source address of data to be sent, a destination address of the data to be sent, an offset of the data to be sent in the source address, and the data to be sent One or more of the offset in the destination address and the data block size of the data to be sent.
  • the method further includes:
  • the sending method is a normal sending mode or a hardware accelerated sending mode.
  • the normal transmission mode includes obtaining a transmission control instruction from a main operating terminal, where the main operating terminal is a control device external to the chip.
  • the method further includes:
  • the communication data is stored to the target address.
  • the method further includes:
  • the execution status of the receiving process is judged.
  • the determining the execution state of the receiving method according to the status descriptor queue includes:
  • a data receiving device includes:
  • Configuration information acquisition module used to acquire communication data and communication configuration information
  • a descriptor parsing module used for parsing the communication configuration information to obtain a communication descriptor
  • the data receiving module is configured to receive the communication data according to the communication descriptor.
  • a board card used in a data transmission method includes: a plurality of artificial intelligence processors, the memory corresponding to the plurality of artificial intelligence processors is a multi-channel memory; wherein, the target artificial intelligence processor is used in After receiving the artificial intelligence processor calculation instruction issued by the general-purpose processor CPU through the target parallel thread, through the memory channel corresponding to the target parallel thread, the physical memory corresponding to the memory channel is performed according to the artificial intelligence processor calculation instruction Access; the target artificial intelligence processor is any artificial intelligence processor among the plurality of artificial intelligence processors, and the target parallel thread is any one of the plurality of parallel threads started by the CPU; the multiple At least two of the parallel threads correspond to different memory channels.
  • a motherboard is used in neural network data processing.
  • the motherboard includes: a general-purpose processor CPU and the above-mentioned board.
  • An electronic device is used in neural network data processing.
  • the electronic device includes the motherboard as described above.
  • a task processing method includes:
  • the acquiring operation control information and task scheduling information includes:
  • performing scheduling processing on the received communication data according to the operation control information and task scheduling information, and obtaining the calculation result includes:
  • the method further includes:
  • the sending the calculation result to the post-processing task execution end includes:
  • the sending the calculation result to the post-processing task execution end includes:
  • the obtaining operation control information includes obtaining operation control information from a main operation terminal, where the main operation terminal is a control device external to the chip.
  • the acquiring operation control information includes generating operation control information from a computing device, where the computing device is a device that performs a computing task within the chip.
  • a task processing device includes:
  • Information acquisition module used to obtain operation control information and task scheduling information
  • a calculation result generation module configured to perform scheduling processing on the received communication data according to the operation control information and task scheduling information to obtain a calculation result
  • a task descriptor generating module configured to generate a task end descriptor according to the operation control information
  • the calculation result output module is configured to output the calculation result according to the task end descriptor.
  • a board card used in a data transmission method includes: a plurality of artificial intelligence chips, the memory corresponding to the plurality of artificial intelligence chips is a multi-channel memory; wherein, the target artificial intelligence chip is used to pass The parallel thread receives the artificial intelligence chip calculation instruction issued by the general-purpose chip CPU, and then accesses the physical memory corresponding to the memory channel according to the artificial intelligence chip calculation instruction through the memory channel corresponding to the target parallel thread; the target The artificial intelligence chip is any artificial intelligence chip among the plurality of artificial intelligence chips, and the target parallel thread is any one of the plurality of parallel threads started by the CPU; there are at least two of the plurality of parallel threads Threads correspond to different memory channels.
  • a main board is used in neural network data processing.
  • the main board includes: a general-purpose chip CPU and the above-mentioned board card.
  • An electronic device is used in neural network data processing.
  • the electronic device includes the above-mentioned motherboard.
  • FIG. 1 is a schematic diagram of a communication system provided in an embodiment
  • FIG. 2 is an internal structure diagram of a transmission device provided in an embodiment
  • FIG. 3 is a schematic diagram of a combination device provided in an embodiment
  • FIG. 4 is a schematic flowchart of a data sending method provided by an embodiment
  • FIG. 5 is a schematic diagram of a data sending device provided by an embodiment
  • FIG. 7 is a schematic diagram of a motherboard provided in an embodiment
  • FIG. 8 is an internal structure diagram of a computer device in an embodiment.
  • FIG. 9 is an internal structure diagram of a receiving device provided in an embodiment
  • FIG. 10 is a schematic diagram of a combination device provided in an embodiment
  • FIG. 11 is a schematic flowchart of a data receiving method provided in an embodiment
  • FIG. 13 is a schematic diagram of a data receiving device provided in an embodiment
  • FIG. 15 is a schematic diagram of a motherboard provided in an embodiment
  • 16 is an internal structure diagram of a computer device in an embodiment
  • 17 is an internal structure diagram of a receiving device provided in an embodiment
  • FIG. 19 is an internal schematic diagram of a task processing device provided in an embodiment
  • 20 is a schematic diagram of a combination device provided in an embodiment
  • 21 is a schematic flowchart of a data receiving method provided in an embodiment
  • 22 is a schematic flowchart of a data receiving method provided in another embodiment
  • 24 is a schematic flowchart of a task processing method provided by an embodiment
  • FIG. 25 is a schematic flowchart of a task processing method provided by an embodiment
  • 26 is a schematic diagram of a task processing apparatus provided by an embodiment
  • FIG. 27 is a schematic flowchart of a data sending method provided by an embodiment
  • FIG. 28 is a schematic diagram of a data sending device provided by an embodiment
  • 36 is a schematic flowchart of a task processing method according to an embodiment
  • 38 is a schematic diagram of a task processing soft device provided by an embodiment
  • step S1710 the acquiring the communication configuration information queue and the data to be sent includes:
  • Step S1711 Detect whether the data to be sent in the storage space is complete. Specifically, whether the data to be sent is complete refers to the amount of data to be sent, and whether the data size matches the preset description.
  • step S1711 the detecting whether the communication configuration information in the storage space and the data to be sent are complete includes:
  • Step S17112 judging whether the address selection signal is valid.
  • Step S17113 if the address selection signal is valid, it is determined that the communication configuration information in the storage space and the data to be sent are complete. In one of the embodiments, if the address selection signal is invalid, it is determined that the data to be sent is incomplete.
  • Step S1712 If the data to be sent in the storage space is complete, obtain the communication configuration information queue and the data to be sent. Through the method in this implementation, the accuracy of the data to be transmitted can be guaranteed.
  • step S1720 the parsing at least one piece of communication configuration information in the communication configuration information queue to obtain corresponding communication descriptors respectively includes:
  • Step S1721 Acquire the sending control instruction. Specifically, when the transmission mode is the normal transmission mode, the transmission control instruction is obtained from the main operation end; when the transmission mode is the hardware acceleration mode, the transmission control instruction is obtained from the computing device. Understandably, the main operating end is inside the chip, and the computing device is inside the chip. When the sending instruction is obtained from the computing device, the internal chip transmission is performed to increase the transmission speed.
  • Step S1722 According to the sending control instruction, read at least one piece of the communication configuration information in the configuration information queue according to a preset rule.
  • the preset rule is a preset reading rule, which may be read according to the order in which the configuration information is stored in the configuration information queue, or may be read according to other predetermined rules.
  • Step S1723 Analyze at least one piece of the communication configuration information to obtain the corresponding communication descriptor.
  • each communication descriptor is assigned a communication descriptor identifier;
  • the communication descriptor identifier read the corresponding communication descriptor. Specifically, different communication descriptors are distinguished by respective communication descriptors. In one of the embodiments, the last one of the plurality of communication descriptors to be read has the communication descriptor identifier E. When the communication descriptor identifier E is read, it indicates that the multiple communication descriptors have all been read.
  • the sending method further includes: obtaining a sending mode symbol according to the communication descriptor; according to the sending mode symbol, obtaining whether the sending method is a normal sending mode or a hardware accelerated sending mode.
  • the ordinary data transmission refers to the data transmission between the chip and the chip, and the sending control command comes from the main operation end.
  • hardware accelerated transmission refers to data transmission between chips, and the sending of control commands comes from a computing device inside the chip.
  • Step S1760 Send the transmission data packet according to the identification information.
  • the parsing module 1702 is configured to parse at least one piece of communication configuration information in the communication configuration information queue to obtain corresponding communication descriptors respectively;
  • the above-mentioned card may also contain other supporting components.
  • the supporting components include but are not limited to: a memory controller 143, a bus, and an interface 144.
  • the dedicated processor 141 performs command transmission and data transmission with the external device through the interface 144.
  • the external device may be the main operating terminal (CPU).
  • the board provided in this embodiment can execute the above method embodiments, and its implementation principles and technical effects are similar, which will not be repeated here.
  • the present application further provides a main board, which is applied to a neural network data processing method.
  • the main board includes: a main operation terminal and the board provided in the above embodiment.
  • an electronic device is provided.
  • the electronic device is used in a data communication method, and the electronic device includes a motherboard as shown in FIG. 7.
  • the main board includes a CPU and a board.
  • the board includes multiple artificial intelligence processors.
  • the memory corresponding to the multiple artificial intelligence processors is multi-channel memory.
  • the target artificial intelligence processor is used to receive the main operating end CPU through the target parallel thread.
  • the physical memory corresponding to the memory channel is accessed according to the artificial intelligence processor calculation instruction through the memory channel corresponding to the target parallel thread;
  • the target artificial intelligence processor Is any artificial intelligence processor among the plurality of artificial intelligence processors, the target parallel thread is any one of the plurality of parallel threads started by the CPU; there are at least two threads in the plurality of parallel threads Corresponding to different memory channels.
  • electronic equipment may include data processing devices, robots, computers, printers, scanners, tablets, smart terminals, mobile phones, driving recorders, navigators, sensors, cameras, servers, cloud servers, cameras, cameras, projections Instruments, watches, headphones, mobile storage, wearable devices, vehicles, household appliances, and/or medical devices.
  • the vehicles include airplanes, ships, and/or vehicles;
  • the household appliances include televisions, air conditioners, microwave ovens, refrigerators, rice cookers, humidifiers, washing machines, electric lights, gas stoves, and range hoods; and the medical equipment includes nuclear magnetic resonance instruments, B-ultrasound and/or electrocardiograph.
  • a computer device which includes a memory and a processor.
  • a computer program is stored in the memory, and when the processor executes the computer program, the steps of the method described in any of the above embodiments are implemented.
  • RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous chain (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.
  • SRAM static RAM
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • DDRSDRAM double data rate SDRAM
  • ESDRAM enhanced SDRAM
  • SLDRAM synchronous chain (Synchlink) DRAM
  • SLDRAM synchronous chain (Synchlink) DRAM
  • Rambus direct RAM
  • DRAM direct memory bus dynamic RAM
  • RDRAM memory bus dynamic RAM
  • FIG. 1 provides an internal structure diagram of a receiving device 2110.
  • the device is located on a chip.
  • the receiving device 2110 includes a receiving port circuit 2111, a receiving control circuit 2112, and configuration information. Parse circuit 2113.
  • the receiving port circuit 2111 is connected to the configuration information analysis circuit 2113, and the configuration information analysis circuit 2113 is also connected to the control circuit 2112.
  • the configuration information analysis circuit 2113 is configured to analyze at least one piece of communication configuration information in the received communication configuration information queue to obtain corresponding communication descriptors.
  • the receiving device 2110 further includes a state descriptor cache circuit 2114 connected to the receiving control circuit 2112; the state descriptor cache circuit 2114 is used to store the state description The status descriptor is used to mark the completion status of the receiving process.
  • the receiving device 2110 is connected to the memory 2140.
  • the memory 2140 is connected to the receiving port circuit 2111, and the memory 2140 is used to store data received by the receiving port circuit 2111.
  • the combined device includes a plurality of neural network processing chips 2200, and the neural network processing chips 2200 are connected in sequence.
  • the neural network processing chip may be connected between any two chips, or may be connected between two adjacent chips.
  • each of the neural network processing chips is connected to the main operation terminal 2150.
  • each neural network processing chip includes a communication system 2100 as shown in FIG. 9, the communication system 2100 includes a receiving device 2110, a sending device 2120, a computing device 2130, and a memory 2140.
  • an electronic device includes a neural network processing chip 200.
  • the electronic equipment includes data processing devices, robots, computers, printers, scanners, tablet computers, smart terminals, mobile phones, driving recorders, navigators, sensors, cameras, servers, cloud servers, cameras, cameras, projectors , Watches, headphones, mobile storage, wearable devices, vehicles, household appliances, and/or medical devices.
  • connection relationship between the components in any of the foregoing embodiments may be electrical connection or wireless connection.
  • the above-mentioned receiving device, sending device, computing device and memory together constitute a communication system, through which data transmission between NPU chips can be supported.
  • FIG. 11 provides a data receiving method.
  • the data receiving method provided in this application can be applied to the devices shown in FIG. 9, FIG. 9, and FIG. 12. Methods include:
  • Step S2601 Acquire communication data and communication configuration information.
  • the communication data refers to the data received or sent during the communication process, the data can be the input data or output data of the calculation process; it can also be the original data transmitted into the chip from the outside.
  • the communication configuration information refers to the process description information in the reception process or the reception description information in the reception process in the data communication process.
  • the communication configuration information includes but is not limited to: the source address of the communication data, the offset of the communication data in the source address, the destination address of the communication data, the offset of the communication data in the destination address And the data block size of the communication data.
  • step S2602 the communication configuration information is parsed to obtain a communication descriptor; wherein the communication descriptor is information describing the process through which the sending method passes. Specifically, the communication configuration information is transferred to the NPU chip through the main operation end, and cannot be directly recognized by the NPU chip, and needs to undergo a parsing operation to generate a communication descriptor. In one of the embodiments, there is at least one piece of communication configuration information, and each piece of communication configuration information is analyzed to obtain a corresponding communication descriptor.
  • the communication descriptors in the receiving process include but are not limited to: the source address of the communication data, the offset of the communication data in the source address, the destination address of the communication data, the offset of the communication data in the destination address, and The data block size of the communication data.
  • Step S2603 Receive the communication data according to the communication descriptor.
  • the communication data is stored to the target address according to the communication descriptor.
  • step S601 further includes:
  • Step S26011 Acquire the transmission data packet.
  • the transmission data packet may be a data compression packet.
  • the transmission data packet may come from a sending device of other NPU chips.
  • Step S26012 Obtain communication data and the communication configuration information according to the transmission data packet.
  • decompress the transmission data packet after acquiring the transmission data packet, decompress the transmission data packet to obtain transmission data.
  • the receiving method further includes:
  • Step S2604 Obtain the reception mode symbol according to the communication descriptor. Understandably, the communication descriptor also includes a reception mode symbol. Further, the communication descriptor obtained by parsing the communication configuration information includes a reception mode symbol.
  • Step S2605 According to the receiving mode symbol, it is obtained whether the sending method is a normal sending mode or a hardware accelerated sending mode.
  • the reception mode symbol refers to an identifier that enables the reception method to select a predetermined reception mode.
  • the sending method further includes:
  • Step S2607 Store the state descriptor in the state descriptor queue.
  • the status descriptor queue contains multiple status descriptors.
  • the plurality of state descriptors are stored sequentially in the order of generation.
  • Step S2608 Determine the execution status of the receiving task according to the status descriptor queue.
  • one receiving task may correspond to multiple communication descriptors. Understandably, a communication descriptor corresponds to a receiving process; when a receiving process ends, a state descriptor is correspondingly generated.
  • a status descriptor queue is generated. Specifically, when the queue depth of the state descriptor queue reaches the upper limit, the state descriptor queue can be generated without waiting for the reception process corresponding to the communication descriptor to all end.
  • a receiving task A corresponds to 20 status descriptors
  • the queue depth of the status descriptor queue is 16, then when the status descriptor queue reaches 16, although all the descriptors of the receiving task A have not been completely executed, it may be Generate a status descriptor queue.
  • the depth of the state descriptor queue refers to the number of state descriptors that the state descriptor queue can accommodate.
  • step S2608 determining the execution state of the receiving method according to the status descriptor queue includes:
  • steps in the flowcharts of FIGS. 11-13 are sequentially displayed in accordance with the arrows, these steps are not necessarily performed in the order indicated by the arrows. Unless clearly stated in this article, the execution of these steps is not strictly limited in order, and these steps may be executed in other orders. Moreover, at least some of the steps in FIGS. 4-5 may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but may be executed at different times. These sub-steps or stages The execution order of is not necessarily sequential, but may be executed in turn or alternately with at least a part of other steps or sub-steps or stages of other steps.
  • the device includes:
  • the configuration information obtaining module 801 is used to obtain communication data and communication configuration information
  • the descriptor parsing module 802 is used to parse the communication configuration information to obtain a communication descriptor
  • the present application further provides a board card, which is used in a data communication method.
  • the board card may include: multiple artificial intelligence processors, and the memory corresponding to the multiple artificial intelligence processors is multi-channel Memory; wherein, the target artificial intelligence processor is used to receive the artificial intelligence processor calculation instruction issued by the CPU through the target parallel thread, and through the memory channel corresponding to the target parallel thread, according to the artificial intelligence processor calculation instruction Physical memory corresponding to the memory channel is accessed; the target artificial intelligence processor is any artificial intelligence processor among the plurality of artificial intelligence processors, and the target parallel thread is a plurality of parallel threads started by the CPU Any one of the; at least two of the multiple parallel threads correspond to different memory channels.
  • the physical memory corresponding to the memory channel is accessed according to the artificial intelligence processor calculation instruction through the memory channel corresponding to the target parallel thread;
  • the target artificial intelligence processor Is any artificial intelligence processor among the plurality of artificial intelligence processors, the target parallel thread is any one of the plurality of parallel threads started by the CPU; there are at least two threads in the plurality of parallel threads Corresponding to different memory channels.
  • electronic equipment may include data processing devices, robots, computers, printers, scanners, tablets, smart terminals, mobile phones, driving recorders, navigators, sensors, cameras, servers, cloud servers, cameras, cameras, projections Instruments, watches, headphones, mobile storage, wearable devices, vehicles, household appliances, and/or medical devices.
  • the vehicles include airplanes, ships, and/or vehicles;
  • the household appliances include televisions, air conditioners, microwave ovens, refrigerators, rice cookers, humidifiers, washing machines, electric lights, gas stoves, and range hoods; and the medical equipment includes nuclear magnetic resonance instruments, B-ultrasound and/or electrocardiograph.
  • a computer device is provided.
  • the computer device may be a server, and its internal structure may be as shown in FIG. 16.
  • the computer device includes a processor, memory, network interface, and database connected by a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities.
  • the memory of the computer device includes a non-volatile storage medium and an internal memory.
  • the non-volatile storage medium stores an operating system, a computer program, and a database.
  • the internal memory provides an environment for the operating system and computer programs in the non-volatile storage medium.
  • the database of the computer device is used to store communication configuration information or communication descriptors.
  • the network interface of the computer device is used to communicate with external terminals through a network connection.
  • the computer program is executed by the processor to implement a data communication method.
  • FIG. 16 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied.
  • the specific computer device may It includes more or fewer components than shown in the figure, or some components are combined, or have a different component arrangement.
  • a computer-readable storage medium is provided on which a computer program is stored, and when the computer program is executed by a processor, the steps of the method described in any of the above embodiments are implemented.
  • a person of ordinary skill in the art may understand that all or part of the processes in the method of the above embodiments may be completed by instructing relevant hardware through a computer program, and the computer program may be stored in a non-volatile computer readable storage In the medium, when the computer program is executed, the process of the foregoing method embodiments may be included.
  • any reference to the memory, storage, database or other media used in the embodiments provided in this application may include non-volatile and/or volatile memory.
  • Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
  • Volatile memory can include random access memory (RAM) or external cache memory.
  • RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous chain (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.
  • FIG. 14 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer equipment to which the solution of the present application is applied. It includes more or fewer components than shown in the figure, or some components are combined, or have a different component arrangement.
  • relational terms such as first and second are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply these entities Or there is any such actual relationship or order between operations.
  • FIG. 1 provides a communication device.
  • the communication device shown in FIG. 18 includes a receiving device 3110, a sending device 3120, a task processing device 3130, and a memory 3140.
  • the task processing device 3130 is connected to the receiving device 3110 at one end and to the sending device 3120 at the other end.
  • the receiving device 3110 and the sending device 3120 are respectively connected to the memory 3140.
  • FIG. 17 provides an internal structure diagram of a receiving device 3110.
  • the receiving device 3110 includes a receiving port circuit 3111, a receiving control circuit 3112, and a configuration information analyzing circuit 3113.
  • the receiving port circuit 3111 is connected to the configuration information analysis circuit 3113, and the configuration information analysis circuit 3113 is also connected to the control circuit 3112.
  • the configuration information parsing circuit 3113 is configured to parse at least one piece of communication configuration information in the received communication configuration information queue to obtain corresponding communication descriptors.
  • FIG. 17 provides an internal structure diagram of a receiving device 3110.
  • the device is located on a chip.
  • the receiving device 3110 includes a receiving port circuit 3111, a receiving control circuit 3112, and configuration information. Parse circuit 3113.
  • the receiving port circuit 3111 is connected to the configuration information analysis circuit 3113, and the configuration information analysis circuit 3113 is also connected to the control circuit 3112.
  • the configuration information parsing circuit 3113 is configured to parse at least one piece of communication configuration information in the received communication configuration information queue to obtain corresponding communication descriptors.
  • the receiving device 3110 is connected to the memory 3140.
  • the memory 3140 is connected to the receiving port circuit 3111, and the memory 3140 is used to store data received by the receiving port circuit 3111.
  • the transmission device 3120 includes a transmission configuration circuit 3121, a transmission control circuit 3123, and a transmission port circuit 3122; the transmission control circuit 3123 is connected to the transmission configuration circuit 3121 and the transmission port circuit, respectively.
  • the transmission configuration circuit 3121 includes a configuration information acquisition circuit 31211 and a configuration information analysis circuit 31212; the configuration information acquisition circuit 31211 is connected to the configuration information analysis circuit 31212 and the transmission control circuit 3123, respectively.
  • the sending device 3120 is connected to a memory 3140, wherein the memory 3140 is respectively connected to a sending port circuit 3122 and a sending configuration circuit 3121, and the memory 3140 is used to store data to be sent and configuration information.
  • the communication descriptor generated by the configuration information analysis circuit is stored in the descriptor cache.
  • the descriptor cache is located inside the sending device. In one of the embodiments, the data to be sent and the communication descriptor are stored correspondingly.
  • the transmission configuration circuit 3121 and the transmission control circuit 3123 are respectively connected to the main operation terminal 3150. Specifically, the transmission configuration circuit obtains transmission configuration information from the main operation terminal 3150, and the transmission control circuit 3123 obtains control instructions from the main operation terminal.
  • FIG. 19 provides an internal schematic diagram of the task processing device 3130.
  • the task processing device 3130 is located on the chip.
  • the task processing device 3130 includes: an end information analysis circuit 132, a task processing circuit 3131, and a transmission interface circuit 3133; the end information analysis circuit 3132 is connected to the task processing circuit 3131;
  • the task processing circuit 3131 is also connected to the transmission interface circuit 3133;
  • the end information analysis circuit 3132 is used to determine the task processing completion status and obtain a task end descriptor
  • the transmission interface circuit 3133 is used to obtain communication data
  • the task scheduler 31312 is used to schedule and execute task processing in the first processor 31311 and the second processor 31313;
  • the first processor 31311 is used to execute the first processor task assigned by the task scheduler 31312;
  • the second processor 31313 is used to execute the second processor task assigned by the task scheduler 31312; the operation control circuit 31314 is used to send a control instruction to the task scheduler 31312 and to generate transmission configuration information .
  • the task scheduler 31312 includes:
  • Task cache device 313121 used to store basic task information and all task information corresponding to multiple tasks
  • a task dispatching device 313122 the task dispatching device is connected to the task caching device, the task dispatching device is used to obtain more than one basic task information of the task from the task caching device, and according to each The basic task information of the task obtains the task registration request of the task;
  • State monitoring device 313123 the state monitoring device is connected to the task dispatching device and the second processor, and the state monitoring device is used to allocate each task according to the received task registration request of each task A task identifier, and transmit the task identifier of each of the tasks back to the task dispatching device;
  • the task assignment device 313122 is further used to obtain the decomposition information of the task after receiving the task identifier of the task, and according to the decomposition information of the task and the processor state information of the second processor Determine the target job, obtain scheduling information, and send the scheduling information to the second processor.
  • the task caching device 313121 is used to store basic task information and all task information corresponding to multiple tasks; wherein, the basic task information of the task may include configuration information of the task, for example, the configuration information includes task type, task weight, and task input Data, etc.
  • the task categories can include event tasks, communication tasks, and data processing tasks.
  • the task categories of the data processing tasks It can also include block (blocking task), cluster (clustering task) and union (joint task). All task information of the task may include basic task information such as configuration information of the task, and information such as instructions and data corresponding to the task.
  • step S3601 further includes:
  • Step S36012 Obtain communication data and the communication configuration information according to the transmission data packet.
  • decompress the transmission data packet after acquiring the transmission data packet, decompress the transmission data packet to obtain transmission data.
  • Step S3605 According to the receiving mode symbol, it is obtained whether the sending method is a normal sending mode or a hardware accelerated sending mode.
  • the reception mode symbol refers to an identifier that enables the reception method to select a predetermined reception mode.
  • the normal sending mode includes obtaining a control instruction from a main operating terminal, where the main operating terminal is a control device external to the chip.
  • the hardware-accelerated transmission mode includes obtaining a control instruction from a computing device, where the computing device is a device inside the chip that performs calculation.
  • the sending control instruction refers to a control instruction for hardware generated to implement the sending method on hardware.
  • the sending control instruction needs to be analyzed to obtain a binary instruction corresponding to the sending control instruction.
  • the sending method further includes:
  • Step S3606 according to the communication descriptor, when the execution of the receiving task is completed, a corresponding state descriptor is generated.
  • each communication descriptor corresponds to a receiving task, and when the corresponding receiving task is executed, a state descriptor corresponding to the communication descriptor is generated.
  • Step S3607 Store the state descriptor in the state descriptor queue.
  • the status descriptor queue contains multiple status descriptors.
  • the plurality of state descriptors are stored sequentially in the order of generation.
  • Step S3608 Determine the execution status of the receiving task according to the status descriptor queue.
  • one receiving task may correspond to multiple communication descriptors. Understandably, a communication descriptor corresponds to a receiving process; when a receiving process ends, a state descriptor is correspondingly generated.
  • a status descriptor queue is generated. Specifically, when the queue depth of the state descriptor queue reaches the upper limit, the state descriptor queue can be generated without waiting for the reception process corresponding to the communication descriptor to all end.
  • a receiving task A corresponds to 20 status descriptors
  • the queue depth of the status descriptor queue is 16, then when the status descriptor queue reaches 16, although all the descriptors of the receiving task A have not been completely executed, it may be Generate a status descriptor queue.
  • the depth of the state descriptor queue refers to the number of state descriptors that the state descriptor queue can accommodate.
  • step S3608, according to the status descriptor queue, determining the execution status of the receiving method includes:
  • Step S36082 according to the number of the state descriptors in the state descriptor queue, determine the number of received processes that have been executed. Specifically, a status descriptor represents the completion of a receiving process. In one of the embodiments, the number of completed receiving processes is equal to the number of status descriptors.
  • Step S36083 when the number of the received processes that have been executed reaches a threshold, it is determined that the receiving task ends.
  • the threshold refers to a preset number of receiving processes.
  • the threshold is the number of state descriptors in the state descriptor queue.
  • the status descriptor queue is read in the order in which the status descriptors are generated. In another embodiment, the status descriptor is read after the queue of status descriptors is complete in a predetermined order.
  • steps in the flowcharts of FIGS. 21-24 are displayed in order according to the arrows, the steps are not necessarily executed in the order indicated by the arrows. Unless clearly stated in this article, the execution of these steps is not strictly limited in order, and these steps may be executed in other orders. Moreover, at least some of the steps in FIGS. 6-7 may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but may be executed at different times. These sub-steps or stages The execution order of is not necessarily sequential, but may be executed in turn or alternately with at least a part of other steps or sub-steps or stages of other steps.
  • the device includes:
  • the descriptor parsing module 3802 is configured to parse the communication configuration information to obtain a communication descriptor
  • Step S3901 obtaining operation control information and task scheduling information
  • the calculation task includes a calculation process and a communication process.
  • the communication control instruction refers to a control instruction for hardware generated in order for the communication process to be executed on the hardware.
  • the calculation control instruction refers to a control instruction for the hardware generated in order to make the calculation process executed on the hardware.
  • the communication data refers to the data received or sent during the communication process, the data can be the input data or output data of the calculation process; it can also be the original data transmitted into the chip from the outside.
  • the task scheduling information refers to instruction information on how to perform scheduling execution when the processing process is performed.
  • step S3903 a task end descriptor is generated based on the calculation control information.
  • the task end descriptor corresponding to the task is generated according to the description of the task by the operation control information. Understandably, by reading the task end descriptor, the execution progress of each computing task can be judged
  • Step S3904 according to the task end descriptor, output the processing result. Specifically, it is judged according to the task end descriptor whether the calculation task is completed, and if the execution is completed, the processing result is output.
  • the multiple tasks are stored in the task cache device 313121 in the form of a task queue, and multiple tasks may form multiple task queues, for example, multiple tasks form multiple task queues according to their task categories.
  • the basic task information of the task pointed to by the queue head pointer in each task queue can be transferred to the task dispatching device 313122.
  • step S3902 the scheduling processing is performed on the communication data according to the operation control information and the task scheduling information, and obtaining a processing result includes: acquiring the task scheduling information and the task scheduling information according to the task scheduling information Decomposition information of the task to which the target task belongs and all task information, split the task to which the target task belongs into multiple sub-tasks, and execute the target task on the communication data according to the task scheduling information to obtain a processing result.
  • Step S3905 generates a calculation control instruction and a communication control instruction based on the calculation control information.
  • the calculation control information includes calculation control instructions and communication control instructions.
  • the communication control command is used to control the task processing device 3130 itself to communicate.
  • the communication control instruction also generates a reception control instruction of the receiving device 3110 and a transmission control instruction of the transmitting device 3120.
  • the calculation control instruction may be decomposed into multiple subtasks for execution, and when each subtask is executed, a corresponding task end descriptor is generated.
  • the task corresponding to the calculation control instruction is directly executed in the task processing device without decomposition, and a task end descriptor corresponding to the calculation control instruction is generated. Understandably, the execution progress of the computing task is judged through the task end descriptor. When the execution of the calculation control instruction is completed, it is determined that the execution of the calculation task is completed by reading the corresponding task end descriptor.
  • the task processing method further includes:
  • Step S3909 a task end descriptor queue is generated based on the plurality of task end descriptors.
  • multiple tasks are executed in sequence according to the generation order, and further multiple task end descriptors are arranged in the task end descriptor queue according to the generation order.
  • multiple tasks are executed out of order, and further multiple task end descriptors are arranged in the task end descriptor queue according to execution completion time.
  • Step S3910 Select the corresponding task end descriptor in the task end descriptor queue according to a preset rule.
  • the preset rule refers to a rule selected in the task end descriptor queue set in advance before executing the processing task.
  • the task end descriptors are sequentially selected in the task end descriptor queue according to the order in which the task end descriptors are generated. Understandably, in this embodiment, selecting the task end descriptor does not necessarily wait for the task end descriptor queue to be complete.
  • the task end descriptor is selected from the task end descriptor queue according to a predetermined output order. Understandably, in this embodiment, it is necessary to wait for the task end descriptor queue to be complete, and then select from the task end descriptor according to a predetermined output order. Specifically, the task that starts execution first generates the task end descriptor may be later than the task that starts execution later generates the task end descriptor.
  • Step S39112 sends the processing result to the post-processing task execution end.
  • the post-processing task execution end may be a hardware device that executes post-processing instructions or a software module that executes post-processing operations.
  • the communication configuration information queue of the next chip is acquired; the communication configuration information queue of the next chip and the processing result Output to the sending device of the current chip.
  • the communication information configuration queue of the next chip may come from the task processing device 130, and may also be an autonomous operation terminal.
  • the communication configuration queue of the next chip includes a plurality of communication configuration information of the next chip, the communication configuration information includes the source address of the processing result, the offset of the processing result in the source address, the destination address of the processing result, and the processing result The offset in the destination address and the data block size of the processing result.
  • the sending device of the current chip sends the processing result and each communication configuration information in the communication configuration information queue to the next chip.
  • step S39112 the sending the processing result to the post-processing task execution end includes: if the post-processing task execution end is at the main operation end; then the processing result and all The task end descriptor is sent to the main operating terminal.
  • FIG. 26 provides a task processing soft device, which includes:
  • the task descriptor generation module 3903 is used to generate a task end descriptor according to the operation control information
  • FIG. 27 provides a data transmission method.
  • the data transmission method provided in this application can be applied to the apparatus shown in FIGS. 18, 18, and 20. Methods include:
  • Step S3711 Detect whether the data to be sent in the storage space is complete. Specifically, whether the data to be sent is complete refers to the amount of data to be sent, and whether the data size matches the preset description.
  • step S3711 the detecting whether the communication configuration information in the storage space and the data to be sent are complete includes:
  • Step S37111 Acquire an address selection signal.
  • the address selection signal refers to a signal that can reflect whether the data to be sent is complete and accurate.
  • Step S3712 If the data to be sent in the storage space is complete, obtain the communication configuration information queue and the data to be sent. Through the method in this implementation, the accuracy of the data to be transmitted can be guaranteed.
  • Step S3722 According to the sending control instruction, read at least one piece of the communication configuration information in the configuration information queue according to a preset rule.
  • the preset rule is a preset reading rule, which may be read according to the order in which the configuration information is stored in the configuration information queue, or may be read according to other predetermined rules.
  • the communication descriptor identifier read the corresponding communication descriptor. Specifically, different communication descriptors are distinguished by respective communication descriptors. In one of the embodiments, the last one of the plurality of communication descriptors to be read has the communication descriptor identifier E. When the communication descriptor identifier E is read, it indicates that the multiple communication descriptors have all been read.
  • the sending method further includes: obtaining a sending mode symbol according to the communication descriptor; according to the sending mode symbol, obtaining whether the sending method is a normal sending mode or a hardware accelerated sending mode.
  • the ordinary data transmission refers to the data transmission between the chip and the chip, and the sending control command comes from the main operation end.
  • the hardware accelerated transmission refers to the data transmission between the chips, and the control commands are sent from the task processing device inside the chip.
  • FIG. 28 provides a data sending device, the device including:
  • the obtaining module 3701 is used to obtain a communication configuration information queue and data to be sent;
  • the data sending module 3703 is configured to send the data to be sent according to the communication descriptor.
  • Each module in the above-mentioned data receiving device may be implemented in whole or in part by software, hardware, or a combination thereof.
  • the above modules may be embedded in the hardware form or independent of the processor in the computer device, or may be stored in the memory in the computer device in the form of software so that the processor can call and execute the operations corresponding to the above modules.
  • the data communication method includes:
  • Step S3810 the current chip obtains communication data and communication configuration information
  • steps in the flowchart of FIG. 29 are displayed in order according to the arrows, the steps are not necessarily executed in the order indicated by the arrows. Unless clearly stated in this article, the execution of these steps is not strictly limited in order, and these steps may be executed in other orders. Moreover, at least a part of the steps in FIG. 29 may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed and completed at the same time, but may be executed at different times. The order is not necessarily sequential, but may be performed in turn or alternately with at least a part of other steps or sub-steps or stages of other steps.
  • the data communication method further includes:
  • step S38010 the receiving device of the current chip determines the execution state of the receiving method according to the status descriptor queue includes: step S38011, the receiving device of the current chip sends the status descriptor queue to The main operating terminal; step S38012, the main operating terminal selects the status descriptor from the status descriptors according to a preset rule; step S38013, the main operating terminal determines the number of completed receiving tasks according to the status descriptor; In step S38014, when the number of the received tasks that have been executed reaches a threshold, the main operating end judges that the receiving process is ended.
  • the data communication method further includes:
  • the normal sending mode includes obtaining a control instruction from a main operating terminal, where the main operating terminal is a control device external to the chip.
  • the hardware accelerated transmission mode includes obtaining a control instruction from a task processing device, where the task processing device is a device that performs processing within the chip.
  • the method further includes: the task processing device of the current chip generates a task control instruction and a communication control instruction according to the calculation control information; the task processing device of the current chip according to the task control instruction and task scheduling information Perform scheduling processing on the communication data to obtain a processing result; the task processing device of the current chip generates a task end descriptor according to the task control instruction; the task processing device of the current chip generates the processing result according to the communication control instruction Output.
  • the generating a task end descriptor according to the task control instruction of the current chip's task processing device includes: the current chip's task processing device determines whether the task control instruction is completed; the current chip's task processing device If the execution of the task control instruction is completed, a task end descriptor is generated.
  • the task processing device of the current chip sending the processing result to the post-processing task execution end includes: if the post-processing task is in the next chip, acquiring the communication configuration of the next chip Information queue; output the communication configuration information queue of the next chip and the processing result to the sending part of the current chip.
  • the sending device of the current chip detecting whether the data to be sent in the storage space is complete includes: the sending device of the current chip obtains the address selection signal; the sending device of the current chip determines whether the address selection signal is valid; If the address selection signal is valid, the sending device of the current chip determines that the communication configuration information in the storage space and the data to be sent are complete.
  • the current chip parses at least one piece of communication configuration information in the communication configuration information queue of the target chip, and obtaining the communication descriptor of the target chip includes: the sending device of the current chip gives each communication descriptor Assign a communication descriptor identifier; the sending device of the current chip reads the corresponding communication descriptor according to the communication descriptor identifier.
  • the method further includes: the sending device of the current chip packages each of the communication descriptors and the data to be sent corresponding to each of the communication descriptors to obtain a transmission data packet; the current chip The sending device of obtains the identification information of the target sending chip of the data to be sent; the sending device of the current chip sends the transmission data packet according to the identification information.
  • a communication system including:
  • a receiving device, a task processing device, a sending device and a memory the task processing device is connected to a receiving device at one end and a transmitting device at the other end; the receiving device and the sending device are respectively connected to the memory; the receiving device is used for Receiving communication configuration information and communication data; the task processing device is used to process the input data in a hardware acceleration mode; the memory is used to store the communication configuration information; the sending device is used to store the pending Send data output.
  • a data communication device is provided, please refer to FIG. 30 together.
  • the data communication device includes:
  • the data acquisition module 3510 is used for acquiring communication data and communication configuration information by the current chip
  • the configuration information analysis module 3520 is configured to analyze the communication configuration information by the current chip to obtain a communication descriptor
  • the target address space filling module 3530 is used for the current chip to send the communication data to the target address space according to the communication descriptor;
  • the communication configuration information queue obtaining module 3540 is used for the current chip to obtain the communication configuration information queue of the target chip;
  • a data reading module 3560 to be sent is used for the current chip to read the data to be sent in the target address space according to the communication descriptor of the target chip;
  • the present application further provides a board card, which is used in a data communication method.
  • the board card may include: multiple artificial intelligence processors, and the memory corresponding to the multiple artificial intelligence processors is multi-channel Memory; wherein, the target artificial intelligence processor is used to receive the artificial intelligence processor calculation instruction issued by the CPU through the target parallel thread, and through the memory channel corresponding to the target parallel thread, according to the artificial intelligence processor calculation instruction Physical memory corresponding to the memory channel is accessed; the target artificial intelligence processor is any artificial intelligence processor among the plurality of artificial intelligence processors, and the target parallel thread is a plurality of parallel threads started by the CPU Any one of the; at least two of the multiple parallel threads correspond to different memory channels.
  • the above-mentioned board may also contain other supporting components.
  • the supporting components include but are not limited to: a memory controller 343, a bus, and an interface 344.
  • the dedicated processor 341 performs command transmission and data transmission with external devices through the interface 344.
  • the external device may be the main operating terminal (CPU).
  • the present application also provides a main board, which is applied to a neural network data processing method.
  • the main board includes: a main operation terminal and the board provided in the above embodiment.
  • an electronic device is provided.
  • the electronic device is used in a data communication method, and the electronic device includes a motherboard as shown in FIG. 32.
  • the main board includes a CPU and a board.
  • the board includes multiple artificial intelligence processors.
  • the memory corresponding to the multiple artificial intelligence processors is multi-channel memory.
  • the target artificial intelligence processor is used to receive the main operating end CPU through the target parallel thread.
  • electronic equipment may include data processing devices, robots, computers, printers, scanners, tablets, smart terminals, mobile phones, driving recorders, navigators, sensors, cameras, servers, cloud servers, cameras, cameras, projections Instruments, watches, headphones, mobile storage, wearable devices, vehicles, household appliances, and/or medical devices.
  • the vehicles include airplanes, ships, and/or vehicles;
  • the household appliances include televisions, air conditioners, microwave ovens, refrigerators, rice cookers, humidifiers, washing machines, electric lights, gas stoves, and range hoods; and the medical equipment includes nuclear magnetic resonance instruments, B-ultrasound and/or electrocardiograph.
  • a computer device is provided.
  • the computer device may be a server, and an internal structure diagram thereof may be as shown in FIG. 33.
  • the computer device includes a processor, memory, network interface, and database connected by a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities.
  • the memory of the computer device includes a non-volatile storage medium and an internal memory.
  • the non-volatile storage medium stores an operating system, a computer program, and a database.
  • the internal memory provides an environment for the operating system and computer programs in the non-volatile storage medium.
  • the database of the computer device is used to store communication configuration information or communication descriptors.
  • the network interface of the computer device is used to communicate with external terminals through a network connection.
  • the computer program is executed by the processor to implement a data communication method.
  • FIG. 33 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer equipment to which the solution of the present application is applied.
  • the specific computer equipment may It includes more or fewer components than shown in the figure, or some components are combined, or have a different component arrangement.
  • a computer-readable storage medium is provided on which a computer program is stored, and when the computer program is executed by a processor, the steps of the method described in any of the above embodiments are implemented.
  • Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
  • Volatile memory can include random access memory (RAM) or external cache memory.
  • FIG. 1 provides a communication device.
  • the communication device shown in FIG. 1 includes a receiving device 4110, a sending device 4120, a task processing device 4130, and a memory 4140.
  • the task processing device 4130 is connected to the receiving device 4110 at one end and to the sending device 4120 at the other end.
  • the receiving device 4110 and the sending device 4120 are respectively connected to the memory 140.
  • the transmission interface circuit 4133 is used to obtain communication data
  • Status monitoring device 413123 the status monitoring device is connected to the task dispatching device and the second processor, and the status monitoring device is used to allocate each task according to the received task registration request of each task A task identifier, and transmit the task identifier of each of the tasks back to the task dispatching device;
  • Step S4902 Perform scheduling processing on the received communication data according to the calculation control information and task scheduling information to obtain a calculation result.
  • the task scheduler 41312 may transmit the scheduling information obtained by it to the second processor 41313, and the second processor 41313 may receive the scheduling information from the task caching device Obtain all task information of the task to which the target job belongs in 413121, obtain decomposition information of the task to which the calculation process belongs from the task dispatching device 413122, and according to the received decomposition information of the task to which the calculation process belongs and all task information, the calculation process
  • the assigned task is split into multiple jobs, and each job obtained after splitting contains information such as weights and data.
  • the second processor 41313 can process the communication data according to the task scheduling information to obtain the processing result.
  • Step S4904 According to the task end descriptor, output the processing result. Specifically, it is judged according to the task end descriptor whether the calculation task is completed, and if the execution is completed, the processing result is output.
  • FIG. 38 provides a task processing soft device, which includes:
  • the above-mentioned card may also contain other supporting components.
  • the supporting components include but are not limited to: a memory controller 443, a bus, and an interface 444.
  • the dedicated processor 441 performs command transmission and data transmission with external devices through the interface 444.
  • the external device may be the main operating terminal (CPU).
  • the motherboard provided in this embodiment can execute the above method embodiments, and its implementation principles and technical effects are similar, which will not be repeated here.
  • an electronic device is provided.
  • the electronic device is used in a data communication method, and the electronic device includes a motherboard as shown in FIG. 40.
  • the main board includes a CPU and a board.
  • the board includes multiple artificial intelligence processors.
  • the memory corresponding to the multiple artificial intelligence processors is multi-channel memory.
  • the target artificial intelligence processor is used to receive the main operating end CPU through the target parallel thread.
  • FIG. 41 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied.
  • the specific computer device may It includes more or fewer components than shown in the figure, or some components are combined, or have a different component arrangement.
  • a computer device which includes a memory and a processor.
  • a computer program is stored in the memory, and when the processor executes the processor program, the steps of the method described in any of the above embodiments are implemented.
  • RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous chain (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.
  • SRAM static RAM
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • DDRSDRAM double data rate SDRAM
  • ESDRAM enhanced SDRAM
  • SLDRAM synchronous chain (Synchlink) DRAM
  • SLDRAM synchronous chain (Synchlink) DRAM
  • Rambus direct RAM
  • DRAM direct memory bus dynamic RAM
  • RDRAM memory bus dynamic RAM

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本申请涉及一种通信方法及相关装置,所述装置包括:多个人工智能处理器(专用处理器可以包括多个人工智能处理器)和多通道内存之外,还可以包含其它配套部件。该配套部件包括但不限于:内存控制器、总线、接口。专用处理器通过接口与外部设备之间进行指令传输以及数据。

Description

通用机器学习模型、模型文件的生成和解析方法
相关申请
本申请要求2018年12月29日申请的,申请号为201811646630.0,名称为“数据通信方法、装置及相关产品”;申请号为201811647273.X,名称为“任务处理方法、装置及相关产品”;申请号为201811646353.3,名称为“数据接收方法、装置及相关产品”;申请号为201811646708.9,名称为“数据发送方法、装置及相关产品”;申请号201811641509.9名称为“任务处理装置、神经网络处理器芯片、组合装置以及电子设备”;申请号为201811641903.2,名称为“通信装置、神经网络处理芯片、组合装置和电子设备”;申请号为2018116465079,名称为“接收装置、神经网络处理器芯片、组合装置以及电子设备”;申请号为2018116467125,名称为“发送装置、神经网络处理器芯片、组合装置以及电子设备”的中国专利申请的优先权,在此将其全文引入作为参考。
技术领域
本申请涉及人工智能技术领域,特别是涉及一种通信方法及相关装置。
背景技术
随着人工智能技术的发展,主操作端已不能满足现有算法的计算需求,神经网络专用芯片营运而生。实践证明,人工智能计算任务相对于通用处理任务或图像处理任务而言,具有独特的数据结构、存储方式、计算模式等,因而可以设计专用集成电路为人工智能计算任务重新分配芯片计算资源,实现低功耗、低延迟、高吞吐率的计算。NPU(Neural network Processing Unit)是一种专用集成电路,可以实现人工智能计算任务,例如神经网络计算,其具有低功耗、高效能、小面积的特点。
根据摩尔定律和Dennard Scaling定律,单核高效能处理器的计算能力会因为物理因素的限制达到瓶颈。为了提高计算并行性,业界的芯片设计逐渐转向多核高效率处理器设计上。不仅如此,随着高性能计算机和数据中心的发展,越来越多的计算资源被集中起来,多芯片协同处理已是常态。为了实现基于NPU的高处理性能和高可扩展的AI处理系统,NPU芯片间需要支持高效的数据传输。
但是目前还没有一种方法和装置能够支持NPU芯片间的数据传输。
发明内容
有鉴于此,本申请公开一种用于支持NPU芯片间的数据传输的通信方法及相关装置。
一种发送装置,所述发送装置设置于芯片中,所述装置包括:发送配置电路,发送控制电路以及发送端口电路;所述发送控制电路分别与所述发送配置电路、所述发送端口电路相连。
在其中一个实施例中,所述发送配置电路包括配置信息获取电路和配置信息解析电路;所述配置信息获取电路分别与所述配置信息解析电路、所述发送控制电路相连。
在其中一个实施例中,所述装置与存储器相连,其中,所述存储器与发送端口电路相连,所述存储用于存储待发送数据。
在其中一个实施例中,存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
在其中一个实施例中,所述发送配置电路、所述发送控制电路分别与主操作端连接。
在其中一个实施例中,所述发送配置电路,发送控制电路以及发送端口电路之间的相连方式包括无线连接、电气连接。
在其中一个实施例中,所述发送配置电路中生成至少一条通信描述符。
在其中一个实施例中,所述发送描述符包括待发送数据的源地址、所述待发送数据的目的地址、所述待发送数据的偏移量以及所述待发送数据的数据块大小中的一种或几种。
一种神经网络处理器芯片,所述芯片包括如上所述的发送装置。
在其中一个实施例中,所述芯片还包括计算装置,所述发送装置与所述计算装置相连。
一种组合装置,所述组合装置包括多个上述的芯片,所述组合装置中的所述芯片两两相连。
在其中一个实施例中,所述组合装置中的上一芯片的发送端口电路与下一芯片中的接收装置相连。
在其中一个实施例中,所述组合装置中的上一芯片的发送端口电路与下一芯片中的接收装置通过高速串行扩展线路相连。
一种电子设备,所述电子设备包括如上述的神经网络处理器芯片。
一种接收装置,所述装置包括:接收端口电路,所述装置包括:接收端口电路,配置信息解析电路和控制电路;所述接收端口电路与所述配置信息解析电路相连,所述配置信息解析电路还与所述控制电路相连。
在其中一个实施例中,所述装置还包括状态描述符缓存电路,所述状态描述符缓存与所述控制电路连接;
所述状态描述符缓存电路用于存储状态描述符,所述状态描述符用于标记接收过程的完成状态。
在其中一个实施例中,所述装置与存储器相连,其中,
所述存储器与所述接收端口电路相连,所述存储器用于存储所述接收端口电路接收的数据。
在其中一个实施例中,所述存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
在其中一个实施例中,所述通信端口电路,所述配置信息解析电路和所述控制电路的相连方式包括无线连接和/或电气连接。
在其中一个实施例中,所述配置信息解析电路用于对接收的通信配置信息队列进行解析,得到至少一条接收描述符。
在其中一个实施例中,所述接收描述符包括待发送数据的源地址、所述待发送数据的目的地址、所述待发送数据的偏移量以及所述待发送数据的数据块大小中的一种或几种。
在其中一个实施例中,所述芯片包括如上所述的接收装置。
在其中一个实施例中,所述芯片还包括计算装置,所述接收装置与所述计算装置相连。
在其中一个实施例中,所述组合装置包括至少一个如上所述的芯片。
在其中一个实施例中,所述组合装置中的芯片两两相连。
在其中一个实施例中,所述组合装置还包括主操作端,所述芯片与所述主操作端连接。
在其中一个实施例中,所述组合装置中的上一芯片的通信端口电路与下一芯片中的接收装置相连。
在其中一个实施例中,所述组合装置中的上一芯片的通信端口电路与下一芯片中的接收装置通过高速串行扩展线路相连。
一种电子设备,所述电子设备包括如上述的神经网络处理器芯片。
一种通信装置,所述通信装置位于芯片上,所述装置包括:
接收装置、任务处理装置、发送装置以及存储器;所述任务处理装置一端连接接收装置,另一端连接发送装置;所述接收装置、所述发送装置分别与所述存储器相连;
所述接收装置用于接收通信配置信息和通信数据;
所述任务处理装置用于对所述通信数据进行计算,得到待发送数据;
所述存储器用于存储所述通信配置信息;
所述发送装置用于将所述待发送数据输出。
在其中一个实施例中,所述发送装置包括:
发送配置电路,控制电路以及发送端口电路;所述控制电路分别与所述发送配置电路、所述发送端口电路相连;所述控制电路分别与所述发送配置电路、所述发送端口电路相连。
在其中一个实施例中,所述接收装置包括:接收端口电路,配置信息解析电路和控制电路;所述接收端口电路与所述配置信息解析电路相连,所述配置信息解析电路还与所述控制电路相连。
在其中一个实施例中,所述任务处理装置包括:结束信息分析电路、计算处理电路和传送接口电路;所述结束信息分析电路与所述计算处理电路相连;所述计算处理电路还与所述传送接口电路相连;
所述结束信息分析电路用于判断任务处理完成状态;
所述传送接口电路用于获取输入数据和传送配置信息;
所述计算处理电路用于根据所述输入数据执行计算,得到输出数据;
所述传送接口电路还用于根据所述传送配置信息将所述输出数据输出。
在其中一个实施例中,所述通信配置信息包括所述输入数据、所述输出数据的源地址, 所述输入数据、所述输出数据待发送的目的地址,所述输入数据、所述输出数据在存储空间中的偏移量以及所述输入数据、所述输出数据的数据块大小中的一种或几种。
在其中一个实施例中,所述存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
在其中一个实施例中,所述接收装置、任务处理装置、发送装置以及存储器的相连方式包括无线连接和/或电气连接。
一种神经网络处理器芯片,所述芯片包括如上所述的通信装置。
一种组合装置,所述组合装置包括至少一个如上所述的芯片。
在其中一个实施例中,所述组合装置中的芯片两两相连。
在其中一个实施例中,所述组合装置还包括主操作端,所述芯片与所述主操作端连接。
一种电子设备,所述电子设备包括如上所述的神经网络处理器芯片。
一种任务处理装置,所述装置位于芯片上,所述装置包括:结束信息分析电路、任务处理电路和传送接口电路;所述结束信息分析电路与所述任务处理电路相连;所述任务处理电路还与所述传送接口电路相连;
所述结束信息分析电路用于判断计算任务完成状态,得到任务结束描述符;
所述传送接口电路用于获取通信数据和通信配置信息;
所述任务处理电路用于根据所述通信数据执行计算执行处理,得到输出数据;
所述传送接口电路还用于获取通信配置信息并根据所述通信配置信息将所述输出数据和所述任务结束描述符输出。
在其中一个实施例中,所述任务处理电路还包括:
任务调度器、第一处理器、第二处理器以及运算控制电路;任务调度器连接在第一处理器和第二处理器之间;所述运算控制电路与所述任务调度器相连;
所述任务调度器用于将计算任务在所述第一处理器和所述第二处理器中进行调度执行;
所述第一处理器用于执行所述任务调度器分配的第一处理器任务;
所述第二处理器用于执行所述任务调度器分配的第二处理器任务;
所述运算控制电路用于向所述任务调度器发送控制指令,以及用于生成传输配置信息。
在其中一个实施例中,所述任务调度器包括:
任务缓存装置,用于存储多个任务对应的基本任务信息和全部任务信息;
任务分派装置,所述任务分派装置与所述任务缓存装置连接,所述任务分派装置用于从所述任务缓存装置中获取一个以上的所述任务的基本任务信息,并分别根据各个所述任务的基本任务信息获得所述任务的任务注册请求;以及
状态监控装置,所述状态监控装置连接所述任务分派装置及所述第二处理器,所述状态监控装置用于根据接收到的各个所述任务的任务注册请求,为各个所述任务分配一个任务标识,并将各个所述任务的任务标识回传给所述任务分派装置;
其中,所述任务分派装置还用于在接收到所述任务的任务标识之后,获得所述任务的分 解信息,并根据所述任务的分解信息及所述第二处理器的处理器状态信息确定目标作业,获得调度信息,并将所述调度信息发送至所述第二处理器。
在其中一个实施例中,所述装置与存储器相连,其中
所述存储器与所述传送接口电路相连,所述存储器用于存储所述输出数据和所述通信配置信息。
在其中一个实施例中,所述存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
在其中一个实施例中,所述结束信息分析电路、任务处理电路和传送接口电路的相连方式包括无线连接和/或电气连接。
在其中一个实施例中,所述通信配置信息包括输出数据待存储的源地址、所述输出数据待发送的目的地址、所述输出数据在存储空间中的偏移量以及所述输出数据的数据块大小中的一种或几种。
在其中一个实施例中,所述芯片包括如上所述的任务处理装置。
在其中一个实施例中,所述芯片还包括发送装置和接收装置,所述任务处理装置分别与所述发送装置和所述接收装置相连。
一种组合装置,所述组合装置包括至少一个如上所述的芯片。
在其中一个实施例中,所述组合装置中的芯片两两相连。
在其中一个实施例中,所述组合装置还包括主操作端,所述芯片与所述主操作端连接。
一种电子设备,所述电子设备包括如所述权上所述的神经网络处理器芯片。
一种数据发送方法,所述方法包括:
获取通信配置信息队列和待发送数据,其中所述通信配置信息队列为对芯片与芯片之间传输进行配置的信息队列;
对所述通信配置信息队列中的至少一条通信配置信息进行解析,得到对应的通信描述符,其中所述通信描述符为描述发送方法所经过过程的信息;
根据所述通信描述符,发送所述待发送数据。
在其中一个实施例中,所述获取通信配置信息队列和待发送数据包括:
检测存储空间中所述待发送数据是否完整;
若所述存储空间中的所述待发送数据完整,则获取所述通信配置信息队列和所述待发送数据。
在其中一个实施例中,所述检测存储空间中的通信配置信息和所述待发送数据是否完整包括:
获取地址选择信号;
判断所述地址选择信号是否有效;
若所述地址选择信号有效,则确定所述存储空间中的所述通信配置信息和所述待发送数据完整。
在其中一个实施例中,所述对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符包括:
获取发送控制指令;
根据所述发送控制指令,按预设规则在所述配置信息队列中读取至少一条所述通信配置信息;
对至少一条所述通信配置信息进行解析,分别得到对应的所述通信描述符。
在其中一个实施例中,所述对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符包括:
给每条通信描述符分配通信描述符标识;
根据所述通信描述符标识,读取对应的通信描述符。
在其中一个实施例中,所述通信描述符包括:待发送数据的源地址、所述待发送数据的目的地址、所述待发送数据的偏移量以及所述待发送数据的数据块大小中的一种或几种。
在其中一个实施例中,所述方法还包括:
根据所述通信描述符,得到发送模式符;
根据所述发送模式符,得到所述发送方法为普通发送模式还是硬件加速发送模式。
在其中一个实施例中,所述普通发送模式包括从主操作端获取通信配置信息和所述控制指令,所述主操作端为芯片外部的控制装置。
在其中一个实施例中,所述硬件加速传输模式包括从计算装置中获取通信配置信息和所述控制指令,所述计算装置为芯片内部的执行计算的装置。
在其中一个实施例中,所述方法还包括:
对每条所述通信描述符和每条所述通信描述符对应的所述待发送数据进行打包,得到传输数据包;
获取待发送数据的目标发送芯片的标识信息;
根据所述标识信息,发送所述传输数据包。
在其中一个实施例中,所述装置包括:
获取模块,用于获取通信配置信息队列和待发送数据;
解析模块,用于对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符;
数据发送模块,用于根据所述通信描述符,发送所述待发送数据。
一种板卡,应用于数据发送方法中,所述板卡包括:多个人工智能处理器,所述多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收通用处理器CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应 不同的内存通道。
一种主板,应用于神经网络数据处理中,所述主板包括:通用处理器CPU和上述的板卡。
一种电子设备,,应用于神经网络数据处理中,所述电子设备包括上述主板。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述方法的步骤。
一种数据接收方法,所述方法包括:
获取通信数据和通信配置信息;
对所述通信配置信息进行解析,得到通信描述符;其中,所述通信描述符为描述发送方法所经过过程的信息;
根据所述通信描述符,接收所述通信数据。
在其中一个实施例中,所述获取通信数据和通信配置信息包括:
获取传输数据包;
根据所述传输数据包,得到通信数据和所述通信配置信息。
在其中一个实施例中,所述对所述通信配置信息进行解析,得到通信描述符包括:
获取解析控制指令;
根据所述控制指令,对对所述通信配置信息进行解析,得到通信描述符。
在其中一个实施例中,所述通信描述符包括:待发送数据的源地址、所述待发送数据的目的地址、所述待发送数据的在源地址中的偏移量、所述待发送数据在目的地址中的偏移量以及所述待发送数据的数据块大小中的一种或几种。
在其中一个实施例中,所述方法还包括:
根据所述通信描述符,得到接收模式符;
根据所述接收模式符,得到所述发送方法为普通发送模式还是硬件加速发送模式。
在其中一个实施例中,所述普通发送模式包括从主操作端获取发送控制指令,所述主操作端为芯片外部的控制装置。
在其中一个实施例中,所述硬件加速传输模式包括从计算装置中获取发送控制指令,所述计算装置为芯片内部的执行计算的装置。
在其中一个实施例中,所述方法还包括:
根据所述通信描述符,将所述通信数据存储至目标地址。
在其中一个实施例中,所述方法还包括:
根据通信描述符,当接收任务执行完成,生成对应的状态描述符;
将所述状态描述符,存储至状态描述符队列;
根据所述状态描述符队列,判断接收过程的执行状态。
在其中一个实施例中,所述根据所述状态描述符队列,判断所述接收方法执行状态包括:
根据预设规则在所述状态描述符队列中选取所述状态描述符;
根据所述状态描述符队列中所述状态描述符的数量,确定执行完毕的接收过程的数量;
当所述执行完毕的接收任务的数量达到阈值,判断所述接收任务结束。
一种数据接收装置,所述装置包括:
配置信息获取模块,用于获取通信数据和通信配置信息;
描述符解析模块,用于对所述通信配置信息进行解析,得到通信描述符;
数据接收模块,用于根据所述通信描述符,接收所述通信数据。
一种板卡,应用于数据发送方法中,所述板卡包括:多个人工智能处理器,所述多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收通用处理器CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
一种主板,应用于神经网络数据处理中,所述主板包括:通用处理器CPU和上述的板卡。
一种电子设备,应用于神经网络数据处理中,所述电子设备包括如上述的主板。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一实施例所述方法的步骤。
一种任务处理方法,所述方法包括:
获取运算控制信息和任务调度信息;
根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果;
根据所述运算控制信息,生成任务结束描述符;
根据所述任务结束描述符,将所述计算结果输出。
在其中一个实施例中,所述获取运算控制信息和任务调度信息包括:
获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求;
根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识;
获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得任务调度信息。
在其中一个实施例中,所述根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果包括:
根据所述任务调度信息获取所述任务调度信息、所述目标任务所属的任务的分解信息及全部任务信息,将所述目标任务所属的任务拆分为多个子任务,并根据所述任务调度信息执行对所述通信数据所述目标任务,得到计算结果。
在其中一个实施例中,所述方法还包括:
根据所述运算控制信息,生成计算控制指令以及通信控制指令;
根据所述计算控制指令及任务调度信息对所述通信数据执行调度处理,得到计算结果;
根据所述计算控制指令,生成任务结束描述符;
根据所述通信控制指令,将所述计算结果输出。
在其中一个实施例中,所述根据所述计算控制指令,生成任务结束描述符包括:
判断所述计算控制指令是否执行完成;
若所述计算控制指令执行完成,则生成任务结束描述符。
在其中一个实施例中,所述方法还包括:
根据多个所述任务结束描述符,生成任务描述符队列;
根据预设规则在所述任务描述符队列中选择对应的所述任务描述符;
根据所述任务描述符,将所述计算结果输出。
在其中一个实施例中,所述根据所述任务结束描述符,将所述计算结果输出包括:
读取所述任务结束描述符,得到后处理任务指令;
将所述计算结果,发送至所述后处理任务执行端。
在其中一个实施例中,所述将所述计算结果,发送至所述后处理任务执行端包括:
若所述后处理任务的执行端在下一芯片中,则获取下一芯片的通信配置信息队列;
将所述下一芯片的通信配置信息队列和所述计算结果输出至当前芯片的发送装置。
在其中一个实施例中,所述将所述计算结果,发送至所述后处理任务执行端包括:
若所述后处理任务的执行端在主操作端;
则将所述计算结果和所述任务结束描述符发送至主操作端。
在其中一个实施例中,所述获取运算控制信息包括从主操作端获取运算控制信息,所述主操作端为芯片外部的控制装置。
在其中一个实施例中,所述获取运算控制信息包括从计算装置中生成运算控制信息,所述计算装置为芯片内部的执行计算任务的装置。
一种任务处理装置,所述装置包括:
信息获取模块,用于获取运算控制信息和任务调度信息;
计算结果生成模块,用于根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果;
任务描述符生成模块,用于根据所述运算控制信息,生成任务结束描述符;
计算结果输出模块,用于根据所述任务结束描述符,将所述计算结果输出。
一种板卡,应用于数据发送方法中,所述板卡包括:多个人工智能芯片,所述多个人工智能芯片对应的内存为多通道内存;其中,目标人工智能芯片用于在通过目标并行线程接收通用芯片CPU发出的人工智能芯片计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能芯片计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能芯片为所述多个人工智能芯片中的任一人工智能芯片,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
一种主板,应用于神经网络数据处理中,所述主板包括:通用芯片CPU和上述的板卡。
一种电子设备,应用于神经网络数据处理中,所述电子设备包括上述的主板。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被芯片执行时实现上述任一实施例中所述方法的步骤。
本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征、目的和优点将从说明书、附图以及权利要求书变得明显。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
图1为一个实施例中提供的一种通信系统示意图;
图2为一个实施例中提供的发送装置的内部结构图;
图3为一个实施例中提供的组合装置示意图;
图4为一个实施例提供的数据发送方法流程示意图;
图5为一个实施例提供的数据发送装置示意图;
图6为一个实施例中提供的板卡示意图;
图7为一个实施例中提供的主板示意图;
图8为一个实施例中计算机设备的内部结构图。
图9为一个实施例中提供的接收装置的内部结构图;
图10为一个实施例中提供的组合装置示意图;
图11为一个实施例中提供的数据接收方法流程示意图;
图12为另一个实施例中提供的数据接收方法流程示意图;
图13为一个实施例中提供的一种数据接收装置示意图;
图14为一个实施例中提供的板卡示意图;
图15为一个实施例中提供的主板示意图;
图16为一个实施例中计算机设备的内部结构图;
图17为一个实施例中提供的一种接收装置的内部结构图;
图18为一个实施例中提供的发送装置的内部结构图;
图19为一个实施例中提供任务处理装置的内部示意图;
图20为一个实施例中提供的组合装置示意图;
图21为一个实施例中提供的数据接收方法流程示意图;
图22为另一个实施例中提供的数据接收方法流程示意图;
图23为一个实施例中提供的一种数据接收装置示意图;
图24为一个实施例提供的一种任务处理方法流程示意图;
图25为一个实施例提供的任务处理方法流程示意图;
图26为一个实施例提供的任务处理处理装置示意图;
图27为一个实施例提供的数据发送方法流程示意图;
图28为一个实施例提供的数据发送装置示意图;
图29为一个实施例中提供的数据通信方法流程示意图;
图30为一个实施例中提供的数据通信装置示意图;
图31为一个实施例中提供的板卡示意图;
图32为一个实施例中提供的主板示意图;
图33为一个实施例中计算机设备的内部结构图。
图34为一个实施例中提供任务处理装置的内部示意图;
图35为一个实施例中提供的组合装置示意图;
图36为一个实施例提供的一种任务处理方法流程示意图;
图37为一个实施例提供的任务处理方法流程示意图;
图38为一个实施例提供的任务处理软装置示意图;
图39为一个实施例中提供的板卡示意图;
图40为一个实施例中提供的主板示意图;
图41为一个实施例中计算机设备的内部结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
1、支持片间高效通信的发送方法及装置
在一个实施例中,请一并参阅图1,提供了一种通信系统。如图1所述的通信系统1100包括:接收装置1110,发送装置1120,计算装置1130,存储器1140,所述计算装置1130一端与接收装置1110相连,另一端与发送装置1120相连。具体地,所述接收装置1110、所述发送装置1120分别与所述存储器1140相连。
在一个实施例中,请一并参阅图2,提供了发送装置120的内部结构图。发送装置1120包括:发送配置电路1121,发送控制电路1123以及发送端口电路1122;所述发送控制电路1123分别与所述发送配置电路1121、所述发送端口电路相连。
在其中一个实施例中,发送配置电路1121包括配置信息获取电路11211和配置信息解析电路11212;所述配置信息获取电路11211分别与所述配置信息解析电路11212、所述发送控制电路1123相连。所述发送装置1120与存储器1140相连,其中,所述存储器1140分别与发送端口电路1122、发送配置电路1121相连,所述存储器140用于存储待发送数据和配置信息。可选地,配置信息解析电路生成的通信描述符存储于描述符缓存中。该描述符缓存位于发送装置内部。在其中一个实施例中,所述待发送数据和所述通信描述符对应存储。
在其中一个实施例中,所述发送配置电路1121、所述发送控制电路1123分别与主操作端1150连接。具体地,发送配置电路从主操作端150获取发送配置信息,发送控制电路1123从主操作端获取控制指令。
在其中一个实施例中,请一并参阅图3,提供了一种组合装置。所述组合装置包括多个神经网络处理芯片1200,且所述神经网络处理芯片1200之间依次相连。其中,神经网络处理芯片之间可以任意两个芯片之间都相连,还可以相邻的两个芯片之间相连。
在其中一个实施例中,每个所述神经网络处理芯片都与主操作端150相连。在其中一个实施例中,每个神经网络处理芯片中包括如图1所示的通信系统1100,所述通信系统1100包括接收装置1110、发送装置1120、计算装置1130以及存储器1140。
在其中一个实施例中,提供了一种电子设备,所述电子设备包括神经网络处理芯片1200。其中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
其中,上述任一实施例中的元件之间的连接关系,可以是电连接或无线连接。
在一个实施例中,请一并参阅图4,提供了一种数据发送方法,本申请提供的数据发送方法,可以应用于如图1-3所示的装置中,所述接收方法包括:
步骤S1710,获取通信配置信息队列和待发送数据。其中所述通信配置信息队列为对芯片与芯片之间传输进行配置的信息队列。其中待发送数据可以是上述实施例中的通信数据、计算结果还可以是其他需要进行发送的数据。
步骤S1720,对所述通信配置信息队列中的至少一条通信配置信息进行解析,得到对应的通信描述符。其中所述通信描述符为描述发送方法所经过过程的信息。其中,通信配置信息队列包含至少一条通信配置信息。具体地,当通信配置队列中存在多个通信配置信息时,分别对通信配置信息进行解析,得到对应于通信配置信息的通信描述符。
步骤S1730,根据所述通信描述符,发送所述待发送数据。
在一个实施例中,步骤S1710,所述获取通信配置信息队列和待发送数据包括:
步骤S1711,检测存储空间中所述待发送数据是否完整。具体地,待发送数据是否完整是指待发送数据在数据量,数据大小是否与预设描述相符。
在其中一个实施例中,步骤S1711,所述检测存储空间中的通信配置信息和所述待发送数据是否完整包括:
步骤S17111,获取地址选择信号。具体的,地址选择信号是指能够反映待发送数据是否完整和准确的信号。
步骤S17112,判断所述地址选择信号是否有效。步骤S17113,若所述地址选择信号有效,则确定所述存储空间中的所述通信配置信息和所述待发送数据完整。在其中一个实施例中,若地址选择信号无效,则确定待发送数据不完整。
步骤S1712,若所述存储空间中的所述待发送数据完整,则获取所述通信配置信息队列和所述待发送数据。通过本实施中的方法,能够保证待传输数据的准确性。
在一个实施例中,步骤S1720,所述对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符包括:
步骤S1721,获取发送控制指令。具体地,当发送模式为普通发送模式时,从主操作端获取发送控制指令;当发送模式为硬件加速模式时,从计算装置获取发送控制指令。可以理解地,主操作端在芯片内部,计算装置在芯片内部。当从计算装置中获取发送指令时,进行的是芯片内部传输提高了传输速度。
步骤S1722,根据所述发送控制指令,按预设规则在所述配置信息队列中读取至少一条所述通信配置信息。具体地,预设规则是预先设置好的读取规则,可以是按照配置信息在配置信息队列中的存放顺序进行读取,也可以按照其他预定规则进行读取。
步骤S1723,对至少一条所述通信配置信息进行解析,分别得到对应的所述通信描述符。在其中一个实施例中,给每条通信描述符分配通信描述符标识;
根据所述通信描述符标识,读取对应的通信描述符。具体地,不同的通信描述符通过各自的通信描述符区分。在其中一个实施例中,多个通信描述符中的最后一个被读取的通信描述符有通信描述符标识E。当读取到该通信描述符标识E时,表示该多个通信描述符已全部读取完成。
在一个实施例中,所述发送方法还包括:根据所述通信描述符,得到发送模式符;根据所述发送模式符,得到所述发送方法为普通发送模式还是硬件加速发送模式。例如,根据通信描述符,生成发送模式符Type1,当Type1=0表示普通数据传输,当Type1=2表示硬件加速传输。在另一个实施例中,当Type1=1时,表示芯片与主操作端的通信。其中,普通数据传输是指芯片与芯片之间的数据传输,且发送控制指令来自于主操作端。其中,硬件加速传输是指芯片与芯片之间的数据传输,且发送控制指令来自芯片内部的计算装置。
在一个实施例中,所述方法还包括:
步骤S1740,对每条所述通信描述符和每条所述通信描述符对应的所述待发送数据进行打包,得到传输数据包。具体地,传输数据包包括将每条通信描述符和每条通信描述符对应的待发送数据进行压缩,得到的压缩包。
步骤S1750,获取待发送数据的目标发送芯片的标识信息。具体地,在开始传输任务时,分别为每个芯片分配各自的标识信息。根据目标发送芯片的标识信息,能够准确定位目标发送芯片。
步骤S1760,根据所述标识信息,发送所述传输数据包。
应该理解的是,虽然图4流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,请一并参阅图5,提供了一种数据发送装置,所述装置包括:
获取模块1701,用于获取通信配置信息队列和待发送数据;
解析模块1702,用于对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符;
数据发送模块1703,用于根据所述通信描述符,发送所述待发送数据。
关于数据发送装置的具体限定可以参见上文中对于数据发送方法的限定,在此不再赘述。上述数据接收装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,本申请还提供一种板卡,该板卡应用于数据通信方法中,该板卡可以包括:多个人工智能处理器,多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
参见图6所示,上述板卡除了包括上述多个人工智能处理器1411(专用处理器41可以包括多个人工智能处理器1411)和多通道内存142之外,还可以包含其它配套部件。该配套部件包括但不限于:内存控制器143、总线、接口144。专用处理器141通过接口144与外部设备之间进行指令传输以及数据传输。可选的,外部设备可以为主操作端(CPU)。
本实施例提供的板卡,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,本申请还提供一种主板,应用于神经网络数据处理方法中,如图7所示,该主板包括:主操作端和上述实施例提供的板卡。
本实施例提供的主板,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,提供一种电子设备,该电子设备应用于数据通信方法中,该电子设备包括如图7所示的主板。该主板包括CPU和板卡,板卡包括多个人工智能处理器,多个人工 智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收主操作端CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
可选的,电子设备可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储通信配置信息或通信描述符。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据通信方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以上任一实施例所述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上任一实施例所述方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM (SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
2、片接高效通信的接收方法及装置
在一个实施例中,请一并参阅图1,提供了一种通信系统。如图9所述的通信系统包括:接收装置2110,发送装置2120,计算装置2130,存储器2140,所述计算装置2130一端与接收装置2110相连,另一端与发送装置2120相连。具体地,所述接收装置2110、所述发送装置2120分别与所述存储器2140相连。
在其中一个实施例中,请一并参阅图1,提供了一种接收装置2110的内部结构图,所述装置位于芯片上,接收装置2110包括:接收端口电路2111、接收控制电路2112和配置信息解析电路2113。所述接收端口电路2111与所述配置信息解析电路2113相连,所述配置信息解析电路2113还与所述控制电路2112相连。在其中一个实施例中,所述配置信息解析电路2113用于对接收的通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符。
在其中一个实施例中,所述接收装置2110还包括状态描述符缓存电路2114,所述状态描述符缓存2114与所述接收控制电路2112连接;所述状态描述符缓存电路2114用于存储状态描述符,所述状态描述符用于标记接收过程的完成状态。
在其中一个实施例中,所述接收装置2110与存储器2140相连。具体地,所述存储器2140与所述接收端口电路2111相连,所述存储器2140用于存储所述接收端口电路2111接收的数据。
在其中一个实施例中,请一并参阅图10,提供了一种组合装置。所述组合装置包括多个神经网络处理芯片2200,且所述神经网络处理芯片2200之间依次相连。其中,神经网络处理芯片之间可以任意两个芯片之间都相连,还可以相邻的两个芯片之间相连。
在其中一个实施例中,每个所述神经网络处理芯片都与主操作端2150相连。在其中一个实施例中,每个神经网络处理芯片中包括如图9所示的通信系统2100,所述通信系统2100包括接收装置2110、发送装置2120、计算装置2130以及存储器2140。
在其中一个实施例中,提供了一种电子设备,所述电子设备包括神经网络处理芯片200。其中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
其中,上述任一实施例中的元件之间的连接关系,可以是电连接或无线连接。
上述接收装置、发送装置、计算装置以及存储器共同组成了通信系统,通过所述通信系统能够支持NPU芯片之间的数据传输。
在一个实施例中,请一并参阅图11,提供了一种数据接收方法,本申请提供的数据接收方法,可以应用于如图9、图9和图12所示的装置中,所述接收方法包括:
步骤S2601,获取通信数据和通信配置信息。其中,通信数据是指在通信过程中接收或 发送的数据,该数据可以是计算过程的输入数据或输出数据;还可以是由外部传输进芯片的原始数据。其中,通信配置信息是指在数据通信过程中,接收过程的过程描述信息或接受过程中的接收描述信息。在其中一个实施例中,所述通信配置信息包括但不限于:通信数据的源地址、通信数据在源地址中的偏移量,通信数据的目的地址、通信数据在目的地址中的偏移量以及通信数据的数据块大小。
步骤S2602,步骤S2602,对所述通信配置信息进行解析,得到通信描述符;其中所述通信描述符为描述发送方法所经过过程的信息。具体地,通信配置信息通过主操作端传入NPU芯片,不能直接被NPU芯片识别,需要经过解析操作,生成通信描述符。在其中一个实施例中所述通信配置信息至少有一条,对每条通信配置信息进行解析分别得到对应的通信描述符。可以理解地,在接收过程中通信描述符包括但不限于:通信数据的源地址、通信数据在源地址中的偏移量,通信数据的目的地址、通信数据在目的地址中的偏移量以及通信数据的数据块大小。
步骤S2603,根据所述通信描述符,接收所述通信数据。在其中一个实施例中,根据通信描述符,将所述通信数据存储至目标地址。
在一个实施例中,步骤S601还包括:
步骤S26011,获取传输数据包。具体地,所述传输数据包可以是数据压缩包。可选地,传输数据包可以来自其他NPU芯片的发送装置。
步骤S26012,根据所述传输数据包,得到通信数据和所述通信配置信息。在其中一个实施例中,获取传输数据包后,对所述传输数据包解压缩,得到传输数据。
在一个实施例中,所述接收方法还包括:
步骤S2604,根据所述通信描述符,得到接收模式符。可以理解地,所述通信描述符中还包括接收模式符。进一步地,通信配置信息通过解析得到的通信描述符中包括接收模式符。
步骤S2605,根据所述接收模式符,得到所述发送方法为普通发送模式还是硬件加速发送模式。其中,接收模式符是指能够使接收方法选择预定接收模式的标识符。例如,接收模式符为Type,当Type=0表示普通数据传输,当Type=1表示硬件加速描述符。
在其中一个实施例中,所述普通发送模式包括从主操作端获取控制指令,所述主操作端为芯片外部的控制装置。在另一个实施例中,所述硬件加速传输模式包括从计算装置中获取控制指令,所述计算装置为芯片内部的执行计算的装置。其中,所述发送控制指令是指,为实现发送方法在硬件上实施,而生成的对于硬件的控制指令。作为一种可选的实施方式,所述发送控制指令需要经过解析,得到对应于发送控制指令的二进制指令。
在一个实施例中,请一并参阅图5,所述发送方法还包括:
步骤S2606,根据通信描述符,当接收任务执行完成,生成对应的状态描述符。在其中一个实施例中,每一个通信描述符都对应一个接收任务,当对应的接收任务执行完毕,生成对应通信描述符的状态描述符。
步骤S2607,将所述状态描述符,存储至状态描述符队列。具体地,所述状态描述符队 列中包含多个状态描述符。在其中一个实施例中,所述多个状态描述符按照生成顺序依次存储。
步骤S2608,根据所述状态描述符队列,判断接收任务执行状态。具体地,一个接收任务可以对应多个通信描述符。可以理解地,一个通信描述符对应一个接收过程;当一个接收过程结束时,对应生成一个状态描述符。当一个接收任务对应的多个通信描述符对应的接收过程全部结束或部分结束后,生成状态描述符队列。具体地,当状态描述符队列的队列深度达到上限后,不必等待通信描述符对应的接收过程全部结束即可生成状态描述符队列。例如,一个接收任务A对应20条状态描述符,而状态描述符队列的队列深度为16,那么当状态描述符队列达到16后,虽然该接收任务A的全部描述符未全部执行完成,也可以生成状态描述符队列。具体地,状态描述符队列的深度是指状态描述符队列所能容纳的状态描述符的数量。
在另一个实施例中,当接收任务对应的任务描述符数量不足以达到状态描述符队列的队列深度时,则等待该接收任务对应的多个通信描述符对应的接收过程全部结束后,生成状态描述符队列。
在其中一个实施例中,步骤S2608根据所述状态描述符队列,判断所述接收方法执行状态包括:
步骤S26081,根据预设规则在所述状态描述符队列中选取所述状态描述符。具体地,预设规则是指在执行发送任务之前输入的对状态描述符队列进行读取的规则。
步骤S26082,根据所述状态描述符队列中所述状态描述符的数量,确定执行完毕的接收过程的数量。具体地,一个状态描述符代表一个接收过程执行完毕。在其中一个实施例中,执行完毕的接收过程的数量等于所述状态描述符的数量。
步骤S26083,当所述执行完毕的接收过程的数量达到阈值,判断所述接收任务结束。其中,所述阈值是指预设的接收过程数量。在其中一个实施例中,所述阈值为状态描述符队列中的状态描述符数量。在其中一个实施例中,按照生成状态描述符的顺序,对所述状态描述符队列进行读取。在另一个实施例中,按照预定的顺序,等待状态描述符队列完整后再读取状态描述符。
应该理解的是,虽然图11-13流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,请一并参阅图13,提供了一种数据接收装置,所述装置包括:
配置信息获取模块801,用于获取通信数据和通信配置信息;
描述符解析模块802,用于对所述通信配置信息进行解析,得到通信描述符;
数据接收模块803,用于根据所述通信描述符,接收所述通信数据。
关于数据接收装置的具体限定可以参见上文中对于数据接收方法的限定,在此不再赘述。上述数据接收装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,本申请还提供一种板卡,该板卡应用于数据通信方法中,该板卡可以包括:多个人工智能处理器,多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
参见图14所示,上述板卡除了包括上述多个人工智能处理器411(专用处理器41可以包括多个人工智能处理器411)和多通道内存42之外,还可以包含其它配套部件。该配套部件包括但不限于:内存控制器43、总线、接口44。专用处理器41通过接口44与外部设备之间进行指令传输以及数据传输。可选的,外部设备可以为主操作端(CPU)。
本实施例提供的板卡,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,本申请还提供一种主板,应用于神经网络数据处理方法中,如图15所示,该主板包括:主操作端和上述实施例提供的板卡。
本实施例提供的主板,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,提供一种电子设备,该电子设备应用于数据通信方法中,该电子设备包括如图15所示的主板。该主板包括CPU和板卡,板卡包括多个人工智能处理器,多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收主操作端CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
可选的,电子设备可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/ 或心电图仪。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图16所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储通信配置信息或通信描述符。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据通信方法。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以上任一实施例所述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上任一实施例所述方法的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的 过程、方法、物品或者设备中还存在另外的相同要素。
3、支持片间高效通信的方法及装置
在一个实施例中,请一并参阅图1,提供了一种通信装置。如图18所述的通信装置包括:接收装置3110,发送装置3120,任务处理装置3130,存储器3140,所述任务处理装置3130一端与接收装置3110相连,另一端与发送装置3120相连。具体地,所述接收装置3110、所述发送装置3120分别与所述存储器3140相连。
在其中一个实施例中,请一并参阅图17,提供了一种接收装置3110的内部结构图。接收装置3110包括:接收端口电路3111、接收控制电路3112和配置信息解析电路3113。所述接收端口电路3111与所述配置信息解析电路3113相连,所述配置信息解析电路3113还与所述控制电路3112相连。在其中一个实施例中,所述配置信息解析电路3113用于对接收的通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符。
在其中一个实施例中,请一并参阅图17,提供了一种接收装置3110的内部结构图,所述装置位于芯片上,接收装置3110包括:接收端口电路3111、接收控制电路3112和配置信息解析电路3113。所述接收端口电路3111与所述配置信息解析电路3113相连,所述配置信息解析电路3113还与所述控制电路3112相连。在其中一个实施例中,所述配置信息解析电路3113用于对接收的通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符。
在其中一个实施例中,所述接收装置3110还包括状态描述符缓存电路3114,所述状态描述符缓存3114与所述接收控制电路3112连接;所述状态描述符缓存电路3114用于存储状态描述符,所述状态描述符用于标记接收过程的完成状态。
在其中一个实施例中,所述接收装置3110与存储器3140相连。具体地,所述存储器3140与所述接收端口电路3111相连,所述存储器3140用于存储所述接收端口电路3111接收的数据。
在一个实施例中,请一并参阅图18,提供了发送装置3120的内部结构图。发送装置3120包括:发送配置电路3121,发送控制电路3123以及发送端口电路3122;所述发送控制电路3123分别与所述发送配置电路3121、所述发送端口电路相连。
在其中一个实施例中,发送配置电路3121包括配置信息获取电路31211和配置信息解析电路31212;所述配置信息获取电路31211分别与所述配置信息解析电路31212、所述发送控制电路3123相连。所述发送装置3120与存储器3140相连,其中,所述存储器3140分别与发送端口电路3122、发送配置电路3121相连,所述存储器3140用于存储待发送数据和配置信息。可选地,配置信息解析电路生成的通信描述符存储于描述符缓存中。该描述符缓存位于发送装置内部。在其中一个实施例中,所述待发送数据和所述通信描述符对应存储。
在其中一个实施例中,所述发送配置电路3121、所述发送控制电路3123分别与主操作端3150连接。具体地,发送配置电路从主操作端3150获取发送配置信息,发送控制电路3123从主操作端获取控制指令。
在一个实施例中,请一并参阅图19,提供了任务处理装置3130的内部示意图。所述任务处理装置3130位于芯片上,所述任务处理装置3130包括:结束信息分析电路132、任务处理电路3131和传送接口电路3133;所述结束信息分析电路3132与所述任务处理电路3131相连;所述任务处理电路3131还与所述传送接口电路3133相连;
所述结束信息分析电路3132用于判断任务处理完成状态,得到任务结束描述符;
所述传送接口电路3133用于获取通信数据;
所述任务处理电路3131用于根据所述通信数据执行处理,得到输出数据;
所述传送接口电路3133还用于获取通信配置信息根据所述通信配置信息将所述输出数据和所述任务结束描述符输出。
在其中一个实施例中,所述任务处理电路还包括:任务调度器31312、第一处理器31311、第二处理器31313以及运算控制电路31314;任务调度器31312连接在第一处理器31311和第二处理器31313之间;所述运算控制电路31314与所述任务调度器31312相连;
所述任务调度器31312用于将任务处理在所述第一处理器31311和所述第二处理器31313中进行调度执行;
所述第一处理器31311用于执行所述任务调度器31312分配的第一处理器任务;
所述第二处理器31313用于执行所述任务调度器31312分配的第二处理器任务;所述运算控制电路31314用于向所述任务调度器31312发送控制指令,以及用于生成传输配置信息。
在其中一个实施例中,所述任务调度器31312包括:
任务缓存装置313121,用于存储多个任务对应的基本任务信息和全部任务信息;
任务分派装置313122,所述任务分派装置与所述任务缓存装置连接,所述任务分派装置用于从所述任务缓存装置中获取一个以上的所述任务的基本任务信息,并分别根据各个所述任务的基本任务信息获得所述任务的任务注册请求;
状态监控装置313123,所述状态监控装置连接所述任务分派装置及所述第二处理器,所述状态监控装置用于根据接收到的各个所述任务的任务注册请求,为各个所述任务分配一个任务标识,并将各个所述任务的任务标识回传给所述任务分派装置;
其中,所述任务分派装置313122还用于在接收到所述任务的任务标识之后,获得所述任务的分解信息,并根据所述任务的分解信息及所述第二处理器的处理器状态信息确定目标作业,获得调度信息,并将所述调度信息发送至所述第二处理器。
任务缓存装置313121用于存储多个任务对应的基本任务信息和全部任务信息;其中,该任务的基本任务信息可以包括该任务的配置信息,如配置信息包括任务类别、任务的权重及任务的输入数据等等。其中,多个任务根据其功能的不同可以分为事件任务、通信任务及数据处理任务等,即该任务类别可以包括事件任务、通信任务及数据处理任务,进一步地,该数据处理任务的任务类别还可以包括block(阻塞任务)、cluster(聚类任务)和union(联合任务)。该任务的全部任务信息可以包括该任务的配置信息等基本任务信息,以及该任务对应的指令及数据等信息。可选地,该多个任务以任务队列的形式存储于任务缓存装置313121中, 多个任务可以形成多个任务队列,如多个任务按照其任务类别形成多个任务队列。每个任务队列中队列头指针指向的任务的基本任务信息可以传送至任务分派装置313122中。
任务分派装置313122用于从任务缓存装置313121中获取任务的基本任务信息,并根据任务的基本任务信息获得任务的任务注册请求;状态监控装置313123用于根据接收到的任务注册请求,为任务分配一个任务标识,并将任务的任务标识回传给任务分派装置313122,以完成任务的注册过程。本申请实施例中,注册完成的任务(即获得任务标识的任务)能够被任务分派装置313122进行分解及调度,并进一步发送至第二处理器31313进行处理。
任务分派装置313122还用于在接收到任务的任务标识之后,根据该任务的基本任务信息对该任务进行预拆分,将该任务分为多个作业,获得任务的分解信息。进一步地,任务分派装置313122还用于根据任务的分解信息及第二处理器31313的处理器状态信息确定目标作业,获得调度信息,并将调度信息发送至第二处理器31313。可选地,任务分派装置313122可以在确定目标作业之后,即将调度信息发送至第二处理器31313。第二处理器31313能够获取该调度信息执行该目标作业,以完成该目标作业的处理。当完成该目标作业所属的任务中所有作业的调度之后,任务调度器完成一次调度,进入下一次调度。本申请实施例中,通过上述的任务调度器,能够实现神经网络等数据量较大数据的调度及处理,减少第一处理器31311的运算量,提高任务的调度及处理效率,进而提升计算机系统的处理效率。
在其他实施例中,任务分派装置313122也可以将该目标作业所属的任务全部完成调度之后,即获得该目标作业所属的任务中所有作业的调度信息之后,再将该调度信息发送至第二处理器31313。第二处理器31313可以根据该任务的所有作业形成的调度信息,同时对多个作业进行处理。
在其中一个实施例中,所述任务处理装置3130与存储器3140相连,其中,所述存储器3140与所述传送接口电路3133相连,所述存储器3140用于存储所述输出数据。在其中一个实施例中,所述通信配置信息存储于任务处理装置内部的配置信息缓存中。
在其中一个实施例中,请一并参阅图20,提供了一种组合装置。所述组合装置包括多个神经网络处理芯片3200,且所述神经网络处理芯片3200之间依次相连。其中,神经网络处理芯片之间可以任意两个芯片之间都相连,还可以相邻的两个芯片之间相连。
在其中一个实施例中,每个所述神经网络处理芯片都与主操作端3150相连。在其中一个实施例中,每个神经网络处理芯片中包括如图18所示的通信装置3100,所述通信装置3100包括接收装置3110、发送装置3120、任务处理装置3130以及存储器3140。
在其中一个实施例中,提供了一种电子设备,所述电子设备包括神经网络处理芯片3200。其中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
其中,上述任一实施例中的元件之间的连接关系,可以是电连接或无线连接。
上述接收装置、发送装置、任务处理装置以及存储器共同组成了通信装置,通过所述通 信装置能够支持NPU芯片之间的数据传输。
在一个实施例中,请一并参阅图21,提供了一种数据接收方法,本申请提供的数据接收方法,可以应用于如图18、图17和图20所示的装置中,所述接收方法包括:
步骤S3601,获取通信数据和通信配置信息。其中,通信数据是指在通信过程中接收或发送的数据,该数据可以是计算过程的输入数据或输出数据;还可以是由外部传输进芯片的原始数据。其中,通信配置信息是指在数据通信过程中,接收过程的过程描述信息或接受过程中的接收描述信息。在其中一个实施例中,所述通信配置信息包括但不限于:通信数据的源地址、通信数据在源地址中的偏移量,通信数据的目的地址、通信数据在目的地址中的偏移量以及通信数据的数据块大小。
步骤S3602,对所述通信配置信息进行解析,得到通信描述符;其中所述通信描述符为描述发送方法所经过过程的信息。具体地,通信配置信息通过主操作端传入NPU芯片,不能直接被NPU芯片识别,需要经过解析操作,生成通信描述符。在其中一个实施例中所述通信配置信息至少有一条,对每条通信配置信息进行解析分别得到对应的通信描述符。可以理解地,在接收过程中通信描述符包括但不限于:通信数据的源地址、通信数据在源地址中的偏移量,通信数据的目的地址、通信数据在目的地址中的偏移量以及通信数据的数据块大小。
步骤S3603,根据所述通信描述符,接收所述通信数据。在其中一个实施例中,根据通信描述符,将所述通信数据存储至目标地址。
在一个实施例中,步骤S3601还包括:
步骤S36011,获取传输数据包。具体地,所述传输数据包可以是数据压缩包。可选地,传输数据包可以来自其他NPU芯片的发送装置。
步骤S36012,根据所述传输数据包,得到通信数据和所述通信配置信息。在其中一个实施例中,获取传输数据包后,对所述传输数据包解压缩,得到传输数据。
在一个实施例中,所述接收方法还包括:
步骤S3604,根据所述通信描述符,得到接收模式符。可以理解地,所述通信描述符中还包括接收模式符。进一步地,通信配置信息通过解析得到的通信描述符中包括接收模式符。
步骤S3605,根据所述接收模式符,得到所述发送方法为普通发送模式还是硬件加速发送模式。其中,接收模式符是指能够使接收方法选择预定接收模式的标识符。例如,接收模式符为Type,当Type=0表示普通数据传输,当Type=1表示硬件加速描述符。
在其中一个实施例中,所述普通发送模式包括从主操作端获取控制指令,所述主操作端为芯片外部的控制装置。在另一个实施例中,所述硬件加速传输模式包括从计算装置中获取控制指令,所述计算装置为芯片内部的执行计算的装置。其中,所述发送控制指令是指,为实现发送方法在硬件上实施,而生成的对于硬件的控制指令。作为一种可选的实施方式,所述发送控制指令需要经过解析,得到对应于发送控制指令的二进制指令。
在一个实施例中,请一并参阅图7,所述发送方法还包括:
步骤S3606,根据通信描述符,当接收任务执行完成,生成对应的状态描述符。在其中 一个实施例中,每一个通信描述符都对应一个接收任务,当对应的接收任务执行完毕,生成对应通信描述符的状态描述符。
步骤S3607,将所述状态描述符,存储至状态描述符队列。具体地,所述状态描述符队列中包含多个状态描述符。在其中一个实施例中,所述多个状态描述符按照生成顺序依次存储。
步骤S3608,根据所述状态描述符队列,判断接收任务执行状态。具体地,一个接收任务可以对应多个通信描述符。可以理解地,一个通信描述符对应一个接收过程;当一个接收过程结束时,对应生成一个状态描述符。当一个接收任务对应的多个通信描述符对应的接收过程全部结束或部分结束后,生成状态描述符队列。具体地,当状态描述符队列的队列深度达到上限后,不必等待通信描述符对应的接收过程全部结束即可生成状态描述符队列。例如,一个接收任务A对应20条状态描述符,而状态描述符队列的队列深度为16,那么当状态描述符队列达到16后,虽然该接收任务A的全部描述符未全部执行完成,也可以生成状态描述符队列。具体地,状态描述符队列的深度是指状态描述符队列所能容纳的状态描述符的数量。
在另一个实施例中,当接收任务对应的任务描述符数量不足以达到状态描述符队列的队列深度时,则等待该接收任务对应的多个通信描述符对应的接收过程全部结束后,生成状态描述符队列。
在其中一个实施例中,步骤S3608根据所述状态描述符队列,判断所述接收方法执行状态包括:
步骤S36081,根据预设规则在所述状态描述符队列中选取所述状态描述符。具体地,预设规则是指在执行发送任务之前输入的对状态描述符队列进行读取的规则。
步骤S36082,根据所述状态描述符队列中所述状态描述符的数量,确定执行完毕的接收过程的数量。具体地,一个状态描述符代表一个接收过程执行完毕。在其中一个实施例中,执行完毕的接收过程的数量等于所述状态描述符的数量。
步骤S36083,当所述执行完毕的接收过程的数量达到阈值,判断所述接收任务结束。其中,所述阈值是指预设的接收过程数量。在其中一个实施例中,所述阈值为状态描述符队列中的状态描述符数量。在其中一个实施例中,按照生成状态描述符的顺序,对所述状态描述符队列进行读取。在另一个实施例中,按照预定的顺序,等待状态描述符队列完整后再读取状态描述符。
应该理解的是,虽然图21-24流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图6-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,请一并参阅图23,提供了一种数据接收装置,所述装置包括:
配置信息获取模块3801,用于获取通信数据和通信配置信息;
描述符解析模块3802,用于对所述通信配置信息进行解析,得到通信描述符;
数据接收模块3803,用于根据所述通信描述符,接收所述通信数据。
关于数据接收装置的具体限定可以参见上文中对于数据接收方法的限定,在此不再赘述。上述数据接收装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,请一并参阅图24,提供了一种任务处理方法,本申请提供的任务处理方法,可以应用于如图18、图19和图20所示的装置中。所述任务处理方法包括:
步骤S3901,获取运算控制信息和任务调度信息;
具体地,所述运算控制信息包括通信控制指令和运算控制指令。可选地,获取运算控制信息包括从主操作端获取运算控制信息,所述主操作端为芯片外部的控制装置。可选地,所述获取运算控制信息包括从任务处理装置中生成运算控制信息,所述任务处理装置为芯片内部的执行处理任务的装置。
具体地,计算任务包含计算过程和通信过程。其中,所述通信控制指令是指,为了使得通信过程在硬件上执行,而生成的对于硬件的控制指令。其中,所述计算控制指令是指,为了使得计算过程在硬件上执行,而生成的对于硬件的控制指令。其中,通信数据是指在通信过程中接收或发送的数据,该数据可以是计算过程的输入数据或输出数据;还可以是由外部传输进芯片的原始数据。其中,任务调度信息是指在执行处理过程时进行如何进行调度执行的指令信息。
步骤S3902,根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果。在其中一个实施例中,任务调度器31312在获得调度信息之后,可以将其获得的调度信息传送至第二处理器31313,第二处理器31313可以根据其接收到的调度信息,从任务缓存装置313121中获取目标作业所属的任务的全部任务信息,从任务分派装置313122中获取计算过程所属的任务的分解信息,并根据其接收到计算过程所属的任务的分解信息及全部任务信息将该计算过程所属的任务拆分为多个作业,拆分获得各个作业均包含权重及数据等信息。进一步地,第二处理器31313可以对拆分根据任务调度信息对通信数据进行处理,得到处理结果。
步骤S3903,根据所述运算控制信息,生成任务结束描述符。当一个计算任务执行完成,根据运算控制信息对于该任务的描述,生成对应该任务的任务结束描述符。可以理解地,通过读取任务结束描述符,能够判断各个计算任务的执行进度
步骤S3904,根据所述任务结束描述符,将所述处理结果输出。具体地,根据所述任务结束描述符判断计算任务是否执行完成,若执行完成,则将处理结果输出。
在一个实施例中,步骤S3901所述获取运算控制信息和任务调度信息包括:
步骤S39011,获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求。其中,该任务的基本任务信息可以包括该任务的配置信息,如配置信息包括任务类别、任务的权重及任务的输入数据等等。其中,多个任务根据其功能的不同可以分为事件任务、通信任务及数据处理任务等,即该任务类别可以包括事件任务、通信任务及数据处理任务,进一步地,该数据处理任务的任务类别还可以包括block(阻塞任务)、cluster(聚类任务)和union(联合任务)。该任务的全部任务信息可以包括该任务的配置信息等基本任务信息,以及该任务对应的指令及数据等信息。可选地,该多个任务以任务队列的形式存储于任务缓存装置313121中,多个任务可以形成多个任务队列,如多个任务按照其任务类别形成多个任务队列。每个任务队列中队列头指针指向的任务的基本任务信息可以传送至任务分派装置313122中。
步骤S39012,根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识。具体地,任务分派装置313122用于从任务缓存装置313121中获取任务的基本任务信息,并根据任务的基本任务信息获得任务的任务注册请求;状态监控装置313123用于根据接收到的任务注册请求,为任务分配一个任务标识,并将任务的任务标识回传给任务分派装置313122,以完成任务的注册过程。本申请实施例中,注册完成的任务(即获得任务标识的任务)能够被任务分派装置313122进行分解及调度,并进一步发送至第二处理器31313进行处理。
步骤S39013,获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标任务,获得任务调度信息。具体地,任务分派装置313122还用于根据任务的分解信息及第二处理器31313的处理器状态信息确定目标作业,获得调度信息,并将调度信息发送至第二处理器31313。
在一个实施例中,步骤S3902,所述根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果包括:根据所述任务调度信息获取所述任务调度信息、所述目标任务所属的任务的分解信息及全部任务信息,将所述目标任务所属的任务拆分为多个子任务,并根据所述任务调度信息执行对所述通信数据所述目标任务,得到处理结果。
本申请实施例中,通过上述的任务调度器,能够实现神经网络等数据量较大数据的调度及处理,减少第一处理器的运算量,提高任务的调度及处理效率,进而提升计算机系统的处理效率。
在一个实施例中,请一并参阅图20,所述任务处理方法还包括:
步骤S3905根据所述运算控制信息,生成计算控制指令以及通信控制指令。具体地,运算控制信息包含计算控制指令和通信控制指令。通信控制指令用于控制任务处理装置3130本身进行通信。在另一个实施例中,通信控制指令还生成接收装置3110的接收控制指令以及发送装置3120的发送控制指令。
步骤S3906根据所述计算控制指令及任务调度信息对所述通信数据执行调度处理,得到处理结果。具体地,任务调度器中的计算任务执行过程可以将通信数据作为各计算任务的输 入数据,还可以将上一任务的输出数据作为下一任务的输入数据。
步骤S3907,根据所述计算控制指令,生成任务结束描述符。在其中一个实施例中,步骤S31030根据所述计算控制指令,生成任务结束描述符包括:步骤S31031,判断所述计算控制指令是否执行完成;步骤S31032,若所述计算控制指令执行完成,则生成任务结束描述符。
步骤S3908,根据所述通信控制指令,将所述处理结果输出。具体地,通信控制指令控制将所述处理结果根据通信配置信息输出。可选地,通信配置信息可以来自任务处理装置3130生成的通信控制指令,还可以来自主操作端。
具体地,计算控制指令可以分解为多个子任务执行,当每个子任务执行完成,生成对应的任务结束描述符。在另一个实施例中,计算控制指令对应的任务,在任务处理装置中不经过分解直接执行,生成对应所述计算控制指令的任务结束描述符。可以理解地,通过任务结束描述符,判断计算任务的执行进程。当所述计算控制指令被执行完成,则通过读取对应的任务结束描述符,判断计算任务执行完成。
在一个实施例中,所述任务处理方法还包括:
步骤S3909,根据多个所述任务结束描述符,生成任务结束描述符队列,。在其中一个实施例中,多个任务依次按照生成顺序执行,进一步多个任务结束描述符按照生成顺序排列在任务结束描述符队列中。在另一个实施例中,多个任务乱序进行执行,进一步多个任务结束描述符按照执行完成时间排列在任务结束描述符队列中。
步骤S3910,根据预设规则在所述任务结束描述符队列中选择对应的所述任务结束描述符。具体地,预设规则是指在执行处理处理任务之前预先设定的在任务结束描述符队列中选择的规则。在其中一个实施例中,根据任务结束描述符的生成顺序依次在任务结束描述符队列中选取任务结束描述符。可以理解地,在本实施例中,选择任务结束描述符不一定等待任务结束描述符队列完整。
在另一个实施例中,根据预定输出顺序,从任务结束描述符队列中选取任务结束描述符。可以理解地,在本实施例中,需要等待任务结束描述符队列完整,再从任务结束描述符中按照预定输出顺序进行选择。具体地,先开始执行的任务生成任务结束描述符的时刻可能会晚于后开始执行的任务生成任务结束描述符的时刻。
步骤S3911,根据所述任务结束描述符,将所述处理结果输出。当所述任务结束描述符被全部读取,则判断计算处理任务执行结束,进一步,将所述处理结果输出。在其中一个实施例中,步骤S3911包括:步骤S39111,读取所述任务结束描述符,得到后处理任务指令。其中,后处理任务指令,是指当得到处理结果后,是否对处理结果进行下一步操作,下一步操作可以是发送至指定的端口,还可以是执行新的操作。
步骤S39112将所述处理结果,发送至所述后处理任务执行端。其中后处理任务执行端可以是执行后处理指令的硬件装置还可以是执行后处理操作的软件模块。
作为一种可选的实施方式,若所述后处理任务的执行端在下一芯片中,则获取下一芯片 的通信配置信息队列;将所述下一芯片的通信配置信息队列和所述处理结果输出至当前芯片的发送装置。其中,下一芯片的通信信息配置队列可以来自于任务处理装置130,还可以来自主操作端。下一芯片的通信配置队列中包括多个下一芯片的通信配置信息,所述通信配置信息包含处理结果的源地址、处理结果在源地址中的偏移量,处理结果的目的地址、处理结果在目的地址中的偏移量以及处理结果的数据块大小。
作为一种可选的实施方式,由当前芯片的发送装置将所述处理结果和通信配置信息队列中的各通信配置信息发送至下一芯片。
在一个实施例中,步骤S39112,所述将所述处理结果,发送至所述后处理任务执行端包括:若所述后处理任务的执行端在主操作端;则将所述处理结果和所述任务结束描述符发送至主操作端。
应该理解的是,虽然图23-27流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图23-27中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,请一并参阅图26,提供了一种任务处理软装置,所述装置包括:
信息获取模块3901,用于获取运算控制信息和任务调度信息;
处理结果生成模块3902,用于根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果;
任务描述符生成模块3903,用于根据所述运算控制信息,生成任务结束描述符;
处理结果输出模块3904,用于根据所述任务结束描述符,将所述处理结果输出。
关于任务处理软装置的具体限定可以参见上文中对于任务处理方法的限定,在此不再赘述。上述任务处理软装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,请一并参阅图27,提供了一种数据发送方法,本申请提供的数据发送方法,可以应用于如图18、图18和图20所示的装置中,所述接收方法包括:
步骤S3710,获取通信配置信息队列和待发送数据。其中待发送数据可以是上述实施例中的通信数据、处理结果还可以是其他需要进行发送的数据。
步骤S3720,对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符。其中,通信配置信息队列包含至少一条通信配置信息。具体地,当通信配置队列中存在多个通信配置信息时,分别对通信配置信息进行解析,得到对应于通信配置信息的通信描述符。
步骤S3730,根据所述通信描述符,发送所述待发送数据。
在一个实施例中,步骤S3710,所述获取通信配置信息队列和待发送数据包括:
步骤S3711,检测存储空间中所述待发送数据是否完整。具体地,待发送数据是否完整是指待发送数据在数据量,数据大小是否与预设描述相符。
在其中一个实施例中,步骤S3711,所述检测存储空间中的通信配置信息和所述待发送数据是否完整包括:
步骤S37111,获取地址选择信号。具体的,地址选择信号是指能够反映待发送数据是否完整和准确的信号。
步骤S37112,判断所述地址选择信号是否有效。步骤S37113,若所述地址选择信号有效,则确定所述存储空间中的所述通信配置信息和所述待发送数据完整。在其中一个实施例中,若地址选择信号无效,则确定待发送数据不完整。
步骤S3712,若所述存储空间中的所述待发送数据完整,则获取所述通信配置信息队列和所述待发送数据。通过本实施中的方法,能够保证待传输数据的准确性。
在一个实施例中,步骤S3720,所述对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符包括:
步骤S3721,获取发送控制指令。具体地,当发送模式为普通发送模式时,从主操作端获取发送控制指令;当发送模式为硬件加速模式时,从任务处理装置获取发送控制指令。可以理解地,主操作端在芯片内部,任务处理装置在芯片内部。当从任务处理装置中获取发送指令时,进行的是芯片内部传输提高了传输速度。
步骤S3722,根据所述发送控制指令,按预设规则在所述配置信息队列中读取至少一条所述通信配置信息。具体地,预设规则是预先设置好的读取规则,可以是按照配置信息在配置信息队列中的存放顺序进行读取,也可以按照其他预定规则进行读取。
步骤S3723,对至少一条所述通信配置信息进行解析,分别得到对应的所述通信描述符。在其中一个实施例中,给每条通信描述符分配通信描述符标识;
根据所述通信描述符标识,读取对应的通信描述符。具体地,不同的通信描述符通过各自的通信描述符区分。在其中一个实施例中,多个通信描述符中的最后一个被读取的通信描述符有通信描述符标识E。当读取到该通信描述符标识E时,表示该多个通信描述符已全部读取完成。
在一个实施例中,所述发送方法还包括:根据所述通信描述符,得到发送模式符;根据所述发送模式符,得到所述发送方法为普通发送模式还是硬件加速发送模式。例如,根据通信描述符,生成发送模式符Type1,当Type1=0表示普通数据传输,当Type1=2表示硬件加速传输。在另一个实施例中,当Type1=1时,表示芯片与主操作端的通信。其中,普通数据传输是指芯片与芯片之间的数据传输,且发送控制指令来自于主操作端。其中,硬件加速传输是指芯片与芯片之间的数据传输,且发送控制指令来自芯片内部的任务处理装置。
在一个实施例中,所述方法还包括:
步骤S3740,对每条所述通信描述符和每条所述通信描述符对应的所述待发送数据进行 打包,得到传输数据包。具体地,传输数据包包括将每条通信描述符和每条通信描述符对应的待发送数据进行压缩,得到的压缩包。
步骤S3750,获取待发送数据的目标发送芯片的标识信息。具体地,在开始传输任务时,分别为每个芯片分配各自的标识信息。根据目标发送芯片的标识信息,能够准确定位目标发送芯片。
步骤S3760,根据所述标识信息,发送所述传输数据包。
应该理解的是,虽然图24-27流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图24-27中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,请一并参阅图28,提供了一种数据发送装置,所述装置包括:
获取模块3701,用于获取通信配置信息队列和待发送数据;
解析模块3702,用于对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符;
数据发送模块3703,用于根据所述通信描述符,发送所述待发送数据。
关于数据发送装置的具体限定可以参见上文中对于数据发送方法的限定,在此不再赘述。上述数据接收装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,请一并参阅图29,提供了一种数据通信方法,所述数据通信方法包括:
步骤S3810,当前芯片获取通信数据和通信配置信息;
步骤S3820,当前芯片对所述通信配置信息进行解析,得到通信描述符;
步骤S3830,当前芯片根据所述通信描述符,将所述通信数据发送至目标地址空间;
步骤S3840,当前芯片获取目标芯片的通信配置信息队列;
步骤S3850,当前芯片对所述目标芯片的通信配置信息队列中的至少一条通信配置信息进行解析,得到目标芯片的通信描述符;
步骤S3860,当前芯片根据所述目标芯片的通信描述符读取所述目标地址空间的待发送数据;
步骤S3870,当前芯片的发送装置将所述待发送数据、所述下一芯片的通信配置信息队列发送至下一芯片的接收装置。
应该理解的是,虽然图29流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图29中的至少一部分步骤可 以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,步骤S3810,所述当前芯片获取通信数据和通信配置信息包括:步骤S3811,当前芯片的接收装置获取传输数据包;步骤S3811,当前芯片的接收装置根据所述传输数据包,得到通信数据和所述通信配置信息。
在一个实施例中,步骤S3820,所述当前芯片对所述通信配置信息进行解析,得到通信描述符包括:步骤S3821,当前芯片的接收装置获取解析控制指令;步骤S3822,当前芯片的接收装置根据所述控制指令,对所述通信配置信息进行解析,得到通信描述符。
在一个实施例中,所述数据通信方法还包括:
步骤S3880,当前芯片的接收装置根据通信描述符,当所述当前芯片的接收装置接收任务执行完成,生成对应的状态描述符;步骤S3890,当前芯片的接收装置将所述状态描述符,存储至状态描述符队列;步骤S38010当前芯片的接收装置根据所述状态描述符队列,判断所述接收过程执行状态。
在一个实施例中,步骤S38010,所述当前芯片的接收装置根据所述状态描述符队列,判断所述接收方法执行状态包括:步骤S38011,当前芯片的接收装置将所述状态描述符队列发送至主操作端;步骤S38012,主操作端根据预设规则在所述状态描述符中选取所述状态描述符;步骤S38013,主操作端根据所述状态描述符,确定执行完毕的接收任务的数量;步骤S38014,主操作端当所述执行完毕的接收任务的数量达到阈值,判断所述接收过程结束。
在一个实施例中,所述数据通信方法还包括:
步骤S38020,当前芯片的接收装置根据所述通信描述符,得到接收模式符;
步骤S38030,当前芯片的接收装置根据所述接收模式符,判断所述通信过程是否是硬件加速模式还是普通传输模式。
在一个实施例中,所述普通发送模式包括从主操作端获取控制指令,所述主操作端为芯片外部的控制装置。在另一个实施例中,所述硬件加速传输模式包括从任务处理装置中获取控制指令,所述任务处理装置为芯片内部的进行处理的装置。
在一个实施例中,若确定所述通信过程为普通传输模式,则将所述通信数据发送至存储器。在其中一个实施例中,所述当前芯片根据所述目标芯片的通信描述符读取所述目标地址空间的待发送数据包括:
当前芯片的发送装置根据所述下一芯片的通信配置信息读取所述存储器中的待发送数据。
在一个实施例中,所述方法还包括:若确定所述通信过程为硬件加速模式,则将所述通信数据发送至任务处理装置;当前芯片的任务处理装置获取运算控制信息、通信数据和任务调度信息;当前芯片的任务处理装置,根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果;当前芯片的任务处理装置,根据所述运算控制信息,生 成任务结束描述符;当前芯片的任务处理装置,根据所述任务结束描述符,将所述处理结果输出至所述当前芯片的接收装置。
在一个实施例中,当前芯片的任务处理装置获取运算控制信息、通信数据和任务调度信息包括:当前芯片的任务处理装置获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求;当前芯片的任务处理装置根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识;当前芯片的任务处理装置获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得任务调度信息。
在一个实施例中,所述当前芯片的任务处理装置根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果包括:当前芯片的任务处理装置根据所述任务调度信息获取所述任务调度信息、所述目标作业所属的任务的分解信息及全部任务信息;当前芯片的任务处理装置将所述目标作业所属的任务拆分为多个作业,并根据所述任务调度信息执行对所述通信数据所述目标作业,得到处理结果。
在一个实施例中,所述方法还包括:当前芯片的任务处理装置根据所述运算控制信息,生成任务控制指令以及通信控制指令;当前芯片的任务处理装置根据所述任务控制指令及任务调度信息对所述通信数据执行调度处理,得到处理结果;当前芯片的任务处理装置根据所述任务控制指令,生成任务结束描述符;当前芯片的任务处理装置根据所述通信控制指令,将所述处理结果输出。
在一个实施例中,所述根据当前芯片的任务处理装置所述任务控制指令,生成任务结束描述符包括:当前芯片的任务处理装置判断所述任务控制指令是否执行完成;当前芯片的任务处理装置若所述任务控制指令执行完成,则生成任务结束描述符。
在一个实施例中,所述方法还包括:当前芯片的任务处理装置根据多个所述任务结束描述符,生成任务结束描述符队列;当前芯片的任务处理装置根据预设规则在所述任务结束描述符队列中选择对应的所述任务结束描述符;当前芯片的任务处理装置根据所述任务结束描述符,将所述处理结果输出。
在一个实施例中,所述当前芯片的任务处理装置根据所述任务结束描述符,将所述处理结果输出包括:当前芯片的任务处理装置读取所述任务结束描述符,得到后处理任务;当前芯片的任务处理装置将所述处理结果,发送至所述后处理任务执行端。
在一个实施例中,所述当前芯片的任务处理装置将所述处理结果,发送至所述后处理任务执行端包括:若所述后处理任务在下一芯片中,则获取下一芯片的通信配置信息队列;将所述下一芯片的通信配置信息队列和所述处理结果输出至当前芯片的发送部件。
在一个实施例中,所述当前芯片的任务处理装置将所述处理结果,发送至所述后处理任务执行端包括:若所述后处理芯片在主操作端;则当前芯片的任务处理装置将所述处理结果和所述任务结束描述符发送至主操作端。
在一个实施例中,所述当前芯片获取目标芯片的通信配置信息队列和待发送数据包括: 当前芯片的发送装置检测存储空间中所述待发送数据是否完整;若所述存储空间中的所述待发送数据完整,则当前芯片的发送装置获取所述通信配置信息队列和所述待发送数据。
在一个实施例中,所述当前芯片的发送装置检测存储空间中所述待发送数据是否完整包括:当前芯片的发送装置获取地址选择信号;当前芯片的发送装置判断所述地址选择信号是否有效;若所述地址选择信号有效,则当前芯片的发送装置确定所述存储空间中的所述通信配置信息和所述待发送数据完整。
在一个实施例中,所述当前芯片对所述目标芯片的通信配置信息队列中的至少一条通信配置信息进行解析,得到目标芯片的通信描述符包括:当前芯片的发送装置给每条通信描述符分配通信描述符标识;当前芯片的发送装置根据所述通信描述符标识,读取对应的通信描述符。
在一个实施例中,所述方法还包括:当前芯片的发送装置对每条所述通信描述符和每条所述通信描述符对应的所述待发送数据进行打包,得到传输数据包;当前芯片的发送装置获取待发送数据的目标发送芯片的标识信息;当前芯片的发送装置根据所述标识信息,发送所述传输数据包。
关于本申请实施例中数据通信方法参照上述数据接收方法、数据发送方法以及计算任务处理的解释,在此不再赘述。
在一个实施例中,提供了一种通信系统,所述系统包括:
接收装置、任务处理装置、发送装置以及存储器;所述任务处理装置一端连接接收装置,另一端连接发射装置;所述接收装置、所述发送装置分别与所述存储器相连;所述接收装置用于接收通信配置信息和通信数据;所述任务处理装置用于在硬件加速模式下对所述输入数据进行处理;所述存储器用于存储所述通信配置信息;所述发送装置用于将所述待发送数据输出。
在一个实施例中,提供了一种数据通信装置,请一并参阅图30。所述数据通信装置包括:
数据获取模块3510,用于当前芯片获取通信数据和通信配置信息;
配置信息解析模块3520,用于当前芯片对所述通信配置信息进行解析,得到通信描述符;
目标地址空间填充模块3530,用于当前芯片根据所述通信描述符,将所述通信数据发送至目标地址空间;
通信配置信息队列获取模块3540,用于当前芯片获取目标芯片的通信配置信息队列;
通信配置信息队列解析模块3550,用于当前芯片对所述目标芯片的通信配置信息队列中的至少一条通信配置信息进行解析,得到目标芯片的通信描述符;
待发送数据读取模块3560,用于当前芯片根据所述目标芯片的通信描述符读取所述目标地址空间的待发送数据;
发送模块3570,用于当前芯片的发送装置将所述待发送数据、所述下一芯片的通信配置信息队列发送至下一芯片的接收装置。
关于本申请实施例中数据通信装置的解释说明参照上述数据通信方法、数据发送方法以 及计算任务处理的解释,在此不再赘述。
上述数据通信数据装置以及上述实施例中的通信装置支持了数据通信方法的实施,上述实施例中的数据通信方法实现了芯片间的数据传输。
在一个实施例中,本申请还提供一种板卡,该板卡应用于数据通信方法中,该板卡可以包括:多个人工智能处理器,多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
参见图31所示,上述板卡除了包括上述多个人工智能处理器3411(专用处理器341可以包括多个人工智能处理器3411)和多通道内存342之外,还可以包含其它配套部件。该配套部件包括但不限于:内存控制器343、总线、接口344。专用处理器341通过接口344与外部设备之间进行指令传输以及数据传输。可选的,外部设备可以为主操作端(CPU)。
本实施例提供的板卡,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,本申请还提供一种主板,应用于神经网络数据处理方法中,如图32所示,该主板包括:主操作端和上述实施例提供的板卡。
本实施例提供的主板,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,提供一种电子设备,该电子设备应用于数据通信方法中,该电子设备包括如图32所示的主板。该主板包括CPU和板卡,板卡包括多个人工智能处理器,多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收主操作端CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
可选的,电子设备可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图 可以如图33所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储通信配置信息或通信描述符。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据通信方法。
本领域技术人员可以理解,图33中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以上任一实施例所述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上任一实施例所述方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
4、支持片间高效通信的计算方法及装置
在一个实施例中,请一并参阅图1,提供了一种通信装置。如图1所述的通信装置包括:接收装置4110,发送装置4120,任务处理装置4130,存储器4140,所述任务处理装置4130一端与接收装置4110相连,另一端与发送装置4120相连。具体地,所述接收装置4110、所述发送装置4120分别与所述存储器140相连。
在一个实施例中,请一并参阅图34,提供了任务处理装置44130的内部示意图。所述任务处理装置4130位于芯片上,所述任务处理装置4130包括:结束信息分析电路4132、任务处理电路4131和传送接口电路4133;所述结束信息分析电路4132与所述任务处理电路4131相连;所述任务处理电路4131还与所述传送接口电路4133相连;
所述结束信息分析电路4132用于判断计算任务完成状态,得到任务结束描述符;
所述传送接口电路4133用于获取通信数据;
所述任务处理电路4131用于根据所述通信数据执行处理,得到输出数据;
所述传送接口电路4133还用于获取通信配置信息根据所述通信配置信息将所述输出数据和所述任务结束描述符输出。
在其中一个实施例中,所述任务处理电路还包括:任务调度器41312、第一处理器41311、第二处理器41313以及运算控制电路41314;任务调度器41312连接在第一处理器41311和第二处理器41313之间;所述运算控制电路41314与所述任务调度器41312相连;
所述任务调度器41312用于将计算任务在所述第一处理器41311和所述第二处理器41313中进行调度执行;
所述第一处理器41311用于执行所述任务调度器41312分配的第一处理器任务;
所述第二处理器41313用于执行所述任务调度器41312分配的第二处理器任务;所述运算控制电路41314用于向所述任务调度器41312发送控制指令,以及用于生成传输配置信息。
在其中一个实施例中,所述任务调度器41312包括:
任务缓存装置413121,用于存储多个任务对应的基本任务信息和全部任务信息;
任务分派装置413122,所述任务分派装置与所述任务缓存装置连接,所述任务分派装置用于从所述任务缓存装置中获取一个以上的所述任务的基本任务信息,并分别根据各个所述任务的基本任务信息获得所述任务的任务注册请求;
状态监控装置413123,所述状态监控装置连接所述任务分派装置及所述第二处理器,所述状态监控装置用于根据接收到的各个所述任务的任务注册请求,为各个所述任务分配一个任务标识,并将各个所述任务的任务标识回传给所述任务分派装置;
其中,所述任务分派装置413122还用于在接收到所述任务的任务标识之后,获得所述任务的分解信息,并根据所述任务的分解信息及所述第二处理器的处理器状态信息确定目标作业,获得调度信息,并将所述调度信息发送至所述第二处理器。
任务缓存装置413121用于存储多个任务对应的基本任务信息和全部任务信息;其中,该任务的基本任务信息可以包括该任务的配置信息,如配置信息包括任务类别、任务的权重及任务的输入数据等等。其中,多个任务根据其功能的不同可以分为事件任务、通信任务及数据处理任务等,即该任务类别可以包括事件任务、通信任务及数据处理任务,进一步地,该数据处理任务的任务类别还可以包括block(阻塞任务)、cluster(聚类任务)和union(联合任务)。该任务的全部任务信息可以包括该任务的配置信息等基本任务信息,以及该任务对应的指令及数据等信息。可选地,该多个任务以任务队列的形式存储于任务缓存装置413121中,多个任务可以形成多个任务队列,如多个任务按照其任务类别形成多个任务队列。每个任务队列中队列头指针指向的任务的基本任务信息可以传送至任务分派装置413122中。
任务分派装置413122用于从任务缓存装置413121中获取任务的基本任务信息,并根据任务的基本任务信息获得任务的任务注册请求;状态监控装置413123用于根据接收到的任务注册请求,为任务分配一个任务标识,并将任务的任务标识回传给任务分派装置413122,以完成任务的注册过程。本申请实施例中,注册完成的任务(即获得任务标识的任务)能够被 任务分派装置413122进行分解及调度,并进一步发送至第二处理器41313进行处理。
任务分派装置413122还用于在接收到任务的任务标识之后,根据该任务的基本任务信息对该任务进行预拆分,将该任务分为多个作业,获得任务的分解信息。进一步地,任务分派装置413122还用于根据任务的分解信息及第二处理器41313的处理器状态信息确定目标作业,获得调度信息,并将调度信息发送至第二处理器41313。可选地,任务分派装置413122可以在确定目标作业之后,即将调度信息发送至第二处理器41313。第二处理器41313能够获取该调度信息执行该目标作业,以完成该目标作业的处理。当完成该目标作业所属的任务中所有作业的调度之后,任务调度器完成一次调度,进入下一次调度。本申请实施例中,通过上述的任务调度器,能够实现神经网络等数据量较大数据的调度及处理,减少第一处理器41311的运算量,提高任务的调度及处理效率,进而提升计算机系统的处理效率。
在其他实施例中,任务分派装置413122也可以将该目标作业所属的任务全部完成调度之后,即获得该目标作业所属的任务中所有作业的调度信息之后,再将该调度信息发送至第二处理器41313。第二处理器41313可以根据该任务的所有作业形成的调度信息,同时对多个作业进行处理。
在其中一个实施例中,所述任务处理装置4130与存储器4140相连,其中,所述存储器4140与所述传送接口电路4133相连,所述存储器4140用于存储所述输出数据。在其中一个实施例中,所述通信配置信息存储于任务处理装置内部的配置信息缓存中。
在其中一个实施例中,请一并参阅图35,提供了一种组合装置。所述组合装置包括多个神经网络处理芯片4200,且所述神经网络处理芯片4200之间依次相连。其中,神经网络处理芯片之间可以任意两个芯片之间都相连,还可以相邻的两个芯片之间相连。
在其中一个实施例中,每个所述神经网络处理芯片都与主操作端44150相连。在其中一个实施例中,每个神经网络处理芯片中包括如图1所示的通信系统4100,所述通信系统4100包括接收装置4110、发送装置4120、任务处理装置4130以及存储器4140。
在其中一个实施例中,提供了一种电子设备,所述电子设备包括神经网络处理芯片4200。其中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
其中,上述任一实施例中的元件之间的连接关系,可以是电连接或无线连接。
上述接收装置、发送装置、任务处理装置以及存储器共同组成了通信系统,通过所述通信系统能够支持NPU芯片之间的数据传输。
在一个实施例中,请一并参阅图36,提供了一种任务处理方法,本申请提供的任务处理方法,可以应用于如图36-图35所示的装置中。所述任务处理方法包括:
步骤S4901,获取运算控制信息和任务调度信息;
具体地,所述运算控制信息包括通信控制指令和运算控制指令。可选地,获取运算控制信息包括从主操作端获取运算控制信息,所述主操作端为芯片外部的控制装置。可选地,所 述获取运算控制信息包括从任务处理装置中生成运算控制信息,所述任务处理装置为芯片内部的执行处理任务的装置。
具体地,计算任务包含计算过程和通信过程。其中,所述通信控制指令是指,为了使得通信过程在硬件上执行,而生成的对于硬件的控制指令。其中,所述计算控制指令是指,为了使得计算过程在硬件上执行,而生成的对于硬件的控制指令。其中,通信数据是指在通信过程中接收或发送的数据,该数据可以是计算过程的输入数据或输出数据;还可以是由外部传输进芯片的原始数据。其中,任务调度信息是指在执行处理过程时进行如何进行调度执行的指令信息。
步骤S4902,根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果。在其中一个实施例中,任务调度器41312在获得调度信息之后,可以将其获得的调度信息传送至第二处理器41313,第二处理器41313可以根据其接收到的调度信息,从任务缓存装置413121中获取目标作业所属的任务的全部任务信息,从任务分派装置413122中获取计算过程所属的任务的分解信息,并根据其接收到计算过程所属的任务的分解信息及全部任务信息将该计算过程所属的任务拆分为多个作业,拆分获得各个作业均包含权重及数据等信息。进一步地,第二处理器41313可以对拆分根据任务调度信息对通信数据进行处理,得到处理结果。
步骤S4903,根据所述运算控制信息,生成任务结束描述符。当一个计算任务执行完成,根据运算控制信息对于该任务的描述,生成对应该任务的任务结束描述符。可以理解地,通过读取任务结束描述符,能够判断各个计算任务的执行进度
步骤S4904,根据所述任务结束描述符,将所述处理结果输出。具体地,根据所述任务结束描述符判断计算任务是否执行完成,若执行完成,则将处理结果输出。
在一个实施例中,步骤S4901所述获取运算控制信息和任务调度信息包括:
步骤S49011,获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求。其中,该任务的基本任务信息可以包括该任务的配置信息,如配置信息包括任务类别、任务的权重及任务的输入数据等等。其中,多个任务根据其功能的不同可以分为事件任务、通信任务及数据处理任务等,即该任务类别可以包括事件任务、通信任务及数据处理任务,进一步地,该数据处理任务的任务类别还可以包括block(阻塞任务)、cluster(聚类任务)和union(联合任务)。该任务的全部任务信息可以包括该任务的配置信息等基本任务信息,以及该任务对应的指令及数据等信息。可选地,该多个任务以任务队列的形式存储于任务缓存装置413121中,多个任务可以形成多个任务队列,如多个任务按照其任务类别形成多个任务队列。每个任务队列中队列头指针指向的任务的基本任务信息可以传送至任务分派装置413122中。
步骤S49012,根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识。具体地,任务分派装置413122用于从任务缓存装置413121中获取任务的基本任务信息,并根据任务的基本任务信息获得任务的任务注册请求;状态监控装置413123用于根据接收到 的任务注册请求,为任务分配一个任务标识,并将任务的任务标识回传给任务分派装置413122,以完成任务的注册过程。本申请实施例中,注册完成的任务(即获得任务标识的任务)能够被任务分派装置413122进行分解及调度,并进一步发送至第二处理器41313进行处理。
步骤S49013,获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标任务,获得任务调度信息。具体地,任务分派装置413122还用于根据任务的分解信息及第二处理器41313的处理器状态信息确定目标作业,获得调度信息,并将调度信息发送至第二处理器41313。
在一个实施例中,步骤S4902,所述根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果包括:根据所述任务调度信息获取所述任务调度信息、所述目标任务所属的任务的分解信息及全部任务信息,将所述目标任务所属的任务拆分为多个子任务,并根据所述任务调度信息执行对所述通信数据所述目标任务,得到处理结果。
本申请实施例中,通过上述的任务调度器,能够实现神经网络等数据量较大数据的调度及处理,减少第一处理器的运算量,提高任务的调度及处理效率,进而提升计算机系统的处理效率。
在一个实施例中,请一并参阅图37,所述任务处理方法还包括:
步骤S4905根据所述运算控制信息,生成计算控制指令以及通信控制指令。具体地,运算控制信息包含计算控制指令和通信控制指令。通信控制指令用于控制任务处理装置4130本身进行通信。在另一个实施例中,通信控制指令还生成接收装置4110的接收控制指令以及发送装置4120的发送控制指令。
步骤S4906根据所述计算控制指令及任务调度信息对所述通信数据执行调度处理,得到处理结果。具体地,任务调度器中的计算任务执行过程可以将通信数据作为各计算任务的输入数据,还可以将上一任务的输出数据作为下一任务的输入数据。
步骤S4907,根据所述计算控制指令,生成任务结束描述符。在其中一个实施例中,步骤S41030根据所述计算控制指令,生成任务结束描述符包括:步骤S41031,判断所述计算控制指令是否执行完成;步骤S41032,若所述计算控制指令执行完成,则生成任务结束描述符。
步骤S4908,根据所述通信控制指令,将所述处理结果输出。具体地,通信控制指令控制将所述处理结果根据通信配置信息输出。可选地,通信配置信息可以来自任务处理装置4130生成的通信控制指令,还可以来自主操作端。
具体地,计算控制指令可以分解为多个子任务执行,当每个子任务执行完成,生成对应的任务结束描述符。在另一个实施例中,计算控制指令对应的任务,在任务处理装置中不经过分解直接执行,生成对应所述计算控制指令的任务结束描述符。可以理解地,通过任务结束描述符,判断计算任务的执行进程。当所述计算控制指令被执行完成,则通过读取对应的任务结束描述符,判断计算任务执行完成。
在一个实施例中,所述任务处理方法还包括:
步骤S4909,根据多个所述任务结束描述符,生成任务结束描述符队列,。在其中一个实施例中,多个任务依次按照生成顺序执行,进一步多个任务结束描述符按照生成顺序排列在任务结束描述符队列中。在另一个实施例中,多个任务乱序进行执行,进一步多个任务结束描述符按照执行完成时间排列在任务结束描述符队列中。
步骤S4910,根据预设规则在所述任务结束描述符队列中选择对应的所述任务结束描述符。具体地,预设规则是指在执行处理处理任务之前预先设定的在任务结束描述符队列中选择的规则。在其中一个实施例中,根据任务结束描述符的生成顺序依次在任务结束描述符队列中选取任务结束描述符。可以理解地,在本实施例中,选择任务结束描述符不一定等待任务结束描述符队列完整。
在另一个实施例中,根据预定输出顺序,从任务结束描述符队列中选取任务结束描述符。可以理解地,在本实施例中,需要等待任务结束描述符队列完整,再从任务结束描述符中按照预定输出顺序进行选择。具体地,先开始执行的任务生成任务结束描述符的时刻可能会晚于后开始执行的任务生成任务结束描述符的时刻。
步骤S4911,根据所述任务结束描述符,将所述处理结果输出。当所述任务结束描述符被全部读取,则判断计算处理任务执行结束,进一步,将所述处理结果输出。在其中一个实施例中,步骤S4911包括:步骤S49111,读取所述任务结束描述符,得到后处理任务指令。其中,后处理任务指令,是指当得到处理结果后,是否对处理结果进行下一步操作,下一步操作可以是发送至指定的端口,还可以是执行新的操作。
步骤S49112将所述处理结果,发送至所述后处理任务执行端。其中后处理任务执行端可以是执行后处理指令的硬件装置还可以是执行后处理操作的软件模块。
作为一种可选的实施方式,若所述后处理任务的执行端在下一芯片中,则获取下一芯片的通信配置信息队列;将所述下一芯片的通信配置信息队列和所述处理结果输出至当前芯片的发送装置。其中,下一芯片的通信信息配置队列可以来自于任务处理装置4130,还可以来自主操作端。下一芯片的通信配置队列中包括多个下一芯片的通信配置信息,所述通信配置信息包含处理结果的源地址、处理结果在源地址中的偏移量,处理结果的目的地址、处理结果在目的地址中的偏移量以及处理结果的数据块大小。
作为一种可选的实施方式,由当前芯片的发送装置将所述处理结果和通信配置信息队列中的各通信配置信息发送至下一芯片。
在一个实施例中,步骤S49112,所述将所述处理结果,发送至所述后处理任务执行端包括:若所述后处理任务的执行端在主操作端;则将所述处理结果和所述任务结束描述符发送至主操作端。
应该理解的是,虽然图36-40流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图36-40中的至少一部分 步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,请一并参阅图38,提供了一种任务处理软装置,所述装置包括:
信息获取模块4901,用于获取运算控制信息和任务调度信息;
处理结果生成模块4902,用于根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果;
任务描述符生成模块4903,用于根据所述运算控制信息,生成任务结束描述符;
处理结果输出模块4904,用于根据所述任务结束描述符,将所述处理结果输出。
关于任务处理软装置的具体限定可以参见上文中对于任务处理方法的限定,在此不再赘述。上述任务处理软装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,本申请还提供一种板卡,该板卡应用于数据通信方法中,该板卡可以包括:多个人工智能处理器,多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
参见图39所示,上述板卡除了包括上述多个人工智能处理器4411(专用处理器441可以包括多个人工智能处理器4411)和多通道内存442之外,还可以包含其它配套部件。该配套部件包括但不限于:内存控制器443、总线、接口444。专用处理器441通过接口444与外部设备之间进行指令传输以及数据传输。可选的,外部设备可以为主操作端(CPU)。
本实施例提供的板卡,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,本申请还提供一种主板,应用于神经网络数据处理方法中,如图8所示,该主板包括:主操作端和上述实施例提供的板卡。
本实施例提供的主板,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,提供一种电子设备,该电子设备应用于数据通信方法中,该电子设备包括如图40所示的主板。该主板包括CPU和板卡,板卡包括多个人工智能处理器,多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收主操作端CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述 目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
可选的,电子设备可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图41所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储通信配置信息或通信描述符。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据通信方法。
本领域技术人员可以理解,图41中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行处理机程序时实现以上任一实施例所述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上任一实施例所述方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例 的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (128)

  1. 一种发送装置,其特征在于,所述发送装置设置于芯片中,所述装置包括:发送配置电路,发送控制电路以及发送端口电路;所述发送控制电路分别与所述发送配置电路、所述发送端口电路相连。
  2. 根据权利要求1所述的装置,其特征在于,所述发送配置电路包括配置信息获取电路和配置信息解析电路;所述配置信息获取电路分别与所述配置信息解析电路、所述发送控制电路相连。
  3. 根据权利要求2所述的装置,其特征在于,所述装置与存储器、相连,其中,所述存储器与发送端口电路相连,所述存储器用于存储待发送数据。
  4. 根据权利要求3所述的装置,其特征在于,存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
  5. 根据权利要求1所述的装置,其特征在于,所述发送配置电路、所述发送控制电路分别与主操作端连接。
  6. 根据权利要求1所述的装置,其特征在于,所述发送配置电路,发送控制电路以及发送端口电路之间的相连方式包括无线连接、电气连接。
  7. 根据权利要求1所述的装置,其特征在于,所述发送配置电路中生成至少一条通信描述符。
  8. 根据权利要求1任意一项所述的装置,其特征在于,所述发送描述符包括待发送数据的源地址、所述待发送数据的目的地址、所述待发送数据的偏移量以及所述待发送数据的数据块大小中的一种或几种。
  9. 一种神经网络处理器芯片,其特征在于,所述芯片包括如权利要求1中所述的发送装置。
  10. 根据权利要求9所述的芯片,其特征在于,所述芯片还包括计算装置,所述发送装置与所述计算装置相连。
  11. 一种组合装置,其特征在于,所述组合装置包括多个如权利要求5所述的芯片,所述组合装置中的所述芯片两两相连。
  12. 根据权利要求11所述的组合装置,其特征在于,所述组合装置中的上一芯片的发送端口电路与下一芯片中的接收装置相连。
  13. 根据权利要求12所述的组合装置,其特征在于,所述组合装置中的上一芯片的发送端口电路与下一芯片中的接收装置通过高速串行扩展线路相连。
  14. 一种电子设备,其特征在于,所述电子设备包括如所述权利要求9所述的神经网络处理器芯片。
  15. 一种数据发送方法,其特征在于,所述方法包括:
    获取通信配置信息队列和待发送数据;其中所述通信配置信息队列为对芯片与芯片之间 传输进行配置的信息队列;
    对所述通信配置信息队列中的至少一条通信配置信息进行解析,得到对应的通信描述符;其中所述通信描述符为描述发送方法所经过过程的信息;
    根据所述通信描述符,发送所述待发送数据。
  16. 根据权利要求15所述的方法,其特征在于,所述获取通信配置信息队列和待发送数据包括:
    检测存储空间中所述待发送数据是否完整;
    若所述存储空间中的所述待发送数据完整,则获取所述通信配置信息队列和所述待发送数据。
  17. 根据权利要求16所述的方法,其特征在于,所述检测存储空间中的通信配置信息和所述待发送数据是否完整包括:
    获取地址选择信号;
    判断所述地址选择信号是否有效;
    若所述地址选择信号有效,则确定所述存储空间中的所述通信配置信息和所述待发送数据完整。
  18. 根据权利要求15所述的方法,其特征在于,所述对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符包括:
    获取发送控制指令;
    根据所述发送控制指令,按预设规则在所述配置信息队列中读取至少一条所述通信配置信息;
    对至少一条所述通信配置信息进行解析,分别得到对应的所述通信描述符。
  19. 根据权利要求15所述的方法,其特征在于,所述对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符包括:
    给每条通信描述符分配通信描述符标识;
    根据所述通信描述符标识,读取对应的通信描述符。
  20. 根据权利要求15至19任意一项所述的方法,其特征在于,所述通信描述符包括:待发送数据的源地址、所述待发送数据的目的地址、所述待发送数据的偏移量以及所述待发送数据的数据块大小中的一种或几种。
  21. 根据权利要求15至19任意一项所述的方法,其特征在于,所述方法还包括:
    根据所述通信描述符,得到发送模式符;
    根据所述发送模式符,得到所述发送方法为普通发送模式还是硬件加速发送模式。
  22. 根据权利要求21所述的方法,其特征在于,所述普通发送模式包括从主操作端获取通信配置信息和控制指令,所述主操作端为芯片外部的控制装置。
  23. 根据权利要求21所述的方法,其特征在于,所述硬件加速传输模式包括从计算装置中获取通信配置信息和控制指令,所述计算装置为芯片内部的执行计算的装置。
  24. 根据权利要求15所述的方法,其特征在于,所述方法还包括:
    对每条所述通信描述符和每条所述通信描述符对应的所述待发送数据进行打包,得到传输数据包;
    获取待发送数据的目标发送芯片的标识信息;
    根据所述标识信息,发送所述传输数据包。
  25. 一种数据发送装置,其特征在于,所述装置包括:
    获取模块,用于获取通信配置信息队列和待发送数据;
    解析模块,用于对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符;
    数据发送模块,用于根据所述通信描述符,发送所述待发送数据。
  26. 一种板卡,其特征在于,应用于数据发送方法中,所述板卡包括:多个人工智能处理器,所述多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收通用处理器CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
  27. 一种主板,其特征在于,应用于神经网络数据处理中,所述主板包括:通用处理器CPU和如权利要求26所述的板卡。
  28. 一种电子设备,其特征在于,应用于神经网络数据处理中,所述电子设备包括如权利要求27所述的主板。
  29. 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求15至24中任一项所述的方法的步骤。
  30. 一种接收装置,其特征在于,所述装置位于芯片上,所述装置包括:接收端口电路,配置信息解析电路和控制电路;所述接收端口电路与所述配置信息解析电路相连,所述配置信息解析电路与所述控制电路相连。
  31. 根据权利要求30所述的装置,其特征在于,所述装置还包括状态描述符缓存电路,所述状态描述符缓存与所述控制电路连接;
    所述状态描述符缓存电路用于存储状态描述符,所述状态描述符用于标记接收过程的完成状态。
  32. 根据权利要求30-31任意一项所述的装置,其特征在于,所述装置与存储器相连,其中,
    所述存储器与所述接收端口电路相连,所述存储器用于存储所述接收端口电路接收的数据。
  33. 根据权利要求32所述的装置,其特征在于,所述存储器包括:同步动态随机存取存 储器或双倍速率同步动态随机存取存储器。
  34. 根据权利要求30所述的装置,其特征在于,所述接收端口电路,所述配置信息解析电路和所述控制电路的相连方式包括无线连接和/或电气连接。
  35. 根据权利要求30所述的装置,其特征在于,所述配置信息解析电路用于对接收的通信配置信息队列进行解析,得到至少一条接收描述符。
  36. 根据权利要求30任意一项所述的装置,其特征在于,所述接收描述符包括待发送数据的源地址、所述待发送数据的目的地址、所述待发送数据的偏移量以及所述待发送数据的数据块大小中的一种或几种。
  37. 一种神经网络处理器芯片,其特征在于,所述芯片包括如权利要求30中所述的接收装置。
  38. 根据权利要求37所述的芯片,其特征在于,所述芯片还包括计算装置,所述接收装置与所述计算装置相连。
  39. 一种组合装置,其特征在于,所述组合装置包括至少一个如权利要求37所述的芯片。
  40. 根据权利要求39所述的组合装置,其特征在于,所述组合装置中的芯片两两相连。
  41. 根据权利要求39所述的组合装置,其特征在于,所述组合装置还包括主操作端,所述芯片与所述主操作端连接。
  42. 根据权利要求39所述的组合装置,其特征在于,所述组合装置中的上一芯片的通信端口电路与下一芯片中的接收装置相连。
  43. 根据权利要求40所述的组合装置,其特征在于,所述组合装置中的上一芯片的通信端口电路与下一芯片中的接收装置通过高速串行扩展线路相连。
  44. 一种电子设备,其特征在于,所述电子设备包括如所述权利要求37所述的神经网络处理器芯片。
  45. 一种数据接收方法,其特征在于,所述方法包括:
    获取通信数据和通信配置信息;
    对所述通信配置信息进行解析,得到通信描述符;其中所述通信描述符为描述发送方法所经过过程的信息;
    根据所述通信描述符,接收所述通信数据。
  46. 根据权利要求45所述的方法,其特征在于,所述获取通信数据和通信配置信息包括:
    获取传输数据包;
    根据所述传输数据包,得到通信数据和所述通信配置信息。
  47. 根据权利要求45所述的方法,其特征在于,所述对所述通信配置信息进行解析,得到通信描述符包括:
    获取解析控制指令;
    根据所述控制指令,对对所述通信配置信息进行解析,得到通信描述符。
  48. 根据权利要求45至47任意一项所述的方法,其特征在于,所述通信描述符包括: 待发送数据的源地址、所述待发送数据的目的地址、所述待发送数据的在源地址中的偏移量、所述待发送数据在目的地址中的偏移量以及所述待发送数据的数据块大小中的一种或几种。
  49. 根据权利要求45至47任意一项所述的方法,其特征在于,所述方法还包括:
    根据所述通信描述符,得到接收模式符;
    根据所述接收模式符,得到所述发送方法为普通发送模式还是硬件加速发送模式。
  50. 根据权利要求49所述的方法,其特征在于,所述普通发送模式包括从主操作端获取发送控制指令,所述主操作端为芯片外部的控制装置。
  51. 根据权利要求49所述的方法,其特征在于,所述硬件加速传输模式包括从计算装置中获取发送控制指令,所述计算装置为芯片内部的执行计算的装置。
  52. 根据权利要求45所述的方法,其特征在于,所述方法还包括:
    根据所述通信描述符,将所述通信数据存储至目标地址。
  53. 根据权利要求45所述的方法,其特征在于,所述方法还包括:
    根据通信描述符,当接收任务执行完成,生成对应的状态描述符;
    将所述状态描述符,存储至状态描述符队列;
    根据所述状态描述符队列,判断接收过程的执行状态。
  54. 根据权利要求53所述的方法,其特征在于,所述根据所述状态描述符队列,判断所述接收方法执行状态包括:
    根据预设规则在所述状态描述符队列中选取所述状态描述符;
    根据所述状态描述符队列中所述状态描述符的数量,确定执行完毕的接收过程的数量;
    当所述执行完毕的接收任务的数量达到阈值,判断所述接收任务结束。
  55. 一种数据接收装置,其特征在于,所述装置包括:
    配置信息获取模块,用于获取通信数据和通信配置信息;
    描述符解析模块,用于对所述通信配置信息进行解析,得到通信描述符;
    数据接收模块,用于根据所述通信描述符,接收所述通信数据。
  56. 一种板卡,其特征在于,应用于数据发送方法中,所述板卡包括:多个人工智能处理器,所述多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收通用处理器CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
  57. 一种主板,其特征在于,应用于神经网络数据处理中,所述主板包括:通用处理器CPU和如权利要求56所述的板卡。
  58. 一种电子设备,其特征在于,应用于神经网络数据处理中,所述电子设备包括如权利要求57所述的主板。
  59. 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求45至54中任一项所述的方法的步骤。
  60. 一种通信装置,其特征在于,所述通信装置位于芯片上,所述装置包括:
    接收装置、任务处理装置、发送装置以及存储器;所述任务处理装置一端连接接收装置,另一端连接发送装置;所述接收装置、所述发送装置分别与所述存储器相连;
    所述接收装置用于接收通信配置信息和通信数据;
    所述任务处理装置用于对所述通信数据进行计算,得到待发送数据;
    所述存储器用于存储所述通信配置信息;
    所述发送装置用于将所述待发送数据输出。
  61. 根据权利要求60所述的装置,其特征在于,所述发送装置包括:
    发送配置电路,控制电路以及发送端口电路;所述控制电路分别与所述发送配置电路、所述发送端口电路相连;所述控制电路分别与所述发送配置电路、所述发送端口电路相连。
  62. 根据权利要求60所述的装置,其特征在于,所述接收装置包括:接收端口电路,配置信息解析电路和控制电路;所述接收端口电路与所述配置信息解析电路相连,所述配置信息解析电路还与所述控制电路相连。
  63. 根据权利要求60所述的装置,其特征在于,所述任务处理装置包括:结束信息分析电路、计算处理电路和传送接口电路;所述结束信息分析电路与所述计算处理电路相连;所述计算处理电路还与所述传送接口电路相连;
    所述结束信息分析电路用于判断任务处理完成状态;
    所述传送接口电路用于获取输入数据和传送配置信息;
    所述计算处理电路用于根据所述输入数据执行计算,得到输出数据;
    所述传送接口电路还用于根据所述传送配置信息将所述输出数据输出。
  64. 根据权利要求63所述的装置,其特征在于,所述通信配置信息包括所述输入数据的源地址、所述输出数据的源地址,所述输入数据待发送的目的地址、所述输出数据待发送的目的地址,所述输入数据在存储空间中的偏移量、所述输出数据在存储空间中的偏移量以及所述输入数据的数据块大小、所述输出数据的数据块大小中的一种或几种。
  65. 根据权利要求60所述的装置,其特征在于,所述存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
  66. 根据权利要求60所述的装置,其特征在于,所述接收装置、任务处理装置、发送装置以及存储器的相连方式包括无线连接和/或电气连接。
  67. 一种神经网络处理器芯片,其特征在于,所述芯片包括如权利要求60中所述的通信装置。
  68. 一种组合装置,其特征在于,所述组合装置包括至少一个如权利要求67所述的芯片。
  69. 根据权利要求68所述的组合装置,其特征在于,所述组合装置中的芯片两两相连。
  70. 根据权利要求68所述的组合装置,其特征在于,所述组合装置还包括主操作端,所 述芯片与所述主操作端连接。
  71. 一种电子设备,其特征在于,所述电子设备包括如所述权利要求67所述的神经网络处理器芯片。
  72. 一种数据通信方法,其特征在于,所述方法包括:
    当前芯片获取通信数据和通信配置信息;
    当前芯片对所述通信配置信息进行解析,得到通信描述符;
    当前芯片根据所述通信描述符,将所述通信数据发送至目标地址空间;
    当前芯片获取目标芯片的通信配置信息队列;
    当前芯片对所述目标芯片的通信配置信息队列中的至少一条通信配置信息进行解析,得到目标芯片的通信描述符;
    当前芯片根据所述目标芯片的通信描述符读取所述目标地址空间的待发送数据;
    当前芯片将所述待发送数据、所述目标芯片的通信配置信息队列发送至目标芯片。
  73. 根据权利要求72所述的方法,其特征在于,所述当前芯片获取通信数据和通信配置信息包括:
    当前芯片的接收装置获取传输数据包;
    当前芯片的接收装置根据所述传输数据包,得到通信数据和所述通信配置信息。
  74. 根据权利要求72所述的方法,其特征在于,所述当前芯片对所述通信配置信息进行解析,得到通信描述符包括:
    当前芯片的接收装置获取解析控制指令;
    当前芯片的接收装置根据所述控制指令,对对所述通信配置信息进行解析,得到通信描述符。
  75. 根据权利要求72所述的方法,其特征在于,所述方法还包括:
    当前芯片的接收装置根据通信描述符,当所述当前芯片的接收装置接收任务执行完成,生成对应的状态描述符;
    当前芯片的接收装置将所述状态描述符,存储至状态描述符队列;
    当前芯片的接收装置根据所述状态描述符队列,判断所述接收过程执行状态。
  76. 根据权利要求75所述的方法,其特征在于,所述当前芯片的接收装置根据所述状态描述符队列,判断所述接收方法执行状态包括:
    当前芯片的接收装置将所述状态描述符队列发送至主操作端;
    主操作端根据预设规则在所述状态描述符中选取所述状态描述符;
    主操作端根据所述状态描述符,确定执行完毕的接收任务的数量;
    主操作端当所述执行完毕的接收任务的数量达到阈值,判断所述接收过程结束。
  77. 根据权利要求72所述的方法,其特征在于,所述方法还包括:
    当前芯片的接收装置根据所述通信描述符,得到接收模式符;
    当前芯片的接收装置根据所述接收模式符,判断所述通信过程是否是硬件加速模式还是 普通传输模式。
  78. 根据权利要求77所述的方法,其特征在于,所述普通发送模式包括从主操作端获取控制指令,所述主操作端为芯片外部的控制装置。
  79. 根据权利要求77所述的方法,其特征在于,所述硬件加速传输模式包括从任务处理装置中获取控制指令,所述任务处理装置为芯片内部的进行处理的装置。
  80. 根据权利要求77所述的方法,其特征在于,所述方法还包括:
    若确定所述通信过程为普通传输模式,则将所述通信数据发送至存储器。
  81. 根据权利要求74所述的方法,其特征在于,所述方法还包括:
    若确定所述通信过程为硬件加速模式,则将所述通信数据发送至任务处理装置;
    当前芯片的任务处理装置获取运算控制信息、通信数据和任务调度信息;
    当前芯片的任务处理装置,根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果;
    当前芯片的任务处理装置,根据所述运算控制信息,生成任务结束描述符;
    当前芯片的任务处理装置,根据所述任务结束描述符,将所述处理结果输出至所述当前芯片的接收装置。
  82. 根据权利要求81所述的方法,其特征在于,当前芯片的任务处理装置获取运算控制信息、通信数据和任务调度信息包括:
    当前芯片的任务处理装置获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求;
    当前芯片的任务处理装置根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识;
    当前芯片的任务处理装置获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得任务调度信息。
  83. 根据权利要求82所述的方法,其特征在于,所述当前芯片的任务处理装置根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果包括:
    当前芯片的任务处理装置根据所述任务调度信息获取所述任务调度信息、所述目标作业所属的任务的分解信息及全部任务信息;
    当前芯片的任务处理装置将所述目标作业所属的任务拆分为多个作业,并根据所述任务调度信息执行对所述通信数据所述目标作业,得到处理结果。
  84. 根据权利要求81所述的方法,其特征在于,所述方法还包括:
    当前芯片的任务处理装置根据所述运算控制信息,生成任务控制指令以及通信控制指令;
    当前芯片的任务处理装置根据所述任务控制指令及任务调度信息对所述通信数据执行调度处理,得到处理结果;
    当前芯片的任务处理装置根据所述任务控制指令,生成任务结束描述符;
    当前芯片的任务处理装置根据所述通信控制指令,将所述处理结果输出。
  85. 根据权利要求84所述的方法,其特征在于,所述根据当前芯片的任务处理装置所述任务控制指令,生成任务结束描述符包括:
    当前芯片的任务处理装置判断所述任务控制指令是否执行完成;
    当前芯片的任务处理装置若所述任务控制指令执行完成,则生成任务结束描述符。
  86. 根据权利要求81所述的方法,其特征在于,所述方法还包括:
    当前芯片的任务处理装置根据多个所述任务结束描述符,生成任务结束描述符队列;
    当前芯片的任务处理装置根据预设规则在所述任务结束描述符队列中选择对应的所述任务结束描述符;
    当前芯片的任务处理装置根据所述任务结束描述符,将所述处理结果输出。
  87. 根据权利要求81所述的方法,其特征在于,所述当前芯片的任务处理装置根据所述任务结束描述符,将所述处理结果输出包括:
    当前芯片的任务处理装置读取所述任务结束描述符,得到后处理任务;
    当前芯片的任务处理装置将所述处理结果,发送至后处理任务执行端。
  88. 根据权利要求87所述的方法,其特征在于,所述当前芯片的任务处理装置将所述处理结果,发送至所述后处理任务执行端包括:
    若所述后处理任务在下一芯片中,则获取下一芯片的通信配置信息队列;
    将所述下一芯片的通信配置信息队列和所述处理结果输出至当前芯片的发送部件。
  89. 根据权利要求87所述的方法,其特征在于,所述当前芯片的任务处理装置将所述处理结果,发送至所述后处理任务执行端包括:
    若所述后处理芯片在主操作端;
    则当前芯片的任务处理装置将所述处理结果和所述任务结束描述符发送至主操作端。
  90. 根据权利要求72所述的方法,其特征在于,所述当前芯片获取目标芯片的通信配置信息队列和待发送数据包括:
    当前芯片的发送装置检测存储空间中所述待发送数据是否完整;
    若所述存储空间中的所述待发送数据完整,则当前芯片的发送装置获取所述通信配置信息队列和所述待发送数据。
  91. 根据权利要求90所述的方法,其特征在于,所述当前芯片的发送装置检测存储空间中所述待发送数据是否完整包括:
    当前芯片的发送装置获取地址选择信号;
    当前芯片的发送装置判断所述地址选择信号是否有效;
    若所述地址选择信号有效,则当前芯片的发送装置确定所述存储空间中的所述通信配置信息和所述待发送数据完整。
  92. 根据权利要求72所述的方法,其特征在于,所述当前芯片对所述目标芯片的通信配置信息队列中的至少一条通信配置信息进行解析,得到目标芯片的通信描述符包括:
    当前芯片的发送装置给每条通信描述符分配通信描述符标识;
    当前芯片的发送装置根据所述通信描述符标识,读取对应的通信描述符。
  93. 根据权利要求72所述的方法,其特征在于,所述方法还包括:
    当前芯片的发送装置对每条所述通信描述符和每条所述通信描述符对应的所述待发送数据进行打包,得到传输数据包;
    当前芯片的发送装置获取待发送数据的目标发送芯片的标识信息;
    当前芯片的发送装置根据所述标识信息,发送所述传输数据包。
  94. 一种数据通信装置,其特征在于,所述装置包括:
    数据获取模块,用于当前芯片获取通信数据和通信配置信息;
    配置信息解析模块,用于当前芯片对所述通信配置信息进行解析,得到通信描述符;
    目标地址空间填充模块,用于当前芯片根据所述通信描述符,将所述通信数据发送至目标地址空间;
    通信配置信息队列获取模块,用于当前芯片获取目标芯片的通信配置信息队列;
    通信配置信息队列解析模块,用于当前芯片对所述目标芯片的通信配置信息队列中的至少一条通信配置信息进行解析,得到目标芯片的通信描述符;
    待发送数据读取模块,用于当前芯片根据所述目标芯片的通信描述符读取所述目标地址空间的待发送数据;
    发送模块,用于当前芯片的发送装置将所述待发送数据、下一芯片的通信配置信息队列发送至下一芯片的接收装置。
  95. 一种通信系统,其特征在于,所述系统包括:
    接收装置、任务处理装置、发送装置以及存储器;所述任务处理装置一端连接接收装置,另一端连接发射装置;所述接收装置、所述发送装置分别与所述存储器相连;
    所述接收装置用于接收通信配置信息和通信数据;
    所述任务处理装置用于在硬件加速模式下对输入数据进行处理;
    所述存储器用于存储所述通信配置信息;
    所述发送装置用于将待发送数据输出。
  96. 一种板卡,其特征在于,应用于数据通信方法中,所述板卡包括:多个人工智能处理器,所述多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收主操作端CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
  97. 一种主板,其特征在于,应用于数据通信方法中,所述主板包括:主操作端CPU和如权利要求96所述的板卡。
  98. 一种电子设备,其特征在于,应用于数据通信方法中,所述电子设备包括如权利要 求97所述的主板。
  99. 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求72至93中任一项所述的方法的步骤。
  100. 一种任务处理装置,其特征在于,所述装置位于芯片上,所述装置包括:结束信息分析电路、任务处理电路和传送接口电路;所述结束信息分析电路与所述任务处理电路相连;所述任务处理电路还与所述传送接口电路相连;
    所述结束信息分析电路用于判断计算任务完成状态,得到任务结束描述符;
    所述传送接口电路用于获取通信数据;
    所述任务处理电路用于根据所述通信数据执行处理,得到输出数据;
    所述传送接口电路还用于获取通信配置信息并根据所述通信配置信息将所述输出数据和所述任务结束描述符输出。
  101. 根据权利要求100所述的装置,其特征在于,所述任务处理电路还包括:
    任务调度器、第一处理器、第二处理器以及运算控制电路;任务调度器连接在第一处理器和第二处理器之间;所述运算控制电路与所述任务调度器相连;
    所述任务调度器用于将计算任务在所述第一处理器和所述第二处理器中进行调度执行;
    所述第一处理器用于执行所述任务调度器分配的第一处理器任务;
    所述第二处理器用于执行所述任务调度器分配的第二处理器任务;
    所述运算控制电路用于向所述任务调度器发送控制指令,以及用于生成传输配置信息。
  102. 根据权利要求101所述的装置,其特征在于,所述任务调度器包括:
    任务缓存装置,用于存储多个任务对应的基本任务信息和全部任务信息;
    任务分派装置,所述任务分派装置与所述任务缓存装置连接,所述任务分派装置用于从所述任务缓存装置中获取一个以上的所述任务的基本任务信息,并分别根据各个所述任务的基本任务信息获得所述任务的任务注册请求;以及
    状态监控装置,所述状态监控装置连接所述任务分派装置及所述第二处理器,所述状态监控装置用于根据接收到的各个所述任务的任务注册请求,为各个所述任务分配一个任务标识,并将各个所述任务的任务标识回传给所述任务分派装置;
    其中,所述任务分派装置还用于在接收到所述任务的任务标识之后,获得所述任务的分解信息,并根据所述任务的分解信息及所述第二处理器的处理器状态信息确定目标作业,获得调度信息,并将所述调度信息发送至所述第二处理器。
  103. 根据权利要求100-102任意一项所述的装置,其特征在于,所述装置与存储器相连,其中
    所述存储器与所述传送接口电路相连,所述存储器用于存储所述输出数据和所述通信配置信息。
  104. 根据权利要求103所述的装置,其特征在于,所述存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
  105. 根据权利要求100所述的装置,其特征在于,所述结束信息分析电路、任务处理电路和传送接口电路的相连方式包括无线连接和/或电气连接。
  106. 根据权利要求100任意一项所述的装置,其特征在于,所述通信配置信息包括输出数据待存储的源地址、所述输出数据待发送的目的地址、所述输出数据在存储空间中的偏移量以及所述输出数据的数据块大小中的一种或几种。
  107. 一种神经网络处理器芯片,其特征在于,所述芯片包括如权利要求100中所述的任务处理装置。
  108. 根据权利要求107所述的芯片,其特征在于,所述芯片还包括发送装置和接收装置,所述任务处理装置分别与所述发送装置和所述接收装置相连。
  109. 一种组合装置,其特征在于,所述组合装置包括至少一个如权利要求9所述的芯片。
  110. 根据权利要求109所述的组合装置,其特征在于,所述组合装置中的芯片两两相连。
  111. 根据权利要求109所述的组合装置,其特征在于,所述组合装置还包括主操作端,所述芯片与所述主操作端连接。
  112. 一种电子设备,其特征在于,所述电子设备包括如所述权利要求107所述的神经网络处理器芯片。
  113. 一种任务处理方法,其特征在于,所述方法包括:
    获取运算控制信息和任务调度信息;
    根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果;
    根据所述运算控制信息,生成任务结束描述符;
    根据所述任务结束描述符,将所述计算结果输出。
  114. 根据权利要求113所述的方法,其特征在于,所述获取运算控制信息和任务调度信息包括:
    获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求;
    根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识;
    获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得任务调度信息。
  115. 根据权利要求114所述的方法,其特征在于,所述根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果包括:
    根据所述任务调度信息获取所述任务调度信息、所述目标任务所属的任务的分解信息及全部任务信息,将所述目标任务所属的任务拆分为多个子任务,并根据所述任务调度信息执行对所述通信数据所述目标任务,得到计算结果。
  116. 根据权利要求113所述的方法,其特征在于,所述方法还包括:
    根据所述运算控制信息,生成计算控制指令以及通信控制指令;
    根据所述计算控制指令及任务调度信息对所述通信数据执行调度处理,得到计算结果;
    根据所述计算控制指令,生成任务结束描述符;
    根据所述通信控制指令,将所述计算结果输出。
  117. 根据权利要求116所述的装置,其特征在于,所述根据所述计算控制指令,生成任务结束描述符包括:
    判断所述计算控制指令是否执行完成;
    若所述计算控制指令执行完成,则生成任务结束描述符。
  118. 根据权利要求113所述的方法,其特征在于,所述方法还包括:
    根据多个所述任务结束描述符,生成任务描述符队列;
    根据预设规则在所述任务描述符队列中选择对应的所述任务描述符;
    根据所述任务描述符,将所述计算结果输出。
  119. 根据权利要求113所述的方法,其特征在于,所述根据所述任务结束描述符,将所述计算结果输出包括:
    读取所述任务结束描述符,得到后处理任务指令;
    将所述计算结果,发送至所述后处理任务执行端。
  120. 根据权利要求119所述的方法,其特征在于,所述将所述计算结果,发送至所述后处理任务执行端包括:
    若所述后处理任务的执行端在下一芯片中,则获取下一芯片的通信配置信息队列;
    将所述下一芯片的通信配置信息队列和所述计算结果输出至当前芯片的发送装置。
  121. 根据权利要求119所述的方法,其特征在于,所述将所述计算结果,发送至所述后处理任务执行端包括:
    若所述后处理任务的执行端在主操作端;
    则将所述计算结果和所述任务结束描述符发送至主操作端。
  122. 根据权利要求113所述的方法,其特征在于,所述获取运算控制信息包括从主操作端获取运算控制信息,所述主操作端为芯片外部的控制装置。
  123. 根据权利要求113所述的方法,其特征在于,所述获取运算控制信息包括从计算装置中生成运算控制信息,所述计算装置为芯片内部的执行计算任务的装置。
  124. 一种计算任务处理装置,其特征在于,所述装置包括:
    信息获取模块,用于获取运算控制信息和任务调度信息;
    计算结果生成模块,用于根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果;
    任务描述符生成模块,用于根据所述运算控制信息,生成任务结束描述符;
    计算结果输出模块,用于根据所述任务结束描述符,将所述计算结果输出。
  125. 一种板卡,其特征在于,应用于数据发送方法中,所述板卡包括:多个人工智能芯片,所述多个人工智能芯片对应的内存为多通道内存;其中,目标人工智能芯片用于在通过 目标并行线程接收通用芯片CPU发出的人工智能芯片计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能芯片计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能芯片为所述多个人工智能芯片中的任一人工智能芯片,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
  126. 一种主板,其特征在于,应用于神经网络数据处理中,所述主板包括:通用芯片CPU和如权利要求125所述的板卡。
  127. 一种电子设备,其特征在于,应用于神经网络数据处理中,所述电子设备包括如权利要求126所述的主板。
  128. 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被芯片执行时实现权利要求113至123中任一项所述的方法的步骤。
PCT/CN2019/127752 2018-12-29 2019-12-24 通用机器学习模型、模型文件的生成和解析方法 WO2020135385A1 (zh)

Applications Claiming Priority (16)

Application Number Priority Date Filing Date Title
CN201811646712.5 2018-12-29
CN201811646507.9 2018-12-29
CN201811646353.3A CN111382116B (zh) 2018-12-29 2018-12-29 数据接收方法、装置及相关产品
CN201811646353.3 2018-12-29
CN201811647273.XA CN111381946B (zh) 2018-12-29 2018-12-29 任务处理方法、装置及相关产品
CN201811641903.2A CN111381958B (zh) 2018-12-29 2018-12-29 通信装置、神经网络处理芯片、组合装置和电子设备
CN201811646712.5A CN111382117A (zh) 2018-12-29 2018-12-29 发送装置、神经网络处理器芯片、组合装置以及电子设备
CN201811646630.0A CN111382109B (zh) 2018-12-29 2018-12-29 数据通信方法、装置及相关产品
CN201811641509.9 2018-12-29
CN201811646507.9A CN111382110A (zh) 2018-12-29 2018-12-29 接收装置、神经网络处理器芯片、组合装置以及电子设备
CN201811646630.0 2018-12-29
CN201811641509.9A CN111382857B (zh) 2018-12-29 2018-12-29 任务处理装置、神经网络处理器芯片、组合装置以及电子设备
CN201811646708.9 2018-12-29
CN201811647273.X 2018-12-29
CN201811641903.2 2018-12-29
CN201811646708.9A CN111382858A (zh) 2018-12-29 2018-12-29 数据发送方法、装置及相关产品

Publications (1)

Publication Number Publication Date
WO2020135385A1 true WO2020135385A1 (zh) 2020-07-02

Family

ID=71129116

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/127752 WO2020135385A1 (zh) 2018-12-29 2019-12-24 通用机器学习模型、模型文件的生成和解析方法

Country Status (1)

Country Link
WO (1) WO2020135385A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150347225A1 (en) * 2014-06-02 2015-12-03 Micron Technology, Inc Systems and methods for improving efficiencies of a memory system
CN105718990A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中细胞之间的通信方法
CN105718993A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中的通信方法
CN105718991A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统
CN105718996A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中的通信方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150347225A1 (en) * 2014-06-02 2015-12-03 Micron Technology, Inc Systems and methods for improving efficiencies of a memory system
CN105718990A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中细胞之间的通信方法
CN105718993A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中的通信方法
CN105718991A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统
CN105718996A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中的通信方法

Similar Documents

Publication Publication Date Title
CN107145380B (zh) 虚拟资源编排方法及装置
CN108268328B (zh) 数据处理装置及计算机
CN101202761A (zh) 一种分布式资源调度系统及其方法
US10805399B2 (en) Data server unit and communication system including master-slave management circuitry
US11513493B2 (en) Control system driven by real time and non-real time data
CN107977260B (zh) 任务提交方法及装置
CN111381958B (zh) 通信装置、神经网络处理芯片、组合装置和电子设备
WO2020135385A1 (zh) 通用机器学习模型、模型文件的生成和解析方法
CN107948005B (zh) 物联网协议的更新方法及装置
CN117675913A (zh) 实验室数据传输处理方法、装置、传输处理系统及介质
CN110458285B (zh) 数据处理方法、装置、计算机设备和存储介质
CN111079909B (zh) 运算方法、系统及相关产品
CN111382109B (zh) 数据通信方法、装置及相关产品
CN112559404B (zh) 一种数据调度装置、方法和加速处理芯片
US11625348B2 (en) Transfer device, information processing device, and data transfer method
CN111382116B (zh) 数据接收方法、装置及相关产品
CN111382857B (zh) 任务处理装置、神经网络处理器芯片、组合装置以及电子设备
CN107656741B (zh) 一种高性能计算环境中使用应用封装的方法及其系统
CN116028233B (zh) 一种ai计算资源的数字对象组织与共享方法和装置
CN111382858A (zh) 数据发送方法、装置及相关产品
CN111382117A (zh) 发送装置、神经网络处理器芯片、组合装置以及电子设备
CN115037639B (zh) 边缘数据平台接口信息的处理方法、装置、设备及介质
CN111382110A (zh) 接收装置、神经网络处理器芯片、组合装置以及电子设备
CN111078285B (zh) 运算方法、系统及相关产品
CN111079914B (zh) 运算方法、系统及相关产品

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: 19905807

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 30.09.2021)

122 Ep: pct application non-entry in european phase

Ref document number: 19905807

Country of ref document: EP

Kind code of ref document: A1