KR20170100487A - 총체적 글로벌 성능 및 전력 관리 - Google Patents
총체적 글로벌 성능 및 전력 관리 Download PDFInfo
- Publication number
- KR20170100487A KR20170100487A KR1020177013595A KR20177013595A KR20170100487A KR 20170100487 A KR20170100487 A KR 20170100487A KR 1020177013595 A KR1020177013595 A KR 1020177013595A KR 20177013595 A KR20177013595 A KR 20177013595A KR 20170100487 A KR20170100487 A KR 20170100487A
- Authority
- KR
- South Korea
- Prior art keywords
- nodes
- policy
- power
- performance
- job
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 81
- 230000006870 function Effects 0.000 claims abstract description 40
- 230000015654 memory Effects 0.000 claims description 52
- 230000002776 aggregation Effects 0.000 claims description 9
- 238000004220 aggregation Methods 0.000 claims description 9
- 238000010801 machine learning Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 239000003795 chemical substances by application Substances 0.000 description 40
- 238000007726 management method Methods 0.000 description 23
- 230000008859 change Effects 0.000 description 20
- 230000002787 reinforcement Effects 0.000 description 18
- 238000009826 distribution Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000005457 optimization Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000002301 combined effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- ZZUFCTLCJUWOSV-UHFFFAOYSA-N furosemide Chemical compound C1=C(Cl)C(S(=O)(=O)N)=CC(C(O)=O)=C1NCC1=CC=CO1 ZZUFCTLCJUWOSV-UHFFFAOYSA-N 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000002070 nanowire Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 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
-
- 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/16—Constructional details or arrangements
- G06F1/18—Packaging or power distribution
- G06F1/189—Power distribution
-
- 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/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- 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/325—Power saving in peripheral device
- G06F1/3265—Power saving in display device
-
- 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
- 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
-
- 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
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- 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
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y02B60/1278—
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Engineering (AREA)
- Human Computer Interaction (AREA)
- Power Sources (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Diaphragms For Electromechanical Transducers (AREA)
- Inorganic Insulating Materials (AREA)
- Lubricants (AREA)
Abstract
총체적 글로벌 성능 및 전력 관리를 제공하는 방법들 및 장치가 설명된다. 실시예에서, 로직(예를 들어, 복수의 계산 노드들의 각각의 계산 노드에 연결됨)은 복수의 계산 노드들에 걸쳐 전력 및 성능 관리를 위한 정책의 결정을 야기한다. 이러한 정책은 하나 이상의 목적 함수들에 대해 잡을 관리하도록 복수의 계산 노드에 걸쳐 조정되며, 잡은 복수의 계산 노드들에서 동시에 실행되어야 할 복수의 태스크들을 포함한다. 다른 실시예들도 또한 개시되고 청구된다.
Description
본 발명은 일반적으로 전자공학의 분야에 관한 것이다. 보다 구체적으로, 일부 실시예들은 일반적으로 서버들 및 다른 컴퓨팅 디바이스들에 대한 전력 관리에 관한 것이다.
HPC(High Performance Computing) 시스템들은 분산 컴퓨팅을 위한 구조에 의해 접속되는 많은 수의 노드들을 포함할 수 있다. 또한, 애플리케이션은 HPC 시스템에서의 노드들에 걸쳐 동시에 실행되는 태스크들로 분할된다. 이러한 태스크들은 순차적인 마일스톤들(milestones)로 분해되며, 태스크들은 동시에 이러한 마일스톤들 각각에 도달할 것으로 기대된다.
불행하게도, 임의의 노드가 다른 노드들보다 느리게 다음 마일스톤을 향해 작업을 완료하면, 가장 느린 태스크가 자신의 작업을 완료할 때까지 전체 애플리케이션의 진행이 중단된다. 이러한 것이 발생될 때, 애플리케이션은 잠재적인 성능을 잃고, 기다려야 하는 노드들에서 전력이 낭비된다.
첨부된 도면들을 참조하여 상세한 설명이 제공된다. 도면들에서, 참조 번호 최좌측의 숫자(들)은 그 참조 번호가 처음으로 나오는 도면을 나타낸다. 상이한 도면들에서 동일한 참조 번호들의 사용은 유사하거나 동일한 아이템들을 표시한다.
도 1 및 도 4 내지 도 6은 일부 실시예들에 따른 다양한 컴퓨팅 시스템들의 블록도들을 도시한다.
도 2는 실시예에 따른 HGPPM(Holistic Global Performance and Power Management) 시스템의 블록도를 도시한다.
도 3은 실시예에 따른 H-POMDP(Hierarchical Partially Observable Markov Decision Process) 에이전트에 대한 상호작용 상세사항들의 블록도를 도시한다.
도 1 및 도 4 내지 도 6은 일부 실시예들에 따른 다양한 컴퓨팅 시스템들의 블록도들을 도시한다.
도 2는 실시예에 따른 HGPPM(Holistic Global Performance and Power Management) 시스템의 블록도를 도시한다.
도 3은 실시예에 따른 H-POMDP(Hierarchical Partially Observable Markov Decision Process) 에이전트에 대한 상호작용 상세사항들의 블록도를 도시한다.
이하의 설명에서는, 다양한 실시예들의 철저한 이해를 제공하기 위해서 다수의 구체적인 상세사항들이 제시된다. 그러나, 다양한 실시예들은 이러한 구체적인 상세사항들 없이 실시될 수 있다. 다른 경우에, 특정 실시예들을 불명료하게 하지 않도록, 공지된 방법들, 절차들, 컴포넌트들, 및 회로들은 상세하게 설명되지 않았다. 또한, 실시예들의 다양한 양상들은 집적된 반도체 회로들("하드웨어"), 하나 이상의 프로그램들로 구조화되는 컴퓨터 판독가능 명령어들("소프트웨어"), 또는 하드웨어와 소프트웨어의 일부 조합과 같은 다양한 수단을 사용하여 수행될 수 있다. 본 개시내용의 목적들을 위해 "로직"에 대한 참조는 하드웨어, 소프트웨어, 또는 이들의 일부 조합을 의미할 것이다.
위에 언급된 바와 같이, HPC(High Performance Computing) 시스템들은 분산 컴퓨팅을 위한 고속 네트워크 구조에 의해 연결되는 다수의 노드들을 포함할 수 있다. 본 명세서에서 논의되는 바와 같이, "노드"는 일반적으로 (본 명세서에서 논의되는 범용 프로세서들 또는 그래픽 프로세서들 같은 하나 이상의 프로세서들을 포함할 수 있는) 계산 엘리먼트, 네트워크 구조로의 접속, 로그인 컴포넌트, 서비스 컴포넌트, 그리고 아마도 메모리, IO(Input/Output) 디바이스(들), 또는 다른 컴포넌트들을 지칭할 수 있다. 일반적으로, 애플리케이션(본 명세서에는 "잡(job)"이라고도 함)은 HPC 시스템에서의 다수(예를 들어, 수만 개)의 노드들에 걸쳐 동시에 실행되는 태스크들로 분할된다. 각각의 노드에 매핑되는 하나 이상의 태스크들이 존재할 수 있으며, 단일 태스크가 하나 이상의 코어들에 걸쳐 실행될 수 있다. 태스크들은 동일한 문제 세트의 상이한 데이터에 대해 동작하는 동일한 프로그램으로 구성될 수 있다. 태스크들은 순차적인 마일스톤들로 분해될 수 있으며, 모든 태스크들은 동일한 시간 내에 마일스톤들 사이의 계산을 완료할 것으로 기대되어, 소위 벌크-동기 스타일의 계산(bulk-synchronous style of computation)에 이르게 된다. 마일스톤들에서, 태스크들은 글로벌 배리어(global barrier)와 같은 동작을 통해 동기화될 수 있다.
불행하게도, 임의의 코어 또는 노드가 (다수의 이유들 중 임의의 것으로 인해) 다른 것들보다 느리게 동기화들 사이의 작업을 완료하면, 가장 느린 태스크가 작업을 완료할 때까지 전체 애플리케이션의 진행이 중단된다. 이러한 것이 발생될 때, 애플리케이션은 잠재적인 성능을 잃고, 기다려야 하는 코어들 또는 노드들에서 전력이 낭비된다. 이러한 문제점은 부하 불균형, 애플리케이션 또는 운영 체제 지터, 및 성능 변화를 포함하는 다수의 명칭들을 갖는다. 부하 불균형은, 하드웨어 컴포넌트들의 성능에서의 분산에 이르게 되는 제조 가변성과 같은 정적 요인들로부터, 상이한 코어들 상에서 상이한 시간들에 발생하는 페이지 폴트들, 일부 코어들에는 영향을 주지만 다른 것들에는 그렇지 않은 운영 체제 간섭, 하나의 코어 또는 노드에는 일시적으로 심각한 손상을 주지만 다른 것들에는 그렇지 않은 복구가능한 하드웨어 에러들, 또는 애플리케이션 내의 태스크들 사이의 작업의 불균일한 분산과 같은 동적 요인들에 이르는 다수의 원인들을 가질 수 있다.
부하 불균형은 HPC 시스템들이 규모와 복잡성이 계속 증가함에 따라 성능 손실 및 낭비 전력의 심각한 원인이 되고 있다. 제조 가변성은 특히 문제가 된다. 최근 프로세서들은 열 설계 및 전력 제한들을 초과하지 않고 최대 코어 주파수들에서 부동 소수점 집약적 작업부하들을 실행할 수 없다. 또한, 동일한 모델 및 스테핑의 2개의 프로세서들은 동일한 코어 주파수들을 달성하기 위해 상이한 전력을 요구한다. 업계는 주어진 전력 예산에서 프로세서 성능에서의 변화가 20%를 초과할 것으로 기대한다.
이를 위해, 일부 실시예들은 총체적 글로벌 성능 및 전력 관리를 제공한다. 보다 구체적으로, 구성 가능한 목적 함수들(예를 들어, 잡 전력 한도 내의 최대 성능, 잡 전력 한도 내의 최대 효율 등)에 대해 잡을 관리하면서, 잡에서의 (예를 들어, 모든) 노드들에 걸쳐 소프트웨어 및 하드웨어 정책을 조정하기 위한 새로운 성능 및 전원 관리 체계가 설명된다. 이러한 체계의 한 가지 용도는 위에 설명된 부하 균형 조정 문제를 해결하는 것이다.
추가적으로, 일부 실시예들은, 최대 성능, 최대 효율(예를 들어, 최소 에너지 지연 제품), 잡 전력 한도까지 관리하는 상태에서의 최대 성능, 잡 전력 한도까지 관리하는 상태에서의 최대 효율 등과 같은 다른 구성 가능한 목적 함수들 또는 잡 전력 한도까지 잡을 관리하면서, 잡에서의 (예를 들어, 모든) 노드들에 걸쳐 성능 및 전력 관리 결정들을 조정하는 HGPPM(Holistic Global Performance and Power Management) 체계를 제공한다. HGPPM 기술들은, 적어도 부분적으로, 확장가능한 고속 H-POMDP(Hierarchical Partially Observable Markov Decision Process) RL(Reinforcement Learning) 방법으로 구현되는 계층적 피드백-안내 제어 시스템에 기초한다. 이러한 실시예들은, 계층적 시스템 도메인들 사이의 전력을 조종함으로써, 그리고 소프트웨어 및 하드웨어 추상화 경계들에 걸쳐 다른 더 넓은 최적화들을 조정하는 핵심 능력을 도입함으로써 애플리케이션 부하 불균형을 완화할 수 있다. 예를 들어, 일부 실시예들에서, HGPPM은, 부하 균형을 달성하기 위한 계층적 시스템들 도메인들 사이의 전력 할당의 선택 및 주어진 시스템 아키텍처, 문제 크기, 또는 전력 할당에 대한 최고 수행 옵션을 찾기 위한 레퍼토리로부터 애플리케이션 알고리즘의 선택을 동시에 조정하고 최적화함으로써 더 높은 성능 또는 효율을 달성할 수 있다.
또한, 본 명세서에서 논의되는 기술들은, 도 1 내지 도 6을 참조하여 논의되는 것들을 포함하는 다양한 컴퓨팅 시스템들(예를 들어, 데스크톱, 워크스테이션, 서버, 랙 시스템 등과 같은 비-이동식 컴퓨팅 디바이스, 및 스마트폰, 태블릿, UMPC(Ultra-Mobile Personal Computer), 랩톱 컴퓨터, Ultrabook™ 컴퓨팅 디바이스, 스마트 시계, 스마트 안경 등과 같은 이동식 컴퓨팅 디바이스를 포함함)에서 제공될 수 있다. 보다 구체적으로, 도 1은 실시예에 따른 컴퓨팅 시스템(100)의 블록도를 도시한다. 도 1은 개략적인 표현으로 실제 구성을 반영하려고 의도되는 것은 아니다. 시스템(100)은 하나 이상의 프로세서들(102-1 내지 102-N)(일반적으로 본 명세서에서 "프로세서들(102)" 또는 "프로세서(102)"로 지칭됨)을 포함할 수 있다. 프로세서(102)는 상호접속부(또는 구조)(104)를 통해 통신할 수 있다. 하나 이상의 프로세서들이 상호접속부 또는 구조에 대한 접속을 공유할 수 있는 가능성이 또한 존재한다. 각각의 프로세서는 다양한 컴포넌트들을 포함할 수 있는데, 그들 중 일부는 명료성을 위해 프로세서(102-1)만을 참조하여 논의된다. 따라서, 나머지 프로세서들(102-2 내지 102-N) 각각은 프로세서(102-1)를 참조하여 논의되는 것과 동일하거나 유사한 컴포넌트들을 포함할 수 있다.
실시예에서, 프로세서(102-1)는 하나 이상의 프로세서 코어들(106-1 내지 106-M)(본 명세서에서 "코어들(106)" 또는 더 일반적으로는 "코어(106)"로 지칭됨), 캐시(108)(다양한 실시예들에서 공유 캐시 또는 전용 캐시(private cache)일 수 있음), 및/또는 라우터(110)를 포함할 수 있다. 프로세서 코어들(106)은 단일의 IC(integrated circuit) 칩 상에 구현될 수 있다. 이것은 또한 동일 패키지에서 다수의 집적 회로들로 구현될 수 있다. 더욱이, 칩은 (캐시(108)와 같은) 하나 이상의 공유 및/또는 전용 캐시들, (버스 또는 상호접속부(112)와 같은) 버스들 또는 상호접속부들, 로직(150), (NVM(Non-Volatile Memory), 예를 들어, 플래시 메모리, SSD(Solid State Drive) 등을 포함하는) 도 4 내지 도 6을 참조하여 논의되는 것들과 같은 메모리 제어기들, 또는 다른 컴포넌트들을 포함할 수 있다. 다른 실시예들에서, 도 1의 컴포넌트들은 상이한 방식으로 배열될 수 있다, 예를 들어, VR, 메모리 제어기, 및 메인 메모리가 프로세서 내부에 있을 수 있는 한편 라우터가 프로세서 외부에 있을 수 있다.
일 실시예에서, 라우터(110)는 프로세서(102-1) 및/또는 시스템(100)의 다양한 컴포넌트들 사이에 통신하는데 이용될 수 있다. 또한, 프로세서(102-1)는 하나보다 많은 라우터(110)를 포함할 수 있다. 더욱이, 다수의 라우터들(110)이 프로세서(102-1) 내부의 또는 외부의 다양한 컴포넌트들 사이의 데이터 라우팅을 가능하게 하도록 통신할 수 있다. 일부 실시예들에서, 다수의 라우터들이 존재할 때, 일부는 프로세서 내부에 있을 수 있고 일부는 외부에 있을 수 있다.
캐시(108)는 코어들(106)과 같이 프로세서(102-1)의 하나 이상의 컴포넌트들에 의해 이용되는 데이터(예를 들어, 명령어들을 포함함)를 저장할 수 있다. 예를 들어, 캐시(108)는 프로세서(102)의 컴포넌트들에 의한 더 빠른 액세스를 위해 (휘발성 및/또는 비/휘발성) 메모리(114)(본 명세서에서 "메인 메모리"로서 상호교환가능하게 지칭되기도 함)에 저장되는 데이터를 국부적으로 캐싱할 수 있다. 도 1에 도시되는 바와 같이, 메모리(114)는 상호접속부(104)를 통해 프로세서들(102)과 통신할 수 있다. 실시예에서, (공유될 수 있는) 캐시(108)는 다양한 레벨들을 가질 수 있다, 예를 들어, 캐시(108)는 (L1 및/또는 L2 캐시들과 같은) 중간 레벨 캐시 및/또는 최종 레벨 캐시(last-level cache)(LLC)일 수 있다. 또한, 코어들(106) 각각은 레벨 1(L1) 캐시(116-1)(일반적으로 본 명세서에서 "L1 캐시(116)"로 지칭됨)를 포함할 수 있다. 프로세서(102-1)의 다양한 컴포넌트들은, 메모리 제어기나 허브 및/또는 버스 또는 구조(예를 들어, 버스(112))를 통해, 직접적으로 캐시(108)와 통신할 수 있다.
시스템(100)은 시스템(100)의 하나 이상의 컴포넌트들에 전력을 제공하는 (예를 들어, 플랫폼) 전원(125)(예를 들어, DC(Direct Current) 전원 또는 AC(Alternating Current) 전원)을 또한 포함할 수 있다. 전원(125)은 PV(Photo Voltaic) 패널, 풍력 발전기, 열 발전기 수력 발전(water/hydro) 터빈 등을 포함할 수 있다. 일부 실시예들에서, 전원(125)은 (예를 들어, PV 패널, 풍력 발전기, 열 발전기 수력 발전 터빈, (예를 들어, AC 전력 그리드에 연결되는) 플러그-인 전원 등 중 하나 이상에 의해 충전되는) 하나 이상 배터리 팩들 및/또는 플러그-인 전원들을 포함할 수 있다.
전원(125)은 VR(Voltage Regulator)(130)를 통해 시스템(100)의 컴포넌트들에 연결될 수 있다. 또한, 도 1은 하나의 전원(125) 및 단일의 전압 레귤레이터(130)를 도시하지만, 추가적인 전원들 및/또는 전압 레귤레이터들 이용될 수 있다. 예를 들어, 프로세서들(102) 중 하나 이상은 대응하는 전압 레귤레이터(들) 및/또는 전원(들)을 가질 수 있다. 또한, 전압 레귤레이터(들)(130)는 (예를 들어, 모든 코어들(106)에 전력을 공급하는) 단일 전력 평면 또는 다수 전력 평면들(예를 들어, 각각의 전력 평면은 상이한 코어 또는 코어들의 그룹, 및/또는 시스템(100)의 다른 컴포넌트(들)에 전력을 공급할 수 있음)을 통해 프로세서(102)에 연결될 수 있다. 추가적으로, 도 1은 전원(125)과 전압 레귤레이터(130)를 개별 컴포넌트들로서 도시하지만, 전원(125)과 전압 레귤레이터(130)는 시스템(100)의 다른 컴포넌트들 내에 통합될 수 있다. 예를 들어, VR(130)의 전부 또는 일부는 전원(125), (도 6을 참조하여 논의되는 것들과 같은) SOC 및/또는 프로세서(102) 내에 통합될 수 있다.
도 1에 도시되는 바와 같이, 메모리(114)는 메모리 제어기(120)를 통해 시스템(100)의 다른 컴포넌트들에 연결될 수 있다. 시스템(100)은 본 명세서에서 논의되는 바와 같은 HGPPM 기술들/실시예들을 참조하여 하나 이상의 동작들을 용이하게 하고/하거나 수행하는 로직(150)을 또한 포함한다. 예를 들어, 로직(150)은 (예를 들어, 프로세서(102), 메모리 제어기(120), 메모리(114)(본 명세서에서 종종 "외부 메모리"라고도 함), 캐시들(116 또는 108), 및/또는 상호접속부 또는 구조(들)(104 및/또는 112) 등을 포함하는) 시스템(100)의 하나 이상의 계산 노드들 및/또는 컴포넌트들의 성능 및/또는 전력 관리에 대응하는 동작(들)을 수행할 수 있다. 또한, 로직(150)이 시스템(100)에서의 몇몇 선택적 위치들에 도시되지만, 로직(150)은 시스템(100)에서의 다른 곳에 위치될 수 있다.
또한, 실시예는, 모두 구성 가능한 목적 함수들에 대해 잡을 관리하면서, 잡에서의 (예를 들어, 모든) 노드들에 걸쳐 그리고 소프트웨어 및 하드웨어 추상화 계층들에 걸쳐 성능 및 전력 관리 정책을 조정하기 위해 확장 가능한 동적 기술을 제공한다. 목적 함수들은 이에 제한되는 것은 아니지만, 전력 한도를 충족시키면서 성능을 최대화하는 것, (부하 불균형을 완화하기 위해) 전력 한도를 충족시키면서 계산 엘리먼트들(노드들 또는 코어들) 사이의 성능 차이들을 최소화하는 것, 효율을 최대화하는 것을 포함할 수 있다. 이러한 기술들은 HGPPM(Holistic Global Performance and Power Management)로서 본 명세서에서 총괄하여 지칭되며, 이는 일 실시예에서 계층적 머신 학습 알고리즘에 적어도 일부 기초한다.
종래의 HPC 전원 관리자들은 여러 제한사항들을 갖는다. 첫째, 이들은 각각의 노드에 균일한 전력 한도를 적용함으로써 노드들 사이의 성능 차이들을 악화시켜, 각각의 노드 상의 동등하지 않은 주파수 및 애플리케이션 성능의 손실에 이르게 된다. 업계는 주어진 전력 한도에서 노드들의 성능이 20%보다 많이 변화할 것으로 기대하므로, 이러한 성능 차이들을 악화시키지 않도록 완화하는 것이 중요하다. 둘째, 종래의 전력 관리자들은 소프트웨어 및 하드웨어 정책을 조정하는 능력이 부족하다. 불행하게도, 소프트웨어 및 하드웨어 정책은 역사적으로 독립적 제어 시스템들을 통해 조정되어 왔다. 이것은 결과들을 저하시키는 제어 시스템들 사이의 간섭에 이르게 된다. 통합 제어 시스템하에서 소프트웨어 및 하드웨어 정책을 조정하게 하는 것이 중요한다. 셋째, 종래의 HPC 전력 관리자들은 확장가능성이 부족했다. 이들은 미래의 시스템들에서 다수(예를 들어, 수만 개)의 노드들에 걸쳐 정책을 조정하도록 확장될 수 없는 중앙 집중식 설계들을 이용한다. 근본적으로 상이한 설계가 요구된다. 마지막으로, 종래의 HPC 시스템들은 융통성이 부족했다. Exascale 시스템들의 극한 성능 및 효율 도전과제들을 충족시키기 위해서는, 신규한 정책 노브들이 설계될 필요가 있고, 시스템을 최적화하기 위해 더 많은 기회들이 활용되어야 하지만, 현재 솔루션들은 임의의 새로운 정책들을 이해하고 제어할 수 있는 전원 관리자 체계가 부족하다. 또한, 전력 관리자가 행할 성능과 전력 사이의 절충점들을 프로그래밍할 때 융통성이 필요하지만(예를 들어, 일부 경우들에서는 효율이 성능보다 선호될 것임), 종래의 전력 관리자들은 성능에 치중하는 목적 함수들을 지원하는 경향만 있다. 현재의 관리 기술들은 너무 불안정하다.
HGPPM 실시예들은 소프트웨어 및 하드웨어 정책을 조정하는 핵심 능력을 도입하면서 부하 불균형 문제, 확장가능성 문제, 및 융통성 문제를 동시에 해결하는 돌파구이다. 이것들은 Exascale 시스템들에서의 성능 및 효율을 높이기 위한 핵심 요건들로서 고려될 수 있다. 보다 구체적으로, HGPPM은 다수의 중요한 방식들로 종래 기술을 향상시킨다. HGPPM은 계산 엘리먼트들에 할당되는 전력의 균형을 조정하여 그들의 부하들을 균등화함으로써 잡에서의 부하 불균형을 검출하고 완화하는 능력을 도입한다. HGPPM은, 애플리케이션 또는 운영 체제 지터에 대한 제조 가변성으로부터 계산 엘리먼트들(본 명세서에서 "노드들" 또는 "코어들"로서 상호교환가능하게 지칭되기도 함) 사이에 균일하게 작업을 분할하지 않는 애플리케이션 또는 운영 체제와 같은 불균형의 본질적인 소스들에 대해 복구가능한 하드웨어 에러들에 이르는 부하 불균형의 다양한 소스들을 완화할 수 있는 최초의 기술이다. 또한, 적어도 실시예는 전력 한도까지 잡을 동시에 관리하는 것으로 상승적인 부하 균형 조정 기술을 제공한다.
HGPPM의 실시예들은 다음과 같은 핵심적 새로운 능력들을 또한 도입한다: (a) 소프트웨어 및 하드웨어 추상화 경계들에 걸치는 정책 최적화들의 조정; (b) 정책 최적화에 대해 강건한 기술들을 통한 새로운 타입들의 정책으로의 확장가능성; 및/또는 (c) 구성 가능한 목적 함수들에 대한 관리에 대한 지원을 통한 융통성. 잡에서 모든 계산 엘리먼트들에 걸쳐 정책을 조정하도록 동시에 확장하면서 이러한 능력들을 지원하는 다른 성능 또는 전력 관리자 방법들은 존재하지 않는다. 이러한 실시예들의 확장가능성, 강건성, 및 융통성은 돌파구이다.
HGPPM 실시예들에 의해 가능하게 되는 새로운 정책 및 최적화들의 예들은 이에 제한되는 것은 아니지만 다음과 같은 것들을 포함한다: (a) 각각의 애플리케이션 태스크가 이용할 수 있는 코어들의 수를 제어하는 새로운 정책 노브를 통해 최대 성능 또는 효율을 위해 애플리케이션을 튜닝하는 것; (b) 프로세서가 산술 연산들이나 메모리 프리페치 연산들 등을 얼마나 적극적으로 추측 실행하는지를 제어하는 새로운 정책 노브를 통해 더 우수한 성능이나 효율을 위해 프로세서를 튜닝하는 것. 새로운 정책들과 최적화들의 설계는 Exascale 시스템들의 성능 및 효율 도전과제들을 충족시키는데 매우 중요한 것으로 고려되며, HGPPM 실시예들은 이러한 최적화들을 조정할 수 있는 최초의 성능 및 전원 관리 체계이다. 또한, HGPPM의 계층적 학습 체계는 또한 더 우수한 애플리케이션 성능이나 효율을 위해 확장가능성을 향상시키고 부하 균형 조정의 응답성을 증가시킨다.
실시예에서, HGPPM은 구성 가능한 목적 함수들에 대해 잡을 관리하면서 잡에서 (예를 들어, 모든) 노드들에 걸쳐 성능 및 전력 정책을 글로벌하게 조정하는데 사용된다. 각각의 잡에 얽매이는 HGPPM 인스턴스가 존재한다. HGPPM 접근방식은 H-POMDP(Hierarchical Partially Observable Markov Decision Process) 머신 학습에 기초하는 계층적 설계를 채택함으로써 잡에서 많은 노드들(예를 들어, 수만의 노드들)에 대한 정책을 결정하는 확장가능성 도전과제를 해결한다. 특히, 일 실시예는 동일한 강화 학습(Reinforcement Learning) 에이전트들의 계층을 사용한다. 본 명세서에서 논의되는 바와 같이, "노드", "코어", "계산 엘리먼트" 등의 사용은 상호교환가능할 수 있으며, 예를 들어, 여기서 이러한 유닛들 각각은 그 유닛을 참조하여 본 명세서에 논의되는 하나 이상의 동작들을 수행할 수 있는 컴퓨팅 컴포넌트를 지칭한다.
강화 학습 에이전트는 모델들을 통하지 않고 환경과의 상호작용 및 경험적 실험에 의해 정책을 최적화한다; 그들은 최상의 결과들을 위해 그들의 거동을 적응시키는 액션들의 결과를 지속적으로 평가하며, 여기서 결과들의 품질은 목적 함수에 의해 정의된다. 실험들은 가능한 모든 정책 옵션들의 공간을 효율적인 방식으로 네비게이트하는 체계적인 방식으로 선택된다. 실시예에 따르면, 강화 학습 알고리즘은 우수하거나 수용 가능한 결과들을 달성하면서 효율적으로 네비게이트하기 위해 Stochastic Policy Gradients라 불리우는 기술을 이용한다.
H-POMDP에서, 각각의 에이전트는 동일하고 전체 문제의 하위 문제에 대해 독립적으로 작용하지만, 모든 에이전트들은 동일한 목적 함수를 사용하며 하위 문제들은 계층적으로 정의되어서, 한 에이전트의 결정들은 자신의 자식이 고려할 수 있는 옵션들의 공간을 제한한다. 따라서, 부모는 자식이 최선의 정책을 더 빨리 식별하는 것을 돕도록 자신의 자식의 거동을 안내하거나 자식이 특정 정책 옵션들을 선택하는 것을 배제한다. 이러한 계층적 방식에서, 성능 및 전력 정책 결정들은 강화 학습 에이전트 트리 계층의 루트에서 리프들까지 조정된다.
도 2는 실시예에 따른 HGPPM 시스템의 블록도를 도시한다. 도 2는 3개의 트리 깊이를 도시하지만, 이것은 예시적인 목적만을 위한 것이며 더 깊거나 더 얕은 트리 깊이가 다양한 실시예들에서 사용될 수 있다. 실시예에서, 도 2에 도시되는 시스템의 각각의 계산 노드는, 도 1, 도 4, 도 5 및/또는 도 6의 컴퓨팅 시스템들과 논의되는 하나 이상의 컴포넌트들을 포함할 수 있다. 보다 구체적으로, 글로벌 조정은 확장 가능하고, 계층적인 k-항(k-ary) 트리 설계에 의해 가능하게 된다. 시스템 정책은 계층적으로 분해된다(예를 들어, 캐비닛들(202-0 내지 202-m)(여기서, "캐비닛"은 일반적으로 복수의 노드들을 지칭함) 사이에서, 다음으로 노드들 사이에서 전력을 할당함). 본 명세서에 더욱 논의되는 바와 같이, 트리의 각각의 노드에서 실행되는 H-POMDP 강화 학습 에이전트를 통해 우수한 글로벌 전력 할당 결정이 다음으로 획득된다. SCON(Scalable Overlay Network)(204)에 의해 전력 및/또는 성능 원격 측정의 집계(리프로부터 루트로 트리를 흘러 오름) 및 제어의 보급(부모로부터 자식으로)이 제공된다. SCON은 HPC 시스템에서 물리적 네트워크들 중 하나의 상단 상에 구현되는 논리적 네트워크이다. 물리적 네트워크는 애플리케이션에 의해 사용되는 대역 내 네트워크(예를 들어, 네트워크 구조) 또는 (예를 들어, IEEE(Institute of Electrical and Electronics Engineers) 802.3 표준에 따르는) 이더넷과 같은 대역 외 네트워크일 수 있다. 일 실시예에서, 물리적 네트워크는 도 4 및 도 5를 참조하여 논의되는 네트워크(403)와 동일하거나 유사할 수 있다. 도 2에서, "DN"은 전용 노드(Dedicated Node)(예를 들어, 애플리케이션에 의해 예약되고 사용되지 않은 노드)를 지칭하며, 각각의 DN 및 계산 노드에서의 작은 박스들은 H-POMDP 에이전트를 지칭한다. 본 명세서에서 논의되는 바와 같이, H-POMDP 에이전트는 실시예에서 강화 학습 에이전트일 수 있다. 본 명세서에서 논의되는 바와 같이, 코어 당(또는 코어의 일부 당) (각각의 코어 또는 코어 부분에 대한 전력의 할당과 같은) 정책이 제공될 수 있다. 도 2에 도시되는 바와 같이, 각각의 계산 노드는 하나 이상의 코어들을 포함할 수 있다. 또한, 실시예에서, Leaf H-POMDP 에이전트는 계산 노드 내부의 임의의 정책을 튜닝하는 것을 담당한다(코어 정책들 당 튜닝을 포함할 수 있음).
실시예에서, 확률론적 정책 변화도(stochastic policy gradients) 기술이 사용된다. HGPPM 트리에서의 각각의 노드는 강화 학습 POMDP 알고리즘을 구현하여, 최상의 정책을 검색하는데 Policy Gradients 방법을 적용한다. 예를 들어, 정책은 개별 노브 설정들 집합에 대한 확률 분포로서 고려될 수 있다. 예를 들어, 노브는 부모 에이전트가 자신의 자식들 사이에 전력을 할당하는 방법에 대한 선택들의 집합을 포함한다. 분포로부터 노브에 대한 설정을 샘플링하고, 이를 수 회 테스트하고, 결과 보상을 측정하여 정책이 평가된다. 정책은 실시예에서 변화도 상승과 유사한 방법을 통해 향상된다. 변화도 기반 방법을 사용하기 위해, 정책은 미분 가능하게 되며, 확률론적 소프트-맥스(soft-max) 정책을 적용하여 미분 가능하게 될 수 있다. 다음으로, 보상의 변화도가 정책에 대해 추정되고 변화도 방향으로 정책을 단계화하여, 보상을 최대화하는 정책쪽으로 이를 이동시킬 수 있다. 확률론적 정책은, 이하 논의되는 바와 같이, 보다 간단한 변화도 방법들의 "local maxima" 위험성들을 회피하고 탐사와 개발의 절충점들의 균형을 조정하기 위해 채택될 수 있다.
일 실시예에서, 확률론적 정책 변화도를 구현하기 위해 다음의 연산들이 사용될 수 있다. 확률론적 정책 변화도 알고리즘은 Natural Actor-Critic 체계를 사용하여 구현될 수 있으며, 여기서 는 액션들(노브 설정들로도 알려짐)이고, 은 보상이며, 는 단계 크기이다:
6: 기본 함수들을 업데이트함:
8: 원할 때, 자연 변화도를 계산함:
10: 종료.
앞서 언급된 바와 같이, 정책을 미분 가능하고 변화도 기반 학습에 적합하게 하기 위해, 확률론적 소프트-맥스 정책이 사용될 수 있다. 특히, 다항식 분포의 지수 계열 파라미터화가 사용되어 각각의 노브 i에 실제값 가중치 의 집합을 제공한다. 노브 i에 대한 확률 분포로부터 샘플링할 때 n개의 가능성들 중에서 노브 설정 j를 얻을 확률은 다음과 같이 주어진다:
Natural Actor Critic 알고리즘에 필요한 변화도는 다음과 같이 (효율적으로) 계산될 수 있다:
여기서, 은 노브 i가 채택할 수 있는 설정들에 대한 현재 확률 분포이고; t는 알고리즘의 시간 단계이다. 는 변화도 연산자로, 는 세타에 대한 변화도이다. 는 로 주어지는 지수에서 1이 있는 제로들의 벡터이다.
본 명세서에 설명되는 바와 같이, HGPPM은 잡에서 노드들 사이의 전력 균형을 조정함으로써 애플리케이션 부하 불균형을 수정하는데 적용될 수 있다. 부하 균형 조정 문제가 계층적으로 분해될 수 있는 방법의 일 예에서, 전체 잡에 대한 부하 균형 조정의 문제는 잡에 의해 사용되는 캐비닛들 사이의 부하 균형 조정, 다음으로 각각의 캐비닛에서 노드들 사이의 부하 균형 조정, 다음으로 각각의 노드에 매핑되는 태스크들 사이의 부하 균형 조정, 다음으로 각각의 태스크를 실행하는 코어들 사이의 부하 균형 조정으로 나뉜다. 각각의 입도(granularity)에서, 성능은 동적으로 비교되며, 전력은 애플리케이션 성능을 최대화하거나 향상시키기 위해 (시퀀스에서 다음 마일스톤에 도달하고 배리어에 도달하는 것에 관련하여) 뒤쪽에 있는 엘리먼트들 앞에 있는 계산 엘리먼트들로부터 조종된다.
각각의 에이전트가 자신의 자식들 사이에서 자신의 입력 전력 예산의 최상의 분할을 학습하는 것에 의해, 그리고 a) 자식 에이전트들의 성능에서의 불일치들이 불이익을 받고, b) 집계 성능이 보상을 받도록 목적 함수를 정의하는 것에 의해 각각의 에이전트를 태스킹함으로써 실시예는 잡 부하 균형 조정의 프로세스를 강화 학습의 추상화들에 매핑하며, 집계 성능은 자식 에이전트들에 의해 획득되는 최소 성능인 것으로 고려된다. 각각의 자식 에이전트의 성능은 몇 가지 샘플들의 평균 또는 중앙값(또는 다른 함수들)일 수 있다. 각각의 에이전트는 자식로부터 최상의 성능을 획득하기 위해 자신의 자식들 사이에 (자신의 부모로부터의) 입력 예산을 분할하는 방법을 학습한다. 자식들은, 차례로, 자신들의 예산을 취하고, 그들의 자식들 사이에 이를 분할하는 등등이다. 트리의 최하위 레벨들에서의 결정들은 하드웨어가 다른 타입들의 프로세서와 외부 메모리 리소스들 사이에 전력을 분할하는 방법을 지정할 수 있다. 성능은 여러 메트릭들에 따라 정의될 수 있다. 예를 들어, H-POMDP 트리의 최저 레벨에서, 메트릭은 코어 주파수, 다음 애플리케이션 마일스톤으로 향하는 각각의 코어의 진행 정도(프로그래머에 의해 작성되는 주석들을 통해 HGPPM에 제공되거나 성능 카운터들의 분석 또는 다른 수단에 의해 자동으로 추론됨), 마일스톤들 사이에서 지금까지 완료된 애플리케이션 위상들의 런타임, 리타이어된 명령어들의 속도, 메인 메모리 액세스들의 속도 등일 수 있다.
일반적으로, H-POMDP에서 각각의 강화 학습 에이전트에 의해 평가되는 목적 함수는 각각의 자식의 목적 함수 값의 집계일 것이다. 자식 목적 함수 값들 중 최소값, 평균, 분산 등을 포함하는 많은 집계들이 가능하다. 일 실시예에서, 목적 함수가 성능을 최대화하기 위한 것이라면, 노드의 성능은 노드에 있는 프로세서들에서의 임의의 액티브 코어들의 최소 성능으로서 정의될 수 있고, 캐비닛의 성능은 캐비닛에 있는 임의의 액티브 노드의 최소 성능으로서 정의될 수 있으며, 잡의 성능은 잡에 있는 임의의 액티브 캐비닛의 최소 성능으로서 정의될 수 있다. 집계 계산은 HGPPM 기술들에 의해 및/또는 HPC 시스템에서의 SCON의 보조를 통해 수행될 수 있다.
본 명세서에 설명되는 바와 같이, HGPPM 실시예들은 (전력 예산들을 넘어서) 상이한 종류의 정책들을 조정할 수 있고, 한 번에 하나보다 많은 타입을 조정할 수 있다. 이러한 모드에서, HGPPM 기술들은 정책들을 공동 정책으로 구성하고; 강화 학습 에이전트들은 공동 정책 옵션들로 실험하고, 목적 함수에 따라 공동 정책을 최적화한다. 일 예에서, 각각의 노드에 대해 하나의 강화 학습 에이전트로 끝나는 계층 구조를 고려하자. 2가지 정책들: 노드에 있는 상이한 타입들의 하드웨어 리소스들 사이에서 노드 전력 예산을 어떻게 분할해야 하는지 및 노드 상의 각각의 소프트웨어 프로세스가 얼마나 많은 스레드들/코어들을 이용해야 하는지를 공동으로 학습하는 것에 의해 에이전트가 태스킹된다고 가정하자. 에이전트는 전력 예산 분할 선택들 및 병행 선택들의 각각의 조합에 대해 하나의 옵션을 갖는 공동 정책을 생성한다. 학습 에이전트는 새로운 전력 예산 선택들 및 새로운 병행 선택들을 함께 테스트하고, 목적 함수에 대한 조합 효과를 측정하고, 다음으로 시간이 지남에 따라 최상의 공동 정책을 향해 네비게이트한다.
도 3은 도 2로부터의 계산 노드들 중 하나에 있는 Leaf H-POMDP RL 에이전트에 대해 확대한다. 이는, RL 에이전트로의 입력들(도 3에 관찰가능한 것들로 표기됨) 뿐만 아니라 RL 에이전트에 의해 출력되는 새로운 정책 설정들을 포함하여, 노드에서의 RL 에이전트, 애플리케이션, 및 프로세서 사이의 상호작용을 도시한다. 도면은 위에 논의된 예시적인 정책들의 관리: 애플리케이션 프로세스 당 스레드들의 수 및 하드웨어 리소스들 사이의 노드 전력 예산의 분할을 도시한다. 일 실시예에서, H-POMDP RL 에이전트는 애플리케이션으로부터 성능 및 위상 신호를 받아 들인다. 다른 실시예들에서, 성능 및 위상 신호들은 (앞서 설명된 바와 같이) 애플리케이션의 프로그래머 주석들 없이 HGPPM에 의해 자동으로 추론될 수 있다. 프로세서로부터, H-POMDP RL 에이전트는 에너지 신호를 받아 들인다. RL 에이전트의 출력들은 새로운 정책 설정들(예를 들어, 애플리케이션 프로세스 당 스레드들 수에 대한 새로운 설정 또는 노드의 하드웨어 컴포넌트들 사이의 노드 전력 예산의 새로운 하위 분할)이다.
관찰가능한 것들은 원하는 목적 함수를 정의하는 다양한 방식들로 합성될 수 있다. 목적 함수는 평가되어 (앞서 설명된 바와 같이) 보상으로서 학습 알고리즘에 공급된다. RL 에이전트는 이러한 보상 신호를 사용하여 상이한 정책 설정들의 영향을 측정한다. 시간이 지남에 따라, RL 에이전트는 정책 공간을 검색하고, 정책 설정들을 제정하는 것에 의해 실험하여(출력 정책 설정들은 도 3에서 액션들 표기됨) 관찰가능한 것들 및 보상 신호에 대한 영향을 측정한다. 앞서 설명된 바와 같이, RL 에이전트는, 최선의 정책 설정을 식별할 때까지, 효율적인 방식으로 검색하면서 시간이 지남에 따라 정책 공간을 네비게이트한다.
도 3에서의 예시는 다수의 정책들이 합성되는 HGPPM 실시예의 예이다. 더 많은 정책들이 합성됨에 따라, 검색 공간의 크기가 기하급수적으로 성장될 수 있다. 검색 공간을 복잡하게 만드는 정책들 사이의 상호 종속성들이 또한 존재할 수 있다. 위에 설명된 공동 정책(노드 하드웨어 리소스들 사이의 노드 전력 예산의 분할 및 소프트웨어 프로세스 당 스레드들/코어들의 수)은 복잡한 상호 종속성들을 갖는 공동 정책의 예이며: 리소스들 사이의 최상의 전력 분배는 애플리케이션 프로세스들에서의 통신, 메모리, 및 계산의 균형에 의존하지만, 그 균형은 애플리케이션 프로세스들에 의해 이용되는 스레드들/코어들의 수에 의존하고; 애플리케이션 프로세스들이 사용하는 최상의 스레드들/코어들 수는 사용 가능한 통신, 메모리, 및 계산 대역폭에 의존한다(그렇지만, 대역폭의 양은 각각의 리소스가 얼마나 많은 전력을 할당받는지에 의존할 수 있음).
HGPPM의 일 실시예는 Stochastic Policy Gradients Reinforcement Learning 기술을 이용함으로써 복잡한 절충점들을 갖는 큰 검색 공간들을 취급하도록 확장된다. Stochastic Policy Gradients 기술들은 정책과 관련하여 목적 함수 메트릭의 변화도를 추정하고, 다음으로 변화도 방향으로 단계를 밟으며; 다음으로, 시도될 공동 정책 옵션은 (변화도 방향으로) 이전 것으로부터 먼 단계인 것이다. Stochastic Policy Gradients 방법은 지수적 검색 공간을 통해 네비게이트하는 변화도 방향에서의 단계들을 취하여, 전체 공간을 철저히 검색하는 대신 결과들을 향상시킬 것으로 예상되는 방향들만을 시도한다.
변화도 기반 검색 기술들의 하나의 단점은 검색 공간이 볼록 형상을 갖는다는 가정을 하는 경향이 있다는 것이고; 그렇지 않다면, 이러한 방법은 글로벌하게 최적의 결정들에 안착되는 것이 보장되지 않는다. 이러한 이유로, 정규 Policy Gradients Algorithm보다는 Stochastic Policy Gradients 알고리즘이 채택될 수 있다. 변화도 방향에 기초하여 다음 정책 옵션을 선택하는 대신, 분포로부터 모든 옵션들 및 샘플에 확률이 할당된다. 0이 아닌 확률로, 단계는 최적이 되도록 변화도에 의해 표시되지 않은 방향으로 취해진다. 그렇게 함에 있어서, 이러한 실시예는 로컬 맥시멈을 벗어날 수 있다. Stochastic Policy Gradients 알고리즘에서는, 목적 함수를 최대화하는 정책 옵션을 학습하는 대신에, 이를 최대화하는 정책 분포가 학습된다. 변화도 방향에서의 단계들은 확률 분포를 업데이트하고 변화도와 일치하는 방향들에 더 많은 확률을 할당하는 경향이 있지만, 다른 옵션들을 선택할 일부 확률은 여전히 존재한다.
실시예에서 채택되는 접근방식은 또한 강화 학습 기술들 및 H-POMDP들에 대한 3가지 고전적 도전과제들을 해결한다. 첫 번째 과제는 정책 공간의 새로운 영역들의 개발을 가장 잘 알려진 최적의 정책들의 개발과 균형을 맞추는 것과 관련이 있는 강화 학습 도전과제들이다. 탐사를 너무 많이 강조하는 방법은 대부분의 시간동안 차선의 정책들을 사용한다. 개발을 너무 많이 강조하는 방법은 차선의 정책에 만족할 수 있고 잠재적인 이익을 테이블에 남길 수 있다. 일부 실시예들에서 사용되는 Stochastic Policy Gradients 기술들은 탐색 공간의 새로운 영역들이 시도될 것을 보장하는데 그 이유는 모든 정책 옵션들이 정책 분포에서 0이 아닌 확률을 갖기 때문이다.
더욱이, 변화도 단계들을 취하고 유망한 방향들로 가중치를 부가하도록 분포를 업데이트하는 것이 "가장 잘 알려진" 옵션 및 십진 탐사에 대해 강한 바이어스를 점진적으로 생성할 수 있는 위험성이 있는 것처럼 보이지만, 일 실시예는 분포를 균일한 분포로 서서히 유도함으로써 과도한 바이어스를 규형을 잡아주는 조정기 컴포넌트를 포함한다. 이러한 대향력들의 강도들은 런타임시 체계적으로 튜닝된다. 일 실시예는 목적 함수 메트릭과 정책 사이의 관계가 얼마나 안정적이고 예측 가능한지를 측정한다. 관계가 보다 안정적이고 예측 가능할수록, 변화도 단계들의 힘이 더 강하다(주의: 각 단계와 함께 추가되는 바이어스 양은 일정할 수 있지만, 변화도 단계들이 더 자주 취해질 수 있어, 힘을 효과적으로 더 강하게 한다). 관계가 불안정하거나 예측할 수 없는 경우, 정규화가 우세하다.
두 번째 도전과제는 강화 학습 제어 시스들템뿐만 아니라 모든 제어 시스템들에 영향을 미치는 도전과제이다. 그것은 노이즈의 도전과제이다. 실시예는 부분적으로는 위 대향력 메커니즘을 통해 그리고 부분적으로는 디지털 신호 처리 기술들을 통해 노이즈 도전과제들을 해결한다. 특히, 노이즈는 목적 함수 메트릭과 정책 사이의 관계가 불량하게 예측되게 할 것이다. 실시예는 노이즈가 최근에 낮았고 그 관계가 예측 가능할 때(즉, 변화도 결과가 더 우수한 정책을 향하는 것에 의존될 수 있을 때) 변화도 단계들만을 취한다. 높은 노이즈의 기간에는, 정규화기가 우세할 것이다. 일 실시예는 각각의 변화도 단계 및 각각의 정규화 단계의 바이어스 강도를 구성하는 자유 파라미터들을 갖는다. 이러한 파라미터들은, 애플리케이션이 목적 함수 메트릭과 정책 사이에 안정적이고 예측 가능한 관계가 있는 일부 기간들을 경험하는 한, 변화도 단계들의 바이어스가 전반적으로 우세하고, 정책 배포가 시간이 지남에 따라 최적으로 접근하도록 구성된다. 바이어스 및 정규화기 단계 크기들을 구성하는데 여러 방법들이 사용될 수 있다; 일부는 수동이지만 고전적 기술들을 따를 수 있는 반면 일부는 자동 온라인 방법들이다.
노이즈 도전과제들을 해결하기 위해 일부 실시예들이 사용하는 다른 메카니즘은 디지털 신호 처리이다. 많은 신호 처리 방법들이 사용될 수 있다. 일 예에서, 이동 평균 또는 중앙값 필터가 목적 함수 신호에 적용된다. 이러한 종류의 필터들은 이전 값들의 짧은 이력을 사용하여 신호를 매끄럽게 하는 경향이 있다. 목적 함수의 입력들에 필터들을 적용하는 것도 가능한다. 이것은 목적 함수가 비교적 작은 크기를 갖는 임의의 신호들에 의해 나누면 분모에서의 노이즈가 나눗셈 연산에 의해 증폭되는 이점들을 가질 수 있다.
세 번째 도전과제는 H-POMDP 강화 학습 계층 전반적으로 분산된 튜닝에도 불구하고 제어 안정성을 보장하는 것이다. 다음 예를 고려하자. 자식이 그들 자식 사이의 그 예산의 최적 분할을 검색할 기회를 전에 부모가 새로운 전력 예산으로 변경된다고 가정하자. 그것이 발생하면, 부모는 전력 예산이 얼마나 잘 작용하는지의 자신의 추정을 자식으로부터의 불완전한 데이터에 기초할 수 있다. 실제로, 부모들은 그들의 자식으로부터 완전한 데이터를 획득할 수 없으며, 데이터는 확률론적일 것이다. 그럼에도 불구하고, 자식들이 예산의 우수한 분할들을 찾을 시간을 받지 못하면 H-POMDP는 우수한 글로벌 정책에 결코 수렴할 수 없거나 또는 수렴하는데 너무 오래 걸릴 수 있다.
일부 실시예들에 따라 이러한 문제에 대한 많은 해결책들이 있다. 일 예는 (리프로부터 루트로) 이동이 계층을 이룸에 따라 간격 지속시간이 조악하게 되는 미리 정의된 시간 간격들로 강화 학습 에이전트들이 동작하도록 배열하는 것을 포함한다. 다른 접근방식은 튜닝 타임스케일들을 에이전트들의 계층 전반적으로 자체-구성이 되게 하는 것이다. 계층의 레벨들은 가능한 빠르게 동작하지만, 그들의 속도는 정확성을 보장하기 위해 속도 제한된다: 부모 블록들은 자식으로부터의 입력을 대기하고; 자식은 자식이 우수한 정책(예를 들어, 전력의 우수한 할당)을 달성할 때 부모까지 오브젝트 함수를 평가하는데 요구되는 다른 정보 또는 성능을 보내기만 한다. 결과적으로, 부모는 자식이 준비되기 전에 새로운 정책(예를 들어, 자식에 대한 새로운 전력 예산)을 설정할 수 없다. 이러한 자체 구성 전략은 글로벌 정책 최적화의 응답성을 최대화하는 이점을 갖는다. 일부 실시예들에 따라 우수한 정책이 도달되는 때를 결정하는 많은 방식들이 존재한다. 하나의 고전적 방식은 수렴 테스팅이다: 최종 k회 반복에 대한 정책에서의 변경이 엡실론보다 작았으면 우수한 정책이 도달되었다. k 및 엡실론은 오프라인 수동 절차들에 따라 튜닝될 수 있는 자유 파라미터들이다.
H-POMDP 계층의 마지막 레벨에서, 강화 학습 에이전트에는 자식을 갖지 않을 것이다. 계층의 이러한 레벨에서, 에이전트들은 목적 함수 메트릭을 샘플링하고 새로운 정책 옵션을 시도할 시기를 선택할 수 있다. 목적 함수는 위상 변화 이벤트들시 샘플링될 수 있는데, 예를 들어, 위상 지속시간들보다 더 조악한 고정된 시간 간격들로 샘플링되거나, 위상 지속시간들보다 더 미세한 고정 시간 간격들로 샘플링될 수 있다. 새로운 정책들은 하나 이상의 샘플들이 수집된 후 테스트될 수 있지만, 각각의 테스트에 대해 획득할 샘플들의 수는 가변적이거나 고정적일 수 있다.
추가적으로, 일부 실시예들은 위상 기반 최적화와 함께 상승 작용할 수 있다. 위상 기반 최적화에 대해서, 각각의 애플리케이션 위상에 대한 강화 학습 에이전트에 대해 상태 사본 하나가 인스턴스화된다. 강화 학습 에이전트들의 유사하거나 동일한 H-POMDP 계층이 사용될 수 있지만, 이들은 애플리케이션이 어떤 위상에 있는지에 따라 상이한 상태에서 동작할 것이다. 임의의 주어진 시간에서, 실시예는 현재 애플리케이션 위상을 결정하고 정확한 상태를 로드한다. 강화 학습 에이전트들은 모든 위상들에서 동일한 목적 함수에 대해 최적화하는 것으로 태스킹되지만, 다른 위상들은 고유한 정책을 가질 수 있다. 또한, 현재의 위상 및 각각의 위상에 대한 정책의 정의는 앞서 설명된 바와 같은 여러 방식들로 결정될 수 있다. 일부 예들은 애플리케이션(또는 다른 소프트웨어 층들)에서의 마크-업을 통해 프로그래머로부터 정보를 획득하는 것을 포함한다. 현재 위상을 결정하는 경우, 이것은 (하드웨어로의 이벤트 카운터들의 사용을 통해) 상이한 계산 리소스들에서의 액티비티의 동적 분석을 통해 또한 추론될 수 있다.
도 4는 일 실시예에 따른 컴퓨팅 시스템(400)의 블록도를 도시한다. 컴퓨팅 시스템(400)은 상호접속 네트워크(또는 버스)(404)를 통해 통신하는 하나 이상의 CPU들(central processing unit(s))(402) 또는 프로세서들을 포함할 수 있다. 프로세서들(402)은 범용 프로세서, (컴퓨터 네트워크(403)를 통해 통신되는 데이터를 처리하는) 네트워크 프로세서, (셀 폰들, 스마트 폰들 등에서 사용되는 것들과 같은) 애플리케이션 프로세서, 또는 다른 타입들의 프로세서(RISC(reduced instruction set computer) 프로세서 또는 CISC(complex instruction set computer)를 포함함)를 포함할 수 있다.
유선(예를 들어, Ethernet, Gigabit, Fiber 등) 또는 (셀룰러, 3G(Third-Generation Cell-Phone Technology 또는 3세대 무선 포맷(UWCC)), 4G(4th Generation (무선/모바일 통신들)), LPE(Low Power Embedded) 등과 같은) 무선 네트워크들을 포함하는 다양한 타입들의 컴퓨터 네트워크들(403)이 이용될 수 있다. 또한, 프로세서들(402)은 단일 또는 다중 코어 설계를 가질 수 있다. 다중 코어 설계를 갖는 프로세서들(402)은 동일한 IC(integrated circuit) 다이 상에 상이한 타입의 프로세서 코어들을 집적할 수 있다. 또한, 다중 코어 설계를 갖는 프로세서들(402)은 대칭 또는 비대칭 멀티프로세서들로서 구현될 수 있다.
일 실시예에서, 프로세서들(402) 중 하나 이상은 도 1의 프로세서들(102)과 동일하거나 유사할 수 있다. 예를 들어, 프로세서들(402) 중 하나 이상은 캐시(108) 및/또는 코어들(106) 중 하나 이상을 포함할 수 있다. 또한, 도 1 내지 도 3을 참조하여 논의된 동작들은 시스템(400)의 하나 이상의 컴포넌트들에 의해 수행될 수 있다.
칩셋(406) 또한 상호접속 네트워크(404)와 통신할 수 있다. 칩셋(406)은 GMCH(graphics and memory control hub)(408)를 포함할 수 있다. GMCH(408)는 메모리(114)와 통신하는 (도 1의 메모리 제어기(120)와 동일하거나 또는 유사할 수 있는) 메모리 제어기(410)를 포함할 수 있다. 시스템(400)은 (도 4에 도시되는 것들과 같지만 시스템(400) 내에서 다른 위치들에 있을 수 있는(도시되지 않음)) 다양한 위치들에서 로직(150)을 또한 포함할 수 있다. 메모리(114)는, CPU(402) 또는 컴퓨팅 시스템(400)에 포함되는 임의의 다른 디바이스에 의해 실행되는 명령어들의 시퀀스들을 포함하는 데이터를 저장할 수 있다. 일 실시예에서, 메모리(114)는 RAM(random access memory), DRAM(dynamic RAM), SDRAM(synchronous DRAM), SRAM(static RAM), 또는 하드 디스크, 나노와이어 메모리, FeTRAM(Ferro-electric transistor random access memory), MRAM(magnetoresistive random access memory), 플래시 메모리, STTRAM(Spin Torque Transfer Random Access Memory), Resistive Random Access Memory, PCM (Phase Change Memory)과 같은 3D Cross Point Memory, NAND/NOR 메모리를 갖는 SSD(Solid State Drive) 등과 같은 다른 타입들의 스토리지 디바이스들과 같은 하나 이상의 휘발성/비-휘발성 스토리지를 포함할 수 있다. 다수의 CPU들 및/또는 다수의 시스템 메모리들과 같은 추가적인 디바이스들이 상호접속 네트워크(404)를 통해 통신할 수 있다.
GMCH(408)는 그래픽 가속기(416)와 통신하는 그래픽 인터페이스(414)를 또한 포함할 수 있다. 일 실시예에서, 그래픽 인터페이스(414)는 AGP(accelerated graphics port) 또는 PCI(Peripheral Component Interconnect)(또는 PCIe(PCI express) 인터페이스)를 통해 그래픽 가속기(416)와 통신할 수 있다. 실시예에서, (평면 패널 디스플레이, 터치 스크린 등과 같은) 디스플레이 디바이스(417)는, 예를 들어, 비디오 메모리 또는 시스템 메모리와 같은 스토리지 디바이스에 저장된 이미지의 디지털 표현을 디스플레이에 의해 해석되고 디스플레이되는 디스플레이 신호들로 변환하는 신호 변환기를 통해, 그래픽 인터페이스(414)와 통신할 수 있다. 디스플레이 디바이스에 의해 생성되는 디스플레이 신호들은, 디스플레이 디바이스(417)에 의해 해석되어 후속하여 그 상에 디스플레이되기 이전에, 다양한 제어 디바이스들을 통과할 수 있다.
허브 인터페이스(418)는 GMCH(408) 및 ICH(input/output control hub)(420)가 통신하는 것을 허용할 수 있다. ICH(420)는 컴퓨팅 시스템(400)과 통신하는 I/O 디바이스들에 대한 인터페이스를 제공할 수 있다. ICH(420)는 PCI(peripheral component interconnect) 브릿지, USB(universal serial bus) 제어기, 또는 다른 타입들의 주변기기 브릿지들 또는 제어기들과 같은 주변기기 브릿지(또는 제어기)(424)를 통해 버스(422)와 통신할 수 있다. 브릿지(424)는 CPU(402)와 주변기기 디바이스들 사이에 데이터 경로를 제공할 수 있다. 다른 타입의 토폴로지들이 이용될 수 있다. 또한, 다수의 버스들이 예를 들어 다수의 브릿지들 또는 제어기들을 통해 ICH(420)와 통신할 수 있다. 또한, ICH(420)와 통신하는 다른 주변기기들은, 다양한 실시예들에서, IDE(integrated drive electronics) 또는 SCSI(small computer system interface) 하드 드라이브(들), USB 포트(들), 키보드, 마우스, 병렬 포트(들), 직렬 포트(들), 플로피 디스크 드라이브(들), 디지털 출력 지원(예를 들어, DVI(digital video interface)) 또는 다른 디바이스들을 포함할 수 있다.
버스(422)는 오디오 디바이스(426), 하나 이상의 디스크 드라이브(들)(428), 및 (예를 들어 유선 또는 무선 인터페이스를 통해 컴퓨터 네트워크(403)와 통신하는) 네트워크 인터페이스 디바이스(430)와 통신할 수 있다. 도시되는 바와 같이, 네트워크 인터페이스 디바이스(430)는, (예를 들어, IEEE(Institute of Electrical and Electronics Engineers) 802.11 인터페이스(IEEE 802.11a/b/g/n 등을 포함함), 셀룰러 인터페이스, 3G, 4G, LPE 등을 통해) 네트워크(403)와 무선으로 통신하기 위해 안테나(431)에 연결될 수 있다. 다른 디바이스들은 버스(422)를 통해 통신할 수 있다. 또한, (네트워크 인터페이스 디바이스(430)와 같은) 다양한 컴포넌트들은 일부 실시예들에서 GMCH(408)와 통신할 수 있다. 추가로, 프로세서(402)와 GMCH(408)는 조합되어 단일의 칩을 형성할 수 있다. 또한, 그래픽 가속기(416)는 다른 실시예들에서 GMCH(408) 내에 포함될 수 있다.
또한, 컴퓨팅 시스템(400)은 휘발성 및/또는 비휘발성 메모리(또는 스토리지)를 포함할 수 있다. 예를 들어, 비휘발성 메모리는 ROM(read-only memory), PROM(programmable ROM), EPROM(erasable PROM), EEPROM(electrically EPROM), 디스크 드라이브(예를 들어, 428), 플로피 디스크, CD-ROM(compact disk ROM), DVD(digital versatile disk), 플래시 메모리, 광자기 디스크, 또는 전자 데이터(예를 들어, 명령어들을 포함함)를 저장할 수 있는 다른 타입들의 비휘발성 머신 판독가능 매체 중 하나 이상을 포함할 수 있다.
도 5는 실시예에 따른 PtP(point-to-point) 구성으로 배열되는 컴퓨팅 시스템(500)을 도시한다. 도 5는 프로세서들, 메모리, 및 입력/출력 디바이스들이 다수의 포인트-투-포인트 인터페이스들에 의해 상호접속되는 시스템을 도시한다. 도 1 내지 도 4를 참조하여 논의된 동작들은 시스템(500)의 하나 이상의 컴포넌트들에 의해 수행될 수 있다.
도 5에 도시되는 바와 같이, 시스템(500)은 여러 프로세서들을 포함할 수 있는데, 명확성을 위해 이들 중 2개의 프로세서들(502 및 504)만이 도시된다. 프로세서들(502 및 504) 각각은 메모리들(510 및 512)과의 통신을 가능하게 하는 로컬 MCH(memory controller hub)(506 및 508)를 포함할 수 있다. 메모리들(510 및/또는 512)은 도 1 및/또는 도 4의 메모리(114)를 참조하여 논의된 것들과 같이 다양한 데이터를 저장할 수 있다. 또한, MCH(506 및 508)는 일부 실시예들에서 도 1 내지 도 4의 메모리 제어기(120) 및/또는 로직(150)을 포함할 수 있다.
실시예에서, 프로세서들(502 및 504)은 도 4를 참조하여 논의된 프로세서들(402) 중 하나일 수 있다. 프로세서들(502 및 504)은 각각 PtP(point-to-point) 인터페이스 회로들(516 및 518)을 사용하여 PtP 인터페이스(514)를 통해 데이터를 교환할 수 있다. 또한, 프로세서들(502 및 504) 각각은 포인트-투-포인트 인터페이스 회로들(526, 528, 530 및 532)을 사용하여 개별적인 PtP 인터페이스들(522 및 524)을 통해 칩셋(520)과 데이터를 교환할 수 있다. 칩셋(520)은, 예를 들어, PtP 인터페이스 회로(537)를 사용하여, 고성능 그래픽 인터페이스(536)를 통해 고성능 그래픽 회로(534)와 데이터를 추가로 교환할 수 있다. 도 4를 참조하여 논의된 바와 같이, 그래픽 인터페이스(536)는 일부 실시예들에서 디스플레이 디바이스(예를 들어, 디스플레이(417))에 연결될 수 있다.
도 5에 도시되는 바와 같이, 도 1의 캐시(108) 및/또는 코어들(106) 중 하나 이상은 프로세서들(502 및 504) 내에 위치될 수 있다. 다른 실시예들은, 그러나, 도 5의 시스템(500) 내의 다른 회로들, 로직 유닛들, 또는 디바이스들에 존재할 수 있다. 또한, 다른 실시예들은 도 5에 도시되는 여러 회로들, 로직 유닛들, 또는 디바이스들 전체에 걸쳐 분산될 수 있다.
칩셋(520)은 PtP 인터페이스 회로(541)를 사용하여 버스(540)와 통신할 수 있다. 버스(540)는 버스 브릿지(542) 및 I/O 디바이스들(543)과 같은 이와 통신하는 하나 이상의 디바이스들을 가질 수 있다. 버스(544)를 통해, 버스 브릿지(542)는 키보드/마우스(545), (모뎀들, 네트워크 인터페이스 디바이스들, 또는 예를 들어 안테나(431)를 통하는 것을 포함하여, 네트워크 인터페이스 디바이스(430)를 참조하여 논의된 바와 같이, 컴퓨터 네트워크(403)와 통신할 수 있는 다른 통신 디바이스들과 같은) 통신 디바이스들(546), 오디오 I/O 디바이스, 및/또는 데이터 스토리지 디바이스(548)와 같은 다른 디바이스들과 통신할 수 있다. 데이터 스토리지 디바이스(548)는 프로세서들(502 및/또는 504)에 의해 실행될 수 있는 코드(549)를 저장할 수 있다.
일부 실시예들에서, 본 명세서에서 논의되는 컴포넌트들 중 하나 이상이 SOC(System On Chip) 디바이스 상에 구현될 수 있다. 도 6은 실시예에 따른 SOC 패키지의 블록도를 도시한다. 도 6에 도시되는 바와 같이, SOC(602)는 하나 이상의 CPU(Central Processing Unit) 코어들(620), 하나 이상의 GPU(Graphics Processor Unit) 코어들(630), I/O(Input/Output) 인터페이스(640) 및 메모리 제어기(120)를 포함한다. SOC 패키지(602)의 다양한 컴포넌트들은, 다른 도면들을 참조하여 본 명세서에서 논의된 SCON(204)와 같은, 상호접속부 또는 버스/네트워크에 연결될 수 있다. 또한, SOC 패키지(602)는 다른 도면들을 참조하여 본 명세서에서 논의된 것들과 같은 더 많거나 더 적은 컴포넌트들을 포함할 수 있다. 또한, SOC 패키지(602)의 각각의 컴포넌트는, 예를 들어 본 명세서에서 다른 도면들을 참조하여 논의된 바와 같이, 하나 이상의 다른 컴포넌트들을 포함할 수 있다. 일 실시예에서, SOC 패키지(602)(및 그것의 컴포넌트들)는, 예를 들어, 단일의 반도체 디바이스 상에 패키징되는 하나 이상의 IC(integrated circuit) 다이 상에 제공된다.
도 6에 도시되는 바와 같이, SOC 패키지(602)는 메모리 제어기(120)와 같은 인터페이스를 통해 (SOC 패키지(602) 외부의) 메인 메모리(114)에 연결된다. 실시예에서, 메모리(114)(또는 그 일부)는 SOC 패키지(602) 상에 집적될 수 있다.
I/O 인터페이스(640)는, 예를 들어, 다른 도면들을 참조하여 본 명세서에서 논의된 것과 같은 상호접속부 및/또는 버스를 통해 하나 이상의 I/O 디바이스들(670)에 연결될 수 있다. I/O 디바이스(들)(670)는 키보드, 마우스, 터치패드, 디스플레이, (카메라 또는 캠코더/비디오 레코더와 같은) 이미지/비디오 캡처 디바이스, 터치 스크린, 스피커 등 중의 하나 이상을 포함할 수 있다. 또한, SOC 패키지(602)는 실시예에서 로직(150)을 포함/집적할 수 있다. 대안적으로, 로직(150)은 SOC 패키지(602)의 외부에(즉, 이산 로직으로서) 제공될 수 있다.
다음의 예들은 추가의 실시예들에 관련된다. 예 1은 장치를 포함하며, 이는, 복수의 노드들의 각각의 노드에 연결되어, 복수의 노드들에 송신할 전력 및 성능 관리를 위한 정책의 결정을 야기하는 로직을 포함하며, 이러한 정책은 복수의 노드들에 걸쳐 전력 및 성능 관리의 조정을 야기하는 것이며, 이러한 정책은 하나 이상의 목적 함수들에 대해 잡(job)을 관리하는 것이며, 이러한 잡은 복수의 노드들 상에서 동시에 실행되어야 할 복수의 태스크들을 포함한다. 예 2는 예 1의 장치를 포함하며, 로직은 복수의 노드들 각각에 대한 개별 정책을 결정하는 것이다. 예 3은 예 1의 장치를 포함하며, 로직은 복수의 노드들 각각의 적어도 일부에 대한 개별 정책을 결정하는 것이다. 예 4는 예 1의 장치를 포함하며, 하나 이상의 목적 함수들은, 전력 한도를 충족시키면서 성능을 최대화하는 것, 전력 한도를 충족시키면서 에너지 효율을 최대화하는 것, 전력 한도를 충족시키면서 복수의 노드들 사이의 성능 차이를 최소화하는 것, 성능을 최대화하는 것, 효율을 최대화하는 것, 또는 전력 한도를 충족시키면서 성능을 최대화하고 효율을 최대화하는 것 중 하나 이상을 포함한다. 예 5는 예 1의 장치를 포함하며, 로직은 계층적 머신 학습 동작들에 따라 동작하는 것이다. 예 6은 예 1의 장치를 포함하며, 로직은 부하 불균형 문제, 확장가능성 문제, 또는 융통성 문제 중 하나 이상을 해결하는 하나 이상의 동작들을 수행하는 것이다. 예 7은 예 1의 장치를 포함하며, 정책은 잡에서의 모든 노드들에 걸쳐 전력 및 성능 관리를 조정하는 것이다. 예 8은 예 1의 장치를 포함하며, 정책은 잡에서의 모든 노드들에 걸쳐 그리고 소프트웨어 및 하드웨어 추상화 층들에 걸쳐 전력 및 성능 관리를 조정하는 것이다. 예 9는 예 1의 장치를 포함하며, 로직은 확률론적 정책 변화도 기술(stochastic policy gradients technique)에 따라 정책을 결정하는 것이다. 예 10은 예 1의 장치를 포함하며, 복수의 노드들은 캐비닛을 형성하는 것이며, 정책은 하나 이상의 캐비닛들 사이에서 그리고 다음으로 복수의 노드들 사이에서 계층적으로 분해된다. 예 11은 예 1의 장치를 포함하며, 복수의 노드들을 연결하는 스케일러블 오버레이 네트워크(scalable overlay network)를 더 포함한다. 예 12는 예 1의 장치를 포함하며, 복수의 노드들을 연결하는 스케일러블 오버레이 네트워크를 더 포함하며, 스케일러블 오버레이 네트워크는 전력 또는 성능 원격 측정의 집계 및 제어의 보급을 제공한다. 예 13은 예 1의 장치를 포함하며, SOC(System On Chip) 집적 회로가 로직 및 메모리를 포함하는 것이다. 예 14는 예 1의 장치를 포함하며, 복수의 노드들의 각각의 노드는, 하나 이상의 프로세서 코어들을 갖는 프로세서, 하나 이상의 프로세서 코어들을 갖는 그래픽 처리 유닛, 네트워크 구조로의 접속, 로그인 컴포넌트, 서비스 컴포넌트, 메모리, 또는 입력/출력 디바이스 중 하나 이상을 포함하는 것이다.
예 15는 방법을 포함하며, 이는, 복수의 노드들의 각각의 노드에 대한 전력 및 성능 관리를 위한 정책의 결정을 야기하는 단계; 및 정책을 복수의 노드들에 송신하는 단계를 포함하고, 정책은 복수의 노드들에 걸쳐 전력 및 성능 관리의 조정을 야기하며, 정책은 하나 이상의 목적 함수들에 대해 잡(job)을 관리하며, 잡은 복수의 노드들 상에서 동시에 실행되어야 할 복수의 태스크들을 포함한다. 예 16은 예 15의 방법을 포함하며, 복수의 노드들 각각에 대한 개별 정책을 결정하는 단계를 더 포함한다. 예 17은 예 15의 방법을 포함하며, 복수의 노드들 각각의 적어도 일부에 대한 개별 정책을 결정하는 단계를 더 포함한다. 예 18은 예 15의 방법을 포함하며, 하나 이상의 목적 함수들은, 전력 한도를 충족시키면서 성능을 최대화하는 것, 전력 한도를 충족시키면서 에너지 효율을 최대화하는 것, 전력 한도를 충족시키면서 복수의 노드들 사이의 성능 차이를 최소화하는 것, 성능을 최대화하는 것, 효율을 최대화하는 것, 또는 전력 한도를 충족시키면서 성능을 최대화하고 효율을 최대화하는 것 중 하나 이상을 포함한다. 예 19는 예 15의 방법을 포함하며, 결정은 계층적 머신 학습 동작들에 따라 동작한다. 예 20은 예 15의 방법을 포함하며, 결정은 부하 불균형 문제, 확장가능성 문제, 또는 융통성 문제 중 하나 이상을 해결하도록 수행된다. 예 21은 예 15의 방법을 포함하며, 잡에서의 모든 노드들에 걸쳐 전력 및 성능 관리를 조정하는 정책을 더 포함한다. 예 22는 예 15의 방법을 포함하며, 잡에서의 모든 노드들에 걸쳐 그리고 소프트웨어 및 하드웨어 추상화 층들에 걸쳐 전력 및 성능 관리를 조정하는 정책을 더 포함한다. 예 23은 예 15의 방법을 포함하며, 확률론적 정책 변화도 기술(stochastic policy gradients technique)에 따라 정책을 결정하는 단계를 더 포함한다. 예 24는 예 15의 방법을 포함하며, 복수의 노드들은 캐비닛을 형성하며, 정책은 하나 이상의 캐비닛들 사이에서 그리고 다음으로 복수의 노드들 사이에서 계층적으로 분해된다. 예 25는 예 15의 방법을 포함하며, 스케일러블 오버레이 네트워크(scalable overlay network)를 통해 복수의 노드들을 연결하는 단계를 더 포함한다. 예 26은 예 15의 방법을 포함하며, 스케일러블 오버레이 네트워크를 통해 복수의 노드들을 연결하는 단계를 더 포함하며, 스케일러블 오버레이 네트워크는 전력 또는 성능 원격 측정의 집계 및 제어의 보급을 제공한다.
예 27은 컴퓨터 판독가능 매체를 포함하며, 이는, 프로세서에서 실행될 때, 복수의 노드들의 각각의 노드에 대한 전력 및 성능 관리를 위한 정책의 결정을 야기하는; 그리고 정책을 복수의 노드들에 송신하는 하나 이상의 동작들을 수행하도록 프로세서를 구성하는 하나 이상의 명령어들을 포함하고, 정책은 복수의 노드들에 걸쳐 전력 및 성능 관리의 조정을 야기하며, 정책은 하나 이상의 목적 함수들에 대해 잡(job)을 관리하며, 잡은 복수의 노드들 상에서 동시에 실행되어야 할 복수의 태스크들을 포함한다. 예 28은 예 23의 컴퓨터 판독가능 매체를 포함하며, 이는, 프로세서에서 실행될 때, 복수의 노드들 각각에 대한 개별 정책의 결정을 야기하는 하나 이상의 동작들을 수행하도록 프로세서를 구성하는 하나 이상의 명령어들을 더 포함한다. 예 29는 예 23의 컴퓨터 판독가능 매체를 포함하며, 이는, 프로세서에서 실행될 때, 복수의 노드들 각각의 적어도 일부에 대한 개별 정책의 결정을 야기하는 하나 이상의 동작들을 수행하도록 프로세서를 구성하는 하나 이상의 명령어들을 더 포함한다.
예 30은 장치를 포함하며, 이는 임의의 선행 예에 기재된 방법을 수행하는 수단을 포함한다.
예 31은 머신 판독가능 스토리지를 포함하며, 이는, 실행될 때, 임의의 선행 예에 기재된 방법을 구현하거나 또는 장치를 실현하는 머신 판독가능 명령어들을 포함한다.
본 발명의 다양한 실시예들에서, 예를 들어 도 1 내지 도 6을 참조하여 본 명세서에서 논의된 동작들은 하드웨어(예를 들어, 회로), 소프트웨어, 펌웨어, 마이크로코드 또는 이들의 조합으로서 구현될 수 있으며, 이는, 예를 들어, 본 명세서에서 논의된 프로세스를 수행하도록 컴퓨터를 프로그래밍하는데 사용되는 명령어들(또는 소프트웨어 절차들)이 저장되어 있는 유형의(tangible)(예를 들어, 비-일시적) 머신 판독가능 또는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서 제공될 수 있다. 또한, "로직"이라는 용어는, 예를 들어, 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 조합을 포함할 수 있다. 머신 판독가능 매체는 도 1 내지 6을 참조하여 논의된 것들과 같은 스토리지 디바이스를 포함할 수 있다.
추가적으로, 이러한 유형의 컴퓨터 판독가능 매체는 컴퓨터 프로그램 제품으로서 다운로드될 수 있으며, 이러한 프로그램은 통신 링크(예를 들어, 버스, 모뎀 또는 네트워크 접속)를 통해 (반송파 또는 다른 전파 매체에서와 같은) 데이터 신호들에 의해 원격 컴퓨터(예를 들어, 서버)로부터 요청 컴퓨터(예를 들어, 클라이언트)로 전송될 수 있다.
본 명세서에서 "일 실시예(one embodiment)" 또는 "실시예(an embodiment)"에 대한 지칭은, 그 실시예와 관련하여 설명되는 특정 특징, 구조, 또는 특성이 적어도 구현에 포함될 수 있다는 점을 의미한다. 본 명세서의 다양한 곳들에서의 "일 실시예에서(in one embodiment)"라는 구문의 출현은 모두가 동일한 실시예를 지칭할 수도 있고 그렇지 않을 수도 있다.
또한, 본 설명 및 청구항들에서, "연결되는(coupled)" 및 "접속되는(connected)"이라는 용어들이 그 파생어들과 함께 사용될 수 있다. 일부 실시예들에서, "접속되는"은, 2개 이상의 엘리먼트들이 서로 직접 물리적으로 또는 전기적으로 접촉하는 것을 표시하는데 사용될 수 있다. "연결되는"은, 2개 이상의 엘리먼트들이 직접 물리적으로 또는 전기적으로 접촉하는 것을 의미할 수 있다. 그러나, "연결되는"은, 2개 이상의 엘리먼트들이 서로 직접 접촉하지 않을 수 있지만 여전히 서로 상호작용하거나 협력하는 것을 또한 의미할 수 있다.
따라서, 실시예들은 구조적 특징들 및/또는 방법론적 동작들에 구체적인 언어로 설명되었지만, 청구되는 주제는 설명된 구체적인 특징들 또는 동작들에 제한되지는 않을 수 있다는 점이 이해되어야 한다. 오히려, 구체적인 특징들 및 동작들은 청구되는 주제를 구현하는 샘플 형태들로서 개시된다.
Claims (25)
- 장치로서,
복수의 노드들의 각각의 노드에 연결되어, 상기 복수의 노드들에 송신할 전력 및 성능 관리를 위한 정책의 결정을 야기하는 로직을 포함하고,
상기 정책은 상기 복수의 노드들에 걸쳐 전력 및 성능 관리의 조정을 야기하는 것이며, 상기 정책은 하나 이상의 목적 함수들에 대해 잡(job)을 관리하는 것이며, 상기 잡은 상기 복수의 노드들 상에서 동시에 실행되어야 할 복수의 태스크들을 포함하는 것인 장치. - 제1항에 있어서,
상기 로직은 상기 복수의 노드들 각각에 대한 개별 정책을 결정하는 것인 장치. - 제1항에 있어서,
상기 로직은 상기 복수의 노드들 각각의 적어도 일부에 대한 개별 정책을 결정하는 것인 장치. - 제1항에 있어서,
상기 하나 이상의 목적 함수들은, 전력 한도를 충족시키면서 성능을 최대화하는 것, 전력 한도를 충족시키면서 에너지 효율을 최대화하는 것, 전력 한도를 충족시키면서 상기 복수의 노드들 사이의 성능 차이를 최소화하는 것, 성능을 최대화하는 것, 효율을 최대화하는 것, 또는 전력 한도를 충족시키면서 성능을 최대화하고 효율을 최대화하는 것 중 하나 이상을 포함하는 것인 장치. - 제1항에 있어서,
상기 로직은 계층적 머신 학습 동작들에 따라 동작하는 것인 장치. - 제1항에 있어서,
상기 로직은 부하 불균형(load imbalance) 문제, 확장가능성(scalability) 문제, 또는 융통성(flexibility) 문제 중 하나 이상을 해결하는 하나 이상의 동작들을 수행하는 것인 장치. - 제1항에 있어서,
상기 정책은 상기 잡에서의 모든 노드들에 걸쳐 전력 및 성능 관리를 조정하는 것인 장치. - 제1항에 있어서,
상기 정책은 상기 잡에서의 모든 노드들에 걸쳐 그리고 소프트웨어 및 하드웨어 추상화 층들에 걸쳐 전력 및 성능 관리를 조정하는 것인 장치. - 제1항에 있어서,
상기 로직은 확률론적 정책 변화도 기술(stochastic policy gradients technique)에 따라 상기 정책을 결정하는 것인 장치. - 제1항에 있어서,
상기 복수의 노드들은 캐비닛을 형성하는 것이며, 상기 정책은 하나 이상의 캐비닛들 사이에서 그리고 다음으로 상기 복수의 노드들 사이에서 계층적으로 분해되는 장치. - 제1항에 있어서,
상기 복수의 노드들을 연결하는 스케일러블 오버레이 네트워크(scalable overlay network)를 더 포함하는 장치. - 제1항에 있어서,
상기 복수의 노드들을 연결하는 스케일러블 오버레이 네트워크를 더 포함하며, 상기 스케일러블 오버레이 네트워크는 전력 또는 성능 원격 측정의 집계 및 제어의 보급을 제공하는 장치. - 제1항에 있어서,
SOC(System On Chip) 집적 회로가 상기 로직 및 메모리를 포함하는 것인 장치. - 제1항에 있어서,
상기 복수의 노드들의 각각의 노드는, 하나 이상의 프로세서 코어들을 갖는 프로세서, 하나 이상의 프로세서 코어들을 갖는 그래픽 처리 유닛, 네트워크 구조로의 접속, 로그인 컴포넌트, 서비스 컴포넌트, 메모리, 또는 입력/출력 디바이스 중 하나 이상을 포함하는 것인 장치. - 방법으로서,
복수의 노드들의 각각의 노드에 대한 전력 및 성능 관리를 위한 정책의 결정을 야기하는 단계; 및
상기 정책을 상기 복수의 노드들에 송신하는 단계
를 포함하고,
상기 정책은 상기 복수의 노드들에 걸쳐 전력 및 성능 관리의 조정을 야기하며, 상기 정책은 하나 이상의 목적 함수들에 대해 잡(job)을 관리하며, 상기 잡은 상기 복수의 노드들 상에서 동시에 실행되어야 할 복수의 태스크들을 포함하는 방법. - 제15항에 있어서,
상기 복수의 노드들 각각에 대한 개별 정책을 결정하는 단계를 더 포함하는 방법. - 제15항에 있어서,
상기 복수의 노드들 각각의 적어도 일부에 대한 개별 정책을 결정하는 단계를 더 포함하는 방법. - 제15항에 있어서,
상기 하나 이상의 목적 함수들은, 전력 한도를 충족시키면서 성능을 최대화하는 것, 전력 한도를 충족시키면서 에너지 효율을 최대화하는 것, 전력 한도를 충족시키면서 상기 복수의 노드들 사이의 성능 차이를 최소화하는 것, 성능을 최대화하는 것, 효율을 최대화하는 것, 또는 전력 한도를 충족시키면서 성능을 최대화하고 효율을 최대화하는 것 중 하나 이상을 포함하는 방법. - 제15항에 있어서,
상기 결정은 계층적 머신 학습 동작들에 따라 동작하거나, 또는 상기 결정은 부하 불균형 문제, 확장가능성 문제, 또는 융통성 문제 중 하나 이상을 해결하도록 수행되는 방법. - 제15항에 있어서,
상기 잡에서의 모든 노드들에 걸쳐 전력 및 성능 관리를 조정하는 정책을 더 포함하는 방법. - 제15항에 있어서,
상기 잡에서의 모든 노드들에 걸쳐 그리고 소프트웨어 및 하드웨어 추상화 층들에 걸쳐 전력 및 성능 관리를 조정하는 정책을 더 포함하는 방법. - 제15항에 있어서,
확률론적 정책 변화도 기술(stochastic policy gradients technique)에 따라 상기 정책을 결정하는 단계를 더 포함하거나, 또는 상기 복수의 노드들은 캐비닛을 형성하며, 상기 정책은 하나 이상의 캐비닛들 사이에서 그리고 다음으로 상기 복수의 노드들 사이에서 계층적으로 분해되는 방법. - 제15항에 있어서,
스케일러블 오버레이 네트워크(scalable overlay network)를 통해 상기 복수의 노드들을 연결하는 단계를 더 포함하거나, 또는 스케일러블 오버레이 네트워크를 통해 상기 복수의 노드들을 연결하는 단계를 더 포함하며, 상기 스케일러블 오버레이 네트워크는 전력 또는 성능 원격 측정의 집계 및 제어의 보급을 제공하는 방법. - 컴퓨터 판독가능 매체로서,
프로세서에서 실행될 때 제15항 내지 제23항 중 어느 한 항의 하나 이상의 동작들을 수행하도록 상기 프로세서를 구성하는 하나 이상의 명령어들을 포함하는 컴퓨터 판독가능 매체. - 장치로서,
제15항 내지 제23항 중 어느 한 항에 기재된 방법을 수행하는 수단을 포함하는 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020217025103A KR20210101337A (ko) | 2014-12-22 | 2015-11-24 | 총체적 글로벌 성능 및 전력 관리 |
KR1020237043736A KR20240005113A (ko) | 2014-12-22 | 2015-11-24 | 총체적 글로벌 성능 및 전력 관리 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/580,150 | 2014-12-22 | ||
US14/580,150 US10101786B2 (en) | 2014-12-22 | 2014-12-22 | Holistic global performance and power management |
PCT/US2015/062278 WO2016105791A1 (en) | 2014-12-22 | 2015-11-24 | Holistic global performance and power management |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237043736A Division KR20240005113A (ko) | 2014-12-22 | 2015-11-24 | 총체적 글로벌 성능 및 전력 관리 |
KR1020217025103A Division KR20210101337A (ko) | 2014-12-22 | 2015-11-24 | 총체적 글로벌 성능 및 전력 관리 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170100487A true KR20170100487A (ko) | 2017-09-04 |
KR102701129B1 KR102701129B1 (ko) | 2024-09-02 |
Family
ID=56129304
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177013595A KR102701129B1 (ko) | 2014-12-22 | 2015-11-24 | 총체적 글로벌 성능 및 전력 관리 |
KR1020217025103A KR20210101337A (ko) | 2014-12-22 | 2015-11-24 | 총체적 글로벌 성능 및 전력 관리 |
KR1020237043736A KR20240005113A (ko) | 2014-12-22 | 2015-11-24 | 총체적 글로벌 성능 및 전력 관리 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217025103A KR20210101337A (ko) | 2014-12-22 | 2015-11-24 | 총체적 글로벌 성능 및 전력 관리 |
KR1020237043736A KR20240005113A (ko) | 2014-12-22 | 2015-11-24 | 총체적 글로벌 성능 및 전력 관리 |
Country Status (6)
Country | Link |
---|---|
US (4) | US10101786B2 (ko) |
EP (1) | EP3238002A4 (ko) |
JP (3) | JP2018500673A (ko) |
KR (3) | KR102701129B1 (ko) |
CN (2) | CN107003901A (ko) |
WO (1) | WO2016105791A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190119510A (ko) * | 2018-04-02 | 2019-10-22 | 소니 주식회사 | 자율 주행을 위한 비전-기반 샘플-효율적 강화 학습 프레임워크 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10101786B2 (en) | 2014-12-22 | 2018-10-16 | Intel Corporation | Holistic global performance and power management |
US9733684B2 (en) | 2015-09-14 | 2017-08-15 | Samsung Electronics Co., Ltd. | System and method for controlling power consumption |
US10002056B2 (en) * | 2015-09-15 | 2018-06-19 | Texas Instruments Incorporated | Integrated circuit chip with cores asymmetrically oriented with respect to each other |
US10146286B2 (en) * | 2016-01-14 | 2018-12-04 | Intel Corporation | Dynamically updating a power management policy of a processor |
US10296074B2 (en) * | 2016-08-12 | 2019-05-21 | Qualcomm Incorporated | Fine-grained power optimization for heterogeneous parallel constructs |
US9792397B1 (en) * | 2017-01-08 | 2017-10-17 | Alphaics Corporation | System and method for designing system on chip (SoC) circuits through artificial intelligence and reinforcement learning |
WO2018153807A1 (en) | 2017-02-24 | 2018-08-30 | Deepmind Technologies Limited | Action selection for reinforcement learning using neural networks |
KR20180098904A (ko) | 2017-02-27 | 2018-09-05 | 삼성전자주식회사 | 컴퓨팅 장치 및 컴퓨팅 장치에 포함된 복수의 코어들에 전력을 할당하는 방법 |
US20200183467A1 (en) * | 2017-07-20 | 2020-06-11 | Hewlett-Packard Development Company, L.P. | Application power allocation |
US10444813B2 (en) * | 2017-09-28 | 2019-10-15 | Intel Corporation | Multi-criteria power management scheme for pooled accelerator architectures |
GB2569269B (en) * | 2017-10-20 | 2020-07-15 | Graphcore Ltd | Synchronization in a multi-tile processing arrangement |
US11054887B2 (en) * | 2017-12-28 | 2021-07-06 | Advanced Micro Devices, Inc. | System-wide low power management |
US11568236B2 (en) | 2018-01-25 | 2023-01-31 | The Research Foundation For The State University Of New York | Framework and methods of diverse exploration for fast and safe policy improvement |
US11055139B2 (en) * | 2018-06-12 | 2021-07-06 | International Business Machines Corporation | Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster |
CN109242098A (zh) * | 2018-07-25 | 2019-01-18 | 深圳先进技术研究院 | 限定代价下神经网络结构搜索方法及相关产品 |
WO2020132322A1 (en) * | 2018-12-19 | 2020-06-25 | Aquifi, Inc. | Systems and methods for joint learning of complex visual inspection tasks using computer vision |
JP7409326B2 (ja) * | 2019-01-15 | 2024-01-09 | ソニーグループ株式会社 | サーバおよび学習システム |
US11316901B1 (en) * | 2019-06-06 | 2022-04-26 | NortonLifeLock Inc. | Systems and methods for protecting users |
US11663494B2 (en) * | 2019-12-05 | 2023-05-30 | Uchicago Argonne, Llc | Systems and methods for hierarchical multi-objective optimization |
US11651839B2 (en) | 2020-03-02 | 2023-05-16 | Uchicago Argonne, Llc | Systems and methods for generating phase diagrams for metastable material states |
US11710038B2 (en) | 2020-04-13 | 2023-07-25 | Uchicago Argonne, Llc | Systems and methods for active learning from sparse training data |
CN113239655B (zh) * | 2020-05-21 | 2024-06-28 | 台湾积体电路制造股份有限公司 | 半导体电路的约束确定系统和方法 |
US11914527B2 (en) | 2021-10-26 | 2024-02-27 | International Business Machines Corporation | Providing a dynamic random-access memory cache as second type memory per application process |
CN114006941B (zh) * | 2021-10-30 | 2024-07-09 | 平安国际智慧城市科技股份有限公司 | 数据同步方法、装置、计算机设备及介质 |
EP4195044A1 (fr) * | 2021-12-09 | 2023-06-14 | Bull SAS | Méthode d'optimisation de la consommation énergétique d'une infrastructure informatique par suspension de travaux |
JP7392027B2 (ja) * | 2022-04-14 | 2023-12-05 | ソフトバンク株式会社 | システム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030145041A1 (en) * | 2001-10-05 | 2003-07-31 | Dunham Douglas Paul | Storage area network methods and apparatus for display and management of a hierarchical file system extension policy |
US8010815B2 (en) * | 2008-05-01 | 2011-08-30 | International Business Machines Corporation | Computational device power-savings |
KR20130016237A (ko) * | 2010-03-25 | 2013-02-14 | 마이크로소프트 코포레이션 | 분산 컴퓨팅에서의 전력 공급 관리 |
Family Cites Families (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396635A (en) | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
US6601084B1 (en) | 1997-12-19 | 2003-07-29 | Avaya Technology Corp. | Dynamic load balancer for multiple network servers |
JPH11202988A (ja) | 1998-01-13 | 1999-07-30 | Hitachi Ltd | システム消費電力制御方法 |
JP3563256B2 (ja) | 1998-02-13 | 2004-09-08 | 富士通株式会社 | 省電力機能の遠隔制御方法、情報処理装置及び記憶媒体 |
US6195739B1 (en) | 1998-06-29 | 2001-02-27 | Cisco Technology, Inc. | Method and apparatus for passing data among processor complex stages of a pipelined processing engine |
US6711691B1 (en) | 1999-05-13 | 2004-03-23 | Apple Computer, Inc. | Power management for computer systems |
US6748222B1 (en) | 2000-11-06 | 2004-06-08 | Nortel Networks Limited | Method and system for providing load-balanced communication |
US6704877B2 (en) | 2000-12-29 | 2004-03-09 | Intel Corporation | Dynamically changing the performance of devices in a computer platform |
US7143300B2 (en) | 2001-07-25 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | Automated power management system for a network of computers |
US20030079151A1 (en) | 2001-10-18 | 2003-04-24 | International Business Machines Corporation | Energy-aware workload distribution |
US6943714B2 (en) | 2002-08-19 | 2005-09-13 | Tdk Semiconductor Corporation | Method and apparatus of obtaining power computation parameters |
KR100992177B1 (ko) | 2003-05-07 | 2010-11-04 | 모사이드 테크놀로지스 코포레이션 | 파워 아일랜드를 사용한 집적 회로의 파워 관리 |
US7051215B2 (en) * | 2003-06-13 | 2006-05-23 | Intel Corporation | Power management for clustered computing platforms |
US7146511B2 (en) * | 2003-10-07 | 2006-12-05 | Hewlett-Packard Development Company, L.P. | Rack equipment application performance modification system and method |
US7174471B2 (en) * | 2003-12-24 | 2007-02-06 | Intel Corporation | System and method for adjusting I/O processor frequency in response to determining that a power set point for a storage device has not been reached |
US7693991B2 (en) | 2004-01-16 | 2010-04-06 | International Business Machines Corporation | Virtual clustering and load balancing servers |
US8335909B2 (en) | 2004-04-15 | 2012-12-18 | Raytheon Company | Coupling processors to each other for high performance computing (HPC) |
JP4448784B2 (ja) | 2005-03-15 | 2010-04-14 | 株式会社日立製作所 | 並列計算機の同期方法及びプログラム |
US7549177B2 (en) | 2005-03-28 | 2009-06-16 | Intel Corporation | Advanced thermal management using an average power controller over an adjustable time window |
US7484108B2 (en) | 2005-06-23 | 2009-01-27 | Intel Corporation | Enhancing power delivery with transient running average power limits |
TW200805047A (en) | 2005-12-23 | 2008-01-16 | Koninkl Philips Electronics Nv | Performance analysis based system level power management |
US7602874B2 (en) | 2006-01-26 | 2009-10-13 | International Business Machines Corporation | Providing accurate time-based counters for scaling operating frequencies of microprocessors |
US8316360B2 (en) | 2006-09-29 | 2012-11-20 | Intel Corporation | Methods and apparatus to optimize the parallel execution of software processes |
US7587621B2 (en) * | 2006-11-08 | 2009-09-08 | International Business Machines Corporation | Computer system management and throughput maximization in the presence of power constraints |
US7916676B2 (en) | 2007-03-23 | 2011-03-29 | Broadcom Corporation | Method and system for holistic energy management in ethernet networks |
US8041773B2 (en) | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
US8578193B2 (en) | 2007-11-28 | 2013-11-05 | International Business Machines Corporation | Apparatus, method and program product for adaptive real-time power and perfomance optimization of multi-core processors |
US7971084B2 (en) * | 2007-12-28 | 2011-06-28 | Intel Corporation | Power management in electronic systems |
US8806491B2 (en) | 2007-12-31 | 2014-08-12 | Intel Corporation | Thread migration to improve power efficiency in a parallel processing environment |
US8301742B2 (en) | 2008-04-07 | 2012-10-30 | International Business Machines Corporation | Systems and methods for coordinated management of power usage and runtime performance in performance-managed computing environments |
KR20110007205A (ko) | 2008-04-21 | 2011-01-21 | 어댑티브 컴퓨팅 엔터프라이즈 인코포레이티드 | 컴퓨트 환경에서 에너지 소비를 관리하기 위한 시스템 및 방법 |
US8122117B2 (en) | 2009-05-28 | 2012-02-21 | Microsoft Corporation | Determining an imbalance among computer-component usage |
JP5427504B2 (ja) * | 2009-08-03 | 2014-02-26 | 株式会社エヌ・ティ・ティ・データ | サービス実行装置、サービス実行方法 |
US20110055838A1 (en) | 2009-08-28 | 2011-03-03 | Moyes William A | Optimized thread scheduling via hardware performance monitoring |
US9442540B2 (en) | 2009-08-28 | 2016-09-13 | Advanced Green Computing Machines-Ip, Limited | High density multi node computer with integrated shared resources |
US9063825B1 (en) * | 2009-09-21 | 2015-06-23 | Tilera Corporation | Memory controller load balancing with configurable striping domains |
US8892931B2 (en) | 2009-10-20 | 2014-11-18 | Empire Technology Development Llc | Power channel monitor for a multicore processor |
US8527740B2 (en) | 2009-11-13 | 2013-09-03 | International Business Machines Corporation | Mechanism of supporting sub-communicator collectives with O(64) counters as opposed to one counter for each sub-communicator |
US8341441B2 (en) | 2009-12-24 | 2012-12-25 | International Business Machines Corporation | Reducing energy consumption in a cloud computing environment |
CA2793537A1 (en) | 2010-04-13 | 2011-10-20 | Et International, Inc. | Runspace method, system and apparatus |
US20110307716A1 (en) | 2010-06-10 | 2011-12-15 | Broadcom Corporation | Global control policy manager |
US8601288B2 (en) | 2010-08-31 | 2013-12-03 | Sonics, Inc. | Intelligent power controller |
US9268611B2 (en) | 2010-09-25 | 2016-02-23 | Intel Corporation | Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores |
US20120084028A1 (en) | 2010-09-30 | 2012-04-05 | Ibm Corporation | Framework and Methodology for a Real-Time Fine-Grained Power Profiling with Integrated Modeling |
US9128778B2 (en) | 2010-12-30 | 2015-09-08 | Panduit Corp. | System and method for assignment of virtual machines based on physical information |
US8635483B2 (en) | 2011-04-05 | 2014-01-21 | International Business Machines Corporation | Dynamically tune power proxy architectures |
JP5679047B2 (ja) | 2011-04-18 | 2015-03-04 | 富士通株式会社 | スレッド処理方法、およびスレッド処理システム |
JP5872561B2 (ja) * | 2011-08-26 | 2016-03-01 | 株式会社日立製作所 | 予測型逐次計算装置 |
US8769316B2 (en) | 2011-09-06 | 2014-07-01 | Intel Corporation | Dynamically allocating a power budget over multiple domains of a processor |
US8799693B2 (en) * | 2011-09-20 | 2014-08-05 | Qualcomm Incorporated | Dynamic power optimization for computing devices |
TWI454905B (zh) | 2011-09-30 | 2014-10-01 | Intel Corp | 在多核心平台中之受限制的啓動技術 |
US8650423B2 (en) | 2011-10-12 | 2014-02-11 | Qualcomm Incorporated | Dynamic voltage and clock scaling control based on running average, variant and trend |
US8806410B2 (en) | 2011-10-28 | 2014-08-12 | The Board Of Trustees Of The University Of Illinois | Power balanced pipelines |
US9195516B2 (en) | 2011-12-01 | 2015-11-24 | International Business Machines Corporation | Determining collective barrier operation skew in a parallel computer |
US9141166B2 (en) | 2011-12-13 | 2015-09-22 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including dynamic control of energy consumption in power domains |
US9304570B2 (en) | 2011-12-15 | 2016-04-05 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements |
CN102427230B (zh) * | 2011-12-19 | 2013-11-20 | 天津市电力公司 | 用于分布式微网孤岛运行风光储联合调度的方法及系统 |
WO2013162523A1 (en) | 2012-04-24 | 2013-10-31 | Intel Corporation | Dynamic interrupt reconfiguration for effective power management |
CN103384372B (zh) * | 2012-05-03 | 2016-08-10 | 华为技术有限公司 | 一种优化网络容量和覆盖折中的方法、装置及系统 |
US8930948B2 (en) | 2012-06-21 | 2015-01-06 | Vmware, Inc. | Opportunistically proactive resource management using spare capacity |
US9110644B2 (en) | 2012-09-14 | 2015-08-18 | Intel Corporation | Providing additional current capacity to a processor for a turbo mode |
US9342122B2 (en) | 2012-09-17 | 2016-05-17 | Intel Corporation | Distributing power to heterogeneous compute elements of a processor |
US9110734B2 (en) | 2012-11-12 | 2015-08-18 | International Business Machines Corporation | Power-constrained compiler code generation and scheduling of work in a heterogeneous processing system |
US9235252B2 (en) | 2012-12-21 | 2016-01-12 | Intel Corporation | Dynamic balancing of power across a plurality of processor domains according to power policy control bias |
US9195285B2 (en) | 2012-12-27 | 2015-11-24 | Intel Corporation | Techniques for platform duty cycling |
US9395774B2 (en) * | 2012-12-28 | 2016-07-19 | Intel Corporation | Total platform power control |
TWI641943B (zh) | 2013-03-15 | 2018-11-21 | 美商英特爾公司 | 控制電源供應單元於閒置狀態期間的功率消耗之技術 |
JP6083278B2 (ja) * | 2013-03-22 | 2017-02-22 | 富士通株式会社 | 計算システム及びその電力管理方法 |
US9665154B2 (en) | 2013-05-31 | 2017-05-30 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Subsystem-level power management in a multi-node virtual machine environment |
US20160179167A1 (en) | 2013-08-02 | 2016-06-23 | Schneider Electric Usa Inc. | System and method for representing power system information |
US9568978B2 (en) * | 2013-09-26 | 2017-02-14 | Intel Corporation | Controlling power consumption in processor-based systems and components thereof |
KR20150050135A (ko) | 2013-10-31 | 2015-05-08 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법 |
US9588559B2 (en) | 2013-12-23 | 2017-03-07 | Intel Corporation | Configurable power supplies for dynamic current sharing |
US10101786B2 (en) | 2014-12-22 | 2018-10-16 | Intel Corporation | Holistic global performance and power management |
US9811143B2 (en) | 2014-12-23 | 2017-11-07 | Intel Corporation | Systems and methods for dynamic spatial power steering |
US10466754B2 (en) | 2014-12-26 | 2019-11-05 | Intel Corporation | Dynamic hierarchical performance balancing of computational resources |
US9477533B2 (en) | 2014-12-26 | 2016-10-25 | Intel Corporation | Progress meters in parallel computing |
JP7240673B2 (ja) | 2019-12-23 | 2023-03-16 | 株式会社デンソー | 成膜方法 |
-
2014
- 2014-12-22 US US14/580,150 patent/US10101786B2/en active Active
-
2015
- 2015-11-24 CN CN201580063584.XA patent/CN107003901A/zh active Pending
- 2015-11-24 CN CN202110878299.0A patent/CN113722061A/zh active Pending
- 2015-11-24 KR KR1020177013595A patent/KR102701129B1/ko active IP Right Grant
- 2015-11-24 EP EP15873996.1A patent/EP3238002A4/en not_active Withdrawn
- 2015-11-24 KR KR1020217025103A patent/KR20210101337A/ko not_active Application Discontinuation
- 2015-11-24 JP JP2017531539A patent/JP2018500673A/ja active Pending
- 2015-11-24 KR KR1020237043736A patent/KR20240005113A/ko active Search and Examination
- 2015-11-24 WO PCT/US2015/062278 patent/WO2016105791A1/en active Application Filing
-
2018
- 2018-10-16 US US16/162,303 patent/US10884471B2/en active Active
-
2021
- 2021-01-05 US US17/142,149 patent/US11740673B2/en active Active
- 2021-06-16 JP JP2021100077A patent/JP7222029B2/ja active Active
-
2023
- 2023-02-02 JP JP2023014366A patent/JP2023041852A/ja active Pending
- 2023-07-17 US US18/222,937 patent/US12093104B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030145041A1 (en) * | 2001-10-05 | 2003-07-31 | Dunham Douglas Paul | Storage area network methods and apparatus for display and management of a hierarchical file system extension policy |
US8010815B2 (en) * | 2008-05-01 | 2011-08-30 | International Business Machines Corporation | Computational device power-savings |
KR20130016237A (ko) * | 2010-03-25 | 2013-02-14 | 마이크로소프트 코포레이션 | 분산 컴퓨팅에서의 전력 공급 관리 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190119510A (ko) * | 2018-04-02 | 2019-10-22 | 소니 주식회사 | 자율 주행을 위한 비전-기반 샘플-효율적 강화 학습 프레임워크 |
Also Published As
Publication number | Publication date |
---|---|
CN107003901A (zh) | 2017-08-01 |
WO2016105791A1 (en) | 2016-06-30 |
US20210247829A1 (en) | 2021-08-12 |
JP2023041852A (ja) | 2023-03-24 |
US20160179162A1 (en) | 2016-06-23 |
EP3238002A4 (en) | 2018-08-29 |
US11740673B2 (en) | 2023-08-29 |
EP3238002A1 (en) | 2017-11-01 |
KR20210101337A (ko) | 2021-08-18 |
CN113722061A (zh) | 2021-11-30 |
KR20240005113A (ko) | 2024-01-11 |
US10101786B2 (en) | 2018-10-16 |
US20190121414A1 (en) | 2019-04-25 |
US12093104B1 (en) | 2024-09-17 |
JP2018500673A (ja) | 2018-01-11 |
JP7222029B2 (ja) | 2023-02-14 |
KR102701129B1 (ko) | 2024-09-02 |
US10884471B2 (en) | 2021-01-05 |
JP2021140825A (ja) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7222029B2 (ja) | ホリスティックグローバルなパフォーマンス及び電力管理 | |
US20210224114A1 (en) | Capacity Analysis Using Closed-System Modules | |
US11392843B2 (en) | Utilizing a machine learning model to predict a quantity of cloud resources to allocate to a customer | |
Beloglazov et al. | Optimal online deterministic algorithms and adaptive heuristics for energy and performance efficient dynamic consolidation of virtual machines in cloud data centers | |
US10355966B2 (en) | Managing variations among nodes in parallel system frameworks | |
TWI646418B (zh) | 用於計算資源之動態階層式效能平衡的方法、設備及媒體 | |
JP6031196B2 (ja) | 分散データストレージ・処理システムのためのチューニング | |
CN107003887A (zh) | Cpu超载设置和云计算工作负荷调度机构 | |
KR101990411B1 (ko) | 클라우드 시스템에서의 우선 순위 기반 자원 스케일링 시스템, 장치 및 방법 | |
CN103853618A (zh) | 基于截止日期驱动的云系统代价最小化资源分配方法 | |
US20170026305A1 (en) | System to place virtual machines onto servers based upon backup runtime constraints | |
Jayaram Subramanya et al. | Sia: Heterogeneity-aware, goodput-optimized ML-cluster scheduling | |
JP2021504780A (ja) | 分散コンピューティング環境における自動対角スケーリングためのアプリケーションの優先順位付け | |
Saleem et al. | A Survey on Dynamic Application Mapping Approaches for Real-Time Network-on-Chip-Based Platforms | |
JP2021504777A (ja) | 分散コンピューティング環境における作業負荷の自動対角スケーリング | |
Rayan et al. | Resource Prediction for Big Data Processing in a Cloud Data Center: A Machine Learning Approach: A Machine Learning Approach | |
Wang et al. | Adaptive elasticity policies for staging-based in situ visualization | |
Shankar | SiaHet: Towards Exploiting Intra-Job Resource Heterogeneity in Heterogeneity-aware, Goodput Optimized Deep Learning Cluster Scheduling | |
Kumari et al. | Robust energy-aware task scheduling for scientific workflow in cloud computing | |
Zhang | Maximizing Performance in Power-Constrained Computing Systems | |
Selvaraj et al. | A novel resource scheduler for resource allocation and scheduling in big data using hybrid optimization algorithm at cloud environment. | |
Vakilinia | Performance modeling and optimization of resource allocation in cloud computing systems | |
Clark | Dynamic Voltage/Frequency Scaling and Power-Gating of Network-on-Chip with Machine Learning | |
Radhamani et al. | Research on power optimization techniques for multi core architectures | |
WO2022125133A1 (en) | Program execution strategies for heterogeneous computing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |