WO2020221161A1 - 计算作业处理方法、***、移动设备及加速设备 - Google Patents

计算作业处理方法、***、移动设备及加速设备 Download PDF

Info

Publication number
WO2020221161A1
WO2020221161A1 PCT/CN2020/086995 CN2020086995W WO2020221161A1 WO 2020221161 A1 WO2020221161 A1 WO 2020221161A1 CN 2020086995 W CN2020086995 W CN 2020086995W WO 2020221161 A1 WO2020221161 A1 WO 2020221161A1
Authority
WO
WIPO (PCT)
Prior art keywords
interface
mobile device
acceleration
calculation
processing
Prior art date
Application number
PCT/CN2020/086995
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
Application filed by 阿里巴巴集团控股有限公司 filed Critical 阿里巴巴集团控股有限公司
Priority to EP20798699.3A priority Critical patent/EP3964955A4/en
Priority to US17/438,388 priority patent/US11893391B2/en
Publication of WO2020221161A1 publication Critical patent/WO2020221161A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Definitions

  • This application relates to the field of computer technology, and in particular to a computing task processing method, system, mobile device and acceleration device.
  • terminal equipment can realize the calculation and processing of large-scale computing tasks based on processing rules, which expands the application scenarios of artificial intelligence technology.
  • Method one is to directly implement the computing operations through the central processing unit (CPU, Central Processing Unit) or graphics processing unit (GPU, Graphics Processing Unit) of the terminal equipment itself.
  • Manner 2 After receiving the calculation job, the terminal device sends the calculation job to the cloud server via the network, and the cloud server performs calculation processing on the calculation job, and feeds back the calculation result to the terminal device.
  • the terminal equipment In the first method, the terminal equipment directly performs computing operations, which will seriously consume the software and hardware resources of the terminal equipment, cause the terminal equipment system to freeze, and affect the user experience.
  • the processing of computing operations depends on the quality of network transmission, and the transmission process is relatively time-consuming, and real-time computing processing cannot be achieved.
  • the embodiment of the application provides a computing job processing method, so as to reduce the dependence of the computing job processing process on the software and hardware resources of the mobile device itself, and solve the problem that the computing job processing depends on the network transmission quality, and achieve the speed up
  • the purpose of applying the device to a mobile device using a mobile terminal operating system is a computing job processing method, so as to reduce the dependence of the computing job processing process on the software and hardware resources of the mobile device itself, and solve the problem that the computing job processing depends on the network transmission quality, and achieve the speed up.
  • the embodiments of the present application also provide a computing operation processing device, mobile equipment, and acceleration equipment to ensure the implementation and application of the foregoing method.
  • an embodiment of the present application discloses a calculation job processing method, and the method includes:
  • the mobile device obtains a computing job; wherein the first interface of the mobile device is connected to the second interface of at least one acceleration device; the first interface and the second interface adopt a preset interface protocol;
  • the mobile device invokes a write instruction matching the preset interface protocol through a management software development kit, and sends the calculation job from the first interface to the second interface;
  • the acceleration device processes the calculation job, and sends the processing result to the first interface through the second interface;
  • the mobile device invokes a read instruction that matches the preset interface protocol through the management software development kit, and obtains the processing result from the first interface.
  • the embodiment of the application discloses a computing job processing method, which is applied to a mobile device, and the method includes:
  • the first interface of the mobile device is connected to the second interface of at least one acceleration device; the first interface and the second interface adopt a preset interface protocol;
  • the read instruction matching the preset interface protocol is invoked through the management software development kit, and the processing result is obtained from the first interface.
  • the embodiment of the present application discloses a computing job processing method, which is applied to an acceleration device, and the method includes:
  • the acceleration device processes the calculation job, and sends the processing result to the first interface through the second interface.
  • the embodiment of the present application also discloses a computing task processing system, which includes:
  • a mobile device an acceleration device; a first interface of the mobile device is connected to a second interface of at least one acceleration device; the first interface and the second interface adopt a preset interface protocol;
  • the mobile device includes:
  • the first obtaining module is used to obtain calculation jobs
  • the first calling module is configured to call a write instruction matching the preset interface protocol through a management software development kit, and send the calculation job from the first interface to the second interface;
  • the second calling module is configured to call the read instruction matching the preset interface protocol through the management software development kit, and obtain the processing result from the first interface;
  • the acceleration device includes:
  • the first receiving module is configured to receive the calculation job through the second interface
  • the first processing module is configured to process the calculation job and send the processing result to the first interface through the second interface.
  • the embodiment of the present application also discloses a mobile device, and the mobile device includes:
  • the first acquisition module is configured to acquire a computing job; wherein the first interface of the mobile device is connected to the second interface of at least one acceleration device; the first interface and the second interface adopt a preset interface protocol;
  • the first calling module is configured to call a write instruction matching the preset interface protocol through a management software development kit, and send the calculation job from the first interface to the second interface;
  • the second calling module is configured to call the read instruction matching the preset interface protocol through the management software development kit, and obtain the processing result from the first interface.
  • the first acquiring module, the first calling module, the second calling module also discloses an acceleration device, and the acceleration device includes:
  • the first receiving module is configured to receive the computing job through the second interface; wherein the second interface of the acceleration device is connected to the first interface of the mobile device;
  • the first processing module is configured to accelerate the device to process the calculation job and send the processing result to the first interface through the second interface.
  • the embodiment of the present application also discloses an electronic device, including: a processor; and a memory on which executable code is stored.
  • the processor is made to execute as in the embodiment of the present application.
  • One or more of the calculation job processing methods One or more of the calculation job processing methods.
  • the embodiment of the present application also discloses one or more machine-readable media having executable code stored thereon, and when the executable code is executed, the processor is caused to execute as described in one or more of the embodiments of the present application.
  • the calculation job processing method is also disclosed.
  • the embodiments of the present application include the following advantages:
  • the mobile device sends the calculation job to the acceleration device, and the acceleration device performs independent calculation processing on the calculation job, so that the mobile device does not participate in the calculation processing process of the calculation job, which reduces the calculation job processing process.
  • the dependence on the mobile device's own software and hardware resources reduces the chance of the mobile device operating system stalling.
  • the first physical interface and the second physical interface are used for data transmission between the mobile device and the acceleration device, and the transmission process is real-time and fast, which solves the problem that the processing of computing jobs depends on the quality of network transmission.
  • this application uses a read and write instruction library that matches the current preset interface protocol, and uses the write instructions included in the read and write instruction library to trigger the mobile device to call the write interface of the operating system , The operation of sending data to the acceleration device; and the operation of using the read instructions included in the read and write instruction library to trigger the mobile device to call the read interface of the operating system and receive the calculation result sent by the acceleration device.
  • the purpose of applying acceleration devices to mobile devices using mobile operating systems is achieved.
  • Figure 1 is a schematic diagram of a computing task processing system of the present application
  • FIG. 2 is a schematic diagram of interaction of a computing task processing system of the present application
  • FIG. 3 is a flow chart of the steps of a method for processing calculation operations on the system side of the present application
  • FIG. 4 is a flow chart of the steps of a method for processing calculation tasks on the mobile device side of the present application
  • FIG. 5 is a flow chart of the steps of a method for processing calculation operations on the acceleration device side of the present application
  • FIG. 6 is a flowchart of interaction steps of a computing job processing method of the present application.
  • Figure 7 is a structural diagram of a mobile device and acceleration device of the present application.
  • FIG. 8 is a structural diagram of another mobile device and acceleration device of the present application.
  • FIG. 9 is a structural block diagram of a computing operation processing device of the present application.
  • FIG. 10 is a structural block diagram of an embodiment of a mobile device of the present application.
  • FIG. 11 is a structural block diagram of an embodiment of an acceleration device of the present application.
  • Figure 12 is a structural diagram of a computing system of the present application.
  • Figure 13 is a structural diagram of another computing system of the present application.
  • Fig. 14 is a schematic diagram of the structure of the device provided by the present application.
  • FIG. 1 a schematic diagram of a computing task processing system according to an embodiment of the present application is shown.
  • the computing job processing method provided by the embodiment of the present application can be applied to the computing job processing system.
  • the computing job processing system may include: a mobile device and an acceleration device; the mobile device includes a first interface, and the acceleration device includes a second interface.
  • any mobile operating system such as Android and IOS (iphone os) can be installed in the mobile device, and a variety of operating system interfaces are provided accordingly, so that data reading, writing, and data reading can be realized through these operating system interfaces.
  • the mobile device can also be provided with a management software development kit (SDK, Software Development Kit).
  • SDK Software Development Kit
  • the management software development kit is used to manage computing operations and implement the first interface and the second interface between the mobile device and the acceleration device Communication connection.
  • the mobile device may also include a storage module, and the storage module may store the obtained calculation job and store processing rules for processing the calculation job.
  • the processing rules may be processing rules.
  • the mobile device may be a device installed with any mobile terminal operating system such as Android and IOS, such as a smart phone or a tablet.
  • any mobile terminal operating system such as Android and IOS, such as a smart phone or a tablet.
  • the acceleration device can be a hardware device independent of the mobile device, and the acceleration device can complete the physical connection or communication connection with the first interface of the mobile device through the second interface, and the acceleration device is provided with a computing module for realizing the calculation The calculation and processing of the job.
  • the calculation module includes a processor.
  • the processor may include a CPU (central processing unit), a GPU (image processor), a digital signal processing (DSP, Digital Signal Processing) chip, an integrated circuit (ASIC, One or more of Application Specific Integrated Circuit, Coprocessor Chip, Field-Programmable Gate Array (FPGA, Field-Programmable Gate Array) chip.
  • the acceleration device is used to perform calculation processing of calculation jobs sent by the mobile device offline, achieving the effect that the calculation processing process does not occupy the software and hardware resources of the mobile device, and has greater advantages in processing speed and result response.
  • the first interface and the second interface have a certain physical structure, which can realize the physical connection between the mobile device and the acceleration device, and realize the communication connection between the mobile device and the acceleration device after a series of device handshake operations.
  • the first interface and the second interface may adopt a preset interface protocol, for example, the Universal Serial Bus (USB, Universal Serial Bus) interface protocol (Interface protocol) applied to Android mobile devices may be adopted, or applied to Lightning (Lightning) interface protocol for IOS system mobile devices.
  • the interface protocol refers to the communication methods and requirements that need to be complied with between interfaces that need to exchange information.
  • the interface protocol not only specifies the communication at the physical layer, but also specifies the requirements of the syntax layer and the semantic layer.
  • the physical connection between the mobile device and the acceleration device is realized through the fit of the physical structure between the first interface and the second interface.
  • FIG. 2 a schematic diagram of interaction of a computing job processing system according to an embodiment of the present application is shown.
  • the mobile device can perform step S1, and the mobile device obtains a calculation job.
  • calculation tasks may include data to be processed with a set capacity.
  • calculation tasks can have multiple categories according to their attribute information, such as graphics processing calculation tasks, text processing calculation tasks, etc., different types of calculation tasks can be based on different types
  • graphics processing calculation tasks can be processed by graphics classifiers, convolutional neural network models for image training, and other processing rules.
  • Text processing calculation tasks can be processed by text classifiers and convolution for text training. Neural network model and other processing rules are processed. Therefore, in the embodiment of the present application, the mobile device may preset multiple processing rules. The mobile device can determine the calculation job and the processing rule corresponding to the calculation job according to the user's selection operation. In addition, the mobile device may also determine the attribute information of the calculation job according to the acquired calculation job, and further automatically match the corresponding processing rule for the calculation job according to the attribute information.
  • a management software development kit may be preset in the mobile device for overall management of computing operations, and the management software development kit includes a calling module that can call the mobile device.
  • the monitoring interface and the authorization interface in the operating system interface are used to obtain the user's authorization through the authorization module after the acceleration device is monitored through the monitoring interface to realize the communication connection between the mobile terminal and the acceleration device.
  • the mobile device may complete the physical connection with the second interface of the acceleration device through the first interface, After the physical connection is completed, the call module of the management software development kit can be triggered to call the operation of the monitoring interface, so that the mobile device starts to monitor the connection of the external device. After the mobile device receives the device handshake data sent by the acceleration device, it further triggers the call module of the management software development kit to call the authorization interface. At this time, the mobile device can send authorization prompt information to the user, so that the user can prompt the user according to the authorization. Information is authorized. After the authorization operation is completed, the mobile device realizes a communication connection with the acceleration device, and further data interaction can be carried out between the two.
  • the mobile device can perform step S2, and the mobile device invokes the write protocol matching the preset interface protocol through the management software development kit. Input instruction to send the calculation job from the first interface to the second interface.
  • the writing and reading of data depends on the writing interface and the reading interface of the operating system of the mobile device, and , Data reading and writing need to meet the interface protocol corresponding to the first interface and the second interface.
  • the operating system In the design process of mobile operating systems such as Android/IOS, taking into account the continuous rapid update and iteration of operating systems, mobile devices, and interface protocols, the operating system will not strictly define the interface protocols corresponding to read and write operations, thereby avoiding For each update iteration, the interface protocol defined in the operating system needs to be modified.
  • the mobile device of the Android operating system can use the USB interface.
  • USB is an external bus standard used to regulate the connection and communication between the mobile device and the external device, and the USB interface can realize the " "Hot Swap" function improves convenience.
  • the USB interface standard has been extended from the first-generation USB1.1 to USB3.1.
  • type-A and type- B, type-C and other different interface types of USB interfaces are examples of USB interfaces. If you modify the architecture of the Android operating system and the defined interface protocol according to each iteration of the USB interface, it will cause a huge workload.
  • the solution based on the Android operating system includes: through the Android Debug Bridge (ADB, Android Debug Bridge) instruction library to realize the data interaction between the mobile device and the acceleration device, that is, adopt an interface protocol with the current mobile device.
  • the matched instruction library uses the write instructions and read instructions included in the instruction library to trigger the operation of calling the write interface and read interface of the operating system.
  • the ADB instruction library can be stored in the management software development kit, specifically in the platform-tools folder under the management software development kit installation directory. Because the ADB instruction library is stored in the management software development kit, it is easier to modify the instructions therein, so that when the USB interface is updated and iterated, the workload of modifying the interface protocol is reduced.
  • the terminal equipment based on Linux/Windows operating system because the interface protocol adopted by it is almost fixed, seldom update the interface protocol. Therefore, the computer equipment of Linux/Windows operating system can directly read and write interfaces in the operating system. The call to realize the data interaction between the terminal device of the Linux/Windows operating system and the external device.
  • the management software development kit included in the mobile device can be used to call the writing that matches the preset protocol. In order to manage the calling module of the software development kit according to the write instruction.
  • the call module of the management software development kit can call the write interface of the operating system according to the write instruction to perform subsequent operations of writing data to the acceleration device.
  • the data may include calculation jobs and processing rules corresponding to the calculation jobs.
  • the mobile device obtains the calculation job, it can store the calculation job in the storage module corresponding to the storage partition of the management software development kit to manage software development.
  • the toolkit manages calculation tasks.
  • processing rules are rules for how to perform calculations on calculation tasks, such as how to perform recognition calculations for images, and how to analyze user preferences for large amounts of user data.
  • the processing rule can be a mathematical model.
  • the mathematical model is a scientific or engineering model constructed using mathematical logic methods and mathematical language.
  • the mathematical model refers to the characteristics or quantitative dependence of a certain thing system, using mathematical language, generally or approximately A mathematical structure expressed by the ground, which is a pure relational structure of a certain system described with the help of mathematical symbols.
  • the mathematical model can be one or a group of algebraic equations, differential equations, difference equations, integral equations or statistical equations and combinations thereof, through which the mutual relationship or causal relationship between the variables of the system can be described quantitatively or qualitatively.
  • the mathematical model describes the behavior and characteristics of the system rather than the actual structure of the system.
  • the simulator uses machine learning and deep learning methods for model training.
  • Machine learning methods can include linear regression, decision trees, random forest, xgboost, lightgbm, etc.
  • deep learning methods can include Convolutional Neural Networks (Convolutional Neural Networks, CNN), Long Short-Term Memory (LSTM), Gated Recurrent Unit (GRU), etc.
  • the mobile device sends the calculation job and processing rules to the acceleration device, and the acceleration device performs independent processing, so that the mobile device does not participate in the calculation processing process of the calculation job, which reduces the impact of the calculation job processing process on the mobile device.
  • the acceleration device performs independent processing, so that the mobile device does not participate in the calculation processing process of the calculation job, which reduces the impact of the calculation job processing process on the mobile device.
  • the acceleration device may perform step S3, and the acceleration device receives the calculation job through the second interface.
  • the acceleration device may perform step S4.
  • the acceleration device processes the calculation job and sends the processing result to the first interface through the second interface.
  • the processor can process the calculation job corresponding to the processing rule to obtain the calculation result.
  • the processor of the acceleration device includes multiple Various types, such as CPU, GPU, etc., acceleration devices can use the corresponding type of processor for calculation processing according to the attributes of the calculation job and processing rules. For example, graphics processing calculation tasks can be processed by GPU first, and text processing calculation tasks can be The CPU is preferred for processing.
  • the mobile device may send the calculation result to the mobile device first. Send a notification to notify the mobile device to call the read interface of the operating system and prepare to receive data.
  • the mobile device may execute step S5, and the mobile device invokes a read instruction matching the preset interface protocol through the management software development kit, and obtains the processing result from the first interface.
  • the mobile device in the case that the mobile device completes the communication connection with the second interface of the acceleration device through the first interface, the mobile device can invoke the management software development kit included in the mobile device according to the notification sent by the acceleration device A read instruction that matches the preset interface protocol, so that the calling module of the management software development kit further calls the read interface of the operating system according to the read instruction to perform the operation of receiving the calculation result sent by the acceleration device.
  • the mobile device sends the calculation job to the acceleration device, and the acceleration device performs independent calculation processing on the calculation job, so that the mobile device does not participate in the calculation processing process of the calculation job, which reduces the calculation job processing process.
  • the dependence on the mobile device's own software and hardware resources reduces the chance of the mobile device operating system stalling.
  • the first physical interface and the second physical interface are used for data transmission between the mobile device and the acceleration device. The transmission process is real-time and fast, which solves the problem that the processing of computing tasks depends on the quality of network transmission.
  • this application uses a read and write instruction library that matches the current preset interface protocol, and uses the write instructions included in the read and write instruction library to trigger the mobile device to call the write interface of the operating system , The operation of sending data to the acceleration device; and the operation of using the read instructions included in the read and write instruction library to trigger the mobile device to call the read interface of the operating system and receive the calculation result sent by the acceleration device.
  • the purpose of applying acceleration devices to mobile devices using mobile operating systems is achieved.
  • FIG. 3 a flowchart of an embodiment of a computing job processing method on the system side of the present application is shown.
  • Step 101 The mobile device obtains a calculation job.
  • the first interface of the mobile device is connected to the second interface of at least one acceleration device; the first interface and the second interface adopt a preset interface protocol.
  • a calculation job may include a certain amount of data to be processed.
  • a calculation job may have multiple categories according to its attribute information, such as a graphics processing calculation job, a text processing calculation job, and the like.
  • the calculation task can be set according to actual business requirements, and the embodiment of the present application does not limit it.
  • a mobile device to obtain a computing job, such as downloading from a server, user input, or acquisition by a sensor of the mobile device, such as a camera, a gravity sensor, etc.
  • Step 102 The mobile device invokes a write instruction matching the preset interface protocol through a management software development kit, and sends the calculation job from the first interface to the second interface.
  • a management software development kit may be preset in the mobile device for overall management of computing operations, and the management software development kit includes a calling module that can call the mobile device.
  • the monitoring interface and the authorization interface in the operating system interface are used to obtain the user's authorization through the authorization module after the acceleration device is monitored through the monitoring interface to realize the communication connection between the mobile terminal and the acceleration device.
  • mobile devices can use an instruction library that matches the current preset interface protocol, and use the write instructions and read instructions included in the instruction library. , Triggers the operation of calling the write interface and read interface of the operating system, thereby avoiding the need to modify the interface protocol defined in the operating system for each update iteration, so as to make the data interaction between the mobile device and the external device more universal The purpose of transformation.
  • the instruction library can be ADB (Android Debug Bridge, Android Debug Bridge) instruction library
  • ADB instruction library can be stored in the management software development kit, specifically can be stored in the platform-tools folder under the management software development kit installation directory . Because the ADB instruction library is stored in the management software development kit, it is easier to modify the instructions in it, so that when the USB interface is updated and iterated, the workload of modifying the interface protocol is reduced.
  • the write instruction that matches the current preset interface protocol can be called through the management software development kit included in the mobile device for management
  • the calling module of the software development kit further calls the write interface of the operating system according to the write instruction to perform the operation of sending the calculation job from the first interface to the second interface.
  • the call module of the management software development kit can call the write interface of the operating system according to the write instruction to perform subsequent operations of writing data to the acceleration device.
  • the data may include calculation jobs and processing rules corresponding to the calculation jobs.
  • the mobile device obtains the calculation job, it can store the calculation job in the storage module corresponding to the storage partition of the management software development kit to manage software development.
  • the toolkit manages calculation tasks.
  • the mobile device can determine the calculation job and the processing rule corresponding to the calculation job according to the user's selection operation.
  • the mobile device may also determine the attribute information of the calculation job according to the acquired calculation job, and further automatically match the corresponding processing rule for the calculation job according to the attribute information.
  • the mobile device sends calculation jobs and processing rules to the acceleration device, and the acceleration device performs independent processing, so that the mobile device does not participate in the calculation processing process of the calculation job, and reduces the dependence of the calculation job processing process on the mobile device's own software and hardware resources.
  • Step 103 The acceleration device receives the calculation job through the second interface.
  • Step 104 The acceleration device processes the calculation job, and sends the processing result to the first interface through the second interface.
  • the processor can process the calculation job corresponding to the processing rule to obtain the calculation result.
  • the processor of the acceleration device includes multiple Various types, such as CPU, GPU, etc., acceleration devices can use the corresponding type of processor for calculation processing according to the attributes of the calculation job and processing rules. For example, graphics processing calculation tasks can be processed by GPU first, and text processing calculation tasks can be The CPU is preferred for processing.
  • the acceleration device may first send the calculation result to the mobile device. Send a notification to the mobile device to notify the mobile device to call the reading interface of the operating system and prepare to receive data.
  • Step 105 The mobile device invokes a read instruction matching the preset interface protocol through the management software development kit, and obtains the processing result from the first interface.
  • the mobile device in the case that the mobile device completes the communication connection with the second interface of the acceleration device through the first interface, the mobile device can invoke the management software development kit included in the mobile device according to the notification sent by the acceleration device A read instruction that matches the preset interface protocol, so that the calling module of the management software development kit further calls the read interface of the operating system according to the read instruction to perform the operation of receiving the calculation result sent by the acceleration device.
  • a computing job processing method includes: a mobile device acquires a computing job; wherein a first interface of the mobile device is connected to a second interface of at least one acceleration device; the first interface and the second interface The preset interface protocol is adopted; the mobile device calls the write instruction matching the preset interface protocol through the management software development kit, and sends the calculation job from the first interface to the second interface; the acceleration device receives the calculation job through the second interface; acceleration The device processes the calculation job and sends the processing result to the first interface through the second interface; the mobile device calls the read instruction matching the preset interface protocol through the management software development kit, and obtains the processing result from the first interface.
  • the mobile device sends the calculation job to the acceleration device, and the acceleration device performs independent calculation processing on the calculation job, so that the mobile device does not participate in the calculation processing process of the calculation job, and reduces the dependence of the calculation job processing process on the mobile device's own software and hardware resources , Thereby reducing the chance of the mobile device operating system stuck.
  • the first physical interface and the second physical interface are used for data transmission between the mobile device and the acceleration device, and the transmission process is real-time and fast, which solves the problem that the processing of computing jobs depends on the quality of network transmission.
  • this application uses a read and write instruction library that matches the current preset interface protocol, and uses the write instructions included in the read and write instruction library to trigger the mobile device to call the write interface of the operating system , The operation of sending data to the acceleration device; and the operation of using the read instructions included in the read and write instruction library to trigger the mobile device to call the read interface of the operating system and receive the calculation result sent by the acceleration device.
  • the purpose of applying acceleration devices to mobile devices using mobile operating systems is achieved.
  • FIG. 4 a flowchart of an embodiment of a computing job processing method on a mobile device side of the present application is shown.
  • Step 201 Obtain a calculation job.
  • step 101 For details of this step, refer to step 101 above, which will not be repeated here.
  • Step 202 Invoke a write instruction matching the preset interface protocol through a management software development kit, and send the calculation job from the first interface to the second interface.
  • step 102 For details of this step, please refer to the above step 102, which will not be repeated here.
  • Step 203 Invoke a read instruction matching the preset interface protocol through the management software development kit, and obtain the processing result from the first interface.
  • step 105 For details of this step, refer to the above step 105, which will not be repeated here.
  • a computing job processing method includes: obtaining a computing job; wherein a first interface of the mobile device is connected to a second interface of at least one acceleration device; the first interface is connected to the second interface of at least one acceleration device;
  • the second interface adopts a preset interface protocol; through a management software development kit, a write instruction that matches the preset interface protocol is called, and the calculation job is sent from the first interface to the second interface;
  • the management software development kit invokes a read instruction that matches the preset interface protocol, and obtains the processing result from the first interface.
  • the mobile device sends a calculation job to the acceleration device, and the acceleration device performs independent calculation processing on the calculation job, so that the mobile device does not participate in the calculation processing process of the calculation job, which reduces the impact of the calculation job processing process on the mobile device.
  • the dependence on its own software and hardware resources reduces the chance of the mobile device operating system stalling.
  • the first physical interface and the second physical interface are used for data transmission between the mobile device and the acceleration device, and the transmission process is real-time and fast, which solves the problem that the processing of computing jobs depends on the quality of network transmission.
  • this application uses a read and write instruction library that matches the current preset interface protocol, and uses the write instructions included in the read and write instruction library to trigger the mobile device to call the write interface of the operating system , The operation of sending data to the acceleration device; and the operation of using the read instructions included in the read and write instruction library to trigger the mobile device to call the read interface of the operating system and receive the calculation result sent by the acceleration device.
  • the purpose of applying acceleration devices to mobile devices using mobile operating systems is achieved.
  • FIG. 5 a flowchart of an embodiment of an embodiment of a computing job processing method on the acceleration device side of the present application is shown.
  • Step 301 Receive the calculation job through the second interface.
  • step 103 For details of this step, refer to the above step 103, which will not be repeated here.
  • Step 302 The acceleration device processes the calculation job, and sends the processing result to the first interface through the second interface.
  • step 104 For details of this step, refer to the above step 104, which will not be repeated here.
  • a computing job processing method includes: receiving the computing job through the second interface; an acceleration device processes the computing job, and sending the processing result to the computer through the second interface The first interface.
  • the mobile device sends a calculation job to the acceleration device, and the acceleration device performs independent calculation processing on the calculation job, so that the mobile device does not participate in the calculation processing process of the calculation job, which reduces the impact of the calculation job processing process on the mobile device.
  • the dependence on its own software and hardware resources reduces the chance of the mobile device operating system stalling.
  • the first physical interface and the second physical interface are used for data transmission between the mobile device and the acceleration device, and the transmission process is real-time and fast, which solves the problem that the processing of computing jobs depends on the quality of network transmission.
  • this application uses a read and write instruction library that matches the current preset interface protocol, and uses the write instructions included in the read and write instruction library to trigger the mobile device to call the write interface of the operating system , The operation of sending data to the acceleration device; and the operation of using the read instructions included in the read-write instruction library to trigger the mobile device to call the read interface of the operating system and receive the calculation result sent by the acceleration device.
  • the purpose of applying acceleration devices to mobile devices using mobile operating systems is achieved.
  • FIG. 6 shows a flowchart of interaction steps of a method for processing a computing job of the present application.
  • Step 401 The mobile device obtains a calculation job.
  • Step 402 After detecting the physical connection between the second interface and the first interface, the mobile device performs a first authorization operation that allows the acceleration device to perform data interaction with the mobile device.
  • the first authorization operation for the acceleration device may be performed first.
  • the acceleration device sends its own device information to the mobile device.
  • the device information includes the attributes and identification information of the acceleration device.
  • the user can see the device on the mobile device.
  • the user can perform a first authorization operation for the acceleration device.
  • the first authorization operation may include a notification bar popped up by the mobile device, asking the user whether to authorize the currently connected acceleration device. After clicking the Confirm Authorization button, the first authorization operation is completed.
  • the input and output interface 30 includes a first interface 301 provided on the mobile device 10 and a second interface 302 provided on the acceleration device 20 that matches the first interface 301.
  • the input/output interface 30 includes any one of a universal serial bus interface and a Lightning Lightning interface.
  • the first interface 301 and the second interface 302 have a certain physical structure, which can realize the physical connection between the mobile device 10 and the acceleration device 20, and after a series of device handshake operations, the mobile device 10 and the communication connection between the acceleration device 20.
  • the input/output interface 30 may include a USB interface applied to an Android system mobile device, or a Lightning interface applied to an IOS system mobile device.
  • the first interface 301 may be a groove structure
  • the second interface may be a convex structure corresponding to the modified groove structure. Through the physical structure between the first interface 301 and the second interface 302, the mobile device 10 and Accelerate the physical connection between the devices 20.
  • the first interface 301 may also be set on the acceleration device 20, and the second interface 302 may be set on the mobile device 10, which is not limited in this application. .
  • Step 403 The mobile device sends the acceleration device firmware to the acceleration device through the management software development kit.
  • the firmware is a program written into EPROM (Erasable and Programmable Read Only Memory) or EEPROM (Electrically Erasable and Programmable Read Only Memory).
  • the firmware can also be referred to as the internal storage of the device.
  • the device "driver”. Through firmware, the operating system of the mobile device can accelerate the operation of the device in accordance with the standard device driver.
  • the mobile device must first obtain the acceleration device firmware according to the first authorized operation.
  • the acceleration device firmware can be downloaded via the Internet or can be obtained by the mobile device through other data copy methods. It can be preset in the SDK file. It should be noted that the acceleration device firmware is used to provide an operating system that supports processing the computing job.
  • the acceleration device firmware can be sent to the acceleration device through the management software development kit.
  • step 403 may specifically include:
  • the mobile device sends the acceleration device firmware matching the attribute information to the acceleration device through the management software development kit according to the attribute information of the calculation job.
  • the corresponding acceleration device firmware in order to optimize the acceleration calculation function of the acceleration device, can be set for the acceleration device according to the calculation jobs that the acceleration device frequently calculates and processes and the attribute information of the processing rules adopted. For computing requirements, select the corresponding acceleration device firmware from the mobile device and send it to the acceleration device for installation. In addition, after the acceleration device firmware is installed, the acceleration device firmware can always use the acceleration device firmware to perform calculation operations, or a new acceleration device firmware can replace the original acceleration device firmware, which is not limited in this application.
  • graphics processing calculation tasks preferably use GPU for calculation processing
  • text processing calculation tasks preferably use CPU for calculation processing
  • graphics processing calculation tasks are processed in acceleration equipment
  • the acceleration device firmware that matches the GPU can be used; when the acceleration device is processing text processing computing tasks, in order to optimize the system environment in which the CPU is located, the acceleration device firmware that matches the CPU can be used. You can select the specific acceleration device firmware type according to your needs.
  • Step 404 the acceleration device installs the acceleration device firmware; the acceleration device firmware is used to provide an operating system that supports processing the computing job.
  • the acceleration device may install the received acceleration device firmware. If the acceleration device has been installed with the acceleration device firmware, the acceleration device may replace the received new acceleration device firmware with the original acceleration device firmware.
  • Step 405 In the case that the acceleration device has installed the acceleration device firmware and the restart is complete, perform a second authorization operation that allows the acceleration device to perform data interaction with the mobile device.
  • the firmware image can be stored in the flash memory in the form of a file, and then the acceleration device performs driver initialization (restarted). Load into the internal memory of the acceleration device. In this way, it is convenient to upgrade the firmware.
  • the acceleration device installs new acceleration device firmware.
  • the acceleration device needs to perform a device reset (reset) operation.
  • the acceleration device will find the new acceleration device firmware, and load and install the new acceleration device. Accelerated device firmware.
  • the acceleration device may send a firmware installation success notification to the mobile device to inform it that the acceleration device firmware is installed, and the mobile device receives the firmware installation success notification Later, further authorization confirmation can be performed.
  • the second authorization operation may include the mobile device popping up a notification bar asking the user whether to authorize the currently connected acceleration device, and the user completes the second authorization operation after clicking the authorization confirmation button.
  • the firmware can be pre-installed in the acceleration device, and then the calculation job sent to the acceleration device is specified as a calculation job that the firmware can support processing. In this case, steps 403-405 Can be omitted.
  • the step of performing the first authorization operation or the second authorization operation that allows the acceleration device to perform data interaction with the mobile device may specifically include:
  • Sub-step A1 The mobile device invokes the device monitoring interface of the operating system of the mobile device through the management software development kit.
  • the connection between the acceleration device and the mobile device includes a physical connection and a communication connection.
  • the physical connection between the mobile device 10 and the acceleration device 20 can be realized through the fit of the physical structure between the first interface 301 and the second interface 302.
  • the mobile device and the acceleration device can complete a series of device handshake operations to achieve the purpose of completing the communication connection between the mobile device and the acceleration device.
  • data interaction can be carried out between the mobile device and the acceleration device.
  • the mobile device can determine that the physical connection is complete by detecting the electrical signal on the first interface. And trigger the management software development kit to call the device monitoring interface of the operating system of the mobile device.
  • the acceleration device needs to perform a device restart operation during the process of installing the acceleration device firmware.
  • the acceleration device will undergo a shutdown operation.
  • the mobile device will be disconnected from the acceleration device.
  • the mobile device can monitor the physical connection with the acceleration device based on the pin status of the interface, because the acceleration device is not in the process of restarting the device. Disconnect the physical connection with the mobile device, the pin status of the mobile device has not changed, and call the device monitoring interface of the mobile device's operating system through the management software development kit, and perform the monitoring operation on the external device of the mobile device again .
  • Sub-step A2 when the mobile device obtains the peripheral component interconnection standard identifier of the acceleration device through the device monitoring interface, grant the acceleration device to allow the acceleration device and the mobile device to perform Permission for data interaction.
  • the device monitoring interface in the mobile device operating system interface can monitor the connection status of the external device of the mobile device in real time.
  • the acceleration The device sends its own Peripheral Component Interconnect (PCI) identification to the mobile device.
  • PCI Peripheral Component Interconnect
  • the acceleration The device can be used as a PCI device of the mobile device. In order to indicate the identity of the acceleration device, a corresponding PCI identification can be generated for the acceleration device.
  • the acceleration device can send the PCI identification to the mobile device, and the mobile device receives the PCI identification of the acceleration device Then, the acceleration device is given the permission to allow the acceleration device to perform data interaction with the mobile device.
  • Step 406 The mobile device invokes a write instruction matching a preset interface protocol through the management software development kit, and sends the processing rule corresponding to the calculation job from the first interface to the second interface.
  • the processing rule may be a mathematical model for processing calculation tasks.
  • calculation jobs can have multiple categories according to their attribute information, such as graphics processing calculation jobs, text processing calculation jobs, etc.
  • different types of calculation jobs can be processed according to different types of processing rules, such as graphics processing calculation jobs can give priority to graphics Processing rules such as classifiers and convolutional neural network models are processed
  • text processing calculation tasks can be processed by processing rules such as text classifiers and convolutional neural network models. Therefore, in an implementation manner in this embodiment of the application ,
  • the mobile device can determine the calculation job and the processing rules corresponding to the calculation job according to the user's selection operation.
  • the mobile device may also determine the attribute information of the calculation job according to the acquired calculation job, and further automatically match the corresponding processing rule for the calculation job according to the attribute information.
  • the mobile device can call the write instruction matching the preset interface protocol through the management software development kit, and send the processing rule corresponding to the calculation job from the first interface to the second interface. interface.
  • Step 407 The acceleration device receives the processing rule through the second interface and writes the processing rule to a preset location of the acceleration device.
  • the acceleration device receives the processing rule through the second interface, and can write the processing rule into the processor of the acceleration device.
  • Step 408 The mobile device invokes a write instruction that matches the preset interface protocol through the management software development kit, and sends the calculation job from the first interface to the second interface.
  • step 102 For details of this step, please refer to the above step 102, which will not be repeated here.
  • step 408 may specifically include:
  • sub-step 4081 when the first interface of the mobile device is connected to the second interface of the at least two acceleration devices, the mobile device determines that the load value of the at least two acceleration devices is less than or equal to a preset Threshold target acceleration device.
  • FIG. 8 a structural diagram of another mobile device and acceleration device of the present application is shown.
  • the embodiment of the present application may further include a multi-port repeater (HUB).
  • the HUB 40 includes an input terminal 401 and an output terminal 402 including multiple output ports 4021.
  • the HUB40 is a multi-port transponder, that is, the HUB40 is used as a USB interface expansion dock, and one or more acceleration devices 20 can be installed on each output port 4021 of the output terminal 402, and the HUB40
  • the input terminal 401 receives the data sent by the mobile device 10 through the first interface 301, and sends the data to each acceleration device 20 through the output port 4021.
  • the user can view the current load value of each acceleration device from the interface of the mobile device, and perform selection operations according to their own needs, and select multiple acceleration devices One or more target acceleration devices whose load value is less than or equal to a preset threshold.
  • the mobile device can also automatically determine the number of target acceleration devices required according to the calculation job processing volume and data volume, and select target acceleration devices with load values less than or equal to a preset threshold among multiple acceleration devices.
  • the mobile device invokes a write instruction matching the preset interface protocol through the management software development kit, and sends the calculation job from the first interface to the second interface.
  • the mobile device can control multiple acceleration devices to perform calculation processing for the calculation job, and the management software development kit
  • the calculation job and the processing rules corresponding to the calculation job are sent to multiple target acceleration devices through the first interface, the second interface and the HUB respectively for processing, achieving an acceleration effect that is multiple times that of one acceleration device.
  • Step 409 The acceleration device receives the calculation job through the second interface.
  • step 103 For details of this step, refer to the above step 103, which will not be repeated here.
  • Step 410 The acceleration device processes the calculation job, and sends the processing result to the first interface through the second interface.
  • step 104 For details of this step, refer to the above step 104, which will not be repeated here.
  • step 410 may specifically include:
  • Sub-step 4101 in a case where the target acceleration device includes at least two acceleration devices, the at least two acceleration devices receive a sharing instruction sent by the mobile device.
  • the target acceleration device When the target acceleration device finishes writing the processing rules to the processor, the target acceleration device will send a model write success notification to the mobile device. After the mobile device receives the model write success notification sent by all target acceleration devices, it can send a share The instruction is sent to all target acceleration devices, and the shared instruction may include the PCI identification of each target acceleration device.
  • the at least two target acceleration devices share the computing resources of the at least two target acceleration devices according to the sharing instruction, and process the calculation job to obtain a corresponding calculation result.
  • each target acceleration device can obtain the resource addresses of other target acceleration devices according to the PCI identifiers of other target acceleration devices included in the sharing instruction, so as to achieve the purpose of sharing the computing resources of all target acceleration devices, so that the Acceleration equipment can coordinate and schedule the software and hardware resources of all target acceleration equipment to process a computing job, which greatly improves the efficiency of computing processing.
  • the resource address of the acceleration device may include a software resource address and a hardware resource address.
  • Software resource addresses can include: variables, tables, queues, etc.
  • the hardware resource address can include a memory address. For example, you can specify the memory of one or more target acceleration devices as a shared storage area, and notify all target acceleration devices of the memory address of the one or more target acceleration devices, so that all target acceleration devices are accelerated Communication between devices can be realized by reading and writing data in the shared storage area.
  • Shared memory allows convenient process communication at the fastest speed. System calls are only needed to establish a shared memory area. In the future, all shared memory accesses are processed as conventional memory accesses.
  • all target acceleration devices can read the processing progress and processing data of the computing job from the shared storage area, and write the processing data obtained by their own processors to the shared storage area until they get Calculation results.
  • the mobile device can also send multiple calculation jobs to multiple acceleration devices for processing.
  • the process of the acceleration device can be hibernated, and when the calculation job is received again , The acceleration device can resume the process and perform calculation processing.
  • Step 411 The mobile device invokes a read instruction matching the preset interface protocol through the management software development kit, and obtains the processing result from the first interface.
  • step 105 For details of this step, refer to the above step 105, which will not be repeated here.
  • step 406 it may further include:
  • Step B1 The mobile device provides an input interface for processing rules.
  • Step B2 The mobile device receives the processing rule through the input interface.
  • processing rules such as image classification, detection, etc.
  • the user can choose according to his needs; when these existing processing rules cannot meet the requirements, the user can Add and use expanded processing rules through the input interface of the mobile device to provide processing rules.
  • a computing job processing method includes: a mobile device acquires a computing job; wherein a first interface of the mobile device is connected to a second interface of at least one acceleration device; the first interface and the second interface The preset interface protocol is adopted; the mobile device calls the write instruction matching the preset interface protocol through the management software development kit, and sends the calculation job from the first interface to the second interface; the acceleration device receives the calculation job through the second interface; acceleration The device processes the calculation job and sends the processing result to the first interface through the second interface; the mobile device calls the read instruction matching the preset interface protocol through the management software development kit, and obtains the processing result from the first interface.
  • the mobile device sends computing jobs to the acceleration device.
  • the mobile device sends the calculation job to the acceleration device, and the acceleration device performs independent calculation processing on the calculation job, so that the mobile device does not participate in the calculation processing process of the calculation job, and reduces the dependence of the calculation job processing process on the mobile device's own software and hardware resources , Thereby reducing the chance of the mobile device operating system stuck.
  • the first physical interface and the second physical interface are used for data transmission between the mobile device and the acceleration device, and the transmission process is real-time and fast, which solves the problem that the processing of computing jobs depends on the quality of network transmission.
  • this application uses a read and write instruction library that matches the current preset interface protocol, and uses the write instructions included in the read and write instruction library to trigger the mobile device to call the write interface of the operating system , The operation of sending data to the acceleration device; and the operation of using the read instructions included in the read and write instruction library to trigger the mobile device to call the read interface of the operating system and receive the calculation result sent by the acceleration device.
  • the purpose of applying acceleration devices to mobile devices using mobile operating systems is achieved.
  • this embodiment also provides a computing job processing system, a mobile device, and an acceleration device.
  • FIG. 9 a structural block diagram of an embodiment of a computing job processing system according to the present application is shown, which may specifically include the following modules:
  • the mobile device 500 includes:
  • the first obtaining module 510 is used to obtain a calculation job
  • the first calling module 520 is configured to call a write instruction matching the preset interface protocol through a management software development kit, and send the calculation job from the first interface to the second interface;
  • the second invoking module 530 is configured to invoke a read instruction matching the preset interface protocol through the management software development kit, and obtain the processing result from the first interface;
  • the acceleration device 600 includes:
  • the first receiving module 610 is configured to receive the calculation job through the second interface
  • the first processing module 620 is configured to process the calculation job and send the processing result to the first interface through the second interface.
  • the first calling module 520 includes:
  • a load determination submodule configured to determine that the load value in at least two acceleration devices is less than or equal to a preset threshold when the first interface of the mobile device is connected to the second interfaces of at least two acceleration devices Target acceleration equipment;
  • the job sending sub-module is configured to call a write instruction matching the preset interface protocol through the management software development kit, and send the calculation job from the first interface to the second interface.
  • the mobile device 500 further includes:
  • a sharing instruction module configured to receive a sharing instruction sent by the mobile device by the at least two acceleration devices when the target acceleration device includes at least two;
  • the first processing module 504 includes:
  • the sharing calculation sub-module is configured to share the calculation resources of the at least two target acceleration devices according to the sharing instruction, and process the calculation job to obtain a corresponding calculation result.
  • the mobile device further includes:
  • the first authorization module is configured to execute the first authorization for allowing the acceleration device to exchange data with the mobile device after the mobile device detects the physical connection between the second interface and the first interface operating.
  • the mobile device 500 further includes:
  • the firmware sending module includes:
  • the selection sub-module is used for the mobile device to send the acceleration device firmware matching the attribute information to the acceleration device through the management software development kit according to the attribute information of the calculation job.
  • the acceleration device 600 further includes:
  • the mobile device 500 further includes:
  • the second authorization module is configured to perform a second authorization operation that allows the acceleration device to interact with the mobile device when the acceleration device firmware is installed and the restart is complete.
  • the first authorization module or the second authorization module includes:
  • the monitoring sub-module is used to call the device monitoring interface of the operating system of the mobile device through the management software development kit;
  • the permission setting sub-module is used for granting the acceleration device to allow the acceleration device to perform data with the mobile device when the peripheral component interconnection standard identifier of the acceleration device is obtained through the device monitoring interface Permission to interact.
  • the mobile device 500 further includes:
  • a rule sending module configured to call a write instruction matching a preset interface protocol through the management software development kit, and send the processing rule corresponding to the calculation job from the first interface to the second interface;
  • the acceleration device 600 further includes:
  • the rule writing module is used for the acceleration device to receive the processing rule through the second interface and write the processing rule to a preset location of the acceleration device.
  • the mobile device 500 further includes:
  • the rule interface module is used for the mobile device to provide an input interface for processing rules
  • the rule receiving module is used for the mobile device to receive the processing rule through the input interface.
  • a mobile device sends a computing job to an acceleration device.
  • the mobile device sends the calculation job to the acceleration device, and the acceleration device performs independent calculation processing on the calculation job, so that the mobile device does not participate in the calculation processing process of the calculation job, and reduces the dependence of the calculation job processing process on the mobile device's own software and hardware resources , Thereby reducing the chance of the mobile device operating system stuck.
  • the first physical interface and the second physical interface are used for data transmission between the mobile device and the acceleration device, and the transmission process is real-time and fast, which solves the problem that the processing of computing jobs depends on the quality of network transmission.
  • this application uses a read and write instruction library that matches the current preset interface protocol, and uses the write instructions included in the read and write instruction library to trigger the mobile device to call the write interface of the operating system , The operation of sending data to the acceleration device; and the operation of using the read instructions included in the read and write instruction library to trigger the mobile device to call the read interface of the operating system and receive the calculation result sent by the acceleration device.
  • the purpose of applying acceleration devices to mobile devices using mobile operating systems is achieved.
  • FIG. 10 shows a structural block diagram of an embodiment of a mobile device of the present application, which may specifically include the following modules:
  • the first acquiring module 510 is configured to acquire a computing job; wherein the first interface of the mobile device is connected to the second interface of at least one acceleration device; the first interface and the second interface adopt a preset interface protocol;
  • the first calling module 520 is configured to call a write instruction matching the preset interface protocol through a management software development kit, and send the calculation job from the first interface to the second interface;
  • the second invoking module 530 is configured to invoke a read instruction matching the preset interface protocol through the management software development kit, and obtain the processing result from the first interface.
  • the mobile device sends the calculation job to the acceleration device, and the acceleration device performs independent calculation processing on the calculation job, so that the mobile device does not participate in the calculation process of the calculation job, which reduces the calculation job.
  • the processing process depends on the software and hardware resources of the mobile device itself, thereby reducing the chance of the mobile device operating system stalling.
  • the first physical interface and the second physical interface are used for data transmission between the mobile device and the acceleration device, and the transmission process is real-time and fast, which solves the problem that the processing of computing jobs depends on the quality of network transmission.
  • this application uses a read and write instruction library that matches the current preset interface protocol, and uses the write instructions included in the read and write instruction library to trigger the mobile device to call the write interface of the operating system , The operation of sending data to the acceleration device; and the operation of using the read instructions included in the read and write instruction library to trigger the mobile device to call the read interface of the operating system and receive the calculation result sent by the acceleration device.
  • the purpose of applying acceleration devices to mobile devices using mobile operating systems is achieved.
  • FIG. 11 a structural block diagram of an embodiment of an acceleration device of the present application is shown, which may specifically include the following modules:
  • the first receiving module 610 is configured to receive the computing job through the second interface; wherein the second interface of the acceleration device is connected to the first interface of the mobile device;
  • the first processing module 620 is configured to accelerate the device to process the calculation job and send the processing result to the first interface through the second interface.
  • the mobile device sends the calculation job to the acceleration device, and the acceleration device performs independent calculation processing on the calculation job, so that the mobile device does not participate in the calculation process of the calculation job, which reduces the calculation job.
  • the processing process depends on the software and hardware resources of the mobile device itself, thereby reducing the chance of the mobile device operating system stalling.
  • the first physical interface and the second physical interface are used for data transmission between the mobile device and the acceleration device, and the transmission process is real-time and fast, which solves the problem that the processing of computing jobs depends on the quality of network transmission.
  • this application uses a read and write instruction library that matches the current preset interface protocol, and uses the write instructions included in the read and write instruction library to trigger the mobile device to call the write interface of the operating system , The operation of sending data to the acceleration device; and the operation of using the read instructions included in the read and write instruction library to trigger the mobile device to call the read interface of the operating system and receive the calculation result sent by the acceleration device.
  • the purpose of applying acceleration devices to mobile devices using mobile operating systems is achieved.
  • FIG. 12 there is shown a structural diagram of an embodiment of a computing system of the present application, which may specifically include: a mobile device 50 and an acceleration device 70 for accelerating computing operations of the mobile device 50; the mobile device 50 includes a first interface 601.
  • the acceleration device 70 includes a second interface 602; the first interface 601 is connected to the second interface 602, and the acceleration device 70 accelerates the computing operation of the mobile device 50 through the connection between the first interface 601 and the second interface 602.
  • the mobile device is installed with an Android system or an IOS system.
  • the mobile device 50 may run mobile terminal operating systems such as Android (Android) and IOS (iphone os), and correspondingly provide multiple operating system interfaces, so that these operating system interfaces , To achieve data read and write, equipment monitoring, authorization and other operations.
  • the mobile device 50 may also be provided with a management software development kit (SDK, Software Development Kit), and the management SDK is used to manage computing operations and to implement a communication connection between the mobile device 50 and the acceleration device 70.
  • SDK Software Development Kit
  • first interface 601 and the second interface 602 have a certain physical structure, which can realize the physical connection between the mobile device 50 and the acceleration device 70, and after a series of device handshaking operations, the mobile device 50 and the acceleration device can be realized Communication connection between 70.
  • first interface 601 provided on the mobile device 50 and the second interface 602 provided on the acceleration device 70 and connected to the second processor 701 are connected through the physical structure between the first interface 601 and the second interface 602. Fit, the physical connection between the mobile device 50 and the acceleration device 70 is realized.
  • the acceleration device 70 can be a hardware device independent of the mobile device 50, and the acceleration device 70 can complete the physical connection or communication connection with the mobile device 50 through the first interface 601 and the second interface 602, and the acceleration device 70
  • a second processor 701 may be provided to implement calculation processing for calculation tasks.
  • the processor may include CPU, GPU, Digital Signal Processing (DSP, Digital Signal Processing) chips, and integrated circuits (ASIC, Application Specific Integrated Circuit). ), one or more of co-processor chips, Field-Programmable Gate Array (FPGA, Field-Programmable Gate Array) chips.
  • the acceleration device 70 is used to perform the calculation processing of the calculation job sent by the mobile device 50 offline, so as to achieve the effect that the calculation processing process does not occupy the software and hardware resources of the mobile device, and has greater processing speed and result response.
  • the computing system includes: a mobile device and an acceleration device for accelerating the computing operation of the mobile device; the mobile device includes a first interface, and the acceleration device includes a first interface. A second interface; the first interface is connected to the second interface, and the acceleration device accelerates the computing operation of the mobile device through the connection between the first interface and the second interface.
  • the mobile device can send the calculation job to the acceleration device through the input and output interface, and the acceleration device performs independent calculation and processing of the calculation job, which reduces the dependence of the processing process of the calculation job on the software and hardware resources of the mobile device, thereby reducing The chance of a mobile device operating system stalling.
  • physical input and output interfaces are used for data transmission between mobile devices and acceleration devices, and the transmission process is real-time and fast, which solves the problem that the processing of computing jobs depends on the quality of network transmission.
  • FIG. 13 a structural diagram of another embodiment of a computing system of the present application is shown, and the system further includes:
  • USB hub 80 includes a third interface 801 and multiple fourth interfaces 802; the third interface 801 is connected to the first interface 601, the fourth interface 802 is used to set one or more acceleration devices 70, and the fourth The interface 802 is used to connect with the second interface 602.
  • the USB hub 80 is a multi-port repeater, that is, the USB hub 80 is used as a USB interface expansion dock, and one or more acceleration devices can be installed on each fourth interface 802 of the output terminal 802. 70, and the USB hub 80 receives the data sent by the mobile device 50 through the first interface 601 through its third interface 801, and sends the data to each acceleration device 70 through the fourth interface 802.
  • the user can view the current load value of each acceleration device 70 from the interface of the mobile device 50, and make a selection according to their own needs.
  • one or more target acceleration devices with a load value less than or equal to a preset threshold among the multiple acceleration devices 70 are selected.
  • the mobile device 50 can also automatically determine the number of target acceleration devices required according to the processing volume and data volume of the calculation job, and select target acceleration devices with load values less than or equal to a preset threshold among multiple acceleration devices 70.
  • the mobile device 50 can control multiple acceleration devices 70 through the USB hub 80 to perform calculation processing for the calculation job, and manage the SDK
  • the calculation task and the mathematical model corresponding to the calculation task are sent to multiple target acceleration devices through the first interface 601 and the second interface 602 and the USB hub 80 respectively for processing, achieving an acceleration effect that is multiple times that of one acceleration device 70.
  • the first interface and the second interface include at least one of a universal serial bus interface and a lightning interface.
  • the universal serial bus interface includes at least one of a USB Type A interface, a USB Type B interface, and a USB Type C interface.
  • USB is an external bus standard used to regulate the connection and communication between mobile devices and external devices, and the USB interface can realize the "hot plug" function between the mobile device and the acceleration device, which improves the convenience.
  • the USB interface standard has been extended from the first generation USB1.1 to USB3.1.
  • type-A and type- B, type-C and other different interface types of USB interfaces are examples of USB interfaces.
  • the mobile device 50 further includes: a first processor 501 and a first memory 502; the acceleration device 70 includes at least one second processor 701 and a second memory 702;
  • the first processor 501 is connected to the first interface 601, and the first memory 502 is connected to the first processor 201;
  • the second processor 701 is connected to the second interface 602, and the second memory 702 is connected to the second processor 701.
  • the second processor includes: an image processor and/or a central processing unit.
  • the first memory 502 may store the obtained calculation task and store a mathematical model used for processing the calculation task.
  • the mobile device 50 may store the calculation job in the storage partition corresponding to the management SDK in the first memory 502, so that the management SDK can manage the calculation job.
  • the second memory 702 may be used to store the calculation job received by the acceleration device 70 and the corresponding mathematical model.
  • the target acceleration device can obtain the PCI identification of other target acceleration devices, and further find the resource addresses of other target acceleration devices to achieve sharing
  • the purpose of the calculation process of all target acceleration devices is to enable all target acceleration devices to coordinately schedule the software and hardware resources of all target acceleration devices to perform a processing process for a calculation job, which greatly improves calculation processing efficiency.
  • the resource address of the acceleration device may include a software resource address and a hardware resource address.
  • Software resource addresses can include: variables, tables, queues, etc.
  • the hardware resource address may include a memory address.
  • the second memory 702 of one or more target acceleration devices may be designated as a shared storage area, and the address of the second memory 702 of the one or more target acceleration devices may be notified to all target acceleration devices. Device, so that all target acceleration devices can realize communication by reading and writing data in the shared storage area. Shared memory allows convenient process communication at the fastest speed. System calls are only needed to establish a shared memory area. In the future, all shared memory accesses are processed as conventional memory accesses.
  • all target acceleration devices can read the processing progress and processing data of the computing job from the shared storage area, and write the processing data obtained by the second processor 701 processing the computing job into the shared storage Area until the calculation result is obtained.
  • the computing system includes: a mobile device and an acceleration device for accelerating the computing operation of the mobile device; the mobile device includes a first interface, and the acceleration device includes a first interface. A second interface; the first interface is connected to the second interface, and the acceleration device accelerates the computing operation of the mobile device through the connection between the first interface and the second interface.
  • the mobile device can send the calculation job to the acceleration device through the input and output interface, and the acceleration device performs independent calculation and processing of the calculation job, which reduces the dependence of the processing process of the calculation job on the software and hardware resources of the mobile device, thereby reducing The chance of a mobile device operating system stalling.
  • physical input and output interfaces are used for data transmission between mobile devices and acceleration devices, and the transmission process is real-time and fast, which solves the problem that the processing of computing jobs depends on the quality of network transmission.
  • the embodiment of the present application also provides a non-volatile readable storage medium, the storage medium stores one or more modules (programs), when the one or more modules are applied to a device, the device can execute Instructions for each method step in the embodiment of this application.
  • the embodiments of the present application provide one or more machine-readable media with instructions stored thereon, which when executed by one or more processors, cause an electronic device to execute the methods described in one or more of the above embodiments.
  • the electronic device includes a server (cluster), mobile device, terminal device, etc.
  • the embodiments of the present disclosure may be implemented as a device that uses any appropriate hardware, firmware, software, or any combination thereof to perform a desired configuration.
  • the device may include electronic devices such as servers (clusters), mobile devices, and terminal devices.
  • Figure 14 schematically shows an exemplary apparatus 1000 that can be used to implement the various embodiments described in this application.
  • FIG. 14 shows an exemplary apparatus 1000 having one or more processors 1002, a control module (chipset) 1004 coupled to at least one of the processor(s) 1002 , The memory 1006 coupled to the control module 1004, non-volatile memory (NVM)/storage device 1008 coupled to the control module 1004, one or more input/output devices 1010 coupled to the control module 1004, and The network interface 1012 is coupled to the control module 1004.
  • processors 1002 a control module (chipset) 1004 coupled to at least one of the processor(s) 1002
  • the memory 1006 coupled to the control module 1004, non-volatile memory (NVM)/storage device 1008 coupled to the control module 1004, one or more input/output devices 1010 coupled to the control module 1004, and
  • NVM non-volatile memory
  • the network interface 1012 is coupled to the control module 1004.
  • the processor 1002 may include one or more single-core or multi-core processors, and the processor 1002 may include any combination of general-purpose processors or special-purpose processors (such as graphics processors, application processors, baseband processors, etc.).
  • the apparatus 1000 can be used as the server (cluster), mobile device, terminal device and other devices described in the embodiments of the present application.
  • the apparatus 1000 may include one or more computer-readable media having instructions 1014 (for example, the memory 1006 or the NVM/storage device 1008) and be configured to be combined with the one or more computer-readable media
  • control module 1004 may include any suitable interface controller to provide any suitable interface controller to at least one of the processor(s) 1002 and/or any suitable device or component in communication with the control module 1004. Interface.
  • the control module 1004 may include a memory controller module to provide an interface to the memory 1006.
  • the memory controller module may be a hardware module, a software module, and/or a firmware module.
  • the memory 1006 may be used to load and store data and/or instructions 1014 for the device 1000, for example.
  • the memory 1006 may include any suitable volatile memory, for example, a suitable DRAM.
  • the memory 1006 may include a double data rate type quad synchronous dynamic random access memory (DDR4 SDRAM).
  • DDR4 SDRAM double data rate type quad synchronous dynamic random access memory
  • control module 1004 may include one or more input/output controllers to provide interfaces to the NVM/storage device 1008 and the input/output device(s) 1000.
  • NVM/storage device 1008 may be used to store data and/or instructions 1014.
  • NVM/storage device 1008 may include any suitable non-volatile memory (e.g., flash memory) and/or may include any suitable non-volatile storage device(s) (e.g., one or more hard drives (HDD), one or more compact disc (CD) drives and/or one or more digital versatile disc (DVD) drives).
  • HDD hard drives
  • CD compact disc
  • DVD digital versatile disc
  • the NVM/storage device 1008 may include storage resources that are physically part of the device on which the apparatus 1000 is installed, or it may be accessed by the device and may not necessarily be a part of the device.
  • the NVM/storage device 1008 can be accessed via the input/output device(s) 1000 via the network.
  • the input/output device(s) 1000 may provide an interface for the device 1000 to communicate with any other suitable devices.
  • the input/output device 1000 may include communication components, audio components, sensor components, and the like.
  • the network interface 1002 can provide an interface for the device 1000 to communicate through one or more networks, and the device 1000 can communicate with one or more of the wireless network standards and/or protocols according to any of the one or more wireless network standards and/or protocols.
  • the components perform wireless communication, such as accessing wireless networks based on communication standards, such as WiFi, 2G, 3G, 4G, etc., or a combination of them for wireless communication.
  • At least one of the processor(s) 1002 may be packaged with the logic of one or more controllers (eg, memory controller modules) of the control module 1004.
  • at least one of the processor(s) 1002 may be packaged with the logic of one or more controllers of the control module 1004 to form a system in package (SiP).
  • SiP system in package
  • at least one of the processor(s) 1002 may be integrated with the logic of one or more controllers of the control module 1004 on the same mold.
  • at least one of the processor(s) 1002 may be integrated with the logic of one or more controllers of the control module 1004 on the same mold to form a system on chip (SoC).
  • SoC system on chip
  • the apparatus 1000 may be, but is not limited to, a terminal device such as a server, a desktop computing device, or a mobile computing device (for example, a laptop computing device, a handheld computing device, a tablet computer, a netbook, etc.).
  • the device 1000 may have more or fewer components and/or different architectures.
  • the device 1000 includes one or more cameras, keyboards, liquid crystal display (LCD) screens (including touchscreen displays), non-volatile memory ports, multiple antennas, graphics chips, application specific integrated circuits ( ASIC) and speakers.
  • LCD liquid crystal display
  • ASIC application specific integrated circuits
  • the embodiment of the present application provides a server, including: one or more processors; and, one or more machine-readable media on which instructions are stored, when executed by the one or more processors, make The server executes the data processing method described in one or more of the embodiments of the present application.
  • An embodiment of the present application provides an electronic device, including: one or more processors; and, executable code is stored thereon, and when the executable code is executed, the processor is caused to execute a computing job processing method .
  • the embodiments of the present application provide one or more machine-readable media on which executable code is stored, and when the executable code is executed, the processor is caused to execute the computing job processing method.
  • the description is relatively simple.
  • the description of the method embodiment since it is basically similar to the method embodiment, the description is relatively simple.
  • the description of the method embodiment please refer to the description of the method embodiment.
  • These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing terminal equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
  • the instruction device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Telephone Function (AREA)

Abstract

本申请实施例提供了一种计算作业处理方法、***、移动设备及加速设备,包括:移动设备获取计算作业;其中,移动设备的第一接口与至少一个加速设备的第二接口连接;移动设备通过写入指令,将计算作业由第一接口发送至第二接口;加速设备通过第二接口接收计算作业;加速设备对计算作业进行处理,并将处理结果通过第二接口发送至第一接口;移动设备通过读取指令,从第一接口获取处理结果。本申请中,降低了计算作业处理过程对移动设备自身软硬件资源的依赖,以及解决了计算作业处理依赖于网络传输质量的问题,并达到了将加速设备应用到采用移动端操作***的移动设备中的目的。

Description

计算作业处理方法、***、移动设备及加速设备
本申请要求2019年04月29日递交的申请号为201910357589.3、发明名称为“计算作业处理方法、***、移动设备及加速设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别是涉及一种计算作业处理方法、***、移动设备及加速设备。
背景技术
随着人工智能技术的发展和终端设备硬件性能的不断改进,终端设备可以基于处理规则,实现对大批量计算作业的计算处理,拓展了人工智能技术的应用场景。
目前,终端设备实现对计算作业的加速处理,通常具有三种方式,方式一,直接通过终端设备自身的中央处理器(CPU,Central ProcessingUnit)或图形处理器(GPU,GraphicsProcessingUnit)实现对计算作业的计算处理。方式二,终端设备在接收到计算作业后,将计算作业通过网络发送至云端服务器,由云端服务器进行对计算作业的计算处理,并将计算结果反馈至终端设备。
对于Linux/Windows操作***的终端设备,但是,方式一中,终端设备直接进行计算作业处理,会严重消耗终端设备的软硬件资源,造成终端设备***卡顿,影响用户体验。方案二中,计算作业处理依赖于网络传输质量,且传输过程较为耗时,无法做到实时的计算处理。
发明内容
本申请实施例提供了一种计算作业处理方法,以使得降低了计算作业处理过程对移动设备自身软硬件资源的依赖,以及解决了计算作业处理依赖于网络传输质量的问题,并达到了将加速设备应用到采用移动端操作***的移动设备中的目的。
相应的,本申请实施例还提供了一种计算作业处理装置、移动设备及加速设备,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种计算作业处理方法,所述的方法包括:
移动设备获取计算作业;其中,所述移动设备的第一接口与至少一个加速设备的第 二接口连接;所述第一接口和所述第二接口采用预设接口协议;
所述移动设备通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口;
所述加速设备通过所述第二接口接收所述计算作业;
所述加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口;
所述移动设备通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果。
本申请实施例公开了一种计算作业处理方法,应用于移动设备,所述的方法包括:
获取计算作业;其中,所述移动设备的第一接口与至少一个加速设备的第二接口连接;所述第一接口和所述第二接口采用预设接口协议;
通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口;
通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果。
本申请实施例公开了一种计算作业处理方法,应用于包括加速设备,所述的方法包括:
通过所述第二接口接收所述计算作业;其中,所述加速设备的第二接口与移动设备的第一接口连接;
加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
本申请实施例还公开了一种计算作业处理***,所述计算作业处理***包括:
移动设备、加速设备;所述移动设备的第一接口与至少一个加速设备的第二接口连接;所述第一接口和所述第二接口采用预设接口协议;
所述移动设备包括:
第一获取模块,用于获取计算作业;
第一调用模块,用于通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口;
第二调用模块,用于通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果;
所述加速设备包括:
第一接收模块,用于通过所述第二接口接收所述计算作业;
第一处理模块,用于对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
本申请实施例还公开了一种移动设备,所述的移动设备包括:
第一获取模块,用于获取计算作业;其中,所述移动设备的第一接口与至少一个加速设备的第二接口连接;所述第一接口和所述第二接口采用预设接口协议;
第一调用模块,用于通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口;
第二调用模块,用于通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果。
第一获取模块第一调用模块第二调用模块本申请实施例还公开了一种加速设备,所述的加速设备包括:
第一接收模块,用于通过所述第二接口接收所述计算作业;其中,所述加速设备的第二接口与移动设备的第一接口连接;
第一处理模块,用于加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
本申请实施例还公开了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本申请实施例中一个或多个所述的计算作业处理方法。
本申请实施例还公开了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本申请实施例中一个或多个所述的计算作业处理方法。
与现有技术相比,本申请实施例包括以下优点:
在本申请实施例中,包括:移动设备通过将计算作业发送至加速设备,由加速设备对计算作业进行独立计算处理,使得移动设备并不参与计算作业的计算处理过程,降低了计算作业处理过程对移动设备自身软硬件资源的依赖,从而降低了移动设备操作***卡顿的几率。另外,移动设备和加速设备之间采用物理的第一接口和第二接口进行数据传输,传输过程实时且快速,解决了计算作业处理依赖于网络传输质量的问题。最后,基于移动端操作***的架构特性,本申请采用一个与当前预设接口协议匹配的读写指令 库,利用读写指令库中包括的写入指令,触发移动设备调用操作***的写入接口,将数据发送至加速设备的操作;以及利用读写指令库中包括的读取指令,触发移动设备调用操作***的读取接口,接收加速设备发送的计算结果的操作。达到了将加速设备应用到采用移动端操作***的移动设备中的目的。
附图说明
图1是本申请的一种计算作业处理***的示意图;
图2是本申请的一种计算作业处理***的交互示意图;
图3是本申请的一种***侧的计算作业处理方法步骤流程图;
图4是本申请的一种移动设备侧的计算作业处理方法步骤流程图;
图5是本申请的一种加速设备侧的计算作业处理方法步骤流程图;
图6是本申请的一种计算作业处理方法的交互步骤流程图;
图7是本申请的一种移动设备及加速设备的结构图;
图8是本申请的另一种移动设备及加速设备的结构图;
图9是本申请的一种计算作业处理装置的结构框图;
图10是本申请的一种移动设备实施例的结构框图;
图11是本申请的一种加速设备实施例的结构框图;
图12是本申请的一种计算***的结构图;
图13是本申请的另一种计算***的结构图;
图14是本申请提供的装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请实施例的一种计算作业处理***的示意图。本申请实施例提供的一种计算作业处理方法可以应用于所述计算作业处理***。
在本申请实施例中,计算作业处理***可以包括:移动设备、加速设备;所述移动设备包括第一接口、所述加速设备包括第二接口。
其中,移动设备中可以安装有安卓(Android)、IOS(iphone os)等任意一种移动端操作***,并相应提供有多种操作***接口,以使得通过这些操作***接口,实现数 据读写、设备监听、授权等操作。移动设备中还可以设置有管理软件开发工具包(SDK,Software Development Kit),管理软件开发工具包用于对计算作业进行管理,以及实现移动设备与加速设备之间基于第一接口和第二接口的通信连接。另外,移动设备中还可以包括存储模块,存储模块可以存储获取到的计算作业,以及存储用于进行计算作业处理的处理规则,具体的,该处理规则可以为处理规则。
其中,所述移动设备可以为智能手机、平板等安装有安卓、IOS等任意一种移动端操作***的设备。
加速设备可以为独立于移动设备的硬件设备,且加速设备可以通过第二接口完成与移动设备的第一接口之间的物理连接或通信连接,加速设备中设置有计算模块,用于实现对计算作业的计算处理,具体的,计算模块包括处理器,该处理器可以包括CPU(中央处理器),GPU(图像处理器),数字信号处理(DSP,Digital Signal Processing)芯片,集成电路(ASIC,Application Specific Integrated Circuit)、协处理器式芯片、现场可编程门阵列(FPGA,Field-Programmable Gate Array)芯片中的一种或多种。在本申请实施例中,加速设备用于离线实现对移动设备发送的计算作业的计算处理,达到计算处理过程不占用移动设备软硬件资源的效果,在处理速度和结果响应上有较大优势。
第一接口和第二接口具有一定的物理结构,可以实现移动设备和加速设备之间的物理连接,并在经过一系列设备握手操作之后,实现移动设备和加速设备之间的通信连接。具体的,第一接口和第二接口可以采用预设接口协议,如,具体可以采用应用于安卓***移动设备的通用串行总线(USB,Universal Serial Bus)接口协议(Interface protocol),或应用于IOS***移动设备的闪电(Lightning)接口协议。接口协议指的是需要进行信息交换的接口间需要遵从的通信方式和要求,接口协议不仅要规定物理层的通信,还需要规定语法层和语义层的要求。另外,通过第一接口和第二接口之间物理结构的契合,实现移动设备和加速设备之间的物理连接。
具体的,在本申请实施例中,参照图2,示出了本申请实施例的一种计算作业处理***的交互示意图。移动设备可以执行步骤S1,移动设备获取计算作业。
具体的,计算作业可以包括设定容量的待处理数据,另外,计算作业按照其属性信息可以具有多个类别,如图形处理计算作业,文本处理计算作业等,不同类型的计算作业可以依据不同类型的处理规则进行处理,如图形处理计算作业可以优先采用图形分类器、针对图像训练的卷积神经网络模型等处理规则进行处理,文本处理计算作业可以优先采用文本分类器、针对文本训练的卷积神经网络模型等处理规则进行处理。因此,在 本申请实施例中,移动设备可以预先设置多种处理规则。移动设备可以根据用户的选择操作,确定计算作业以及计算作业对应的处理规则。另外,移动设备也可以根据获取到的计算作业,确定计算作业的属性信息,并进一步根据该属性信息,自动为计算作业匹配对应的处理规则。
在本申请实施例中,参照图1,移动设备中可以预先设置有管理软件开发工具包,用于对计算作业进行统筹管理,并且管理软件开发工具包包括调用模块,该调用模块可以调用移动设备操作***接口中的监听接口和授权接口,以在通过监听接口监听到加速设备之后,进一步通过授权模块获得用户的授权,实现移动终与加速设备之间的通信连接。
具体的,在一种实现方式中,当移动设备接收到计算作业,并进一步需要对计算作业进行计算处理时,移动设备可以通过第一接口完成与加速设备的第二接口之间的物理连接,在完成物理连接之后,可以触发管理软件开发工具包的调用模块调用监听接口的操作,使得移动设备开始监听外接设备的连接情况。当移动设备接收到加速设备发送的设备握手数据后,进一步触发管理软件开发工具包的调用模块调用授权接口的操作,此时可以通过移动设备向用户发出授权提示信息,以使得在用户根据授权提示信息进行授权操作,在授权操作完成之后,移动设备实现了与加速设备之间的通信连接,二者之间可以进行进一步的数据交互。
在移动设备通过第一接口完成与加速设备的第二接口之间的通信连接的情况下,移动设备可以执行步骤S2,移动设备通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口。
在本申请实施例中,当移动设备通过第一接口与加速设备的第二接口进行数据交互时,数据的写入和读取都依赖于移动设备操作***的写入接口和读取接口,并且,数据的读写需要满足第一接口和第二接口所对应的接口协议。
在安卓/IOS等移动端操作***的设计过程中,考虑到操作***、移动设备以及接口协议的不断快速更新迭代,并不会在操作***中严格定义读写操作所对应的接口协议,从而避免了每次更新迭代,都需要修改操作***中定义的接口协议。
例如,安卓操作***的移动设备,可以采用的是USB接口,USB是一个外部总线标准,用于规范移动设备与外部设备的连接和通讯,且USB接口可以实现移动设备和加速设备之间的“热插拔”功能,提高了便捷性。但是,随着USB技术的不断发展,USB的接口标准已经由第一代USB1.1延伸至了USB3.1,另外,根据USB接口的具体结构实 现不同,也延伸出了type-A、type-B、type-C等不同接口类型的USB接口。如果根据USB接口的每一次更新迭代,都进行安卓操作***中的架构以及定义的接口协议的修改,会导致工作量巨大。
因此,基于安卓操作***得出的解决方案包括:通过安卓调试桥(ADB,Android Debug Bridge)指令库,来实现移动设备和加速设备之间的数据交互,即采用一个与当前移动设备的接口协议匹配的指令库,利用指令库中包括的写入指令和读取指令,触发调用操作***的写入接口和读取接口的操作。ADB指令库可以存储在管理软件开发工具包中,具体可以存放在管理软件开发工具包安装目录下的platform-tools文件夹中。由于ADB指令库存储在管理软件开发工具包中,因此较易对其中的指令进行修改,使得在USB接口进行更新迭代时,降低了接口协议的修改工作量。
然而基于Linux/Windows操作***的终端设备,由于其采用的接口协议几乎固定,很少进行对接口协议的更新迭代,因此,Linux/Windows操作***的计算机设备可以直接通过对操作***中读写接口的调用,实现Linux/Windows操作***的终端设备与外接设备之间的数据交互。
在该步骤中,在移动设备通过第一接口完成与加速设备的第二接口之间的通信连接的情况下,此时可以通过移动设备包括的管理软件开发工具包调用与预设协议匹配的写入指令,以便管理软件开发工具包的调用模块根据该写入指令。
进一步的,管理软件开发工具包的调用模块根据该写入指令,可以调用操作***的写入接口,进行后续将数据写入加速设备的操作。具体的该数据可以包括计算作业以及计算作业对应的处理规则,其中,移动设备在获取得到计算作业时,可以将计算作业存储在存储模块中对应管理软件开发工具包的存储分区,以便管理软件开发工具包对计算作业进行管理。
另外,处理规则是如何对计算作业进行计算的规则,比如对于图像,如何进行识别计算,对于大量的用户数据,如何分析用户偏好。处理规则可以是一种数学模型,数学模型是运用数理逻辑方法和数学语言建构的科学或工程模型,数学模型是针对参照某种事物***的特征或数量依存关系,采用数学语言,概括地或近似地表述出的一种数学结构,这种数学结构是借助于数学符号刻画出来的某种***的纯关系结构。数学模型可以是一个或一组代数方程、微分方程、差分方程、积分方程或统计学方程及其组合,通过这些方程定量地或定性地描述***各变量之间的相互关系或因果关系。除了用方程描述的数学模型外,还有用其他数学工具,如代数、几何、拓扑、数理逻辑等描述的模型。 其中,数学模型描述的是***的行为和特征而不是***的实际结构。其中,仿真器所采用机器学习、深度学习方法等进行模型训练,机器学习方法可包括线性回归、决策树、随机森林、xgboost、lightgbm等,深度学习方法可包括卷积神经网络(Convolutional Neural Networks,CNN)、长短期记忆网络(Long Short-Term Memory,LSTM)、门控循环单元(Gated Recurrent Unit,GRU)等。
在本申请实施例中,移动设备通过将计算作业以及处理规则发送至加速设备,由加速设备进行独立处理,使得移动设备并不参与计算作业的计算处理过程,降低了计算作业处理过程对移动设备自身软硬件资源的依赖。
加速设备可以执行步骤S3,所述加速设备通过所述第二接口接收所述计算作业。
加速设备可以执行步骤S4,所述加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
在该步骤中,加速设备在将接收到的处理规则写入加速设备的处理器之后,可以通过处理器对处理规则对应的计算作业进行处理,得到计算结果,其中,加速设备的处理器包括多种类型,如,CPU、GPU等,加速设备可以根据计算作业和处理规则的属性,采用对应类型的处理器进行计算处理,如,图形处理计算作业可以优先采用GPU进行处理,文本处理计算作业可以优先采用CPU进行处理。
在移动设备通过第一接口完成与加速设备的第二接口之间的通信连接的情况下,若加速设备得到了计算结果,则可以在将计算结果发送至所述移动设备之前,先向移动设备发送一个通知,以通知移动设备调用操作***的读取接口,准备进行数据的接收。
移动设备可以执行步骤S5,所述移动设备通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果。
在该步骤中,在移动设备通过第一接口完成与加速设备的第二接口之间的通信连接的情况下,移动设备可以根据加速设备发送的通知,通过移动设备包括的管理软件开发工具包调用与预设接口协议匹配的读取指令,以便管理软件开发工具包的调用模块根据该读取指令,进一步调用操作***的读取接口,进行接收加速设备发送的计算结果的操作。
因此,在本申请实施例中,移动设备通过将计算作业发送至加速设备,由加速设备对计算作业进行独立计算处理,使得移动设备并不参与计算作业的计算处理过程,降低了计算作业处理过程对移动设备自身软硬件资源的依赖,从而降低了移动设备操作***卡顿的几率。另外,移动设备和加速设备之间采用物理的第一接口和第二接口进行数据 传输,传输过程实时且快速,解决了计算作业处理依赖于网络传输质量的问题。最后,基于移动端操作***的架构特性,本申请采用一个与当前预设接口协议匹配的读写指令库,利用读写指令库中包括的写入指令,触发移动设备调用操作***的写入接口,将数据发送至加速设备的操作;以及利用读写指令库中包括的读取指令,触发移动设备调用操作***的读取接口,接收加速设备发送的计算结果的操作。达到了将加速设备应用到采用移动端操作***的移动设备中的目的。
参照图3,示出了本申请的一种***侧的计算作业处理方法实施例的步骤流程图。
步骤101,移动设备获取计算作业。
其中,所述移动设备的第一接口与至少一个加速设备的第二接口连接;所述第一接口和所述第二接口采用预设接口协议。具体的,计算作业可以包括一定数据量的待处理数据,另外,计算作业按照其属性信息可以具有多个类别,如图形处理计算作业,文本处理计算作业等。计算作业可以根据实际的业务需求设置,本申请实施例不对其加以限制。
移动设备获取计算作业的方式可以有多种,比如从服务器中下载,也可以由用户输入,也可以由移动设备的传感器采集获得等,其中传感器如摄像头、重力感应器等。
步骤102,所述移动设备通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口。
在本申请实施例中,参照图1,移动设备中可以预先设置有管理软件开发工具包,用于对计算作业进行统筹管理,并且管理软件开发工具包包括调用模块,该调用模块可以调用移动设备操作***接口中的监听接口和授权接口,以在通过监听接口监听到加速设备之后,进一步通过授权模块获得用户的授权,实现移动终与加速设备之间的通信连接。
具体的,考虑到操作***、移动设备以及预设接口协议的不断快速更新迭代,移动设备可以采用一个与当前预设接口协议匹配的指令库,利用指令库中包括的写入指令和读取指令,触发调用操作***的写入接口和读取接口的操作,从而避免了每次更新迭代,都需要修改操作***中定义的接口协议,达到了使移动设备和外接设备之间数据交互更加通用泛化的目的。
该指令库可以为ADB(Android Debug Bridge,Android调试桥)指令库,ADB指令库可以存储在管理软件开发工具包中,具体可以存放在管理软件开发工具包安装目录下的platform-tools文件夹中。由于ADB指令库存储在管理软件开发工具包中,因此较易 对其中的指令进行修改,使得在USB接口进行更新迭代时,降低了接口协议的修改工作量。在移动设备通过第一接口完成与加速设备的第二接口之间的通信连接的情况下,可以通过移动设备包括的管理软件开发工具包调用与当前预设接口协议匹配的写入指令,以便管理软件开发工具包的调用模块根据该写入指令,进一步调用操作***的写入接口,进行将所述计算作业由所述第一接口发送至所述第二接口的操作。
在本申请实施例中,管理软件开发工具包的调用模块根据该写入指令,可以调用操作***的写入接口,进行后续将数据写入加速设备的操作。具体的该数据可以包括计算作业以及计算作业对应的处理规则,其中,移动设备在获取得到计算作业时,可以将计算作业存储在存储模块中对应管理软件开发工具包的存储分区,以便管理软件开发工具包对计算作业进行管理。
需要说明的是,在本申请实施例中,移动设备可以根据用户的选择操作,确定计算作业以及计算作业对应的处理规则。另外,移动设备也可以根据获取到的计算作业,确定计算作业的属性信息,并进一步根据该属性信息,自动为计算作业匹配对应的处理规则。移动设备通过将计算作业以及处理规则发送至加速设备,由加速设备进行独立处理,使得移动设备并不参与计算作业的计算处理过程,降低了计算作业处理过程对移动设备自身软硬件资源的依赖。
步骤103,所述加速设备通过所述第二接口接收所述计算作业。
步骤104,所述加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
在该步骤中,加速设备在将接收到的处理规则写入加速设备的处理器之后,可以通过处理器对处理规则对应的计算作业进行处理,得到计算结果,其中,加速设备的处理器包括多种类型,如,CPU、GPU等,加速设备可以根据计算作业和处理规则的属性,采用对应类型的处理器进行计算处理,如,图形处理计算作业可以优先采用GPU进行处理,文本处理计算作业可以优先采用CPU进行处理。
具体的,在移动设备通过第一接口完成与加速设备的第二接口之间的通信连接的情况下,若加速设备得到了计算结果,则可以在将计算结果发送至所述移动设备之前,先向移动设备发送一个通知,以通知移动设备调用操作***的读取接口,准备进行数据的接收。
步骤105,所述移动设备通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果。
在该步骤中,在移动设备通过第一接口完成与加速设备的第二接口之间的通信连接的情况下,移动设备可以根据加速设备发送的通知,通过移动设备包括的管理软件开发工具包调用与预设接口协议匹配的读取指令,以便管理软件开发工具包的调用模块根据该读取指令,进一步调用操作***的读取接口,进行接收加速设备发送的计算结果的操作。
综上所述,本申请提供的一种计算作业处理方法,包括:移动设备获取计算作业;其中,移动设备的第一接口与至少一个加速设备的第二接口连接;第一接口和第二接口采用预设接口协议;移动设备通过管理软件开发工具包调用与预设接口协议匹配的写入指令,将计算作业由第一接口发送至第二接口;加速设备通过第二接口接收计算作业;加速设备对计算作业进行处理,并将处理结果通过第二接口发送至第一接口;移动设备通过管理软件开发工具包调用与预设接口协议匹配的读取指令,从第一接口获取处理结果。移动设备通过将计算作业发送至加速设备,由加速设备对计算作业进行独立计算处理,使得移动设备并不参与计算作业的计算处理过程,降低了计算作业处理过程对移动设备自身软硬件资源的依赖,从而降低了移动设备操作***卡顿的几率。另外,移动设备和加速设备之间采用物理的第一接口和第二接口进行数据传输,传输过程实时且快速,解决了计算作业处理依赖于网络传输质量的问题。最后,基于移动端操作***的架构特性,本申请采用一个与当前预设接口协议匹配的读写指令库,利用读写指令库中包括的写入指令,触发移动设备调用操作***的写入接口,将数据发送至加速设备的操作;以及利用读写指令库中包括的读取指令,触发移动设备调用操作***的读取接口,接收加速设备发送的计算结果的操作。达到了将加速设备应用到采用移动端操作***的移动设备中的目的。
参照图4,示出了本申请的一种移动设备侧的计算作业处理方法实施例的步骤流程图。
步骤201,获取计算作业。
该步骤具体可以参照上述步骤101,此处不再赘述。
步骤202,通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口。
该步骤具体可以参照上述步骤102,此处不再赘述。
步骤203,通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果。
该步骤具体可以参照上述步骤105,此处不再赘述。
需要说明的是,移动设备侧的具体执行步骤可以参照图1和图6的移动设备与加速设备的交互过程的介绍,在此不再详述。
综上所述,本申请提供的一种计算作业处理方法,包括:获取计算作业;其中,所述移动设备的第一接口与至少一个加速设备的第二接口连接;所述第一接口和所述第二接口采用预设接口协议;通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口;通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果。本申请实施例中,移动设备通过将计算作业发送至加速设备,由加速设备对计算作业进行独立计算处理,使得移动设备并不参与计算作业的计算处理过程,降低了计算作业处理过程对移动设备自身软硬件资源的依赖,从而降低了移动设备操作***卡顿的几率。另外,移动设备和加速设备之间采用物理的第一接口和第二接口进行数据传输,传输过程实时且快速,解决了计算作业处理依赖于网络传输质量的问题。最后,基于移动端操作***的架构特性,本申请采用一个与当前预设接口协议匹配的读写指令库,利用读写指令库中包括的写入指令,触发移动设备调用操作***的写入接口,将数据发送至加速设备的操作;以及利用读写指令库中包括的读取指令,触发移动设备调用操作***的读取接口,接收加速设备发送的计算结果的操作。达到了将加速设备应用到采用移动端操作***的移动设备中的目的。
参照图5,示出了本申请的一种加速设备侧的计算作业处理方法实施例的步骤流程图。
步骤301,通过所述第二接口接收所述计算作业。
该步骤具体可以参照上述步骤103,此处不再赘述。
步骤302,加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
该步骤具体可以参照上述步骤104,此处不再赘述。
需要说明的是,加速设备侧的具体执行步骤可以参照图1和图6的移动设备与加速设备的交互过程的介绍,在此不再详述。
综上,本申请提供的一种计算作业处理方法,包括:通过所述第二接口接收所述计算作业;加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。本申请实施例中,移动设备通过将计算作业发送至加速设备,由加速设备 对计算作业进行独立计算处理,使得移动设备并不参与计算作业的计算处理过程,降低了计算作业处理过程对移动设备自身软硬件资源的依赖,从而降低了移动设备操作***卡顿的几率。另外,移动设备和加速设备之间采用物理的第一接口和第二接口进行数据传输,传输过程实时且快速,解决了计算作业处理依赖于网络传输质量的问题。最后,基于移动端操作***的架构特性,本申请采用一个与当前预设接口协议匹配的读写指令库,利用读写指令库中包括的写入指令,触发移动设备调用操作***的写入接口,将数据发送至加速设备的操作;以及利用读写指令库中包括的读取指令,触发移动设备调用操作***的读取接口,接收加速设备发送的计算结果的操作。达到了将加速设备应用到采用移动端操作***的移动设备中的目的。
参照图6,示出了本申请的一种计算作业处理方法的交互步骤流程图。
步骤401,移动设备获取计算作业。
该步骤具体可以参照上述步骤101,此处不再赘述。
步骤402,所述移动设备在检测到所述第二接口与所述第一接口之间的物理连接后,执行允许所述加速设备与所述移动设备进行数据交互的第一授权操作。
在本发明实施例中,为了保证移动设备和加速设备之间数据交互时的隐私安全性,可以首先进行针对加速设备的第一授权操作。具体的,当加速设备和移动设备之间完成通信连接时,加速设备会向移动设备发送自己的设备信息,该设备信息包括加速设备的属性、标识信息,用户在移动设备上可以看到该设备信息,在用户确认该设备信息无误时,可以执行对加速设备的第一授权操作,该第一授权操作可以包括移动设备弹出一个通知栏,询问用户是否对当前接入的加速设备进行授权,用户在点击确认授权按钮后,完成第一授权操作。
可选地,参照图7,示出了本申请的一种移动设备及加速设备的结构图。输入输出接口30包括设置在所述移动设备10上的第一接口301,以及设置在所述加速设备20上的与所述第一接口301匹配的第二接口302。
可选地,输入输出接口30包括通用串行总线接口、闪电Lightning接口中的任意一种。
在本发明实施例中,第一接口301和第二接口302具有一定的物理结构,可以实现移动设备10和加速设备20之间的物理连接,并在经过一系列设备握手操作之后,实现移动设备10和加速设备20之间的通信连接。具体的,输入输出接口30可以包括应用于安卓***移动设备的USB接口,或应用于IOS***移动设备的闪电(Lightning)接口。 另外,第一接口301可以为凹槽结构,第二接口可以为对应改凹槽结构的凸起结构,通过第一接口301和第二接口302之间物理结构的契合,可以实现移动设备10和加速设备20之间的物理连接。
需要说明的是,在本申请实施例的另一种实现方式中,也可以将第一接口301设置在加速设备20上,将第二接口302设置在移动设备10上,本申请对此不作限定。
步骤403,所述移动设备通过所述管理软件开发工具包向所述加速设备发送加速设备固件。
在本发明实施例中,固件(Firmware)是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序,固件也可以被称为设备内部保存的设备“驱动程序”。通过固件,移动设备的操作***才能按照标准的设备驱动实现加速设备的运行动作。
因此,若要实现加速设备的正常运行,首先需要移动设备根据第一授权操作,获取加速设备固件,该加速设备固件可以通过互联网进行下载,也可以通过其他数据拷贝方式由移动设备进行获取,也可以预设在SDK的文件中。需要说明的是,该加速设备固件用于提供支持处理所述计算作业的操作***。
在移动设备获取到加速设备的加速设备固件之后,可以通过管理软件开发工具包,将加速设备固件发送至所述加速设备。
可选地,步骤403具体可以包括:
子步骤4031,所述移动设备根据所述计算作业的属性信息,通过所述管理软件开发工具包,向所述加速设备发送与所述属性信息匹配的加速设备固件。
在本发明实施例中,为了优化加速设备的加速计算功能,可以根据加速设备经常计算处理的计算作业以及所采用的处理规则的属性信息,为加速设备设置对应的加速设备固件,用户可以根据自己的计算需求,在移动设备中选取对应的加速设备固件发送给加速设备进行安装。另外,加速设备在安装了加速设备固件之后,可以一直使用该加速设备固件进行计算作业处理,也可以通过一个新的加速设备固件替换原有的加速设备固件,本申请对此不作限定。
例如,在加速设备中,针对图形处理计算作业和文本处理计算作业,图形处理计算作业优选采用GPU进行计算处理,文本处理计算作业优选采用CPU进行计算处理,因此,在加速设备处理图形处理计算作业时,为了优化GPU所处的***环境,可以采用与GPU匹配的加速设备固件;加速设备处理文本处理计算作业时,为了优化CPU所处的 ***环境,可以采用与CPU匹配的加速设备固件,用户可以根据自己的需求,对具体的加速设备固件类型进行选取。
步骤404,所述加速设备安装所述加速设备固件;所述加速设备固件用于提供支持处理所述计算作业的操作***。
在该步骤中,若加速设备未安装加速设备固件,则加速设备可以将接收到的加速设备固件进行安装。若加速设备已安装有加速设备固件,则加速设备可以将接收到的新的加速设备固件替换原有的加速设备固件。
步骤405,在所述加速设备安装了所述加速设备固件且重启完毕的情况下,执行允许所述加速设备与所述移动设备进行数据交互的第二授权操作。
在本发明实施例中,加速设备在接收到所述加速设备固件之后,可以将固件的映像(image)以文件的形式存放在闪存中,在加速设备进行驱动程序初始化(重启时进行)时再装载到加速设备内部的内存中。这样,方便了固件的升级。
加速设备安装新的加速设备固件的过程,首先需要加速设备进行设备重启(reset)操作,在加速设备关机并再次启动的过程中,加速设备会查找到新的加速设备固件,并加载和安装新的加速设备固件。
在所述加速设备安装了所述加速设备固件且重启完毕的情况下,加速设备可以将固件安装成功通知发送给移动设备,以告知其加速设备固件安装完毕,移动设备在接收到固件安装成功通知后,可以进行进一步的授权确认。
因此,加速设备安装了所述加速设备固件且重启完毕的情况下,若要进一步进行移动设备与加速设备之间的数据交互,则需要进一步的授权确认,即用户执行对加速设备的第二授权操作,该第二授权操作可以包括移动设备弹出一个通知栏,询问用户是否对当前接入的加速设备进行授权,用户在点击确认授权按钮后,完成第二授权操作。
需要说明的是,在一种实现方式中,加速设备中可以预先安装好固件,然后规定发送给加速设备的计算作业为该固件可以支持处理的计算作业,在该种情况下,步骤403-405可以省略。
可选地,针对步骤402和步骤405中,所述执行允许所述加速设备与所述移动设备进行数据交互的第一授权操作或第二授权操作的步骤,具体可以包括:
子步骤A1、所述移动设备通过所述管理软件开发工具包调用所述移动设备的操作***的设备监听接口。
在本申请实施例中,加速设备与移动设备之间的连接包括物理连接和通信连接。参 照图7,通过第一接口301和第二接口302之间物理结构的契合,可以实现移动设备10和加速设备20之间的物理连接。而在完成移动设备和加速设备之间的物理连接之后,移动设备和加速设备可以完成一系列的设备握手操作,达到完成移动设备和加速设备之间的通信连接的目的,在完成移动设备和加速设备之间的通信连接之后,移动设备和加速设备之间可以进行数据交互。
具体的,通过第一接口和第二接口之间物理结构的契合,实现移动设备和加速设备之间的物理连接之后,移动设备可以通过检测第一接口上的电信号,来确定物理连接完成,并触发管理软件开发工具包调用移动设备的操作***的设备监听接口。
另外,在本申请实施例中,加速设备在安装加速设备固件的过程中,需要进行设备重启操作,在设备重启过程中,加速设备会经历关机操作,此时移动设备会断开与加速设备之间的通信连接,当加速设备安装完毕加速设备固件并再次开机之后,移动设备可以基于接口的管脚状态,监测到与加速设备之间的物理连接,因为加速设备在设备重启的过程中并未断开与移动设备之间的物理连接,移动设备被接触的管脚状态未改变,并通过管理软件开发工具包调用移动设备的操作***的设备监听接口,再次进行对移动设备外接设备的监听操作。
子步骤A2、所述移动设备在通过所述设备监听接口获取到所述加速设备的外设部件互连标准标识的情况下,对所述加速设备赋予允许所述加速设备与所述移动设备进行数据交互的权限。
在本申请实施例中,移动设备操作***接口中的设备监听接口,可以对移动设备的外接设备的连接状态进行实时监听,具体的,在完成移动设备和加速设备之间的物理连接之后,加速设备会向移动设备发送自己的外设部件互连标准(PCI,Peripheral Component Interconnect)标识,PCI是一种用于定义局部总线的标准,当完成移动设备和加速设备之间的物理连接之后,加速设备可以作为移动设备的一个PCI设备,为了表明加速设备的身份,可以为加速设备生成一个对应的PCI标识,加速设备可以将该PCI标识发送至移动设备,移动设备在接收到加速设备的PCI标识后,对所述加速设备赋予允许所述加速设备与所述移动设备进行数据交互的权限。
步骤406,所述移动设备通过所述管理软件开发工具包调用与预设接口协议匹配的写入指令,将所述计算作业对应的处理规则由所述第一接口发送至所述第二接口。
在本发明实施例中,处理规则可以是一种数学模型,用于对计算作业进行处理。另外,计算作业按照其属性信息可以具有多个类别,如图形处理计算作业,文本处理计算 作业等,不同类型的计算作业可以依据不同类型的处理规则进行处理,如图形处理计算作业可以优先采用图形分类器、卷积神经网络模型等处理规则进行处理,文本处理计算作业可以优先采用文本分类器、卷积神经网络模型等处理规则进行处理,因此,在本申请实施例中的一种实现方式中,移动设备可以根据用户的选择操作,确定计算作业以及计算作业对应的处理规则。另外,移动设备也可以根据获取到的计算作业,确定计算作业的属性信息,并进一步根据该属性信息,自动为计算作业匹配对应的处理规则。
在确定处理规则后,移动设备可以通过所述管理软件开发工具包调用与预设接口协议匹配的写入指令,将所述计算作业对应的处理规则由所述第一接口发送至所述第二接口。
步骤407,所述加速设备通过所述第二接口接收所述处理规则并将所述处理规则写入所述加速设备的预设位置。
在该步骤中,加速设备通过所述第二接口接收所述处理规则,并可以将处理规则写入加速设备的处理器。
步骤408,所述移动设备通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口。
该步骤具体可以参照上述步骤102,此处不再赘述。
可选地,步骤408具体可以包括:
子步骤4081,在所述移动设备的第一接口与至少两个所述加速设备的第二接口连接的情况下,所述移动设备确定至少两个所述加速设备中负载值小于或等于预设阈值的目标加速设备。
可选地,参照图8,示出了本申请的另一种移动设备及加速设备的结构图。本申请实施例还可以包括:多端口转发器(HUB),HUB40包括输入端401以及包括多个输出端口4021的输出端402。
在本申请实施例中,HUB40是一个多端口的转发器,即HUB40作为一个USB接口的拓展坞,可以在其输出端402的各个输出端口4021上安装一个或多个加速设备20,并且,HUB40通过其输入端401接收移动设备10通过第一接口301发送的数据,并将该数据发送通过输出端口4021至每一个加速设备20中。
具体的,通过移动设备与各个加速设备之间的通信,用户可以从移动设备的界面中查看到每个加速设备的当前负载值,并根据自己的需求,进行选择操作,选取多个加速设备中负载值小于或等于预设阈值的一个或多个目标加速设备。另外,移动设备也可以 根据计算作业处理量、数据量大小,自动确定所需目标加速设备的数量,并选取多个加速设备中负载值小于或等于预设阈值的目标加速设备。
子步骤4082,所述移动设备通过所述管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口。
在该步骤中,假设存在一个计算作业,若要大幅度提升该计算作业的计算效率,则移动设备可以控制多台加速设备进行针对该一个计算作业的计算处理,并通过管理软件开发工具包将所述计算作业以及与计算作业对应的处理规则,通过第一接口、第二接口和HUB分别发送至多个目标加速设备进行处理,达到多倍于一个加速设备的加速效果。
步骤409,所述加速设备通过所述第二接口接收所述计算作业。
该步骤具体可以参照上述步骤103,此处不再赘述。
步骤410,所述加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
该步骤具体可以参照上述步骤104,此处不再赘述。
可选地,步骤410具体可以包括:
子步骤4101,在所述目标加速设备包括至少两个的情况下,所述至少两个加速设备接收所述移动设备发送的共享指令。
在目标加速设备完成将处理规则写入处理器时,目标加速设备会将模型写入成功通知发送至移动设备,当移动设备接收到所有目标加速设备发送的模型写入成功通知之后,可以发送共享指令至所有的目标加速设备,共享指令可以包括各个目标加速设备的PCI标识。
子步骤4102,所述至少两个目标加速设备根据所述共享指令,共享所述至少两个目标加速设备的计算资源,对所述计算作业进行处理,得到对应的计算结果。
在该步骤中,每个目标加速设备可以根据共享指令中包括的其他目标加速设备的PCI标识,获取其他目标加速设备的资源地址,达到共享所有目标加速设备的计算资源的目的,使得在所有目标加速设备可以通过统筹调度所有目标加速设备的软硬件资源,进行针对一个计算作业处理过程,大大提升计算处理效率。
具体的,加速设备的资源地址可以包括软件资源地址和硬件资源地址。软件资源地址可以包括:变量、表格、队列等。硬件资源地址可以包括内存地址,例如,可以指定一个或多个目标加速设备的内存为共享存储区,并将该一个或多个目标加速设备的内存地址通知给所有目标加速设备,使得所有目标加速设备之间可通过对共享存储区中的数 据进行读写来实现通信。共享内存允许以最快的速度进行便捷的进程通信,仅在建立共享内存区域时需要***调用,以后,所有共享内存访问都处理为常规内存访问。
针对一个计算作业,在统筹调度下,所有目标加速设备可以从共享存储区读取计算作业处理进度及处理数据,并将自身处理器处理该计算作业得到的处理数据写入共享存储区,直至得到计算结果。
需要说明的是,移动设备也可以将多个计算作业分别发送至多个加速设备上进行处理,当一个加速设备的计算作业处理完毕时,可以休眠该加速设备的进程,当再次接收到计算作业时,该加速设备可以恢复进程,进行计算作业处理。
步骤411,所述移动设备通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果。
该步骤具体可以参照上述步骤105,此处不再赘述。
可选地,在步骤406之前,还可以包括:
步骤B1、所述移动设备提供处理规则的输入接口。
步骤B2、所述移动设备通过所述输入接口,接收所述处理规则。
具体的,移动设备的管理软件开发工具包中可以保存有多种普遍使用的处理规则,如图片分类、检测等,用户可按需选择;当这些已有的处理规则不能满足要求时,用户可通过移动设备提供处理规则的输入接口添加并使用拓展的处理规则。
综上所述,本申请提供的一种计算作业处理方法,包括:移动设备获取计算作业;其中,移动设备的第一接口与至少一个加速设备的第二接口连接;第一接口和第二接口采用预设接口协议;移动设备通过管理软件开发工具包调用与预设接口协议匹配的写入指令,将计算作业由第一接口发送至第二接口;加速设备通过第二接口接收计算作业;加速设备对计算作业进行处理,并将处理结果通过第二接口发送至第一接口;移动设备通过管理软件开发工具包调用与预设接口协议匹配的读取指令,从第一接口获取处理结果。移动设备通过将计算作业发送至加速设备。移动设备通过将计算作业发送至加速设备,由加速设备对计算作业进行独立计算处理,使得移动设备并不参与计算作业的计算处理过程,降低了计算作业处理过程对移动设备自身软硬件资源的依赖,从而降低了移动设备操作***卡顿的几率。另外,移动设备和加速设备之间采用物理的第一接口和第二接口进行数据传输,传输过程实时且快速,解决了计算作业处理依赖于网络传输质量的问题。最后,基于移动端操作***的架构特性,本申请采用一个与当前预设接口协议匹配的读写指令库,利用读写指令库中包括的写入指令,触发移动设备调用操作***的 写入接口,将数据发送至加速设备的操作;以及利用读写指令库中包括的读取指令,触发移动设备调用操作***的读取接口,接收加速设备发送的计算结果的操作。达到了将加速设备应用到采用移动端操作***的移动设备中的目的。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
在上述实施例的基础上,本实施例还提供了一种计算作业处理***、一种移动设备和一种加速设备。
参照图9,示出了本申请一种计算作业处理***实施例的结构框图,具体可以包括如下模块:
移动设备500、加速设备600;所述移动设备的第一接口与至少一个加速设备的第二接口连接;所述第一接口和所述第二接口采用预设接口协议;
所述移动设备500包括:
第一获取模块510,用于获取计算作业;
第一调用模块520,用于通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口;
第二调用模块530,用于通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果;
所述加速设备600包括:
第一接收模块610,用于通过所述第二接口接收所述计算作业;
第一处理模块620,用于对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
可选地,第一调用模块520,包括:
负载确定子模块,用于在所述移动设备的第一接口与至少两个所述加速设备的第二接口连接的情况下,确定至少两个所述加速设备中负载值小于或等于预设阈值的目标加速设备;
作业发送子模块,用于通过所述管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口。
可选地,所述移动设备500还包括:
共享指令模块,用于在所述目标加速设备包括至少两个的情况下,所述至少两个加速设备接收所述移动设备发送的共享指令;
所述第一处理模块504包括:
共享计算子模块,用于根据所述共享指令,共享所述至少两个目标加速设备的计算资源,对所述计算作业进行处理,得到对应的计算结果。
可选地,所述移动设备还包括:
第一授权模块,用于所述移动设备在检测到所述第二接口与所述第一接口之间的物理连接后,执行允许所述加速设备与所述移动设备进行数据交互的第一授权操作。
可选地,所述移动设备500还包括:
固件发送模块,用于所述移动设备通过所述管理软件开发工具包向所述加速设备发送加速设备固件;
可选地,所述固件发送模块,包括:
选取子模块,用于所述移动设备根据所述计算作业的属性信息,通过所述管理软件开发工具包,向所述加速设备发送与所述属性信息匹配的加速设备固件。
所述加速设备600还包括:
固件安装模块,用于所述加速设备安装所述加速设备固件;所述加速设备固件用于提供支持处理所述计算作业的操作***;
所述移动设备500还包括:
第二授权模块,用于在所述加速设备安装了所述加速设备固件且重启完毕的情况下,执行允许所述加速设备与所述移动设备进行数据交互的第二授权操作。
可选地,所述第一授权模块或第二授权模块,包括:
监听子模块,用于通过所述管理软件开发工具包调用所述移动设备的操作***的设备监听接口;
权限设置子模块,用于在通过所述设备监听接口获取到所述加速设备的外设部件互连标准标识的情况下,对所述加速设备赋予允许所述加速设备与所述移动设备进行数据交互的权限。
可选地,所述移动设备500还包括:
规则发送模块,用于通过所述管理软件开发工具包调用与预设接口协议匹配的写入指令,将所述计算作业对应的处理规则由所述第一接口发送至所述第二接口;
所述加速设备600还包括:
规则写入模块,用于所述加速设备通过所述第二接口接收所述处理规则并将所述处理规则写入所述加速设备的预设位置。
可选地,所述移动设备500还包括:
规则接口模块,用于所述移动设备提供处理规则的输入接口;
规则接收模块,用于所述移动设备通过所述输入接口,接收所述处理规则。
综上所述,本申请提供的一种计算作业处理***,移动设备通过将计算作业发送至加速设备。移动设备通过将计算作业发送至加速设备,由加速设备对计算作业进行独立计算处理,使得移动设备并不参与计算作业的计算处理过程,降低了计算作业处理过程对移动设备自身软硬件资源的依赖,从而降低了移动设备操作***卡顿的几率。另外,移动设备和加速设备之间采用物理的第一接口和第二接口进行数据传输,传输过程实时且快速,解决了计算作业处理依赖于网络传输质量的问题。最后,基于移动端操作***的架构特性,本申请采用一个与当前预设接口协议匹配的读写指令库,利用读写指令库中包括的写入指令,触发移动设备调用操作***的写入接口,将数据发送至加速设备的操作;以及利用读写指令库中包括的读取指令,触发移动设备调用操作***的读取接口,接收加速设备发送的计算结果的操作。达到了将加速设备应用到采用移动端操作***的移动设备中的目的。
参照图10,示出了本申请一种移动设备实施例的结构框图,具体可以包括如下模块:
第一获取模块510,用于获取计算作业;其中,所述移动设备的第一接口与至少一个加速设备的第二接口连接;所述第一接口和所述第二接口采用预设接口协议;
第一调用模块520,用于通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口;
第二调用模块530,用于通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果。
需要说明的是,移动设备侧的具体模块可以参照图9的相关描述,在此不再详述。
综上所述,本申请实施例中,移动设备通过将计算作业发送至加速设备,由加速设备对计算作业进行独立计算处理,使得移动设备并不参与计算作业的计算处理过程,降低了计算作业处理过程对移动设备自身软硬件资源的依赖,从而降低了移动设备操作***卡顿的几率。另外,移动设备和加速设备之间采用物理的第一接口和第二接口进行数据传输,传输过程实时且快速,解决了计算作业处理依赖于网络传输质量的问题。最后, 基于移动端操作***的架构特性,本申请采用一个与当前预设接口协议匹配的读写指令库,利用读写指令库中包括的写入指令,触发移动设备调用操作***的写入接口,将数据发送至加速设备的操作;以及利用读写指令库中包括的读取指令,触发移动设备调用操作***的读取接口,接收加速设备发送的计算结果的操作。达到了将加速设备应用到采用移动端操作***的移动设备中的目的。
参照图11,示出了本申请一种加速设备实施例的结构框图,具体可以包括如下模块:
第一接收模块610,用于通过所述第二接口接收所述计算作业;其中,所述加速设备的第二接口与移动设备的第一接口连接;
第一处理模块620,用于加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
需要说明的是,加速设备侧的具体模块可以参照图9的相关描述,在此不再详述。
综上所述,本申请实施例中,移动设备通过将计算作业发送至加速设备,由加速设备对计算作业进行独立计算处理,使得移动设备并不参与计算作业的计算处理过程,降低了计算作业处理过程对移动设备自身软硬件资源的依赖,从而降低了移动设备操作***卡顿的几率。另外,移动设备和加速设备之间采用物理的第一接口和第二接口进行数据传输,传输过程实时且快速,解决了计算作业处理依赖于网络传输质量的问题。最后,基于移动端操作***的架构特性,本申请采用一个与当前预设接口协议匹配的读写指令库,利用读写指令库中包括的写入指令,触发移动设备调用操作***的写入接口,将数据发送至加速设备的操作;以及利用读写指令库中包括的读取指令,触发移动设备调用操作***的读取接口,接收加速设备发送的计算结果的操作。达到了将加速设备应用到采用移动端操作***的移动设备中的目的。
参照图12,示出了本申请一种计算***实施例的结构图,具体可以包括:移动设备50和用于对移动设备50的计算作业进行加速的加速设备70;移动设备50包括第一接口601、加速设备70包括第二接口602;第一接口601与第二接口602连接,加速设备70通过第一接口601与第二接口602之间的连接对移动设备50的计算作业进行加速。
可选的,所述移动设备安装有安卓***或IOS***。
具体的,在本申请实施例中,移动设备50中可以运行有安卓(Android)、IOS(iphone os)等移动端操作***,并相应提供有多种操作***接口,以使得通过这些操作***接口,实现数据读写、设备监听、授权等操作。移动设备50中还可以设置有管理软件开发工具包(SDK,Software Development Kit),管理SDK用于对计算作业进行管理,以及 实现移动设备50与加速设备70之间的通信连接。
进一步的,第一接口601、第二接口602具有一定的物理结构,可以实现移动设备50和加速设备70之间的物理连接,并在经过一系列设备握手操作之后,实现移动设备50和加速设备70之间的通信连接。另外,设置在移动设备50上的第一接口601,以及设置在加速设备70上并与第二处理器701连接的第二接口602,通过第一接口601和第二接口602之间物理结构的契合,实现移动设备50和加速设备70之间的物理连接。
进一步的,加速设备70可以为独立于移动设备50的硬件设备,且加速设备70可以通过第一接口601、第二接口602完成与移动设备50之间的物理连接或通信连接,加速设备70中可以设置有第二处理器701,用于实现对计算作业的计算处理,具体的,该处理器可以包括CPU,GPU,数字信号处理(DSP,DigitalSignalProcessing)芯片,集成电路(ASIC,Application Specific Integrated Circuit)、协处理器式芯片、现场可编程门阵列(FPGA,Field-Programmable Gate Array)芯片中的一种或多种。在本申请实施例中,加速设备70用于离线实现对移动设备50发送的计算作业的计算处理,达到计算处理过程不占用移动设备软硬件资源的效果,在处理速度和结果响应上有较大优势。
综上所述,本申请提供的一种计算***,包括:移动设备和用于对所述移动设备的计算作业进行加速的加速设备;所述移动设备包括第一接口、所述加速设备包括第二接口;所述第一接口与所述第二接口连接,所述加速设备通过所述第一接口与所述第二接口之间的连接对所述移动设备的计算作业进行加速。本申请中,移动设备可以将计算作业通过输入输出接口发送至加速设备,由加速设备对计算作业进行独立计算处理,降低了计算作业的处理过程对移动设备自身软硬件资源的依赖,从而降低了移动设备操作***卡顿的几率。另外,移动设备和加速设备之间采用物理的输入输出接口进行数据传输,传输过程实时且快速,解决了计算作业的处理依赖于网络传输质量的问题。
可选的,参照图13,示出了本申请另一种计算***实施例的结构图,该***还包括:
USB集线器80;USB集线器80包括第三接口801和多个第四接口802;第三接口801与第一接口601连接,第四接口802用于对应设置一个或多个加速设备70,且第四接口802用于与第二接口602连接。
在本申请实施例中,USB集线器80是一个多端口的转发器,即USB集线器80作为一个USB接口的拓展坞,可以在其输出端802的各个第四接口802上安装一个或多个加速设备70,并且,USB集线器80通过其第三接口801接收移动设备50通过第一接口601发送的数据,并将该数据发送通过第四接口802至每一个加速设备70中。
具体的,通过移动设备50、USB集线器80与各个加速设备70之间的通信,用户可以从移动设备50的界面中查看到每个加速设备70的当前负载值,并根据自己的需求,进行选择操作,选取多个加速设备70中负载值小于或等于预设阈值的一个或多个目标加速设备。另外,移动设备50也可以根据计算作业的处理量、数据量大小,自动确定所需目标加速设备的数量,并选取多个加速设备70中负载值小于或等于预设阈值的目标加速设备。
在存在一个计算作业的情况下,若要大幅度提升该计算作业的计算效率,则移动设备50可以通过USB集线器80控制多台加速设备70进行针对该一个计算作业的计算处理,并通过管理SDK将计算作业以及与计算作业对应的数学模型,通过第一接口601和第二接口602和USB集线器80分别发送至多个目标加速设备进行处理,达到多倍于一个加速设备70的加速效果。
可选的,所述第一接口和第二接口包括通用串行总线接口、闪电接口中的至少一种。
可选的,所述通用串行总线接口包括:USB Type A接口、USB Type B接口、USB Type C接口中的至少一种。
具体的,USB是一个外部总线标准,用于规范移动设备与外部设备的连接和通讯,且USB接口可以实现移动设备和加速设备之间的“热插拔”功能,提高了便捷性。并且,随着USB技术的不断发展,USB的接口标准已经由第一代USB1.1延伸至了USB3.1,另外,根据USB接口的具体结构实现不同,也延伸出了type-A、type-B、type-C等不同接口类型的USB接口。
可选的,参照图12,移动设备50还包括:第一处理器501和第一存储器502;加速设备70包括至少一个第二处理器701和第二存储器702;
所述第一处理器501与所述第一接口601连接,所述第一存储器502与所述第一处理器201连接;
所述第二处理器701与所述第二接口602连接,所述第二存储器702与所述第二处理器701连接。
所述第二处理器包括:图像处理器和/或中央处理器。
具体的,第一存储器502可以存储获取到的计算作业,以及存储用于进行计算作业处理的数学模型。移动设备50在获取得到计算作业时,可以将计算作业存储在第一存储器502中对应管理SDK的存储分区,以便管理SDK对计算作业进行管理。
在本申请实施例中,第二存储器702可以用于存储加速设备70接收到的计算作业以 及对应的数学模型。
另外,在存在多个设置在USB集线器80的输出端802的目标加速设备的情况下,目标加速设备可以通过获取其他目标加速设备的PCI标识,进一步查找到其他目标加速设备的资源地址,达到共享所有目标加速设备的计算进程的目的,使得在所有目标加速设备可以通过统筹调度所有目标加速设备的软硬件资源,进行针对一个计算作业的处理过程,大大提升计算处理效率。
具体的,加速设备的资源地址可以包括软件资源地址和硬件资源地址。软件资源地址可以包括:变量、表格、队列等。硬件资源地址可以包括内存地址,例如,可以指定一个或多个目标加速设备的第二存储器702为共享存储区,并将该一个或多个目标加速设备的第二存储器702地址通知给所有目标加速设备,使得所有目标加速设备之间可通过对共享存储区中的数据进行读写来实现通信。共享内存允许以最快的速度进行便捷的进程通信,仅在建立共享内存区域时需要***调用,以后,所有共享内存访问都处理为常规内存访问。
针对一个计算作业,在统筹调度下,所有目标加速设备可以从共享存储区读取计算作业的处理进度及处理数据,并将自身第二处理器701处理该计算作业得到的处理数据写入共享存储区,直至得到计算结果。
综上所述,本申请提供的一种计算***,包括:移动设备和用于对所述移动设备的计算作业进行加速的加速设备;所述移动设备包括第一接口、所述加速设备包括第二接口;所述第一接口与所述第二接口连接,所述加速设备通过所述第一接口与所述第二接口之间的连接对所述移动设备的计算作业进行加速。本申请中,移动设备可以将计算作业通过输入输出接口发送至加速设备,由加速设备对计算作业进行独立计算处理,降低了计算作业的处理过程对移动设备自身软硬件资源的依赖,从而降低了移动设备操作***卡顿的几率。另外,移动设备和加速设备之间采用物理的输入输出接口进行数据传输,传输过程实时且快速,解决了计算作业的处理依赖于网络传输质量的问题。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。
本申请实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本申请实施例中,所述电子设备包括服务器(集群)、移动设备、终端设备等。
本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括服务器(集群)、移动设备、终端设备等电子设备。图14示意性地示出了可被用于实现本申请中所述的各个实施例的示例性装置1000。
对于一个实施例,图14示出了示例性装置1000,该装置具有一个或多个处理器1002、被耦合到(一个或多个)处理器1002中的至少一个的控制模块(芯片组)1004、被耦合到控制模块1004的存储器1006、被耦合到控制模块1004的非易失性存储器(NVM)/存储设备1008、被耦合到控制模块1004的一个或多个输入/输出设备1010,以及被耦合到控制模块1004的网络接口1012。
处理器1002可包括一个或多个单核或多核处理器,处理器1002可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1000能够作为本申请实施例中所述服务器(集群)、移动设备、终端设备等设备。
在一些实施例中,装置1000可包括具有指令1014的一个或多个计算机可读介质(例如,存储器1006或NVM/存储设备1008)以及与该一个或多个计算机可读介质相合并被配置为执行指令1014以实现模块从而执行本公开中所述的动作的一个或多个处理器1002。
对于一个实施例,控制模块1004可包括任意适当的接口控制器,以向(一个或多个)处理器1002中的至少一个和/或与控制模块1004通信的任意适当的设备或组件提供任意适当的接口。
控制模块1004可包括存储器控制器模块,以向存储器1006提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
存储器1006可被用于例如为装置1000加载和存储数据和/或指令1014。对于一个实施例,存储器1006可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,存储器1006可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,控制模块1004可包括一个或多个输入/输出控制器,以向NVM/存储设备1008及(一个或多个)输入/输出设备1000提供接口。
例如,NVM/存储设备1008可被用于存储数据和/或指令1014。NVM/存储设备1008可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/ 或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备1008可包括在物理上作为装置1000被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,NVM/存储设备1008可通过网络经由(一个或多个)输入/输出设备1000进行访问。
(一个或多个)输入/输出设备1000可为装置1000提供接口以与任意其他适当的设备通信,输入/输出设备1000可以包括通信组件、音频组件、传感器组件等。网络接口1002可为装置1000提供接口以通过一个或多个网络通信,装置1000可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi、2G、3G、4G等,或它们的组合进行无线通信。
对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑封装在一起以形成***级封装(SiP)。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑集成在同一模具上以形成片上***(SoC)。
在各个实施例中,装置1000可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1000可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1000包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
本申请实施例提供了一种服务器,包括:一个或多个处理器;和,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述服务器执行如本申请实施例中一个或多个所述的数据处理方法。
本申请实施例提供了一种电子设备,包括:一个或多个处理器;和,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行计算作业处理方法。
本申请实施例提供了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行计算作业处理方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关 之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种计算作业处理方法和装置、一种电子设备和一种存储介 质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (20)

  1. 一种计算作业处理方法,其特征在于,包括:
    移动设备获取计算作业;其中,所述移动设备的第一接口与至少一个加速设备的第二接口连接;所述第一接口和所述第二接口采用预设接口协议;
    所述移动设备通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口;
    所述加速设备通过所述第二接口接收所述计算作业;
    所述加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口;
    所述移动设备通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果。
  2. 根据权利要求1所述的方法,其特征在于,还包括:
    所述移动设备在检测到所述第二接口与所述第一接口之间的物理连接后,执行允许所述加速设备与所述移动设备进行数据交互的第一授权操作。
  3. 根据权利要求2所述的方法,其特征在于,还包括:
    所述移动设备通过所述管理软件开发工具包向所述加速设备发送加速设备固件;
    所述加速设备安装所述加速设备固件;所述加速设备固件用于提供支持处理所述计算作业的操作***;
    在所述加速设备安装了所述加速设备固件且重启完毕的情况下,执行允许所述加速设备与所述移动设备进行数据交互的第二授权操作。
  4. 根据权利要求3所述的方法,其特征在于,所述执行允许所述加速设备与所述移动设备进行数据交互的第一授权操作或第二授权操作,包括:
    所述移动设备通过所述管理软件开发工具包调用所述移动设备的操作***的设备监听接口;
    所述移动设备在通过所述设备监听接口获取到所述加速设备的外设部件互连标准标识的情况下,对所述加速设备赋予允许所述加速设备与所述移动设备进行数据交互的权限。
  5. 根据权利要求3所述的方法,其特征在于,所述移动设备通过所述管理软件开发工具包向所述加速设备发送加速设备固件,包括:
    所述移动设备根据所述计算作业的属性信息,通过所述管理软件开发工具包,向所 述加速设备发送与所述属性信息匹配的加速设备固件。
  6. 根据权利要求1所述的方法,其特征在于,还包括:
    所述移动设备通过所述管理软件开发工具包调用与预设接口协议匹配的写入指令,将所述计算作业对应的处理规则由所述第一接口发送至所述第二接口;
    所述加速设备通过所述第二接口接收所述处理规则并将所述处理规则写入所述加速设备的预设位置。
  7. 根据权利要求6所述的方法,其特征在于,还包括:
    所述移动设备提供处理规则的输入接口;
    所述移动设备通过所述输入接口,接收所述处理规则。
  8. 根据权利要求1所述的方法,其特征在于,所述移动设备通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口,包括:
    在所述移动设备的第一接口与至少两个所述加速设备的第二接口连接的情况下,所述移动设备确定至少两个所述加速设备中负载值小于或等于预设阈值的目标加速设备;
    所述移动设备通过所述管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口。
  9. 根据权利要求8所述的方法,其特征在于,还包括:在所述目标加速设备包括至少两个的情况下,所述移动设备发送共享指令至所述目标加速设备;
    所述加速设备对所述计算作业进行处理,包括:
    所述至少两个目标加速设备根据所述共享指令,共享所述至少两个目标加速设备的计算资源,对所述计算作业进行处理,得到对应的计算结果。
  10. 一种计算作业处理方法,所述方法应用于一种移动设备,其特征在于,包括:
    获取计算作业;其中,所述移动设备的第一接口与至少一个加速设备的第二接口连接;所述第一接口和所述第二接口采用预设接口协议;
    通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口;
    通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果。
  11. 一种计算作业处理方法,所述方法应用于一种加速设备,其特征在于,包括:
    通过第二接口接收所述计算作业;其中,所述加速设备的第二接口与移动设备的第 一接口连接;
    加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
  12. 一种计算作业处理***,其特征在于,所述***包括:
    移动设备、加速设备;所述移动设备的第一接口与至少一个加速设备的第二接口连接;所述第一接口和所述第二接口采用预设接口协议;
    所述移动设备包括:
    第一获取模块,用于获取计算作业;
    第一调用模块,用于通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口;
    第二调用模块,用于通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取所述处理结果;
    所述加速设备包括:
    第一接收模块,用于通过所述第二接口接收所述计算作业;
    第一处理模块,用于对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
  13. 一种移动设备,其特征在于,所述移动设备包括:
    第一获取模块第一获取模块,用于获取计算作业;其中,所述移动设备的第一接口与至少一个加速设备的第二接口连接;所述第一接口和所述第二接口采用预设接口协议;
    第一调用模块第一调用模块,用于通过管理软件开发工具包调用与所述预设接口协议匹配的写入指令,将所述计算作业由所述第一接口发送至所述第二接口;
    第二调用模块第二调用模块,用于通过所述管理软件开发工具包调用与所述预设接口协议匹配的读取指令,从所述第一接口获取处理结果。
  14. 一种加速设备,其特征在于,所述的加速设备包括:
    第一接收模块第一接收模块,用于通过第二接口接收计算作业;其中,所述加速设备的第二接口与移动设备的第一接口连接;
    第一处理模块第一处理模块,用于加速设备对所述计算作业进行处理,并将处理结果通过所述第二接口发送至所述第一接口。
  15. 一种电子设备,其特征在于,包括:
    处理器;和
    存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求1-9中一个或多个所述的计算作业处理方法。
  16. 一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如权利要求1-9中一个或多个所述的计算作业处理方法。
  17. 一种电子设备,其特征在于,包括:
    处理器;和
    存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求10所述的计算作业处理方法。
  18. 一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如权利要求10所述的计算作业处理方法。
  19. 一种电子设备,其特征在于,包括:
    处理器;和
    存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求11所述的计算作业处理方法。
  20. 一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如权利要求11所述的计算作业处理方法。
PCT/CN2020/086995 2019-04-29 2020-04-26 计算作业处理方法、***、移动设备及加速设备 WO2020221161A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20798699.3A EP3964955A4 (en) 2019-04-29 2020-04-26 COMPUTATION ORDER METHOD AND SYSTEM, MOBILE DEVICE AND ACCELERATION DEVICE
US17/438,388 US11893391B2 (en) 2019-04-29 2020-04-26 Processing computing jobs via an acceleration device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910357589.3A CN111858016A (zh) 2019-04-29 2019-04-29 计算作业处理方法、***、移动设备及加速设备
CN201910357589.3 2019-04-29

Publications (1)

Publication Number Publication Date
WO2020221161A1 true WO2020221161A1 (zh) 2020-11-05

Family

ID=72966438

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/086995 WO2020221161A1 (zh) 2019-04-29 2020-04-26 计算作业处理方法、***、移动设备及加速设备

Country Status (4)

Country Link
US (1) US11893391B2 (zh)
EP (1) EP3964955A4 (zh)
CN (1) CN111858016A (zh)
WO (1) WO2020221161A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230393901A1 (en) * 2020-10-27 2023-12-07 Albert Luntsch Method for controlling and regulating data for generating a representation, in particular a virtual representation, via a client, and method for managing data on the internet for generating a representation, in particular a virtual representation, via a client

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536813A (zh) * 2014-12-29 2015-04-22 北京奇虎科技有限公司 计算设备的加速方法和装置
CN105824706A (zh) * 2015-12-31 2016-08-03 华为技术有限公司 一种配置加速器的方法和装置
CN206541267U (zh) * 2016-12-19 2017-10-03 深圳泰克威云储科技股份有限公司 一种支持智能移动设备数据传输及充电的存储***装置
EP3428808A1 (en) * 2017-07-14 2019-01-16 Vsoft Spolka Akcyjna Communication between mobile devices and a web application running on a server

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985995B2 (en) * 2002-03-29 2006-01-10 Panasas, Inc. Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data
US7117013B2 (en) * 2003-10-07 2006-10-03 Lenovo (Singapore) Pte. Ltd. Cruable dual mode ISM and U-NII wireless radio with secure, integral antenna connection
US20070050525A1 (en) * 2005-08-25 2007-03-01 Moxa Technologies Co., Ltd. [virtual com port for remote i/o controller]
KR20090016293A (ko) 2007-08-10 2009-02-13 엘지전자 주식회사 휴대 단말기 및 그 외부기기 연결 방법
US8713559B2 (en) * 2010-11-15 2014-04-29 Schneider Electric It Corporation System and method for updating firmware
US9600429B2 (en) * 2010-12-09 2017-03-21 Solarflare Communications, Inc. Encapsulated accelerator
WO2012148087A2 (ko) * 2011-04-29 2012-11-01 주식회사 케이티 외부 디바이스와 도킹 연결되는 휴대 단말 및 화면 변경 방법
US8935793B2 (en) * 2012-02-29 2015-01-13 The Mitre Corporation Hygienic charging station for mobile device security
US9189170B2 (en) 2012-06-12 2015-11-17 Commvault Systems, Inc. External storage manager for a data storage cell
US20140075377A1 (en) 2012-09-10 2014-03-13 Samsung Electronics Co. Ltd. Method for connecting mobile terminal and external display and apparatus implementing the same
US9264749B2 (en) * 2012-12-13 2016-02-16 Microsoft Technology Licensing, Llc Server GPU assistance for mobile GPU applications
US20140364711A1 (en) 2013-03-27 2014-12-11 AkibaH Health Corporation All-in-one analyte sensor in a detachable external mobile device case
US9323455B2 (en) 2013-04-27 2016-04-26 Lg Electronics Inc. Mobile terminal and method of controlling an external mobile terminal
CN105190530B (zh) * 2013-09-19 2018-07-20 思杰***有限公司 传输硬件渲染的图形数据
CN103500076A (zh) 2013-10-13 2014-01-08 张维加 一种基于多通道slc nand与dram缓存的新usb协议计算机加速设备
EP3072317B1 (en) 2013-11-22 2018-05-16 Qualcomm Incorporated System and method for configuring an interior of a vehicle based on preferences provided with multiple mobile computing devices within the vehicle
CN105122210B (zh) * 2013-12-31 2020-02-21 华为技术有限公司 Gpu虚拟化的实现方法及相关装置和***
US9111214B1 (en) 2014-01-30 2015-08-18 Vishal Sharma Virtual assistant system to remotely control external services and selectively share control
US20160036883A1 (en) 2014-07-30 2016-02-04 Qualcomm Incorporated Systems and methods for selective transport accelerator operation
CN104298474A (zh) 2014-10-13 2015-01-21 张维加 一种基于服务端与外部缓存***的外接式计算设备加速方法与实现该方法的设备
US10348691B2 (en) 2014-11-15 2019-07-09 Abhishek Adhikari System and method for controlling, sharing, release and management of digital data between smart mobile device(s) and external device(s) using a connector pad
US9871878B2 (en) * 2014-12-15 2018-01-16 Twin Prime, Inc. Network traffic accelerator
DE102015211101A1 (de) 2015-06-17 2016-12-22 Volkswagen Aktiengesellschaft Spracherkennungssystem sowie Verfahren zum Betreiben eines Spracherkennungssystems mit einer mobilen Einheit und einem externen Server
US9769596B2 (en) 2015-11-24 2017-09-19 International Business Machines Corporation Mobile device output to external device
US10687188B2 (en) * 2016-04-08 2020-06-16 Cloudflare, Inc. Mobile application accelerator
US10511508B2 (en) * 2016-05-05 2019-12-17 Keysight Technologies Singapore (Sales) Pte. Ltd. Network packet forwarding systems and methods to push packet pre-processing tasks to network tap devices
KR20180037473A (ko) 2016-10-04 2018-04-12 삼성전자주식회사 모바일 결제 방법, 전자 장치 및 외부 결제 장치
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
WO2019183869A1 (en) 2018-03-29 2019-10-03 Intel Corporation Augmenting mobile device operation with intelligent external sensors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536813A (zh) * 2014-12-29 2015-04-22 北京奇虎科技有限公司 计算设备的加速方法和装置
CN105824706A (zh) * 2015-12-31 2016-08-03 华为技术有限公司 一种配置加速器的方法和装置
CN206541267U (zh) * 2016-12-19 2017-10-03 深圳泰克威云储科技股份有限公司 一种支持智能移动设备数据传输及充电的存储***装置
EP3428808A1 (en) * 2017-07-14 2019-01-16 Vsoft Spolka Akcyjna Communication between mobile devices and a web application running on a server

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3964955A4 *

Also Published As

Publication number Publication date
US11893391B2 (en) 2024-02-06
EP3964955A1 (en) 2022-03-09
CN111858016A (zh) 2020-10-30
EP3964955A4 (en) 2023-01-18
US20220156086A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
KR101343714B1 (ko) 공유된 비휘발성 메모리 아키텍쳐
US10621114B1 (en) Standardized interface for storage using an input/output (I/O) adapter device
KR20110130435A (ko) 메모리 세그먼테이션 및 acpi 기반 컨텍스트 전환을 사용하는 운영 시스템 로딩
US10922090B1 (en) Methods and systems for executing a software application using a container
US9417886B2 (en) System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
US10761822B1 (en) Synchronization of computation engines with non-blocking instructions
WO2019119315A1 (zh) 基于多操作***的输入处理方法、装置及电子设备
US11175919B1 (en) Synchronization of concurrent computation engines
JP2017519294A (ja) フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(mhpc)
US20210158131A1 (en) Hierarchical partitioning of operators
US11706289B1 (en) System and method for distributed management of hardware using intermediate representations of systems to satisfy user intent
KR20210080009A (ko) 가속기, 가속기의 동작 방법 및 가속기를 포함한 디바이스
CN112740211A (zh) 引导固件沙箱化
WO2020221161A1 (zh) 计算作业处理方法、***、移动设备及加速设备
US10115375B2 (en) Systems and methods for enabling a systems management interface with an alternate frame buffer
KR102315102B1 (ko) 가상 머신을 부팅하기 위한 방법, 장치, 기기 및 매체
JP6050528B2 (ja) セキュリティ・コプロセッサ・ブート性能
US9836421B1 (en) Standardized interface for network using an input/output (I/O) adapter device
US10922146B1 (en) Synchronization of concurrent computation engines
US12008111B2 (en) System and method for efficient secured startup of data processing systems
US10853299B2 (en) Hot-plugged PCIe device configuration system
US9292396B2 (en) System and method for secure remote diagnostics
CN210166772U (zh) 计算***
US11354130B1 (en) Efficient race-condition detection
US11593121B1 (en) Remotely disabling execution of firmware components

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020798699

Country of ref document: EP

Effective date: 20211129