KR102034660B1 - Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same - Google Patents
Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same Download PDFInfo
- Publication number
- KR102034660B1 KR102034660B1 KR1020170097032A KR20170097032A KR102034660B1 KR 102034660 B1 KR102034660 B1 KR 102034660B1 KR 1020170097032 A KR1020170097032 A KR 1020170097032A KR 20170097032 A KR20170097032 A KR 20170097032A KR 102034660 B1 KR102034660 B1 KR 102034660B1
- Authority
- KR
- South Korea
- Prior art keywords
- computing devices
- host processor
- heterogeneous system
- power
- controlling
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 39
- 238000004891 communication Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 7
- 230000007704 transition Effects 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 4
- 230000015654 memory Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000011017 operating method Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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
-
- Y02D10/172—
-
- Y02D10/24—
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Advance Control (AREA)
Abstract
애플리케이션을 실행하기 위한 복수의 계산 디바이스들 및 상기 복수의 계산 디바이스들과 연결되며, 상기 복수의 계산 디바이스들에 공급되는 전력을 제어하는 호스트 프로세서를 포함하며, 상기 호스트 프로세서는, 상기 복수의 계산 디바이스들 중에서 상기 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하고, 상기 애플리케이션의 실행 중에는 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는 이종 시스템을 제공한다.A host processor coupled to the plurality of computing devices and the plurality of computing devices for executing an application, the host processor controlling power supplied to the plurality of computing devices, the host processor comprising: the plurality of computing devices Among these, it provides a heterogeneous system for identifying at least one calculation device used for the execution of the application, and controlling the idle power of the remaining calculation device other than the at least one calculated device is minimized during execution of the application. .
Description
본 명세서에서 개시되는 실시예들은 이종 시스템에 포함되는 복수의 가속기들을 제어하는 방법 및 이를 수행하기 위한 이종 시스템에 관한 것이다.Embodiments disclosed herein relate to a method of controlling a plurality of accelerators included in a heterogeneous system and a heterogeneous system for performing the same.
이종 시스템(heterogeneous system)이란 CPU와 복수의 가속기(accelerator)들을 포함하는 시스템을 의미한다.Heterogeneous system means a system including a CPU and a plurality of accelerators.
이종 시스템에서 애플리케이션을 실행할 때에는, 통상적으로 이종 시스템에 포함된 복수의 가속기들 중에서 가장 높은 성능을 얻을 수 있는 일부의 가속기들만이 사용된다. 하지만, 사용되지 않는 가속기들도 약 수 내지 수십 와트의 유휴 전력을 소비함으로써 전체 전력 소모의 상당 부분을 차지할 수 있다.When running an application in a heterogeneous system, only some accelerators are typically used that can achieve the highest performance among a plurality of accelerators included in the heterogeneous system. However, unused accelerators can also consume a few to tens of watts of idle power, accounting for a significant portion of the overall power consumption.
또한, 가속기들은 일반적으로 PCI-E 버스를 통해 CPU와 연결되는데, CPU가 지원하는 PCI-E 레인(lane)의 개수에 한계가 있어, 다수의 가속기들을 한 번에 연결하려면 중간에 PCI-E 스위치를 두고 대역폭을 나누어 써야 하며, 따라서 통신의 속도 및 품질이 저하되며 전력 소모가 많아지는 문제점이 발생할 수 있다. 특히, 이종 시스템에 포함된 가속기들 중에서 일부의 가속기들만이 애플리케이션의 실행에 사용되는 상황에서, 사용되지 않는 가속기들까지 PCI-E 스위치를 통해 CPU와의 연결을 유지하면 불필요한 시간 지연, 전력 소모 및 상호 간섭이 발생하는 문제가 있다.Also, accelerators are typically connected to the CPU via a PCI-E bus, which limits the number of PCI-E lanes supported by the CPU. The bandwidth must be divided, and thus, the speed and quality of communication may be degraded and power consumption may increase. In particular, in a situation where only some of the accelerators included in the heterogeneous system are used to execute an application, maintaining connection with the CPU through the PCI-E switch to the unused accelerators is unnecessary for time delays, power consumption, and interconnection. There is a problem that interference occurs.
이러한 문제점은 모두 애플리케이션이 사용하지 않는 가속기가 시스템의 하드웨어 자원을 소모하기 때문에 발생하는 것이다.All of these problems arise because accelerators that are not used by applications consume hardware resources of the system.
관련하여 선행기술 문헌인 미국등록특허 제9,672,046호에서는 복수의 프로세서 기능들을 수행하기 위한 복수의 프로세서 컴포넌트들 중 하나와 연관된 전력 플레인을 포함하며, 작업량 특성 및 전력 제약 조건 등에 기초하여 전력 플레인 각각에 대한 전력을 동적으로 조정하는 내용을 개시하고 있다.Related prior art document US Pat. No. 9,672,046 includes a power plane associated with one of a plurality of processor components for performing a plurality of processor functions, for each power plane based on workload characteristics and power constraints, and the like. Disclosed is the adjustment of power dynamically.
한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.On the other hand, the background art described above is technical information that the inventors possess for the derivation of the present invention or acquired in the derivation process of the present invention, and is not necessarily a publicly known technique disclosed to the general public before the application of the present invention. .
본 명세서에서 개시되는 실시예들은, 전력 효율 및 통신 성능을 증가시킬 수 있도록 이종 시스템에 포함되는 복수의 가속기들을 제어하는 방법 및 이를 수행하기 위한 이종 시스템에 관한 것이다.Embodiments disclosed herein relate to a method for controlling a plurality of accelerators included in a heterogeneous system to increase power efficiency and communication performance, and a heterogeneous system for performing the same.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 이종 시스템은, 애플리케이션을 실행하기 위한 복수의 계산 디바이스들 및 상기 복수의 계산 디바이스들과 연결되며, 상기 복수의 계산 디바이스들에 공급되는 전력을 제어하는 호스트 프로세서를 포함하며, 상기 호스트 프로세서는, 상기 복수의 계산 디바이스들 중에서 상기 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하고, 상기 애플리케이션의 실행 중에는 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어할 수 있다.As a technical means for achieving the above-described technical problem, according to an embodiment, the heterogeneous system is connected to the plurality of computing devices and the plurality of computing devices for executing an application, and to the plurality of computing devices And a host processor for controlling the power supplied, wherein the host processor identifies at least one computing device used to execute the application among the plurality of computing devices, and wherein the at least one identified during execution of the application. It is possible to control so that the idle power of the remaining calculation device except for the calculation device of the minimum.
다른 실시예에 따르면, 이종 시스템의 계산 디바이스 제어 방법은, 상기 이종 시스템에 포함된 복수의 계산 디바이스들 중에서 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하는 단계 및 상기 애플리케이션의 실행 중에는, 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는 단계를 포함할 수 있다.According to another embodiment, the method for controlling a computing device of a heterogeneous system includes identifying at least one computing device used to execute an application among a plurality of computing devices included in the heterogeneous system, and during the execution of the application. And controlling the idle power of the remaining computing devices to be minimum except the identified at least one computing device.
또 다른 실시예에 따르면, 이종 시스템의 계산 디바이스 제어 방법을 수행하기 위한 컴퓨터 프로그램으로서, 이종 시스템의 계산 디바이스 제어 방법은, 상기 이종 시스템에 포함된 복수의 계산 디바이스들 중에서 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하는 단계 및 상기 애플리케이션의 실행 중에는, 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는 단계를 포함할 수 있다.According to yet another embodiment, a computer program for performing a method for controlling a computing device of a heterogeneous system, wherein the method for controlling a computing device of a heterogeneous system includes at least one of a plurality of computing devices included in the heterogeneous system for execution of an application. Identifying one computing device and controlling the idle power of the remaining computing devices to be minimum except for the at least one checked computing device during execution of the application.
또 다른 실시예에 따르면, 이종 시스템의 계산 디바이스 제어 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체로서, 이종 시스템의 계산 디바이스 제어 방법은, 상기 이종 시스템에 포함된 복수의 계산 디바이스들 중에서 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하는 단계 및 상기 애플리케이션의 실행 중에는, 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는 단계를 포함할 수 있다.According to yet another embodiment, a computer-readable recording medium on which a program for performing a method for controlling a computing device of a heterogeneous system is recorded. Identifying at least one computing device used for the execution of and controlling the idle power of the remaining computing devices other than the identified at least one computing device to be minimum during execution of the application.
전술한 과제 해결 수단 중 어느 하나에 의하면, 이종 시스템에 포함된 복수의 가속기들 중에서, 애플리케이션의 실행에 사용되지 않는 가속기들의 유휴 전력이 최소가 되도록 제어함으로써 이종 시스템의 평균 전력 소모를 줄일 수 있는 효과를 기대할 수 있다.According to any one of the aforementioned problem solving means, among the plurality of accelerators included in the heterogeneous system, the average power consumption of the heterogeneous system can be reduced by controlling the idle power of the accelerators not used to execute the application to be minimum. You can expect.
또한, 이종 시스템에 포함된 복수의 가속기들 중에서, 애플리케이션의 실행에 사용되는 가속기들만이 CPU와의 연결을 유지하도록 함으로써, CPU와 가속기들간의 연결을 스위칭하는 과정에서 발생할 수 있는 상호 간섭, 시간 지연 및 전력 소모를 감소시키는 효과를 기대할 수 있다.In addition, among the plurality of accelerators included in the heterogeneous system, only the accelerators used to execute the application maintain the connection with the CPU, and thus, mutual interference, time delay, and the like that may occur in the process of switching the connection between the CPU and the accelerators. The effect of reducing power consumption can be expected.
또한, 전체 시스템의 전력 예산 및 CPU(또는 PCI-E 컨트롤러)가 제공하는 PCI-E 레인의 개수에 제한되지 않고, 여러 개의 가속기를 모두 시스템에 장착한 뒤, 애플리케이션이 실제로 사용하는 가속기들만이 대부분의 전력을 소모하고 PCI-E 레인을 할당받도록 함으로써, 서로 다른 가속기를 필요로 하는 다양한 애플리케이션을 하나의 이종 시스템에서 실행하도록 할 수 있는 장점이 있다.In addition, you are not limited to the overall system power budget and the number of PCI-E lanes provided by the CPU (or PCI-E controller), and only the accelerators that your application actually uses after you have installed all the accelerators in your system By consuming power and getting PCI-E lanes allocated, it is possible to run various applications that require different accelerators in one heterogeneous system.
개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the disclosed embodiments are not limited to the effects mentioned above, and other effects not mentioned above are apparent to those skilled in the art to which the embodiments disclosed from the following description belong. Can be understood.
도 1은 일 실시예에 따른 이종 시스템의 구성을 도시한 도면이다.
도 2는 일 실시예에 따른 이종 시스템의 가속기 제어 방법을 설명하기 위한 순서도이다.
도 3은 일 실시예에 따라 이종 시스템에 포함된 일부 가속기들의 유휴 전력을 최소로 제어한 상태를 도시한 도면이다.
도 4는 일 실시예에 따라 이종 시스템에서 CPU와 가속기들간의 연결을 제어하는 방법을 설명하기 위한 순서도이다.
도 5는 일 실시예에 따라 이종 시스템에서 애플리케이션의 실행에 사용되는 가속기들만이 CPU와의 연결을 유지하도록 제어한 상태를 도시한 도면이다.1 is a diagram illustrating a configuration of a heterogeneous system according to an embodiment.
2 is a flowchart illustrating an accelerator control method of a heterogeneous system according to an exemplary embodiment.
3 is a diagram illustrating a state in which idle power of some accelerators included in a heterogeneous system is minimized according to an embodiment.
4 is a flowchart illustrating a method of controlling a connection between a CPU and an accelerator in a heterogeneous system according to an embodiment.
FIG. 5 is a diagram illustrating a state in which only accelerators used to execute an application in a heterogeneous system are controlled to maintain a connection with a CPU. Referring to FIG.
아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, various embodiments will be described in detail with reference to the accompanying drawings. The embodiments described below may be embodied in various different forms. In order to more clearly describe the features of the embodiments, detailed descriptions of the matters well known to those skilled in the art to which the following embodiments belong are omitted. In the drawings, parts irrelevant to the description of the embodiments are omitted, and like reference numerals designate like parts throughout the specification.
명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐 아니라, ‘그 중간에 다른 구성을 사이에 두고 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.Throughout the specification, when a configuration is "connected" to another configuration, this includes not only 'directly connected' but also 'connected' between different configurations. In addition, when a configuration "includes" a certain configuration, this means that, unless specifically stated otherwise, it may further include other configurations other than the other configuration.
이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings.
도 1은 일 실시예에 따른 이종 시스템의 구성을 도시한 도면이다. 도 1을 참조하면, 일 실시예에 따른 이종 시스템(100)은 CPU(110), PCI-E 컨트롤러(120), PCI-E 스위치(130) 및 복수의 가속기들(141, 142, 143, 144)을 포함할 수 있다. 도 1에서는 이종 시스템(100)이 4개의 가속기들(141, 142, 143, 144)을 포함하는 것으로 도시하였으나, 이에 한정되지 않고 다양한 개수의 계산 디바이스들을 포함할 수 있음은 자명하다.1 is a diagram illustrating a configuration of a heterogeneous system according to an embodiment. Referring to FIG. 1, a
CPU(110)는 범용 프로세서로서 이종 시스템(100)의 전체적인 동작을 제어하며, ‘호스트 프로세서’라고도 한다. 이종 시스템(100)의 운영체제가 CPU(110)에서 실행될 수 있다. CPU(110)는 가속기들(141, 142, 143, 144)의 동작을 제어할 수 있다. 또한, CPU(110)에는 메인 메모리(미도시)가 연결될 수 있다.The
PCI-E 컨트롤러(120)는 CPU(110)와 가속기들(141, 142, 143, 144)간의 연결을 제공하기 위한 인터페이스이다. PCI-E 컨트롤러(120)는 CPU(110)의 외부에 별도로 존재할 수도 있고, 또는 CPU(110)에 통합되어 있을 수도 있다. 즉, 도 1에서는 CPU(110)와 별도의 구성으로 PCI-E 컨트롤러(120)가 존재하는 것으로 도시하였으나, CPU(110)가 직접 PCI-E 컨트롤러(120)의 역할까지 수행할 수도 있다. PCI-E 컨트롤러(120)는 미리 정해진 개수만큼의 PCI-E 레인(lane)을 제공한다.The PCI-
PCI-E 스위치(130)는 CPU(100)와 가속기들(141, 142, 143, 144)간의 통신을 중계하는 역할을 하는 구성이다. 즉, 도 1에 도시된 바와 같이 PCI-E 컨트롤러(120)와 PCI-E 스위치(130)는 제1 레인을 통해 연결되고, PCI-E 스위치(130)와 가속기들(141, 142, 143, 144)은 제2 레인을 통해 연결되며, PCI-E 스위치(130)는 제1 레인과 제2 레인 사이를 중계한다.The PCI-
PCI-E 스위치(130)를 사용하는 이유는, 가속기들(141, 142, 143, 144)이 필요로 하는 PCI-E 레인들의 개수(제2 레인에 포함된 PCI-E 레인들의 개수)가 PCI-E 컨트롤러(120)가 제공하는 PCI-E 레인들의 개수(제1 레인에 포함된 PCI-E 레인들의 개수)보다 많기 때문이다. 즉, PCI-E 컨트롤러(120)가 제공하는 PCI-E 레인들만으로는 모든 가속기들(141, 142, 143, 144)을 연결할 수 없을 때, PCI-E 스위치(130)에 PCI-E 컨트롤러(120)에서 나오는 PCI-E 레인들을 연결하고, PCI-E 스위치(130)는 다시 가속기들(141, 142, 143, 144)과 연결된다.The reason for using the PCI-
가속기들(141, 142, 143, 144)은 ‘계산 디바이스’라고도 하며, 범용의 CPU와는 달리 특정 패턴의 연산에 특화된 프로세서로 구성될 수 있다. 예를 들어, GPU, Intel Xeon Phi 코프로세서 또는 FPGA 등이 가속기가 될 수 있다.The
가속기들(141, 142, 143, 144)은 CPU(110)의 제어에 따라서 각각에 특화된 연산을 수행한다. 다시 말해, 이종 시스템(100)에서 애플리케이션이 실행되면, 각각의 가속기들(141, 142, 143, 144)은 자신에게 특화된 특정 패턴의 연산을 수행하고, 나머지 연산 및 I/O 작업이 CPU(110)에 의해서 수행될 수 있다. 또한, 가속기들(141, 142, 143, 144) 각각에는 디바이스 메모리(미도시)가 연결될 수 있다.The
이종 시스템(100)에 포함된 가속기들(141, 142, 143, 144)은, 서로 동작 방식이 상이할 수도 있고, 동작 방식은 동일하지만 세부 아키텍처가 다를 수도 있고, 동작 방식 및 세부 아키텍처가 모두 다를 수도 있다. 따라서, 애플리케이션에 따라서 최선의 가속기를 선택하여 실행시킴으로써 전체 시스템의 효율을 극대화할 수 있다.The
이와 같이, 이종 시스템(100)에 포함된 가속기들(141, 142, 143, 144) 중에서 가장 높은 성능을 얻을 수 있는 일부 가속기만을 선택하여 사용할 경우, 나머지 가속기들은 유휴 상태에 있으면서 계속 유휴 전력을 소모하게 된다. 따라서, 이하에서 설명되는 일 실시예에서는 애플리케이션의 실행에 사용되지 않는 가속기의 유휴 전력을 최소화함으로써 이종 시스템(100)의 평균 소비 전력을 감소시키는 방법을 제시한다.As such, when only some of the
또한, 이종 시스템(100)에 포함된 가속기들(141, 142, 143, 144) 중에서 가장 높은 성능을 얻을 수 있는 일부 가속기만을 선택하여 사용할 경우, 사용되지 않는 나머지 가속기들까지 CPU(110)와의 연결을 유지한다면 PCI-E 스위치(130)는 CPU(110)와 가속기들(141, 142, 143, 144) 사이에서 계속해서 라우팅 동작을 수행해야 하므로, PCI-E 스위치(130)의 오버헤드가 늘어나고, 통신 상호간의 간섭이 발생하며, 라우팅 동작으로 인해 시간이 지연되고 추가적인 전력 소모가 발생할 수 있다. 따라서, 이하에서 설명되는 일 실시예에서는 애플리케이션의 실행에 사용되는 가속기만이 CPU(110)와의 연결을 유지하도록 함으로써 통신 성능 및 전력 효율을 높일 수 있는 방법을 제시한다.In addition, when only some of the
이하에서는 일 실시예에 따라 이종 시스템(100)에 포함된 가속기들(141, 142, 143, 144)을 제어하는 방법을 도 2 내지 도 5를 참조하여 자세히 설명한다. 이하에서 설명되는 실시예에서는 이종 시스템(100)에서 애플리케이션을 실행할 때 제1 가속기(141) 및 제3 가속기(143)만을 사용한다고 가정한다.Hereinafter, a method of controlling the
도 2는 일 실시예에 따른 이종 시스템의 가속기 제어 방법을 설명하기 위한 순서도이다. 도 2를 참조하면, 201 단계에서 CPU(110)는 이종 시스템(100)에 포함된 복수의 가속기들(141, 142, 143, 144) 중에서 애플리케이션이 사용하는 적어도 하나의 가속기를 결정한다. 즉, CPU(110)는 이종 시스템(100)에서 애플리케이션을 실행할 때 복수의 가속기들(141, 142, 143, 144) 중에서 제1 가속기(141) 및 제3 가속기(143)만이 사용됨을 확인한다. 2 is a flowchart illustrating an accelerator control method of a heterogeneous system according to an exemplary embodiment. 2, in
이때, CPU(110)는 이종 시스템(100)에서 애플리케이션이 실행되기 이전에, 또는 실행되는 중에 각 가속기에 대한 사용 여부를 확인할 수 있다. 어떤 가속기를 사용할 것인지는 애플리케이션에서 지정할 수도 있고, 애플리케이션을 실행시키는 런타임 시스템에서 지정할 수도 있고, 또는 이종 시스템(100)의 사용자가 지정할 수도 있다.In this case, the
202 단계에서 CPU(100)는 결정된 가속기들(141, 143) 이외의 나머지 가속기들(142, 144)의 유휴 전력이 최소가 되도록 제어한다. 예를 들어, CPU(110)는 ACPI(Advanced Configuration and Power Interface) 규격에 따라서 가속기들(141, 142, 143, 144)에 공급되는 전력을 제어할 수 있다. In
이때, ACPI는 소프트웨어적으로 컴퓨터를 구성하는 하드웨어 부품의 전원 관리를 가능하게 하는 표준 규격으로서, 가속기와 같이 컴퓨터에 장착된 각 개별 장치에 대한 전원 관리 규격을 포함한다. ACPI에서는 장치의 전원 상태를 4가지(D0, D1, D2, D3)로 정의한다. D0는 장치가 켜져 있고 작동하는 상태를, D3는 장치가 꺼져 있고 작동하지 않는 상태를 의미한다. 그리고, D1 및 D2는 D0와 D3의 중간 상태를 의미한다. 즉, 장치가 소비하는 전력은 D0에서 D3로 갈수록 줄어든다.At this time, ACPI is a standard specification that enables power management of hardware components constituting a computer by software, and includes a power management specification for each individual device mounted in a computer such as an accelerator. ACPI defines four power states for the device: D0, D1, D2, and D3. D0 means the device is turned on and working, and D3 means the device is turned off and not working. D1 and D2 mean an intermediate state between D0 and D3. In other words, the power consumed by the device decreases from D0 to D3.
CPU(110)는 가속기들(141, 142, 143, 144)의 장치 드라이버에 명령을 전송함으로써 가속기들(141, 142, 143, 144)의 전원 상태를 D0 내지 D3 중에서 어느 하나로 제어할 수 있다.The
따라서, 202 단계에서 CPU(110)는 제1 가속기(141) 및 제3 가속기(143)에는 D0 상태로 전환하라는 명령을 전송하고, 제2 가속기(142) 및 제4 가속기(144)에는 D3 상태로 전환하라는 명령을 전송할 수 있다. 또는, CPU(110)는 사용되지 않는 제2 가속기(142) 및 제4 가속기(144)에서 D3보다 높은 전원 상태를 필요로 한다면, D1 또는 D2 상태로 전환하라는 명령을 제2 가속기(142) 및 제4 가속기(144)에 전송할 수 있다. 즉, CPU(110)는 사용되지 않는 가속기들(142, 144)이 필요로 하는 최소한의 전력만을 사용되지 않는 가속기들(142, 144)이 유휴 전력으로서 소비하도록 제어할 수 있다.Therefore, in
도 3에는 일 실시예에 따라 CPU(110)가 일부 가속기들(142, 144)의 유휴 전력을 최소로 제어한 상태를 도시하였다. 도 3을 참조하면, 제1 가속기(141) 및 제3 가속기(143)는 D0 상태로 제어되고, 제2 가속기(142) 및 제4 가속기(144)는 D3 상태로 제어됨을 알 수 있다.3 illustrates a state in which the
상기 실시예에서는 ACPI 규격에 따라서 가속기들(141, 142, 143, 144)의 전력 공급을 제어하는 것으로 설명하였지만, 이는 하나의 예시일 뿐 CPU(110)는 다양한 방식으로 사용되지 않는 가속기들(142, 144)의 유휴 전력이 최소가 되도록 제어할 수 있다.In the above embodiment, the power supply of the
203 단계에서 PCI-E 스위치(130)는 애플리케이션의 실행시 사용되는 것으로 결정된 가속기들(141, 143)만이 CPU(110)와의 연결을 유지하도록 제어할 수 있다. PCI-E 스위치(130)가 CPU(110)와 가속기들(141, 142, 143, 144)간의 연결을 제어하는 구체적인 방법을 도 4 및 도 5를 참조하여 설명한다.In
도 4는 일 실시예에 따라 이종 시스템에서 CPU와 가속기들간의 연결을 제어하는 방법을 설명하기 위한 순서도로서, 도 2의 203 단계의 세부 단계들을 포함한다. 도 5는 일 실시예에 따라 이종 시스템에서 애플리케이션의 실행에 사용되는 가속기들만이 CPU와의 연결을 유지하도록 제어한 상태를 도시한 도면이다.4 is a flowchart illustrating a method of controlling a connection between a CPU and an accelerator in a heterogeneous system according to an embodiment, and includes detailed steps of
도 4를 참조하면, 401 단계에서 PCI-E 스위치(130)는 애플리케이션이 사용하는 가속기들(141, 143)이 필요로 하는 PCI-E 레인들의 개수(M)를, PCI-E 컨트롤러(120)가 제공하는 PCI-E 레인들의 개수(N)와 비교한다.Referring to FIG. 4, in
도 5를 참조하면, 제1 가속기(141) 및 제3 가속기(143)는 각각 16개의 PCI-E 레인을 필요로 하므로, M은 32가 된다. 또한, 도 5에서 PCI-E 컨트롤러(120)가 제공하는 PCI-E 레인들의 개수는 32개이므로, N은 32가 된다. 따라서, 도 5에 도시된 실시예에 따르면 PCI-E 스위치(130)는 M은 N 이하라고 판단한다.Referring to FIG. 5, since the
402 단계에서 PCI-E 스위치(130)는 M이 N 이하인지 여부를 판단하고, M이 N 이하라고 판단되면 403 단계로 진행한다.In
403 단계에서 PCI-E 스위치(130)는 제2 레인에 포함된 PCI-E 레인들 중에서 애플리케이션이 사용하는 가속기들(141, 143)에 연결된 PCI-E 레인들을, 제1 레인에 포함된 PCI-E 레인들과 일대일로 대응시킨다.In
404 단계에서 PCI-E 스위치(130)는 제1 레인과 제2 레인간의 일대일 대응관계에 따라서 CPU와 가속기들간의 데이터 전송을 중계할 수 있다. 예를 들어, PCI-E 스위치(130)는 제1 레인과 제2 레인들간의 일대일 대응관계를 포함하는 라우팅 테이블을 저장하고, 저장된 라우팅 테이블에 따라 데이터 전송을 중계할 수 있다. 또는, PCI-E 스위치(130)가 PCI-E 레인들간의 일대일 대응관계를 설정하는 기능을 지원한다면, 이를 이용하여 데이터 전송을 중계할 수도 있다.In
한편, 402 단계에서 판단을 수행한 결과 M이 N보다 크다면, 405 단계로 진행하여 PCI-E 스위치(130)는 기존 방식에 따라 제1 라인과 제2 라인 사이를 스위칭하여 데이터 전송을 중계할 수 있다.On the other hand, if M is greater than N as a result of the determination in
이와 같이, PCI-E 스위치(130)는 애플리케이션의 실행에 사용되는 가속기들(141, 143)만이 CPU(110)와의 연결을 유지하도록 함으로써 PCI-E 스위치(130)의 오버헤드를 최소화할 수 있고, 또한 CPU(110)의 제한된 PCI-E 레인을 효율적으로 활용할 수 있다. 결과적으로, PCI-E 스위치(130)의 라우팅 동작으로 인한 전력 소모, 시간 지연 및 상호 간섭을 감소시키는 효과를 기대할 수 있다.As such, the PCI-
이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.The term '~' used in the above embodiments refers to software or a hardware component such as a field programmable gate array (FPGA) or an ASIC, and '~' serves a part. However, '~' is not meant to be limited to software or hardware. '~ Portion' may be configured to be in an addressable storage medium or may be configured to play one or more processors. Thus, as an example, '~' means components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, procedures, and the like. Subroutines, segments of program patent code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables.
구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.The functionality provided within the components and 'parts' may be combined into a smaller number of components and 'parts' or separated from additional components and 'parts'.
뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.In addition, the components and '~' may be implemented to play one or more CPUs in the device or secure multimedia card.
도 2 내지 도 5를 통해 설명된 실시예에 따른 이종 시스템의 가속기 제어 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다.The accelerator control method of the heterogeneous system according to the embodiments described with reference to FIGS. 2 to 5 may also be implemented in the form of a computer readable medium for storing instructions and data executable by a computer. In this case, the command and data may be stored in the form of program code, and when executed by the processor, a predetermined program module may be generated to perform a predetermined operation. In addition, computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer readable medium may be a computer recording medium, which is volatile and non-implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. It can include both volatile, removable and non-removable media. For example, the computer recording medium may be a magnetic storage medium such as HDD and SSD, an optical recording medium such as CD, DVD and Blu-ray Disc, or a memory included in a server accessible through a network.
또한 도 2 내지 도 5를 통해 설명된 실시예에 따른 이종 시스템의 가속기 제어 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다. Also, the accelerator control method of the heterogeneous system according to the embodiments described with reference to FIGS. 2 to 5 may be implemented as a computer program (or computer program product) including instructions executable by a computer. The computer program includes programmable machine instructions processed by the processor and may be implemented in a high-level programming language, an object-oriented programming language, an assembly language, or a machine language. . The computer program may also be recorded on tangible computer readable media (eg, memory, hard disks, magnetic / optical media or solid-state drives, etc.).
따라서 도 2 내지 도 5를 통해 설명된 실시예에 따른 이종 시스템의 가속기 제어 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.Therefore, the accelerator control method of the heterogeneous system according to the embodiments described with reference to FIGS. 2 to 5 may be implemented by executing the computer program as described above by the computing device. The computing device may include at least a portion of a processor, a memory, a storage device, a high speed interface connected to the memory and a high speed expansion port, and a low speed interface connected to the low speed bus and the storage device. Each of these components are connected to each other using a variety of buses and may be mounted on a common motherboard or otherwise mounted in a suitable manner.
여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.Here, the processor may process instructions within the computing device, such as to display graphical information for providing a graphical user interface (GUI) on an external input, output device, such as a display connected to a high speed interface. Instructions stored in memory or storage. In other embodiments, multiple processors and / or multiple buses may be used with appropriately multiple memories and memory types. The processor may also be implemented as a chipset consisting of chips comprising a plurality of independent analog and / or digital processors.
또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.The memory also stores information within the computing device. In one example, the memory may consist of a volatile memory unit or a collection thereof. As another example, the memory may consist of a nonvolatile memory unit or a collection thereof. The memory may also be another form of computer readable medium, such as a magnetic or optical disk.
그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.In addition, the storage device can provide a large amount of storage space to the computing device. The storage device may be a computer readable medium or a configuration including such a medium, and may include, for example, devices or other configurations within a storage area network (SAN), and may include a floppy disk device, a hard disk device, an optical disk device, Or a tape device, flash memory, or similar other semiconductor memory device or device array.
상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above-described embodiments are for illustrative purposes, and those of ordinary skill in the art to which the above-described embodiments belong may easily change to other specific forms without changing the technical spirit or essential features of the above-described embodiments. I can understand. Therefore, it is to be understood that the above-described embodiments are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.
본 명세서를 통해 보호 받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.The scope to be protected by the present specification is represented by the following claims rather than the above description, and should be construed to include all changes or modifications derived from the meaning and scope of the claims and their equivalents. .
100: 이종 시스템 110: CPU
120: PCI-E 컨트롤러 130: PCI-E 스위치
141, 142, 143, 144: 가속기100: heterogeneous system 110: CPU
120: PCI-E controller 130: PCI-E switch
141, 142, 143, 144: accelerator
Claims (15)
애플리케이션을 실행하기 위한 복수의 계산 디바이스들;
상기 복수의 계산 디바이스들과 연결되며, 상기 복수의 계산 디바이스들에 공급되는 전력을 제어하는 호스트 프로세서; 및
상기 호스트 프로세서와 상기 복수의 계산 디바이스들간의 연결을 제어하는 연결 스위치를 포함하며,
상기 호스트 프로세서는, 상기 복수의 계산 디바이스들 중에서 상기 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하고, 상기 애플리케이션의 실행 중에는 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하고,
상기 연결 스위치는, 상기 애플리케이션의 실행 중에는 상기 확인된 적어도 하나의 계산 디바이스만이 상기 호스트 프로세서와의 연결을 유지하도록 제어하는, 이종 시스템.In heterogeneous systems,
A plurality of computing devices for executing the application;
A host processor coupled to the plurality of computing devices, the host processor controlling power supplied to the plurality of computing devices; And
A connection switch for controlling a connection between the host processor and the plurality of computing devices,
The host processor identifies at least one computing device used to execute the application among the plurality of computing devices, and during execution of the application, the idle power of the remaining computing devices other than the at least one checked computing device is determined. Control it to the minimum,
And the connection switch controls such that only the identified at least one computing device maintains a connection with the host processor during execution of the application.
상기 호스트 프로세서는,
상기 계산 디바이스들의 전원 상태를 세 가지 이상 정의하는 전원 관리 규격을 통해, 상기 계산 디바이스들에 공급되는 전력을 제어하는 것을 특징으로 하는 이종 시스템.The method of claim 1,
The host processor,
And controlling power supplied to the computing devices through a power management standard defining at least three power states of the computing devices.
상기 호스트 프로세서는,
상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스들에게는, 상기 전원 관리 규격에서 정의하는 세 가지 이상의 전원 상태들 중에서 소비 전력이 가장 낮은 전원 상태로의 전환 명령을 전송하는 것을 특징으로 하는 이종 시스템.The method of claim 3,
The host processor,
Heterogeneous system, characterized in that for transmitting the transition command to the power supply state with the lowest power consumption among the three or more power states defined in the power management standard, except for the at least one identified computing device. .
상기 연결 스위치는,
상기 확인된 적어도 하나의 계산 디바이스와 상기 연결 스위치간에 연결된 적어도 하나의 레인(lane)을, 상기 연결 스위치와 호스트 프로세서간에 연결된 적어도 하나의 레인과 일대일로 대응시키는 것을 특징으로 하는 이종 시스템.The method of claim 1,
The connection switch,
And at least one lane connected between the identified at least one computing device and the connection switch in a one-to-one correspondence with at least one lane connected between the connection switch and a host processor.
상기 레인들간의 일대일 대응관계를 포함하는 라우팅 테이블이 상기 연결 스위치에 저장되고, 상기 연결 스위치는 상기 저장된 라우팅 테이블에 따라 상기 호스트 프로세서와 복수의 계산 디바이스들간의 데이터 통신을 중계하는 것을 특징으로 하는 이종 시스템.The method of claim 5,
A routing table including a one-to-one correspondence between the lanes is stored in the connection switch, and the connection switch relays data communication between the host processor and a plurality of computing devices according to the stored routing table. system.
상기 연결 스위치는 상기 레인들간의 일대일 대응관계를 설정하는 기능을 지원하는 것을 특징으로 하는 이종 시스템.The method of claim 5,
The connection switch is a heterogeneous system, characterized in that for supporting the function of establishing a one-to-one correspondence between the lanes.
상기 이종 시스템에 포함된 호스트 프로세서가 상기 이종 시스템에 포함된 복수의 계산 디바이스들 중에서 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하는 단계;
상기 애플리케이션의 실행 중에는, 상기 호스트 프로세서가 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는 단계; 및
상기 애플리케이션의 실행 중에는, 상기 호스트 프로세서와 상기 복수의 계산 디바이스들간의 연결을 제어하는 연결 스위치가 상기 확인된 적어도 하나의 계산 디바이스만이 상기 이종 시스템에 포함된 호스트 프로세서와의 연결을 유지하도록 제어하는 단계를 포함하는, 방법.In the computing device control method of heterogeneous system,
Identifying, by a host processor included in the heterogeneous system, at least one computing device used to execute an application among a plurality of computing devices included in the heterogeneous system;
During execution of the application, the host processor controlling the idle power of the remaining computing devices to be minimum except for the at least one identified computing device; And
During execution of the application, a connection switch for controlling a connection between the host processor and the plurality of computing devices controls only the identified at least one computing device to maintain a connection with a host processor included in the heterogeneous system. Comprising a step.
상기 제어하는 단계는,
상기 계산 디바이스들의 전원 상태를 세 가지 이상 정의하는 전원 관리 규격을 통해, 상기 계산 디바이스들에 공급되는 전력을 제어하는 것을 특징으로 하는 방법.The method of claim 8,
The controlling step,
Controlling power supplied to the computing devices through a power management specification that defines at least three power states of the computing devices.
상기 제어하는 단계는,
상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스들에게는, 상기 전원 관리 규격에서 정의하는 세 가지 이상의 전원 상태들 중에서 소비 전력이 가장 낮은 전원 상태로의 전환 명령을 전송하는 것을 특징으로 하는 방법.The method of claim 10,
The controlling step,
And transmitting a command for switching to a power state having the lowest power consumption among three or more power states defined in the power management standard, to the other computing devices except the at least one calculated device.
상기 연결을 유지하도록 제어하는 단계는,
상기 확인된 적어도 하나의 계산 디바이스와 상기 연결 스위치간에 연결된 적어도 하나의 레인(lane)을, 상기 연결 스위치와 호스트 프로세서간에 연결된 적어도 하나의 레인과 일대일로 대응시키는 것을 특징으로 하는 방법.The method of claim 8,
Controlling to maintain the connection,
And at least one lane connected between the identified at least one computing device and the connection switch in a one-to-one correspondence with at least one lane connected between the connection switch and a host processor.
상기 연결을 유지하도록 제어하는 단계는,
상기 레인들간의 일대일 대응관계를 포함하는 라우팅 테이블을 저장하는 단계; 및
상기 저장된 라우팅 테이블에 따라서 상기 호스트 프로세서와 복수의 계산 디바이스들간의 데이터 통신을 중계하는 단계를 포함하는 것을 특징으로 하는 방법.The method of claim 12,
Controlling to maintain the connection,
Storing a routing table including a one-to-one correspondence between the lanes; And
Relaying data communication between the host processor and a plurality of computing devices in accordance with the stored routing table.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170097032A KR102034660B1 (en) | 2017-07-31 | 2017-07-31 | Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same |
PCT/KR2018/000918 WO2019027111A1 (en) | 2017-07-31 | 2018-01-19 | Method for controlling accelerator in heterogeneous system, and heterogeneous system for performing same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170097032A KR102034660B1 (en) | 2017-07-31 | 2017-07-31 | Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190013063A KR20190013063A (en) | 2019-02-11 |
KR102034660B1 true KR102034660B1 (en) | 2019-10-21 |
Family
ID=65234009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170097032A KR102034660B1 (en) | 2017-07-31 | 2017-07-31 | Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102034660B1 (en) |
WO (1) | WO2019027111A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102320324B1 (en) | 2020-11-11 | 2021-11-03 | 한국전자통신연구원 | Method for using heterogeneous hardware accelerator in kubernetes environment and apparatus using the same |
US20240404167A1 (en) * | 2023-06-02 | 2024-12-05 | Advanced Micro Devices, Inc. | Scalable graphics processing using dynamic shader engine allocation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011065551A (en) * | 2009-09-18 | 2011-03-31 | Hitachi Ltd | Management method of computer system, computer system, and program |
JP2017041007A (en) * | 2015-08-18 | 2017-02-23 | 株式会社リコー | Information processing device, power control method, program, and information processing system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009122925A (en) * | 2007-11-14 | 2009-06-04 | Toshiba Corp | Data processing program, data processing method and data processing system |
KR101861742B1 (en) * | 2011-08-30 | 2018-05-30 | 삼성전자주식회사 | Data processing system and method for switching between heterogeneous accelerators |
US9672046B2 (en) * | 2012-12-28 | 2017-06-06 | Intel Corporation | Apparatus and method for intelligently powering heterogeneous processor components |
US10025367B2 (en) * | 2014-08-19 | 2018-07-17 | Intel Corporation | Dynamic scaling of graphics processor execution resources |
KR101793971B1 (en) * | 2016-01-14 | 2017-11-06 | (주)캐스트윈 | 4k UHD ENCODING APPRATUS USING PLURALITY OF FPGA |
-
2017
- 2017-07-31 KR KR1020170097032A patent/KR102034660B1/en active IP Right Grant
-
2018
- 2018-01-19 WO PCT/KR2018/000918 patent/WO2019027111A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011065551A (en) * | 2009-09-18 | 2011-03-31 | Hitachi Ltd | Management method of computer system, computer system, and program |
JP2017041007A (en) * | 2015-08-18 | 2017-02-23 | 株式会社リコー | Information processing device, power control method, program, and information processing system |
Also Published As
Publication number | Publication date |
---|---|
WO2019027111A1 (en) | 2019-02-07 |
KR20190013063A (en) | 2019-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9977699B2 (en) | Energy efficient multi-cluster system and its operations | |
US10042750B2 (en) | Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor | |
US9396009B2 (en) | Optimized global capacity management in a virtualized computing environment | |
US20060085794A1 (en) | Information processing system, information processing method, and program | |
US10990562B2 (en) | System and method of asymmetric system description for optimized scheduling | |
US8365169B1 (en) | Migrating a virtual machine across processing cells connected to an interconnect that provides data communication without cache coherency support | |
US11514955B2 (en) | Power management integrated circuit with dual power feed | |
US10432479B2 (en) | System and method for reducing management ports of a multiple node chassis system | |
JP2014139819A (en) | Automatic dynamic control of processor operating voltage | |
US10444813B2 (en) | Multi-criteria power management scheme for pooled accelerator architectures | |
KR102034660B1 (en) | Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same | |
US11222687B2 (en) | System and method for power plane noise reduction in a memory subsystem of an information handling system | |
US11243592B2 (en) | System and method for controlling a power-on sequence and power throttling using power brake | |
CN104991874A (en) | SCST (SCSI target subsystem for Linux) based multi-controller storage device ALUA (asymmetrical logical unit access) configuration method | |
US10223260B2 (en) | Compiler-generated memory mapping hints | |
US10503523B2 (en) | Technologies to improve system boot performance and reliability | |
US10649943B2 (en) | System and method for I/O aware processor configuration | |
US20120185713A1 (en) | Server, storage medium, and method for controlling sleep and wakeup function of the server | |
TW201610701A (en) | Server control method and chassis controller | |
WO2016078556A1 (en) | Energy efficient multi-cluster system and its operations | |
KR101586712B1 (en) | Method and apparatus for scheduling using task dependency graphs in multiprocessor system | |
US10503513B2 (en) | Dispatching a stored instruction in response to determining that a received instruction is of a same instruction type | |
US12001386B2 (en) | Disabling processor cores for best latency in a multiple core processor | |
US12001332B2 (en) | Runtime de-interleave and re-interleave of system memory | |
US20240028201A1 (en) | Optimal memory tiering of large memory systems using a minimal number of processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20170731 |
|
PA0201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20180426 Patent event code: PE09021S01D |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20181031 Patent event code: PE09021S01D |
|
PG1501 | Laying open of application | ||
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20190827 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20191015 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20191015 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20220921 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20230921 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |