KR101989033B1 - Appratus for managing platform and method for using the same - Google Patents

Appratus for managing platform and method for using the same Download PDF

Info

Publication number
KR101989033B1
KR101989033B1 KR1020160124857A KR20160124857A KR101989033B1 KR 101989033 B1 KR101989033 B1 KR 101989033B1 KR 1020160124857 A KR1020160124857 A KR 1020160124857A KR 20160124857 A KR20160124857 A KR 20160124857A KR 101989033 B1 KR101989033 B1 KR 101989033B1
Authority
KR
South Korea
Prior art keywords
calculation units
application
policy
applications
devices
Prior art date
Application number
KR1020160124857A
Other languages
Korean (ko)
Other versions
KR20180034960A (en
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 KR1020160124857A priority Critical patent/KR101989033B1/en
Publication of KR20180034960A publication Critical patent/KR20180034960A/en
Application granted granted Critical
Publication of KR101989033B1 publication Critical patent/KR101989033B1/en

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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

플랫폼 관리 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 플랫폼 관리 장치는 어플리케이션들의 설정 정책을 전달 받아 디바이스들을 검사하여 계산 유닛들의 수를 결정하는 정책 관리부 및 상기 설정 정책과 상기 계산 유닛들의 수에 기반하여 상기 계산 유닛들을 파티셔닝(partitioning)하고, 상기 어플리케이션들을 상기 계산 유닛들에 할당하는 디바이스 관리부를 포함한다.A platform management apparatus and method are disclosed. A platform management apparatus according to an embodiment of the present invention includes a policy management unit that receives a configuration policy of applications and checks devices to determine the number of calculation units and a configuration management unit that divides the calculation units based on the configuration policy and the number of calculation units and partitioning the applications and allocating the applications to the calculation units.

Description

플랫폼 관리 장치 및 방법 {APPRATUS FOR MANAGING PLATFORM AND METHOD FOR USING THE SAME}[0001] APPARATUS FOR MANAGING PLATFORM AND METHOD FOR USING THE SAME [0002]

본 발명은 컴퓨터 기술에 관한 것으로, 보다 상세하게는 Open CL 기반 시스템의 관리 기술에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to computer technology, and more particularly, to management technology of an Open CL-based system.

최근 CPU의 발전 방향을 살펴보면 에너지 효율을 위해서 성능이 다른 여러 종류의 코어를 하나의 칩에 넣는 이종시스템(Heterogeneous system)이 발전하고 있다. 또한, GPU에서는 GPGPU의 발전과 함께 많은 수의 코어가 존재하는 매니코어(manycore) 시스템이 대중화 되고 있다. 이에 따라 이종 시스템에서 데이터를 병렬적으로 처리하는 소프트웨어기술이 소개되고 있는데, 대표적인 것이 Khronos 그룹에서 제안한 OpenCL(Open Computing Language)이다. OpenCL은 다수의 이종 프로세서 및 매니코어 시스템에서 데이터를 병렬적으로 처리할 수 있게 도와주는 프레임워크이다.Looking at the development direction of CPU, a heterogeneous system is developed that puts various kinds of core with different performance in one chip for energy efficiency. Also, with the development of GPGPU in GPU, a manycore system with a large number of cores is becoming popular. Accordingly, a software technology for parallel processing of data in heterogeneous systems has been introduced. One representative example is OpenCL (Open Computing Language) proposed by the Khronos group. OpenCL is a framework that helps you process data in parallel on many heterogeneous processors and Mannier systems.

하나의 머신에는 여러 OpenCL 계산 디바이스가 존재하며 하나의 디바이스는 각각 여러 개여 계산 유닛(Computing Unit; CU)을 제공한다. 예를 들어, X사(社)의 CPU와 Y사(社)의 그래픽카드가 하나의 머신에 존재하고 서로 협업하여 계산을 수행하는 환경이라면, 2개의 디바이스가 각각 여러 개의 계산 유닛을 제공하여 연산을 수행하는 형태가 된다. OpenCL 프레임워크에서는 하나 이상의 디바이스를 묶어서 플랫폼(Platform)이라고 불리며, 주로 하나의 하드웨어 벤더가 하나의 플랫폼을 제공한다. OpenCL 프레임워크에서는 여러 플랫폼을 관리하기 위해 ICD(Installable Client Device) 로더가 존재한다. ICD 로더는 시스템에서 하나만 존재 할 수 있으며, 어플리케이션들은 ICD 로더를 통해서 OpenCL 명령을 수행할 수 있다.There are several OpenCL computing devices on a machine, each of which provides several Computing Units (CUs). For example, if the CPU of the company X and the graphics card of the company Y exist in a single machine and perform an operation in cooperation with each other, two devices each provide several calculation units, . In the OpenCL framework, a group of one or more devices is called a platform, and a single hardware vendor typically provides a platform. The OpenCL framework has an Installable Client Device (ICD) loader to manage multiple platforms. There can only be one ICD loader in the system, and applications can run OpenCL commands through the ICD loader.

OpenCL 시스템은 여러 어플리케이션이 동시에 같은 컴퓨팅 디바이스를 사용할 수 있기 때문에, 하나의 어플리케이션은 같이 수행하는 어플리케이션에 따라 품질의 저하가 나타날 수 있다. 따라서 특정 어플리케이션이 수행 중일 때 다른 어플리케이션의 동작에 영향을 받지 않고 성능을 보장할 수 있는 시스템이 필요하다.Because the OpenCL system allows multiple applications to use the same computing device at the same time, a single application can experience degradation in quality depending on the applications it runs together. Therefore, there is a need for a system capable of guaranteeing performance without affecting the operation of other applications when a specific application is being executed.

한편, 한국등록특허 제10-1284195호“개방형 범용 병렬 컴퓨팅 프레임워크 동적 작업 분배 장치”는 커널의 수행 시점에 기반하여 코어의 작업을 분배하는 장치에 관하여 개시하고 있다.Korean Patent No. 10-1284195, entitled " Open Generic Parallel Computing Framework Dynamic Work Distribution Device ", discloses a device for distributing work of a core based on the execution time of the kernel.

본 발명은 전술한 어플리케이션간의 간섭으로 인한 성능 저하 문제를 해결하는 것을 목적으로 한다.The present invention aims at solving the problem of performance degradation due to interference between the above-mentioned applications.

또한, 본 발명은 여러 개의 OpenCL 어플리케이션이 하나의 OpenCL 디바이스를 사용할 경우 발생하는 성능 간섭을 최소화하는 것을 목적으로 한다.In addition, the present invention aims at minimizing performance interference caused when multiple OpenCL applications use one OpenCL device.

또한, 본 발명은 정책에 따라 특정 어플리케이션이 OpenCL 디바이스의 일부를 전용으로 사용할 수 있는 시스템 및 방법을 제공하는 것을 목적으로 한다.It is another object of the present invention to provide a system and method in which a specific application can use a part of an OpenCL device exclusively according to a policy.

또한, 본 발명은 기존의 어플리케이션과 플랫폼 드라이버의 수정 없이 기존 시스템에도 그대로 적용하는 것을 목적으로 한다.The present invention also aims to apply the present invention to existing systems without modification of existing applications and platform drivers.

또한, 본 발명은 메모리 계층도에 따라 파티셔닝하는 알고리즘을 이용하여 시스템의 성능을 극대화하는 것을 목적으로 한다.In addition, the present invention aims at maximizing the performance of a system using an algorithm for partitioning according to a memory hierarchy diagram.

상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 플랫폼 관리 장치는 어플리케이션들의 설정 정책을 전달 받아 디바이스들을 검사하여 계산 유닛들의 수를 결정하는 정책 관리부 및 상기 설정 정책과 상기 계산 유닛들의 수에 기반하여 상기 계산 유닛들을 파티셔닝(partitioning)하고, 상기 어플리케이션들을 상기 계산 유닛들에 할당하는 디바이스 관리부를 포함한다.According to an aspect of the present invention, there is provided a platform management apparatus including a policy management unit for receiving a configuration policy of applications and checking devices to determine the number of calculation units, And partitioning the calculation units on the basis of the plurality of calculation units and allocating the applications to the calculation units.

또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 플랫폼 관리 방법은 플랫폼 관리 장치를 이용하는 방법에 있어서, 어플리케이션들의 설정 정책을 전달 받아 디바이스 및 계산 유닛들의 수를 검사하는 단계; 상기 디바이스 및 계산 유닛들의 수를 결정하는 단계; 상기 설정 정책과 상기 계산 유닛들의 수에 기반하여 상기 계산 유닛들을 파티셔닝(partitioning)하여 상기 어플리케이션들을 상기 계산 유닛들에 할당하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method for managing a platform management apparatus, the method comprising: receiving a configuration policy of an application and checking the number of devices and calculation units; Determining the number of devices and calculation units; And partitioning the calculation units based on the set policy and the number of calculation units to allocate the applications to the calculation units.

본 발명은 전술한 어플리케이션간의 간섭으로 인한 성능 저하 문제를 해결할 수 있다.The present invention can solve the performance degradation problem due to interference between the above-described applications.

또한, 본 발명은 여러 개의 OpenCL 어플리케이션이 하나의 OpenCL 디바이스를 사용할 경우 발생하는 성능 간섭을 최소화할 수 있다.In addition, the present invention can minimize performance interference caused when multiple OpenCL applications use one OpenCL device.

또한, 본 발명은 정책에 따라 특정 어플리케이션이 OpenCL 디바이스의 일부를 전용으로 사용할 수 있는 시스템 및 방법을 제공할 수 있다.In addition, the present invention can provide a system and method in which a specific application can use a part of an OpenCL device exclusively according to a policy.

또한, 본 발명은 기존의 어플리케이션과 플랫폼 드라이버의 수정 없이 기존 시스템에도 그대로 적용할 수 있다.In addition, the present invention can be applied to existing systems without modification of existing applications and platform drivers.

또한, 본 발명은 메모리 계층도에 따라 파티셔닝하는 알고리즘을 이용하여 시스템의 성능을 극대화할 수 있다.In addition, the present invention can maximize the performance of the system by using an algorithm for partitioning according to the memory hierarchy diagram.

도 1은 본 발명의 일실시예에 따른 플랫폼 관리 시스템을 나타낸 블록도이다.
도 2는 본 발명의 일실시예에 따른 플랫폼 관리 시스템에서 플랫폼 관리 장치를 세부적으로 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 어플리케이션의 디바이스 할당을 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 계산 유닛을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 플랫폼 관리 방법을 나타낸 동작흐름도이다.
1 is a block diagram illustrating a platform management system according to an embodiment of the present invention.
2 is a detailed block diagram of a platform management apparatus in a platform management system according to an embodiment of the present invention.
3 is a diagram illustrating device allocation of an application according to an embodiment of the present invention.
4 illustrates a computing unit according to an embodiment of the present invention.
5 is an operational flowchart illustrating a platform management method according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will now be described in detail with reference to the accompanying drawings. Hereinafter, a repeated description, a known function that may obscure the gist of the present invention, and a detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. Accordingly, the shapes and sizes of the elements in the drawings and the like can be exaggerated for clarity.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 플랫폼 관리 시스템을 나타낸 블록도이다.1 is a block diagram illustrating a platform management system according to an embodiment of the present invention.

도 1을 참조하면, OpenCL 어플리케이션A,B가 ICD 로더에 상응하는 플랫폼 관리 장치(100)에 의해 플랫폼 1, 2의 CPU와 GPU에 할당되는 것을 알 수 있다.Referring to FIG. 1, it can be seen that OpenCL applications A and B are allocated to the CPUs 1 and 2 and the GPUs of platforms 1 and 2 by the platform management apparatus 100 corresponding to the ICD loader.

OpenCL 플랫폼 관리 시스템은 여러 어플리케이션이 동시에 같은 컴퓨팅 디바이스를 사용할 수 있기 때문에, 하나의 어플리케이션은 같이 수행하는 어플리케이션에 따라 품질의 저하가 나타날 수 있다.Because the OpenCL platform management system can use the same computing device at the same time for multiple applications, a single application may experience a degradation in quality depending on the applications it performs.

예를 들어, 어플리케이션A가 X사(社) CPU를 이용하여 작업을 수행 중인데, 어플리케이션B가 X사(社)의 GPU 혹은 Y사(社)의 GPU를 이용하여 작업을 수행한다면 어플리케이션A에 주는 영향이 미미하지만, X사(社)의 CPU를 이용한다면 어플리케이션A에서는 눈에 띄는 성능의 저하가 나타나게 된다. 어플리케이션은 자신이 모든 자원을 차지하여 최고의 성능을 내려고 하기 때문에, 이런 어플리케이션들이 여러 개가 수행 중이라면 성능의 저하는 피할 수가 없다.For example, if application A is performing work using CPU X, and application B is performing work using GPU of company X or company GPU of company Y, The impact is minimal, but if you use the X company's CPU, you will see noticeable performance degradation in Application A. Because an application takes up all of its resources and tries to achieve the best performance, performance degradation can not be avoided if several such applications are running.

도 2는 본 발명의 일실시예에 따른 플랫폼 관리 시스템에서 플랫폼 관리 장치를 세부적으로 나타낸 블록도이다.2 is a detailed block diagram of a platform management apparatus in a platform management system according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일실시예에 따른 플랫폼 관리 장치(100)는 정책 관리부(110)와 디바이스 관리부(120)를 포함한다.Referring to FIG. 2, the platform management apparatus 100 according to an embodiment of the present invention includes a policy management unit 110 and a device management unit 120.

플랫폼 관리 장치(100)는 성능 격리 기능이 추가된 ICD 로더에 상응할 수 있다.The platform management apparatus 100 may correspond to an ICD loader to which a performance isolation function is added.

정책 설정 어플리케이션은 어플리케이션들의 정책을 설정할 수 있다.The policy setting application can set the policies of the applications.

정책 관리부(110)는 정책 설정 어플리케이션에서 설정한 설정 정책을 받아 올 수 있다.The policy management unit 110 may receive the setting policy set by the policy setting application.

이 때, 어플리케이션이 플랫폼 관리 장치(100)에 작업 요청을 보내면, 정책 관리부(110)는 정책에 설정이 된 어플리케이션인지 확인할 수 있다.At this time, when the application sends a work request to the platform management apparatus 100, the policy management unit 110 can confirm that the application is the application set in the policy.

이 때, 정책 관리부(110)는 어플리케이션들의 설정 정책을 전달 받아 디바이스들을 검사하여 계산 유닛들의 수를 결정할 수 있다.In this case, the policy management unit 110 may receive the configuration policies of the applications and may examine the devices to determine the number of calculation units.

만약, 정책에서 디바이스 및 계산 유닛을 할당하지 않은 어플리케이션이라면, 작업 요청을 수행하지 않는다. 디바이스 및 계산 유닛이 할당 되었다면, 정책 관리부(100)는 정책에 동일한 디바이스에 할당 된 다른 어플리케이션이 있는지 확인할 수 있다.If the application does not assign a device and a calculation unit in the policy, it does not execute the job request. If the device and the calculation unit are assigned, the policy management unit 100 can check whether there is another application assigned to the same device in the policy.

이 때, 정책 관리부(110)는 OpenCL 성능 격리 시스템을 사용하기 위하여 먼저 어플리케이션 별로 사용 가능한 디바이스 및 계산 유닛의 수를 결정할 수 있다. 정책의 설정을 위해 정책 설정 어플리케이션을 수행하면, 플랫폼 관리 장치(100)에서는 각각의 OpenCL 디바이스들을 검사하여 디바이스 별로 다음과 같은 형태로 사용자에게 알려줄 수 있다.In this case, the policy management unit 110 may first determine the number of available devices and calculation units for each application to use the OpenCL performance isolation system. When the policy setting application is executed to set the policy, the platform management apparatus 100 can check each OpenCL device and inform the user of the device in the following form for each device.

Figure 112016094159559-pat00001
Figure 112016094159559-pat00001

여기서 디바이스ID는 OpenCL 디바이스를 구분해 주는 고유한 ID에 상응할 수 있고, 디바이스 형태는 CPU, GPU, DSP 등 디바이스의 종류에 상응할 수 있다. 계산 유닛의 수는 총 사용 가능한 계산 유닛의 수에 상응할 수 있다.Here, the device ID may correspond to a unique ID that identifies an OpenCL device, and the device type may correspond to a type of device such as a CPU, a GPU, and a DSP. The number of calculation units may correspond to the total number of available calculation units.

이를 바탕으로 하여, 사용자는 각각의 어플리케이션에 대해서 사용할 디바이스와 계산 유닛을 다음과 같은 형태로 지정하여 정책 관리 모듈에게 알려줄 수 있다.Based on this, the user can designate the device and calculation unit to be used for each application in the following form and notify the policy management module.

Figure 112016094159559-pat00002
Figure 112016094159559-pat00002

이 때, 어플리케이션ID는 특정 어플리케이션을 지칭하는 ID, 실행파일명, 실행파일 경로, 혹은 실행파일 해쉬 값 등 어플리케이션을 구분할 수 있는 다양한 형태가 사용될 수 있다. 디바이스ID는 정책 설정 어플리케이션에게 반환했던 디바이스ID에 상응할 수 있고, 계산 유닛수는 지정한 어플리케이션에게 할당 된 계산 유닛의 수를 지정할 수 있다.At this time, the application ID may be various types that can distinguish the application such as an ID designating a specific application, an executable file name, an executable file path, or an executable file hash value. The device ID may correspond to the device ID returned to the policy setting application, and the number of calculation units may specify the number of calculation units assigned to the specified application.

이후에 어플리케이션이 실제 OpenCL 사용을 위해서 플랫폼 관리 장치(100)를 이용하여 OpenCL 디바이스에 접근을 하려고 하면, 플랫폼 관리 장치(100)는 정책 어플리케이션에서 설정된 디바이스만을 OpenCL 어플리케이션에게 노출할 수 있고, OpenCL어플리케이션은 정책에서 설정된 OpenCL 디바이스와 계산 유닛 이외에는 사용할 수 없다.Thereafter, when the application attempts to access the OpenCL device using the platform management apparatus 100 for actual use of OpenCL, the platform management apparatus 100 can expose only the device set in the policy application to the OpenCL application, and the OpenCL application It can not be used other than the OpenCL device and calculation unit set in the policy.

디바이스 관리부(120)는 설정 정책과 상기 계산 유닛들의 수에 기반하여 상기 계산 유닛들을 파티셔닝(partitioning)하고, 상기 어플리케이션들을 상기 계산 유닛들에 할당할 수 있다.The device management unit 120 may partition the calculation units based on the setting policy and the number of calculation units and allocate the applications to the calculation units.

ICD 로더에 상응하는 플랫폼 관리 장치(100)는 기존의 OpenCL 규격에 맞춰 OpenCL 어플리케이션에게 노출되고, 플랫폼도 기존의 OpenCL 규격에 맞춰져 있으므로, OpenCL 어플리케이션 및 플랫폼 드라이버의 수정 없이 기존 ICD 로더에 기능만 추가하여 사용할 수 있다.The platform management apparatus 100 corresponding to the ICD loader is exposed to the OpenCL application conforming to the existing OpenCL standard and the platform is also adapted to the existing OpenCL standard so that only the function is added to the existing ICD loader without modification of the OpenCL application and platform driver Can be used.

다른 어플리케이션이 없다면, 디바이스 관리부(120)는 그 어플리케이션에 디바이스의 계산 유닛 전체에 접근 권한을 생성할 수 있다. 만약 두 개 이상의 어플리케이션이 하나의 디바이스에 할당이 되어 있다면, 디바이스 관리부(120)는 디바이스의 계산 유닛을 파티셔닝 하여 (partitioning or fission) 여러 개의 서브 디바이스로 만든 다음 나누어진 서브 디바이스만을 어플리케이션에게 할당 할 수 있다. 서브 디바이스를 만들기 위해서는 플랫폼 드라이버에서 이를 지원해야 하는데, OpenCL 1.2 프로파일을 만족하는 플랫폼이라면 clCreateSubDevices() 함수 등 디바이스를 나누는 방법을 제공하기 때문에 이를 이용해서 서브 디바이스로 나눠줄 수 있다.If there is no other application, the device management unit 120 can create an access right to the application's entire computing unit. If two or more applications are allocated to one device, the device management unit 120 divides the calculation unit of the device into a plurality of subdevices and assigns only divided subdevices to the application have. To create a subdevice, the platform driver must support it. If the platform meets the OpenCL 1.2 profile, it provides a way to divide the device, such as the clCreateSubDevices () function.

도 3은 본 발명의 일실시예에 따른 어플리케이션의 디바이스 할당을 나타낸 도면이다.3 is a diagram illustrating device allocation of an application according to an embodiment of the present invention.

도 3을 참조하면, 어플리케이션A는 X사(社)의 디바이스에 단독으로 할당이 되어 있기 때문에, 정책에서 제시한 계산 유닛의 수와 상관없이 디바이스 전체의 계산 유닛을 어플리케이션 A에게 할당 할 수 있다. 어플리케이션B와 어플리케이션C의 경우 하나의 디바이스에 할당되어 있기 때문에, 이런 경우라면, Y사(社) CPU 디바이스를 서브 디바이스로 나누어서 어플리케이션B과 어플리케이션C에 할당 할 수 있다. 어플리케이션B와 어플리케이션C에서는 정책에서 할당된 수만큼의 계산 유닛이 보이게 되므로 그 이상의 계산 유닛을 사용할 수 없다.Referring to FIG. 3, since the application A is allocated solely to the device of the company X, the calculation unit of the entire device can be assigned to the application A regardless of the number of calculation units proposed in the policy. In this case, the CPU device of the company Y can be divided into the sub-devices and assigned to the application B and the application C because the application B and the application C are allocated to one device. In Application B and Application C, since the number of calculation units allocated in the policy is visible, no more calculation units can be used.

디바이스 관리부(120)는 하나의 디바이스를 서브 디바이스로 나눌 때, 계산 유닛 간 캐쉬를 공유하게 하여 최대한 성능을 높일 수 있다.When the device management unit 120 divides one device into sub-devices, it can maximize the performance by sharing the cache between the calculation units.

이 때, 계산 유닛들 사이에 공유 정도에 따라 메모리 계층이 존재할 수 있다.At this time, a memory layer may exist depending on the degree of sharing among the calculation units.

도 4는 본 발명의 일실시예에 따른 계산 유닛을 나타낸 도면이다.4 illustrates a computing unit according to an embodiment of the present invention.

도 4를 참조하면, CPU에서의 메모리 계층도의 예시이다. GPU도 이와 비슷한 형태에 상응할 수 있다. 계산 유닛, 스트리밍 멀티프로세서, 프로세서 클러스터 등 여러 형태의 메모리 계층이 존재하며, 이들은 디바이스마다 상이하므로, 본 발명에서는 이를 추상화 한 상태에서 설명한다. 계산 유닛 간 공유하는 메모리가 다르므로, 최대한 같은 메모리를 공유하는 계산 유닛을 하나의 서브 디바이스에 할당할 수 있다. 따라서 다음 알고리즘을 이용하여 최적의 서브 디바이스를 나눌 수 있다.Referring to Fig. 4, an example of a memory hierarchical diagram in a CPU is shown. GPUs can also be similar in shape. There are various types of memory layers such as a calculation unit, a streaming multiprocessor, and a processor cluster. Since these are different for each device, the present invention will be described in an abstracted state. Since the memories shared between the calculation units are different, a calculation unit sharing the same memory as possible can be allocated to one sub-device. Therefore, the optimal subdevice can be divided using the following algorithm.

하나의 디바이스에 할당된 어플리케이션 n개에 대해 정책에서 할당된 계산 유닛의 수가 (c1, c2,…,cn) 이고, 메모리 계층도에서 존재하는 공유 메모리의 높이를 k라고하자. (레벨1은 가장 많은 계산 유닛이 공유하는 메모리이고, 레벨k는 가장 적은 계산 유닛이 공유하는 메모리이다.) 레벨 i의 메모리에서 파티셔닝을 할 경우 생성할 수 있는 서브 디바이스 수를 di 라고 하고, 서브 디바이스당 계산 유닛의 수를 si라고 할 때, 다음을 수행한다.Let c be the number of computation units (c 1 , c 2 , ..., c n ) allocated in the policy for n applications allocated to one device, and let k be the height of the shared memory present in the memory hierarchy. (Level 1 is the memory shared by the most computational units, and level k is the memory shared by the fewest computational units.) Let d i be the number of subdevices that can be created when partitioning in memory at level i, When the number of calculation units per sub-device is s i , the following is performed.

FOR 1≤i≤kFOR 1? I? K

IF di≥n AND si≥max(c1,c2,…,cn) IF d i ≥ n AND s i ≥max (c 1 , c 2 , ..., c n )

각각에 어플리케이션에 di 개의 서브 디바이스 중 하나씩을 할당 종료Assign one of the d i sub-devices to each application

ENDIF    ENDIF

ENDFORENDFOR

// 위 루프 내에서 종료되지 않았다면, 정책을 만족시키면서 메모리를 공유하는 계산 유닛을 찾을 수 없다. // Unless it is terminated in the upper loop, we can not find a computation unit that shares the memory while satisfying the policy.

// 이 경우 메모리 공유를 계산하지 않고 할당.// In this case, allocate memory without calculating the share.

// 어플리케이션 별로 필요 계산 유닛을 순차적으로 할당.// Sequential allocation of necessary calculation units for each application.

디바이스 관리부(120)는 위 알고리즘을 이용하여, 정책을 만족시키면서 계산 유닛끼리 최대한 큰 메모리를 공유하는 파티셔닝 방법을 찾을 수 있다.The device management unit 120 can use the above algorithm to find a partitioning method that shares the largest memory among the calculation units while satisfying the policy.

즉, 디바이스 관리부(120)는 도 4에 도시된 바와 같이, NUMA메모리, L4, L3, L2, L1의 순으로 파티셔닝을 하면서 정책을 만족시키는 파티셔닝 방법을 찾을 수 있다. 따라서, 계산 유닛끼리 더 많은 메모리를 공유할 수 있고, 이에 따라 계산 유닛끼리 데이터를 공유하는 경우, 성능을 향상시킬 수 있다.That is, as shown in FIG. 4, the device management unit 120 can find the partitioning method satisfying the policy while partitioning in the order of NUMA memory, L4, L3, L2, and L1. Thus, performance can be improved when the calculation units can share more memory and thus share data among the calculation units.

도 5는 본 발명의 일실시예에 따른 플랫폼 관리 방법을 나타낸 동작흐름도이다.5 is an operational flowchart illustrating a platform management method according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 일실시예에 따른 플랫폼 관리 방법은 먼저 디바이스 및 계산 유닛 수를 검사할 수 있다(S210).Referring to FIG. 5, a platform management method according to an embodiment of the present invention may first check the number of devices and calculation units (S210).

즉, 단계(S210)는 정책 설정 어플리케이션에서 설정한 설정 정책을 받아 올 수 있다.That is, the step S210 can receive the setting policy set by the policy setting application.

이 때, 단계(S210)는 어플리케이션들의 설정 정책을 전달 받아 디바이스들을 검사하여 계산 유닛들의 수를 결정할 수 있다.In this case, the step S210 may determine the number of calculation units by examining the devices receiving the configuration policy of the applications.

이 때, 단계(S210)는 어플리케이션이 플랫폼 관리 장치(100)에 작업 요청을 보내면, 정책 관리부(110)는 정책에 설정이 된 어플리케이션이지 확인할 수 있다. 만약, 정책에서 디바이스 및 계산 유닛을 할당하지 않은 어플리케이션이라면, 작업 요청을 수행하지 않는다.At this time, in step S210, when an application sends a work request to the platform management apparatus 100, the policy management unit 110 can confirm that the application is a policy-set application. If the application does not assign a device and a calculation unit in the policy, it does not execute the job request.

이 때, 단계(S210)는 디바이스 및 계산 유닛이 할당 되었다면, 정책에 동일한 디바이스에 할당 된 다른 어플리케이션이 있는지 확인할 수 있다.At this time, step S210 can check if there are other applications allocated to the same device in the policy, if the device and the calculation unit are assigned.

또한, 본 발명의 일실시예에 따른 정책 플랫폼 관리 방법은 디바이스 및 계산 유닛 수를 결정할 수 있다(S220).In addition, the policy platform management method according to an exemplary embodiment of the present invention may determine the number of devices and calculation units (S220).

즉, 단계(S220)는 OpenCL 성능 격리 시스템을 사용하기 위하여 먼저 어플리케이션 별로 사용 가능한 디바이스 및 계산 유닛의 수를 결정할 수 있다. 정책의 설정을 위해 정책 설정 어플리케이션을 수행하면, 플랫폼 관리 장치(100)에서는 각각의 OpenCL 디바이스들을 검사하여 디바이스 별로 다음과 같은 형태로 사용자에게 알려줄 수 있다.That is, in order to use the OpenCL performance isolation system, step S220 may first determine the number of available devices and calculation units for each application. When the policy setting application is executed to set the policy, the platform management apparatus 100 can check each OpenCL device and inform the user of the device in the following form for each device.

Figure 112016094159559-pat00003
Figure 112016094159559-pat00003

여기서 디바이스ID는 OpenCL 디바이스를 구분해 주는 고유한 ID에 상응할 수 있고, 디바이스 형태는 CPU, GPU, DSP 등 디바이스의 종류에 상응할 수 있다. 계산 유닛의 수는 총 사용 가능한 계산 유닛의 수에 상응할 수 있다.Here, the device ID may correspond to a unique ID that identifies an OpenCL device, and the device type may correspond to a type of device such as a CPU, a GPU, and a DSP. The number of calculation units may correspond to the total number of available calculation units.

이를 바탕으로 하여, 사용자는 각각의 어플리케이션에 대해서 사용할 디바이스와 계산 유닛을 다음과 같은 형태로 지정하여 정책 관리 모듈에게 알려줄 수 있다.Based on this, the user can designate the device and calculation unit to be used for each application in the following form and notify the policy management module.

Figure 112016094159559-pat00004
Figure 112016094159559-pat00004

이 때, 어플리케이션ID는 특정 어플리케이션을 지칭하는 ID, 실행파일명, 실행파일 경로, 혹은 실행파일 해쉬 값 등 어플리케이션을 구분할 수 있는 다양한 형태가 사용될 수 있다. 디바이스ID는 정책 설정 어플리케이션에게 반환했던 디바이스ID에 상응할 수 있고, 계산 유닛수는 지정한 어플리케이션에게 할당 된 계산 유닛의 수를 지정할 수 있다.At this time, the application ID may be various types that can distinguish the application such as an ID designating a specific application, an executable file name, an executable file path, or an executable file hash value. The device ID may correspond to the device ID returned to the policy setting application, and the number of calculation units may specify the number of calculation units assigned to the specified application.

이후에 어플리케이션이 실제 OpenCL 사용을 위해서 플랫폼 관리 장치(100)를 이용하여 OpenCL 디바이스에 접근을 하려고 하면, 플랫폼 관리 장치(100)는 정책 어플리케이션에서 설정된 디바이스만을 OpenCL 어플리케이션에게 노출할 수 있고, OpenCL어플리케이션은 정책에서 설정된 OpenCL 디바이스와 계산 유닛 이외에는 사용할 수 없다.Thereafter, when the application attempts to access the OpenCL device using the platform management apparatus 100 for actual use of OpenCL, the platform management apparatus 100 can expose only the device set in the policy application to the OpenCL application, and the OpenCL application It can not be used other than the OpenCL device and calculation unit set in the policy.

또한, 본 발명의 일실시예에 따른 플랫폼 관리 방법은 계산 유닛을 파티셔닝 하고 어플리케이션을 계산 유닛에 할당 할 수 있다(S230).Further, the platform management method according to an embodiment of the present invention may partition the calculation unit and allocate the application to the calculation unit (S230).

즉, 단계(S230)는 설정 정책과 상기 계산 유닛들의 수에 기반하여 상기 계산 유닛들을 파티셔닝(partitioning)하고, 상기 어플리케이션들을 상기 계산 유닛들에 할당할 수 있다.That is, step S230 may partition the calculation units based on the set policy and the number of calculation units, and allocate the applications to the calculation units.

ICD 로더에 상응하는 플랫폼 관리 장치(100)는 기존의 OpenCL 규격에 맞춰 OpenCL 어플리케이션에게 노출되고, 플랫폼도 기존의 OpenCL 규격에 맞춰져 있으므로, OpenCL 어플리케이션 및 플랫폼 드라이버의 수정 없이 기존 ICD 로더에 기능만 추가하여 사용할 수 있다.The platform management apparatus 100 corresponding to the ICD loader is exposed to the OpenCL application conforming to the existing OpenCL standard and the platform is also adapted to the existing OpenCL standard so that only the function is added to the existing ICD loader without modification of the OpenCL application and platform driver Can be used.

다른 어플리케이션이 없다면, 단계(S230)는 어플리케이션에 디바이스의 계산 유닛 전체에 접근 권한을 생성할 수 있다. 만약 두 개 이상의 어플리케이션이 하나의 디바이스에 할당이 되어 있다면, 단계(S230)는 디바이스의 계산 유닛을 파티셔닝하여(partitioning or fission) 여러 개의 서브 디바이스로 만든 다음 나누어진 서브 디바이스만을 어플리케이션에게 할당 할 수 있다. 서브 디바이스를 만들기 위해서는 플랫폼 드라이버에서 이를 지원해야 하는데, OpenCL 1.2 프로파일을 만족하는 플랫폼이라면 clCreateSubDevices() 함수 등 디바이스를 나누는 방법을 제공하기 때문에 이를 이용해서 서브 디바이스로 나눠줄 수 있다.If there is no other application, step S230 may create an access right to the application's entire computing unit. If two or more applications are assigned to one device, step S230 may partition or fission the device's computation unit into multiple subdevices and then allocate only the subdivided subdevices to the application . To create a subdevice, the platform driver must support it. If the platform meets the OpenCL 1.2 profile, it provides a way to divide the device, such as the clCreateSubDevices () function.

도 3을 참조하면, 어플리케이션A는 X사(社)의 디바이스에 단독으로 할당이 되어 있기 때문에, 정책에서 제시한 계산 유닛의 수와 상관없이 디바이스 전체의 계산 유닛을 어플리케이션 A에게 할당 할 수 있다. 어플리케이션B와 어플리케이션C의 경우 하나의 디바이스에 할당되어 있기 때문에, 이런 경우라면, Y사(社) CPU 디바이스를 서브 디바이스로 나누어서 어플리케이션B과 어플리케이션C에 할당 할 수 있다. 어플리케이션B와 어플리케이션C에서는 정책에서 할당된 수만큼의 계산 유닛이 보이게 되므로 그 이상의 계산 유닛을 사용할 수 없다.Referring to FIG. 3, since the application A is allocated solely to the device of the company X, the calculation unit of the entire device can be assigned to the application A regardless of the number of calculation units proposed in the policy. In this case, the CPU device of the company Y can be divided into the sub-devices and assigned to the application B and the application C because the application B and the application C are allocated to one device. In Application B and Application C, since the number of calculation units allocated in the policy is visible, no more calculation units can be used.

또한, 단계(S230)는 하나의 디바이스를 서브 디바이스로 나눌 때, 계산 유닛 간 캐쉬를 공유하게 하여 최대한 성능을 높일 수 있다.In addition, when dividing one device into subdevices, step S230 can maximize the performance by sharing the cache between the calculation units.

이 때, 계산 유닛들 사이에 공유 정도에 따라 메모리 계층을 포함할 수 있다.At this time, a memory layer may be included according to the degree of sharing among the calculation units.

도 4를 참조하면, CPU에서의 메모리 계층도의 예시이다. GPU도 이와 비슷한 형태에 상응할 수 있다. 계산 유닛, 스트리밍 멀티프로세서, 프로세서 클러스터 등 여러 형태의 메모리 계층이 존재하며, 이들은 디바이스마다 상이하므로, 본 발명에서는 이를 추상화 한 상태에서 설명한다. 계산 유닛 간 공유하는 메모리가 다르므로, 최대한 같은 메모리를 공유하는 계산 유닛을 하나의 서브 디바이스에 할당할 수 있다. 따라서 다음 알고리즘을 이용하여 최적의 서브 디바이스를 나눌 수 있다.Referring to Fig. 4, an example of a memory hierarchical diagram in a CPU is shown. GPUs can also be similar in shape. There are various types of memory layers such as a calculation unit, a streaming multiprocessor, and a processor cluster. Since these are different for each device, the present invention will be described in an abstracted state. Since the memories shared between the calculation units are different, a calculation unit sharing the same memory as possible can be allocated to one sub-device. Therefore, the optimal subdevice can be divided using the following algorithm.

하나의 디바이스에 할당된 어플리케이션 n개에 대해 정책에서 할당된 계산 유닛의 수가 (c1, c2,…,cn) 이고, 메모리 계층도에서 존재하는 공유 메모리의 높이를 k라고하자. (레벨1은 가장 많은 계산 유닛이 공유하는 메모리이고, 레벨k는 가장 적은 계산 유닛이 공유하는 메모리이다.) 레벨 i의 메모리에서 파티셔닝을 할 경우 생성할 수 있는 서브 디바이스 수를 di 라고 하고, 서브 디바이스당 계산 유닛의 수를 si라고 할 때, 다음을 수행한다.Let c be the number of computation units (c 1 , c 2 , ..., c n ) allocated in the policy for n applications allocated to one device, and let k be the height of the shared memory present in the memory hierarchy. (Level 1 is the memory shared by the most computational units, and level k is the memory shared by the fewest computational units.) Let d i be the number of subdevices that can be created when partitioning in memory at level i, When the number of calculation units per sub-device is s i , the following is performed.

FOR 1≤i≤kFOR 1? I? K

IF di≥n AND si≥max(c1,c2,…,cn) IF d i ≥ n AND s i ≥max (c 1 , c 2 , ..., c n )

각각에 어플리케이션에 di 개의 서브 디바이스 중 하나씩을 할당 종료Assign one of the d i sub-devices to each application

ENDIF    ENDIF

ENDFORENDFOR

// 위 루프 내에서 종료되지 않았다면, 정책을 만족시키면서 메모리를 공유하는 계산 유닛을 찾을 수 없다. // Unless it is terminated in the upper loop, we can not find a computation unit that shares the memory while satisfying the policy.

// 이 경우 메모리 공유를 계산하지 않고 할당.// In this case, allocate memory without calculating the share.

// 어플리케이션 별로 필요 계산 유닛을 순차적으로 할당.// Sequential allocation of necessary calculation units for each application.

단계(S230)는 위 알고리즘을 이용하여, 정책을 만족시키면서 계산 유닛끼리 최대한 큰 메모리를 공유하는 파티셔닝 방법을 찾을 수 있다.Step S230 can use the above algorithm to find a partitioning method that shares as much memory as possible among computation units while satisfying the policy.

즉, 단계(230)는 도 4에 도시된 바와 같이, NUMA메모리, L4, L3, L2, L1의 순으로 파티셔닝을 하면서 정책을 만족시키는 파티셔닝 방법을 찾을 수 있다. 따라서, 계산 유닛끼리 더 많은 메모리를 공유할 수 있고, 이에 따라 계산 유닛끼리 데이터를 공유하는 경우 성능을 향상시킬 수 있다.That is, as shown in FIG. 4, the partitioning method satisfying the policy can be found in step 230 by performing partitioning in the order of NUMA memory, L4, L3, L2, and L1. Thus, more computing units can share more memory, thereby improving performance when sharing computation units between data.

이상에서와 같이 본 발명에 따른 플랫폼 관리 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the platform management apparatus and method according to the present invention are not limited to the configuration and method of the embodiments described above, but the embodiments can be applied to all of the embodiments Or some of them may be selectively combined.

110: 정책 관리부
120: 디바이스 관리부
110:
120:

Claims (10)

어플리케이션들의 설정 정책을 전달 받아 디바이스들을 검사하여 계산 유닛들의 수를 결정하는 정책 관리부; 및
상기 설정 정책과 상기 계산 유닛들의 수에 기반하여 상기 계산 유닛들을 파티셔닝(partitioning)하고, 상기 어플리케이션들을 상기 계산 유닛들에 할당하는 디바이스 관리부;
를 포함하고,
상기 디바이스 관리부는
두 개 이상의 어플리케이션들이 하나의 디바이스에 할당이 되어 있는 경우, 계산 유닛을 파티셔닝하여 나뉘어진 복수개의 서브 디바이스들에 상기 두 개 이상의 어플리케이션들을 할당하고,
가장 많은 계산 유닛을 공유하는 메모리로부터 가장 적은 계산 유닛을 공유하는 메모리 순서로 각각의 어플리케이션이 필요로 하는 상기 복수개의 서브 디바이스들 중 어느 하나를 할당하는 것을 특징으로 하는 플랫폼 관리 장치.
A policy management unit receiving a configuration policy of applications and inspecting devices to determine the number of calculation units; And
A device management unit for partitioning the calculation units based on the setting policy and the number of calculation units, and allocating the applications to the calculation units;
Lt; / RTI >
The device management unit
When two or more applications are allocated to one device, the calculation unit is partitioned to allocate the two or more applications to a plurality of divided sub-devices,
And allocates any one of the plurality of sub-devices required by each application in a memory order that shares the smallest number of calculation units from the memory sharing the largest number of calculation units.
삭제delete 청구항 1에 있어서,
상기 디바이스 관리부는
하나의 디바이스로부터 계산 유닛들 간에 서로 캐쉬를 공유하도록 복수개의 서브 디바이스들을 파티셔닝하는 것을 특징으로 하는 플랫폼 관리 장치.
The method according to claim 1,
The device management unit
And partition the plurality of sub-devices to share a cache among the calculation units from one device.
청구항 3에 있어서,
상기 디바이스 관리부는
동일한 메모리를 공유하는 계산 유닛들을 하나의 서브 디바이스에 할당하는 것을 특징으로 하는 플랫폼 관리 장치.
The method of claim 3,
The device management unit
And allocates calculation units sharing the same memory to one sub-device.
삭제delete 플랫폼 관리 장치를 이용하는 플랫폼 관리 방법에 있어서,
어플리케이션들의 설정 정책을 전달 받아 디바이스 및 계산 유닛들의 수를 검사하는 단계;
상기 디바이스 및 계산 유닛들의 수를 결정하는 단계; 및
상기 설정 정책과 상기 계산 유닛들의 수에 기반하여 상기 계산 유닛들을 파티셔닝(partitioning)하여 상기 어플리케이션들을 상기 계산 유닛들에 할당하는 단계;
를 포함하고,
상기 할당하는 단계는
두 개 이상의 어플리케이션들이 하나의 디바이스에 할당이 되어 있는 경우, 계산 유닛을 파티셔닝하여 나뉘어진 복수개의 서브 디바이스들에 상기 두 개 이상의 어플리케이션들을 할당하고,
가장 많은 계산 유닛을 공유하는 메모리로부터 가장 적은 계산 유닛을 공유하는 메모리 순서로 각각의 어플리케이션이 필요로 하는 상기 복수개의 서브 디바이스들 중 어느 하나를 할당하는 것을 특징으로 하는 플랫폼 관리 방법.
A platform management method using a platform management apparatus,
Receiving the configuration policies of the applications and checking the number of devices and calculation units;
Determining the number of devices and calculation units; And
Partitioning the calculation units based on the set policy and the number of calculation units and assigning the applications to the calculation units;
Lt; / RTI >
The allocating step
When two or more applications are allocated to one device, the calculation unit is partitioned to allocate the two or more applications to a plurality of divided sub-devices,
And assigning any one of the plurality of sub-devices required by each application in a memory order that shares the smallest number of calculation units from a memory sharing the largest number of calculation units.
삭제delete 청구항 6에 있어서,
상기 할당하는 단계는
하나의 디바이스로부터 계산 유닛들 간에 서로 캐쉬를 공유하도록 복수개의 서브 디바이스들로 파티셔닝하는 것을 특징으로 하는 플랫폼 관리 방법.
The method of claim 6,
The allocating step
And partitioning the plurality of sub-devices to share a cache among the calculation units from one device.
청구항 8에 있어서,
상기 할당하는 단계는
동일한 메모리를 공유하는 계산 유닛들을 하나의 서브 디바이스에 할당하는 것을 특징으로 하는 플랫폼 관리 방법.
The method of claim 8,
The allocating step
And assigning the calculation units sharing the same memory to one sub-device.
삭제delete
KR1020160124857A 2016-09-28 2016-09-28 Appratus for managing platform and method for using the same KR101989033B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160124857A KR101989033B1 (en) 2016-09-28 2016-09-28 Appratus for managing platform and method for using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160124857A KR101989033B1 (en) 2016-09-28 2016-09-28 Appratus for managing platform and method for using the same

Publications (2)

Publication Number Publication Date
KR20180034960A KR20180034960A (en) 2018-04-05
KR101989033B1 true KR101989033B1 (en) 2019-06-13

Family

ID=61977386

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160124857A KR101989033B1 (en) 2016-09-28 2016-09-28 Appratus for managing platform and method for using the same

Country Status (1)

Country Link
KR (1) KR101989033B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667560B (en) * 2020-12-22 2023-01-24 深圳致星科技有限公司 Data distribution device and computing platform based on FPGA

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010510607A (en) * 2006-11-21 2010-04-02 マイクロソフト コーポレーション Replacing system hardware
JP2015507771A (en) 2011-09-30 2015-03-12 インテル コーポレイション Application event control (PAEC) based on priority to reduce power consumption

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101332839B1 (en) * 2012-01-05 2013-11-27 서울대학교산학협력단 Host node and memory management method for cluster system based on parallel computing framework
KR101594915B1 (en) * 2014-01-23 2016-02-17 서울대학교산학협력단 Method for performing parallel programing in manycore cluster system and manycore cluster sytem

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010510607A (en) * 2006-11-21 2010-04-02 マイクロソフト コーポレーション Replacing system hardware
JP2015507771A (en) 2011-09-30 2015-03-12 インテル コーポレイション Application event control (PAEC) based on priority to reduce power consumption

Also Published As

Publication number Publication date
KR20180034960A (en) 2018-04-05

Similar Documents

Publication Publication Date Title
JP4702127B2 (en) Virtual computer system, physical resource reconfiguration method and program thereof
US20160364334A1 (en) Managing coherent memory between an accelerated processing device and a central processing unit
CN110941481A (en) Resource scheduling method, device and system
WO2015117565A1 (en) Methods and systems for dynamically allocating resources and tasks among database work agents in smp environment
US7698529B2 (en) Method for trading resources between partitions of a data processing system
US9875139B2 (en) Graphics processing unit controller, host system, and methods
US20200210242A1 (en) Method and system for gpu virtualization based on container
KR20110075295A (en) Job allocation method on multi-core system and apparatus thereof
US20140040891A1 (en) Selecting provisioning targets for new virtual machine instances
KR20190136431A (en) Neural network system, Application processor having the same and Operating method of neural network system
US20160352821A1 (en) Method and system for allocating resources for virtual hosts
US8352702B2 (en) Data processing system memory allocation
US11334477B2 (en) Virtualization of multiple coprocessor memory
KR101848450B1 (en) Method for managing many-core based on docker and apparatus managing the same
US20150212859A1 (en) Graphics processing unit controller, host system, and methods
KR101989033B1 (en) Appratus for managing platform and method for using the same
KR101198400B1 (en) Memory management apparatus and method
US9158551B2 (en) Activating and deactivating Operating System (OS) function based on application type in manycore system
CN117271136A (en) Data processing method, device, equipment and storage medium
US9405470B2 (en) Data processing system and data processing method
US8689230B2 (en) Determination of running status of logical processor
KR101755154B1 (en) Method and apparatus for power load balancing for heterogeneous processors
CN111813564B (en) Cluster resource management method and device and container cluster management system
CN114281516A (en) Resource allocation method and device based on NUMA attribute
KR101952221B1 (en) Efficient Multitasking GPU with Latency Minimization and Cache boosting

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right