WO2022172365A1 - リソース制御装置、リソース制御システム、および、リソース制御方法 - Google Patents
リソース制御装置、リソース制御システム、および、リソース制御方法 Download PDFInfo
- Publication number
- WO2022172365A1 WO2022172365A1 PCT/JP2021/004998 JP2021004998W WO2022172365A1 WO 2022172365 A1 WO2022172365 A1 WO 2022172365A1 JP 2021004998 W JP2021004998 W JP 2021004998W WO 2022172365 A1 WO2022172365 A1 WO 2022172365A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- user
- queue
- unit
- task
- resource control
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 7
- 239000000284 extract Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 6
- 230000000052 comparative effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates to an FPGA resource control device, resource control system, and resource control method.
- FPGAs Field-Programmable Gate Arrays
- IP core IP core
- Extellectual Property Core IP core
- Such FPGAs can be used in multiple use cases (eg: pose identification, person detection, object detection, etc.).
- End-users can use the FPGA for each task with similar execution time order without rewriting those IP core functions.
- Common processing executed in FPGA is started by each end user's host CPU program passing processing to FPGA, and each processing in FPGA is executed as a non-preemptive task and then executed by CPU (Central Processing Unit) A result is returned.
- CPU Central Processing Unit
- an object of the present invention is to appropriately share the functions of an FPGA among multiple users and improve the resource efficiency of the FPGA.
- the resource control device of the present invention comprises a controller unit that sets resources related to an IP core of an FPGA in which a program executes a task, and a queue that has a plurality of priorities for each program.
- a common unit that creates a set of user queues and stores tasks in the user queues, and a scheduler unit that selects tasks to be executed by any of the IP cores by multistage scheduling within the user queues and between the user queues.
- the present invention it is possible to preferably share the functions of the FPGA among multiple users and improve the resource efficiency of the FPGA.
- FIG. 1 is a configuration diagram of a resource control device for sharing accelerator devices in this embodiment;
- FIG. It is a figure which shows an example of the operation
- FIG. 10 is a diagram illustrating an example of an IP core exclusive use operation by a resource control device;
- FIG. 4 is a diagram showing an example of a resource control device deployed in the user space of a host machine;
- FIG. 3 is a diagram illustrating an example of a resource control device deployed in an OS kernel of a host machine;
- FIG. FIG. 10 is a diagram showing an example of a resource control system in which a controller is arranged in the user space of another host machine;
- FIG. 11 is a configuration diagram of a resource control device of a comparative example;
- FIG. 7 is a configuration diagram of a resource control device 1G of a comparative example.
- the resource control device 1G includes an FPGA 8 implemented as hardware, and a queue set 5G and a scheduler section 7G are implemented by a CPU (not shown) executing a software program.
- This resource control device 1G is, for example, a cloud server that is installed in a data center and provides services to each user via the Internet.
- the FPGA 8 is configured including a plurality of IP cores 81 to 83 and simultaneously executes a plurality of tasks non-preemptively.
- the IP core 81 is described as "IP core #0”
- the IP core 82 is described as “IP core #1”
- the IP core 83 is described as “IP core #2”. is doing.
- the queue set 5G comprises a plurality of queues 50, 51-5F. Since the priority of the queue 50 is lower than that of any other queue, it is indicated as “queue #0" in FIG. The priority of the queue 51 is higher than that of the queue 50, but lower than that of any other queue, so it is indicated as “queue #1" in FIG. Since the priority of queue 5F is higher than that of any other queue, it is described as "queue #15" in FIG.
- the scheduler section 7G has a fixed priority scheduler section 74, schedules the tasks 6a to 6d stored in the queues 50, 51 to 5F in order of priority of each queue, and causes the FPGA 8 to execute them.
- the resource control device 1G receives tasks 6a to 6d from a plurality of user programs 3a and 3b and causes the FPGA 8 to execute them. Therefore, the user programs 3 a and 3 b have an IP core mask setting section 31 and a task priority setting section 32 .
- Task 6a is a task of identifying a person.
- Tasks 6b and 6c are pose identification tasks. These tasks 6a to 6c are executed by the FPGA 8 upon receiving instructions from the user program 3a.
- Task 6d is a task of recognizing an object. The task 6d is executed by the FPGA 8 upon receiving instructions from the user program 3b.
- the IP core mask setting unit 31 sets which of the IP cores 81 to 83 of the FPGA 8 is to execute the task and which is not to execute the task.
- the user programs 3a, 3b and the like can directly specify the core mask for the desired IP core. Therefore, there is a drawback that the internal information of the cloud server is exposed to the user and lacks abstraction.
- the task priority setting unit 32 sets the priority of tasks.
- the task priority setting unit 32 determines in which of the queues 50, 51 to 5F of the queue set 5G the task is to be stored.
- the task priority setting unit 32 allows each user to set the priority of a task relative to other tasks of this user. Specifically, tasks 6b and 6c for identifying poses can be executed prior to task 6a for identifying a person.
- the resource amount of the FPGA 8 to be used is determined inside the user programs 3a and 3b, it cannot be dynamically changed from outside the user programs 3a and 3b, resulting in a lack of flexibility.
- the fixed-priority scheduler unit 74 simply takes out tasks in order from those stored in the queue with the highest priority and allocates them to IP cores. Therefore, users cannot specify the amount of resources they want to use for a task. Then, a difference may occur between the resource amount of the FPGA 8 requested by the user program and the expected value of the actually obtained execution time, which may result in a lack of fairness.
- FIG. 1 is a configuration diagram of a resource control device 1 for sharing accelerator devices in this embodiment.
- the resource control device 1 includes an FPGA 8 implemented as hardware, and a CPU (not shown) executes a software program to implement a controller section 2, a common section 4, user queues 5a and 5b, and a scheduler section 7. It is
- This resource control device 1 is, for example, a cloud server that is installed in a data center and provides services to each user via the Internet.
- the controller unit 2 includes a command reception unit 21, a user queue management unit 22, and a used IP core control unit 23.
- the controller unit 2 has a function related to IP core setting, and sets resources related to the IP cores 81 to 83 of the FPGA 8 on which the program executes tasks.
- the controller unit 2 checks the idle state of the IP cores, internally designates an IP core mask, and sets it in the scheduler unit 7 . Therefore, the information inside the cloud server is not exposed to the user programs 3a and 3b.
- the controller unit 2 since the controller unit 2 includes the command reception unit 21, the resources can be dynamically controlled, so flexibility can be provided.
- the command reception unit 21 dynamically receives resource control instructions from the user from outside the program.
- the resource control instruction is an instruction describing the number of IP cores to be used, whether to exclusively use the IP cores, and the like. If the resource control instruction is not accepted, the command accepting unit 21 notifies the user of that fact.
- the user queue management unit 22 notifies the user queue creation unit 41 of the common unit 4 to create a user queue for this program each time the user programs 3a, 3b, etc. start up.
- the used IP core control unit 23 manages the occupied/empty state of the IP cores 81 to 83 of the FPGA 8 in the physical host, secures the number of IP cores specified by the command reception unit 21, Creates and manages a fixedly assigned map that is exclusive to In addition, the used IP core control unit 23 notifies the scheduler unit 7 of the allocation information each time the allocation information in which one of the IP cores 81 to 83 is allocated to the task is updated. When the number of free IP cores is insufficient for the task to be executed by the user program, the used IP core control unit 23 notifies the command receiving unit 21 that this designation cannot be accepted. Then, the command receiving unit 21 notifies the user that the resource control command from the user has not been received.
- the common section 4 includes a user queue creation section 41 and a user queue allocation section 42 .
- the common unit 4 creates a user queue, which is a set of queues each having a plurality of priorities, for each program, and stores tasks in this user queue.
- the user queue creating unit 41 receives information about usable user queues from the controller unit 2, and creates a user queue for this program each time a new program is deployed and activated.
- the user queue allocation unit 42 Upon receiving a task from a program, the user queue allocation unit 42 selects a user queue corresponding to the user identifier assigned to this program, and based on the priority of the tasks in the user programs 3a and 3b, assigns the corresponding priority. Store the task in a queue of degrees.
- the user programs 3a and 3b are provided with a task priority setting unit 32 to set the priority of each task.
- the task priority setting unit 32 of the user program 3a sets priority #0 to the tasks 6a and 6b and transfers them to the common unit 4, and sets priority #1 to the task 6c and transfers them to the common unit 4.
- FIG. The task priority setting unit 32 of the user program 3 b sets the priority #1 to the task 6 d and hands it over to the common unit 4 .
- Tasks 6a and 6b are stored in queue 50 of user queue 5a
- task 6c is stored in queue 51 of user queue 5a.
- a task 6d is stored in the queue 51 of the user queue 5b.
- the scheduler section 7 includes an inter-user-queue scheduler section 71 , an intra-user-queue scheduler section 72 , and an IP core mask setting section 73 .
- the scheduler unit 7 selects a task to be executed by one of the IP cores 81 to 83 by multistage scheduling within and between user queues.
- the inter-user-queue scheduler unit 71 selects the user queues 5a and 5b from which tasks are to be extracted by a fair algorithm such as round robin. These user queues 5a, 5b are a set of queues 50, 51 having multiple priorities. Although the user queues 5a and 5b are queue sets having 16 levels of priority, only two queues are shown.
- the intra-user-queue scheduler unit 72 selects tasks to be executed by an algorithm that takes priority into account, such as retrieving tasks from the queue with the highest priority within the user queue selected by the inter-user-queue scheduler unit 71 .
- the intra-user-queue scheduler unit 72 schedules user tasks in the user queues 5a and 5b independently of the inter-user-queue scheduler unit 71, thereby enabling priority control of each task.
- the intra-user-queue scheduler unit 72 and inter-user-queue scheduler unit 71 implement the controllability of the resource control device 1 .
- the IP core mask setting unit 73 receives information from the controller unit 2, sets an IP core mask for each task, and controls so that IP cores not specified are not used.
- the IP core mask means designation of an IP core for a task.
- the common unit 4 prepares a plurality of independent user queues 5a and 5b containing queues of each priority. Further, the scheduler section 7 includes an inter-user-queue scheduler section 71 which determines which user queues 5a and 5b are selected. The common unit 4 schedules the priority control algorithm of the intra-user-queue scheduler unit 72 and the algorithm of the inter-user-queue scheduler unit 71 together in multiple stages, thereby ensuring fairness in resource allocation of the FPGA 8 .
- FIG. 2 is a diagram showing an example of operations in the resource control device 1.
- Resource control instructions 20a to 20c are sequentially notified to the controller unit 2 in FIG.
- the controller section 2 is notified of the resource control instruction 20a.
- the resource control instruction 20a describes that it is a deploy request related to user program A (user program 3a) and that the number of IP cores to be used is two.
- the controller unit 2 manages mapping between the two IP cores in the FPGA 8 and the user program 3a. At this time, two IP cores in the FPGA 8 are assigned to task execution of the user program 3a.
- the controller section 2 is notified of the resource control instruction 20b.
- the resource control instruction 20b describes that it is a deployment request related to user program B (user program 3b) and that the number of IP cores to be used is one. Even if the user program 3a is already running, by notifying the controller unit 2 of the resource control instruction 20b together with the user program 3b, the user program 3b is deployed and its execution is started.
- the controller unit 2 manages mapping between one IP core in the FPGA 8 and the user program 3b.
- the controller unit 2 is notified of the resource control instruction 20c.
- the resource control instruction 20c is a command related to the user program C (not shown).
- User programs 3a and 3b are already running, and all IP cores in FPGA 8 are assigned to these user programs 3a and 3b. Therefore, since the deployment request exceeds the resource capacity, the controller unit 2 notifies the user to that effect and does not deploy the user program C.
- FIG. 1
- the user queue scheduler section 72 of the scheduler section 7 adjusts the execution time ratio of the user programs 3a and 3b to 2:1 using an algorithm such as round robin.
- This execution time ratio is equal to the ratio of the number of IP cores in the resource control instructions 20a and 20b.
- the controller unit 2 can fairly allocate the IP cores of the FPGA 8 to the user programs 3a and 3b.
- FIG. 3 is a diagram showing an example of an IP core exclusive use operation by the resource control device 1.
- Resource control commands 20a and 20b are notified to the controller unit 2 in FIG.
- the resource control instruction 20a states that it is a deploy request related to user program A (user program 3a), that the number of IP cores to be used is two, and that the IP cores are exclusively used. .
- the user program 3a is deployed and its execution is started.
- the controller unit 2 manages two IP cores in the FPGA 8 and manages exclusive mapping between the user program 3a and the IP cores. At this time, two IP cores in the FPGA 8 are exclusively assigned to task execution of the user program 3a.
- the resource control instruction 20b describes that it is a deploy request related to user program B (user program 3b), that the number of IP cores to be used is one, and that the IP core is exclusively used. . Even if the user program 3a is already running, the user notifies the controller unit 2 of the resource control instruction 20b together with the user program 3b, thereby deploying the user program 3b and starting its execution.
- the controller unit 2 manages mapping between the IP cores in the FPGA 8 and the user programs 3a and 3b. At this time, two IP cores in the FPGA 8 are exclusively assigned to execute the task of the user program 3a, and the remaining one IP core is exclusively assigned to execute the task of the user program 3b.
- FIG. 4 is a diagram showing an example of the resource control device 1 deployed in the user space of the host machine 1B.
- the host machine 1B has a CPU 93 and an FPGA 8 as hardware layers, and an OS (Operating System) 92 is installed.
- the controller section 2 and FPGA library 91 are embodied, and user programs 3a and 3b are deployed.
- the FPGA library 91 includes the multiqueue 5 and the scheduler section 7, and in combination with the controller section 2 operates as the resource control device 1 described above.
- a new user queue is generated in the multiqueue 5 each time a user program is deployed.
- the scheduler section 7 includes parts corresponding to the inter-user-queue scheduler section 71, the intra-user-queue scheduler section 72, and the IP core mask setting section 73 shown in FIG.
- the controller section 2 notifies the multiqueue 5 and the scheduler section 7 of the command.
- FPGA library 91 causes FPGA 8 and IP cores 81 to 83 to execute tasks via FPGA driver 94 installed in OS 92 .
- FIG. 5 is a diagram showing an example of the resource control device 1 arranged in the kernel space of the OS 92 of the host machine 1C.
- the host machine 1C has a CPU 93 and an FPGA 8 as hardware layers, and an OS 92 is installed.
- a controller unit 2, a CPU scheduler 921, and an FPGA driver 94 are installed in the kernel space of the OS 92 of the host machine 1B.
- An FPGA library 91 and user programs 3a and 3b are deployed in the user space of the host machine 1C.
- the controller unit 2 includes a CPU control unit 24 , a device control unit 25 , a GPU (Graphic Processing Unit) control unit 26 and an FPGA control unit 27 .
- the CPU control unit 24 is a unit that controls the cores 931 to 932 configured in the CPU 93 and notifies the CPU scheduler 921 of instructions.
- the GPU control unit 26 is a part that controls the GPU (not shown).
- the FPGA control section 27 is a section that controls the FPGA 8, and includes sections corresponding to the command reception section 21, the user queue management section 22, and the used IP core control section 23 shown in FIG.
- the FPGA driver 94 includes a multiqueue 5 and a scheduler section 7.
- the multiqueue 5 and scheduler section 7 are controlled by the FPGA control section 27 .
- a new user queue is generated in the multiqueue 5 each time a user program is newly deployed.
- the scheduler section 7 includes parts corresponding to the inter-user-queue scheduler section 71, the intra-user-queue scheduler section 72, and the IP core mask setting section 73 shown in FIG.
- FIG. 6 is a diagram showing an example of a resource control system in which the controller section 2 is arranged in the user space of another host machine 1D.
- the resource control system shown in FIG. 6 includes a host machine 1D in which a controller section 2 is arranged in addition to the host machine 1E.
- the host machine 1D has a CPU 93 as a hardware layer, and an OS 92 is installed.
- a controller unit 2 is embodied in the user space of the host machine 1D. This controller section 2 has the same functions as the controller section 2 shown in FIG.
- the host machine 1E has a CPU 93 and an FPGA 8 as hardware layers, and an OS 92 is installed.
- An FPGA library 91 is embodied in the user space of the host machine 1E, and user programs 3a and 3b are deployed. This FPGA library 91 has the same functions as the FPGA library 91 shown in FIG.
- the FPGA library 91 includes the multiqueue 5 and the scheduler section 7, and operates as the resource control device 1 described above in combination with the controller section 2 of the host machine 1D. Each time a user program is deployed in the multiqueue 5, a new user queue corresponding to this user program is generated.
- the scheduler section 7 includes parts corresponding to the inter-user-queue scheduler section 71, the intra-user-queue scheduler section 72, and the IP core mask setting section 73 shown in FIG.
- the controller section 2 notifies the multiqueue 5 and the scheduler section 7 of the command.
- FPGA library 91 causes FPGA 8 and IP cores 81 to 83 to execute tasks via FPGA driver 94 installed in OS 92 .
- ⁇ Claim 1>> a controller unit that sets resources related to the IP core of the FPGA in which the program executes tasks; a common unit that creates a user queue, which is a set of queues each having a plurality of priorities, for each program and stores tasks in the user queue; a scheduler unit that selects a task to be executed by one of the IP cores by multistage scheduling within the user queue and between the user queues;
- a resource control device comprising:
- the scheduler unit an inter-user-queue scheduler that selects a user queue from which a task is taken; an intra-user-queue scheduler unit that extracts a task from a queue having the highest priority among queues in which tasks are registered, in the user queue selected by the inter-user-queue scheduler unit;
- the resource control device characterized by comprising:
- the scheduler unit Further comprising an IP core mask setting unit that controls not to use IP cores that are not specified for each task, 2.
- the resource control device characterized by:
- the controller unit The IP cores to be used secure the number of IP cores specified by the program, and create and manage a map in which the IP cores are fixedly assigned to each program when a specification for exclusive use of the IP cores is received. Equipped with a control unit, The used IP core control unit If the total number of IP cores newly specified by the program exceeds the number of IP cores of the FPGA, this specification is not accepted. 2.
- the resource control device characterized by:
- the common part is A user queue creation unit that creates a user queue for the program each time the program is newly started, 2.
- the resource control device characterized by:
- FPGA resources can be shared fairly among multiple users.
- the common part is When a task is received from the program, selecting a user queue related to the program based on the identifier, and registering the task in the user queue based on task priority; 2.
- the resource control device characterized by:
- FPGA resources can be shared fairly among multiple users.
- ⁇ Claim 7>> a controller unit that sets resources related to the IP core of the FPGA in which the program executes tasks; a common unit that creates a user queue, which is a set of queues each having a plurality of priorities, for each program and stores tasks in the user queue; a scheduler unit that selects a task to be executed by one of the IP cores by multistage scheduling within the user queue and between the user queues;
- a resource control system comprising:
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
抽象性とは、IPコアマスクなどのクラウド内部の情報がユーザに露呈しないことをいう。柔軟性とは、FPGAの中のIPコア数などのように必要なリソース量について、プログラムの外部から動的に変更できることをいう。制御性とは、各ユーザがそのユーザのもつ他のタスクに対してあるタスクの優先度を相対的に設定できることをいう。公平性とは、ユーザの要求するFPGAリソース量と実際に得られる実行時間に差がないことをいう。
単に各ユーザのプログラムをマルチプロセスとして複数動作させた場合、抽象性と柔軟性と制御性と公平性の要件を同時に満たせないという問題がある。
そこで、本発明は、マルチユーザ間でFPGAの機能を好適に共用し、FPGAのリソース効率を高めることを課題とする。
その他の手段については、発明を実施するための形態のなかで説明する。
《比較例》
図7は、比較例のリソース制御装置1Gの構成図である。
リソース制御装置1Gは、ハードウエアとして実装されたFPGA8を含み、不図示のCPUがソフトウエアプログラムを実行することによって、キューセット5Gおよびスケジューラ部7Gが具現化されている。このリソース制御装置1Gは、例えばデータセンタに設置されて、各ユーザに対してインターネット経由でサービスを提供するクラウドサーバである。
しかし、使用したいFPGA8のリソース量がユーザプログラム3a,3bの内部で決定されてしまうため、ユーザプログラム3a,3bの外部から動的に変更することができず、柔軟性がないという欠点がある。
図1は、本実施形態におけるアクセラレータデバイス共有のためのリソース制御装置1の構成図である。
リソース制御装置1は、ハードウエアとして実装されたFPGA8を含み、不図示のCPUがソフトウエアプログラムを実行することによって、コントローラ部2、共通部4、ユーザキュー5a,5bおよびスケジューラ部7が具現化されている。このリソース制御装置1は、例えばデータセンタに設置されて、各ユーザに対してインターネット経由でサービスを提供するクラウドサーバである。
ユーザキュー作成部41は、コントローラ部2から使用可能なユーザキューに関する情報を受け取り、新たにプログラムがデプロイされて起動する毎に、このプログラム用のユーザキューを作成する。
ユーザプログラム3bのタスク優先度設定部32は、タスク6dに優先度#1を設定して共通部4に引き渡す。タスク6a,6bがユーザキュー5aのキュー50に格納され、タスク6cがユーザキュー5aのキュー51に格納されている。タスク6dがユーザキュー5bのキュー51に格納されている。
ユーザキュー間スケジューラ部71は、ラウンドロビン等の公平なアルゴリズムによって、タスクの取り出し元とのなるユーザキュー5a,5bを選択する。これらユーザキュー5a,5bは、複数の優先度を持つキュー50,51のセットである。なお、ユーザキュー5a,5bは、16段階の優先度を持つキューセットであるが、そのうち2つのキューのみを図示している。
図2のコントローラ部2には、リソース制御命令20a~20cが順番に通知される。
最初、コントローラ部2に、リソース制御命令20aが通知される。リソース制御命令20aは、ユーザプログラムA(ユーザプログラム3a)に係るデプロイ要求である旨と、使用するIPコア数が2個であることが記載されている。ユーザプログラム3aと一緒にリソース制御命令20aをコントローラ部2に通知することで、ユーザプログラム3aがデプロイされて、その実行が開始される。コントローラ部2は、FPGA8内の2個のIPコアとユーザプログラム3aとのマッピングを管理する。このとき、FPGA8内の2個のIPコアが、ユーザプログラム3aのタスク実行に割り当てられている。
図3のコントローラ部2には、リソース制御命令20a,20bが通知されている。
リソース制御命令20aは、ユーザプログラムA(ユーザプログラム3a)に係るデプロイリクエストである旨と、使用するIPコア数が2個であることと、IPコアを排他的に使用することが記載されている。
ユーザがユーザプログラム3aと一緒にリソース制御命令20aをコントローラ部2に通知することで、ユーザプログラム3aがデプロイされて、その実行が開始される。コントローラ部2は、FPGA8内の2個のIPコアを管理し、ユーザプログラム3aとIPコアとの排他的なマッピングを管理する。このとき、FPGA8内の2個のIPコアが、ユーザプログラム3aのタスク実行に排他的に割り当てられている。
既にユーザプログラム3aが実行中でも、ユーザがユーザプログラム3bと一緒にリソース制御命令20bをコントローラ部2に通知することで、ユーザプログラム3bがデプロイされて、その実行が開始される。コントローラ部2は、FPGA8内のIPコアとユーザプログラム3a,3bとのマッピングを管理する。このとき、FPGA8内の2個のIPコアが排他的にユーザプログラム3aのタスク実行に割り当てられており、残り1個のIPコアが排他的にユーザプログラム3bのタスク実行に割り当てられている。
ホストマシン1Bは、ハードウエア層としてCPU93とFPGA8を備え、OS(Operating System)92がインストールされている。ホストマシン1Bのユーザ空間には、コントローラ部2とFPGAライブラリ91が具現化されており、ユーザプログラム3a,3bがデプロイされている。
ホストマシン1Cは、ハードウエア層としてCPU93とFPGA8を備え、OS92がインストールされている。ホストマシン1BのOS92のカーネル空間には、コントローラ部2と、CPUスケジューラ921と、FPGAドライバ94とがインストールされている。ホストマシン1Cのユーザ空間には、FPGAライブラリ91とユーザプログラム3a,3bがデプロイされている。
CPU制御部24は、CPU93内に構成されているコア931~932に対して制御を行う部位であり、CPUスケジューラ921に対して指示を通達する。
図6に示すリソース制御システムは、ホストマシン1Eに加えて、コントローラ部2が配備されているホストマシン1Dを含んで構成される。ホストマシン1Dは、ハードウエア層としてCPU93を備え、OS92がインストールされている。ホストマシン1Dのユーザ空間には、コントローラ部2が具現化されている。このコントローラ部2は、図1に示したコントローラ部2と同様の機能を有している。
以下、本発明に係るリソース制御装置、リソース制御システム、および、リソース制御方法等の効果について説明する
。
プログラムがタスクを実行するFPGAのIPコアに係るリソースを設定するコントローラ部と、
前記プログラム毎に、それぞれ複数の優先度を持つキューのセットであるユーザキューを作成し、前記ユーザキューにタスクを格納する共通部と、
前記ユーザキュー内および前記ユーザキュー間にて多段スケジューリングにより前記IPコアの何れかに実行させるタスクを選択するスケジューラ部と、
を備えることを特徴とするリソース制御装置。
前記スケジューラ部は、
タスクの取り出し元となるユーザキューを選択するユーザキュー間スケジューラ部と、
前記ユーザキュー間スケジューラ部が選択した前記ユーザキュー内で、タスクが登録されているキューのうち最も優先度の高いキューからタスクを取り出すユーザキュー内スケジューラ部と、
を備えることを特徴とする請求項1に記載のリソース制御装置。
前記スケジューラ部は、
各タスクに対して、指定されていないIPコアを使用しないように制御するIPコアマスク設定部を更に備える、
ことを特徴とする請求項1に記載のリソース制御装置。
前記コントローラ部は、
前記プログラムによって指定された数のIPコアを確保すると共に、IPコアの排他的使用の指定を受け付けると、各プログラムに対してIPコアを固定的に割り当てたマップを作成して管理する使用IPコア制御部を備え、
前記使用IPコア制御部は、
前記プログラムによって新たに指定されたIPコアの数の総和がFPGAのIPコアの数を超えたならば、この指定を受け付けない、
ことを特徴とする請求項1に記載のリソース制御装置。
《請求項5》
前記共通部は、
新たにプログラムが起動する毎に、当該プログラム用のユーザキューを作成するユーザキュー作成部を備える、
ことを特徴とする請求項1に記載のリソース制御装置。
前記共通部は、
前記プログラムからタスクを受け付けると、識別子に基づいて当該プログラムに係るユーザキューを選択し、タスク優先度を元に前記ユーザキューに前記タスクを登録する、
ことを特徴とする請求項1に記載のリソース制御装置。
プログラムがタスクを実行するFPGAのIPコアに係るリソースを設定するコントローラ部と、
前記プログラム毎に、それぞれ複数の優先度を持つキューのセットであるユーザキューを作成し、前記ユーザキューにタスクを格納する共通部と、
前記ユーザキュー内および前記ユーザキュー間にて多段スケジューリングにより前記IPコアの何れかに実行させるタスクを選択するスケジューラ部と、
を備えることを特徴とするリソース制御システム。
プログラムがタスクを実行するFPGAのIPコアに係るリソースをコントローラ部が設定するステップと、
共通部が、前記プログラム毎に、それぞれ複数の優先度を持つキューのセットであるユーザキューを作成し、前記ユーザキューにタスクを格納するステップと、
スケジューラ部が、前記ユーザキュー内および前記ユーザキュー間にて多段スケジューリングにより前記IPコアの何れかに実行させるタスクを選択するステップと、
を実行することを特徴とするリソース制御方法。
1B,1C,1D,1E ホストマシン
2 コントローラ部
20a~20c リソース制御命令
21 コマンド受付部
22 ユーザキュー管理部
23 使用IPコア制御部
24 CPU制御部
25 デバイス制御部
26 GPU制御部
27 FPGA制御部
3a ユーザプログラム
3b ユーザプログラム
31 IPコアマスク設定部
32 タスク優先度設定部
4 共通部
41 ユーザキュー作成部
42 ユーザキュー振分部
5 マルチキュー
5a,5b ユーザキュー
5G キューセット
50,51,5F キュー
6a~6d タスク
7 スケジューラ部
7G スケジューラ部
71 ユーザキュー間スケジューラ部
72 ユーザキュー内スケジューラ部
73 IPコアマスク設定部
74 固定優先度スケジューラ部
8 FPGA
81~83 IPコア
91 FPGAライブラリ
92 OS
921 CPUスケジューラ
93 CPU
931~933 コア
94 FPGAドライバ
Claims (8)
- プログラムがタスクを実行するFPGAのIPコアに係るリソースを設定するコントローラ部と、
前記プログラム毎に、それぞれ複数の優先度を持つキューのセットであるユーザキューを作成し、前記ユーザキューにタスクを格納する共通部と、
前記ユーザキュー内および前記ユーザキュー間にて多段スケジューリングにより前記IPコアの何れかに実行させるタスクを選択するスケジューラ部と、
を備えることを特徴とするリソース制御装置。 - 前記スケジューラ部は、
タスクの取り出し元となるユーザキューを選択するユーザキュー間スケジューラ部と、
前記ユーザキュー間スケジューラ部が選択した前記ユーザキュー内で、タスクが登録されているキューのうち最も優先度の高いキューからタスクを取り出すユーザキュー内スケジューラ部と、
を備えることを特徴とする請求項1に記載のリソース制御装置。 - 前記スケジューラ部は、
各タスクに対して、指定されていないIPコアを使用しないように制御するIPコアマスク設定部を更に備える、
ことを特徴とする請求項1に記載のリソース制御装置。 - 前記コントローラ部は、
前記プログラムによって指定された数のIPコアを確保すると共に、IPコアの排他的使用の指定を受け付けると、各プログラムに対してIPコアを固定的に割り当てたマップを作成して管理する使用IPコア制御部を備え、
前記使用IPコア制御部は、
前記プログラムによって新たに指定されたIPコアの数の総和がFPGAのIPコアの数を超えたならば、この指定を受け付けない、
ことを特徴とする請求項1に記載のリソース制御装置。 - 前記共通部は、
新たにプログラムが起動する毎に、当該プログラム用のユーザキューを作成するユーザキュー作成部を備える、
ことを特徴とする請求項1に記載のリソース制御装置。 - 前記共通部は、
前記プログラムからタスクを受け付けると、識別子に基づいて当該プログラムに係るユーザキューを選択し、タスク優先度を元に前記ユーザキューに前記タスクを登録する、
ことを特徴とする請求項1に記載のリソース制御装置。 - プログラムがタスクを実行するFPGAのIPコアに係るリソースを設定するコントローラ部と、
前記プログラム毎に、それぞれ複数の優先度を持つキューのセットであるユーザキューを作成し、前記ユーザキューにタスクを格納する共通部と、
前記ユーザキュー内および前記ユーザキュー間にて多段スケジューリングにより前記IPコアの何れかに実行させるタスクを選択するスケジューラ部と、
を備えることを特徴とするリソース制御システム。 - プログラムがタスクを実行するFPGAのIPコアに係るリソースをコントローラ部が設定するステップと、
共通部が、前記プログラム毎に、それぞれ複数の優先度を持つキューのセットであるユーザキューを作成し、前記ユーザキューにタスクを格納するステップと、
スケジューラ部が、前記ユーザキュー内および前記ユーザキュー間にて多段スケジューリングにより前記IPコアの何れかに実行させるタスクを選択するステップと、
を実行することを特徴とするリソース制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/275,344 US20240095067A1 (en) | 2021-02-10 | 2021-02-10 | Resource control device, resource control system, and resource control method |
PCT/JP2021/004998 WO2022172365A1 (ja) | 2021-02-10 | 2021-02-10 | リソース制御装置、リソース制御システム、および、リソース制御方法 |
JP2022581083A JPWO2022172365A1 (ja) | 2021-02-10 | 2021-02-10 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/004998 WO2022172365A1 (ja) | 2021-02-10 | 2021-02-10 | リソース制御装置、リソース制御システム、および、リソース制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022172365A1 true WO2022172365A1 (ja) | 2022-08-18 |
Family
ID=82838435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/004998 WO2022172365A1 (ja) | 2021-02-10 | 2021-02-10 | リソース制御装置、リソース制御システム、および、リソース制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240095067A1 (ja) |
JP (1) | JPWO2022172365A1 (ja) |
WO (1) | WO2022172365A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000155693A (ja) * | 1998-11-18 | 2000-06-06 | Fujitsu Ltd | メッセージ制御装置 |
JP2007004340A (ja) * | 2005-06-22 | 2007-01-11 | Renesas Technology Corp | 半導体集積回路 |
JP2015130135A (ja) * | 2014-01-09 | 2015-07-16 | 株式会社東芝 | データ配信装置、及びデータ配信方法 |
JP2019082819A (ja) * | 2017-10-30 | 2019-05-30 | 株式会社日立製作所 | アクセラレータ部の利用に対する課金を支援するシステム及び方法 |
-
2021
- 2021-02-10 JP JP2022581083A patent/JPWO2022172365A1/ja active Pending
- 2021-02-10 US US18/275,344 patent/US20240095067A1/en active Pending
- 2021-02-10 WO PCT/JP2021/004998 patent/WO2022172365A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000155693A (ja) * | 1998-11-18 | 2000-06-06 | Fujitsu Ltd | メッセージ制御装置 |
JP2007004340A (ja) * | 2005-06-22 | 2007-01-11 | Renesas Technology Corp | 半導体集積回路 |
JP2015130135A (ja) * | 2014-01-09 | 2015-07-16 | 株式会社東芝 | データ配信装置、及びデータ配信方法 |
JP2019082819A (ja) * | 2017-10-30 | 2019-05-30 | 株式会社日立製作所 | アクセラレータ部の利用に対する課金を支援するシステム及び方法 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2022172365A1 (ja) | 2022-08-18 |
US20240095067A1 (en) | 2024-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2530345C2 (ru) | Экземпляры планировщика в процессе | |
US10467725B2 (en) | Managing access to a resource pool of graphics processing units under fine grain control | |
US9465663B2 (en) | Allocating resources in a compute farm to increase resource utilization by using a priority-based allocation layer to allocate job slots to projects | |
WO2020001320A1 (zh) | 一种资源分配方法、装置及设备 | |
US8464266B2 (en) | System and method for enforcing future policies in a compute environment | |
CN113454614A (zh) | 用于分布式计算中的资源划分的系统和方法 | |
CN110704186A (zh) | 基于混合分布架构的计算资源分配方法、装置和存储介质 | |
US20090158299A1 (en) | System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed | |
Tseng et al. | Task scheduling for edge computing with agile VNFs on-demand service model toward 5G and beyond | |
CN110503593A (zh) | 多个图形处理单元的调度 | |
KR102052964B1 (ko) | 컴퓨팅 스케줄링 방법 및 시스템 | |
Maiti et al. | Internet of Things applications placement to minimize latency in multi-tier fog computing framework | |
US20220229695A1 (en) | System and method for scheduling in a computing system | |
WO2022172365A1 (ja) | リソース制御装置、リソース制御システム、および、リソース制御方法 | |
CN113641448A (zh) | 一种边缘计算容器分配和层下载排序体系结构及其方法 | |
Wu et al. | Abp scheduler: Speeding up service spread in docker swarm | |
CN116157778A (zh) | 共享物理主机上混合集中分布式调度的系统和方法 | |
Fadahunsi et al. | Edge scheduling framework for real-time and non real-time tasks | |
CN115576683A (zh) | 一种协程池调度管理方法、系统、装置及存储介质 | |
Ho et al. | GRASG-a framework for" gridifying" and running applications on service-oriented grids | |
CN115904673B (zh) | 云计算资源并发调度方法、装置、系统、设备及介质 | |
John et al. | Novel backfilling technique with deadlock avoidance and migration for grid workflow scheduling | |
Listrovaya et al. | Modeling Local Scheduler Operation Based on Solution of Nonlinear Boolean Programming Problems | |
CN115525408A (zh) | 一种保障服务质量的无服务计算系统及方法 | |
Kachris et al. | The VINEYARD integrated framework for hardware accelerators in the cloud |
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: 21925618 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022581083 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18275344 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21925618 Country of ref document: EP Kind code of ref document: A1 |