KR102644229B1 - Device and Method for Profiling Memory - Google Patents

Device and Method for Profiling Memory Download PDF

Info

Publication number
KR102644229B1
KR102644229B1 KR1020210008172A KR20210008172A KR102644229B1 KR 102644229 B1 KR102644229 B1 KR 102644229B1 KR 1020210008172 A KR1020210008172 A KR 1020210008172A KR 20210008172 A KR20210008172 A KR 20210008172A KR 102644229 B1 KR102644229 B1 KR 102644229B1
Authority
KR
South Korea
Prior art keywords
memory
access information
prediction model
profiling device
memory object
Prior art date
Application number
KR1020210008172A
Other languages
Korean (ko)
Other versions
KR20220105453A (en
Inventor
김영재
박중언
Original Assignee
서강대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서강대학교산학협력단 filed Critical 서강대학교산학협력단
Priority to KR1020210008172A priority Critical patent/KR102644229B1/en
Publication of KR20220105453A publication Critical patent/KR20220105453A/en
Application granted granted Critical
Publication of KR102644229B1 publication Critical patent/KR102644229B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Numerical Control (AREA)

Abstract

메모리 프로파일링 장치 및 그의 동작 방법을 개시한다.
본 발명의 일 측면에 의하면, 워크로드 변화에 따른 메모리 오브젝트의 접근 정보를 예측하는 메모리 프로파일링 장치에 있어서, 애플리케이션에 의해 할당된 메모리 오브젝트의 접근 정보를 추출하는 추출부; 상기 접근 정보를 학습된 예측 모델에 입력하는 입력부; 상기 예측 모델로부터 상기 메모리 오브젝트의 스케일링 비율을 획득하는 획득부; 및 상기 애플리케이션의 워크로드가 변화한 경우, 상기 스케일링 비율을 상기 접근 정보에 적용함으로써, 상기 메모리 오브젝트의 스케일링된 접근 정보를 예측하는 예측부를 포함하는 메모리 프로파일링 장치를 제공한다.
Disclosed is a memory profiling device and method of operating the same.
According to one aspect of the present invention, a memory profiling device for predicting access information of a memory object according to workload changes, comprising: an extraction unit for extracting access information of a memory object allocated by an application; an input unit for inputting the access information into a learned prediction model; an acquisition unit that obtains a scaling ratio of the memory object from the prediction model; and a prediction unit that predicts scaled access information of the memory object by applying the scaling ratio to the access information when the workload of the application changes.

Description

메모리 프로파일링 장치 및 그의 동작 방법{Device and Method for Profiling Memory}Memory profiling device and method of operation thereof {Device and Method for Profiling Memory}

본 발명의 실시예들은 메모리 오브젝트의 에너지 소모량을 추정하기 위해, 워크로드 변화에 따른 메모리 오브젝트의 접근 정보를 예측 모델을 통해 예측하는 머신러닝 기반 메모리 프로파일링 장치 및 그의 동작 방법에 관한 것이다.Embodiments of the present invention relate to a machine learning-based memory profiling device and a method of operating the same that predict access information of a memory object according to workload changes through a prediction model in order to estimate the energy consumption of the memory object.

이 부분에 기술된 내용은 단순히 본 발명에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The content described in this section simply provides background information about the present invention and does not constitute prior art.

최근 데이터 처리량이 다양한 분야에서 매년 기하급수적으로 증가하고 있다. 이러한 데이터 증가를 수용하기 위해, 기업 또는 기관들은 최적화된 데이터 센터를 채용하고 있다. 하지만, 데이터 센터에서 데이터를 저장하고 분석하는 것은 많은 에너지를 소모하고 방대한 양의 온실가스를 배출한다. Recently, data processing volume has been increasing exponentially every year in various fields. To accommodate this data increase, companies and organizations are adopting optimized data centers. However, storing and analyzing data in data centers consumes a lot of energy and emits vast amounts of greenhouse gases.

데이터 센터에서 에너지 소모는 주로 두 가지 요인에 의해 결정된다. 한 가지는 중앙처리장치(Central Processing Unit; CPU)이고, 나머지 하나는 메인 메모리(main memory)이다. CPU들은 단일 서버에서 소요되는 총 에너지의 30 퍼센트 내지 60 퍼센트에 해당하는 에너지를 소모하고, 메인 메모리는 28 퍼센트 내지 40 퍼센트의 에너지를 소모한다.Energy consumption in data centers is mainly determined by two factors: One is the Central Processing Unit (CPU), and the other is main memory. CPUs consume 30 to 60 percent of the total energy consumed by a single server, and main memory consumes 28 to 40 percent of the energy.

메모리-레벨에서의 에너지 소모를 줄이기 위해, 메모리 뱅크의 전력을 낮추는 방법, 기본 메모리 전압 및 주파수를 제어하는 방법, 휘발성 메모리와 비휘발성 메모리를 함께 사용하는 하이브리드 메모리 시스템 등 다양한 기술들이 연구되고 있다. 더불어, 메모리 시스템에서는 메모리-레벨에서의 에너지 효율을 개선하기 위해 세분화된 오브젝트-레벨(object-level)에서의 접근 정보(access information)를 추가적으로 고려한 소프트웨어 기반 솔루션이 개발되고 있다. 이러한 소프트웨어 기반 솔루션을 이용하기 위해서는, 메모리 오브젝트로부터 접근 정보를 추출하고, 접근 정보로부터 에너지 소모량을 추정할 필요가 있다. 여기서, 메모리 오브젝트의 접근 정보를 추출하는 과정을 메모리 프로파일링(memory profiling)이라 한다. 메모리 프로파일링을 통한 에너지 소모량 추정 방법은 한국 등록공고번호 KR 2178931 B1에 개시되어 있다.To reduce energy consumption at the memory-level, various technologies are being researched, including methods of lowering the power of memory banks, methods of controlling basic memory voltage and frequency, and hybrid memory systems that use both volatile and non-volatile memories. In addition, in memory systems, software-based solutions are being developed that additionally consider access information at the granular object-level to improve energy efficiency at the memory-level. In order to use this software-based solution, it is necessary to extract access information from memory objects and estimate energy consumption from the access information. Here, the process of extracting access information of memory objects is called memory profiling. A method for estimating energy consumption through memory profiling is disclosed in Korean Registration Notice No. KR 2178931 B1.

하지만, 애플리케이션의 오브젝트-레벨 메모리 프로파일링은 시간이 오래 걸리고, 에너지를 소모한다는 문제점이 있다. 게다가, 애플리케이션의 워크로드(workload) 크기가 변화할 때 오브젝트의 접근 정보도 함께 변화하므로, 워크로드 크기가 변화할 때마다 메모리 프로파일링을 수행해야 한다는 문제점이 있다. However, object-level memory profiling of an application has the problem that it takes a long time and consumes energy. In addition, when the application workload size changes, object access information also changes, so there is a problem that memory profiling must be performed every time the workload size changes.

최근 메모리 프로파일링 시간을 줄이되 메모리 오브젝트의 접근 정보를 예측하기 위해, 선형 스케일링 비율(Linear Scaling Rate; LSR) 모델이 연구되었다. LSR 모델은 애플리케이션의 워크로드가 변화할 때 메모리 오브젝트의 접근 정보들이 선형적으로 변화하는 것으로 추정한다. 예를 들면, 애플리케이션이 크기가 N인 워크로드와 수명이 L인 오브젝트를 가지는 경우, 워크로드 크기가 두 배만큼 증가하면 오브젝트의 수명도 선형적으로 두 배만큼 증가하는 것으로 추정한다. 이를 통해, 워크로드의 크기가 변화할 때마다 접근 정보를 추출하는 것이 아니라, 스케일링 비율을 이전 접근 정보에 적용하여 변화된 워크로드에 대응되는 접근 정보를 예측하는 것이다. Recently, the Linear Scaling Rate (LSR) model has been studied to reduce memory profiling time and predict access information of memory objects. The LSR model estimates that access information of memory objects changes linearly when the application workload changes. For example, if an application has a workload of size N and objects with a lifetime of L, it is assumed that when the workload size increases by a factor of two, the lifetime of the objects increases linearly by a factor of two. Through this, rather than extracting access information every time the size of the workload changes, the scaling ratio is applied to previous access information to predict access information corresponding to the changed workload.

하지만, LSR 모델은 워크로드와 메모리 오브젝트가 선형관계임을 전제로 하므로, 다양한 애플리케이션에 적용되는 경우 예측 오류를 포함할 수 있다. 메모리 오브젝트의 접근 정보들과 스케일링 워크로드 사이의 상호관계가 적을수록, LSR 모델에 기초하여 예측된 메모리 오브젝트의 접근 정보들은 더 많은 오류율을 포함하게 된다. 즉, 애플리케이션의 워크로드가 증가할 때 메모리 오브젝트의 접근 정보들은 선형적으로 증가하지 않는 것이다.However, since the LSR model assumes a linear relationship between workload and memory objects, it may contain prediction errors when applied to various applications. The smaller the correlation between the access information of a memory object and the scaling workload, the more error rate the access information of the memory object predicted based on the LSR model contains. In other words, when the application workload increases, the access information of memory objects does not increase linearly.

따라서, 워크로드의 크기가 변화할 때 스케일링 비율을 이용하여 접근 정보를 예측하여 시간 및 에너지 소모를 줄이되, 워크로드와 메모리 오브젝트가 다양한 상호관계를 가지더라도, 워크로드 변화에 따른 메모리 오브젝트의 접근 정보를 정확하게 예측할 수 있는 방법에 대한 연구가 필요하다.Therefore, when the size of the workload changes, access information is predicted using the scaling ratio to reduce time and energy consumption. Even if the workload and memory objects have various interrelationships, the access information of memory objects according to workload changes is Research is needed on how to accurately predict.

본 발명의 실시예들은, 워크로드 변화에 따른 메모리 프로파일링에 드는 시간과 에너지 소모를 줄이기 위한 머신러닝 기반 메모리 프로파일링 장치 및 그의 동작 방법을 제공하는 데 주된 목적이 있다.The main purpose of embodiments of the present invention is to provide a machine learning-based memory profiling device and a method of operating the same to reduce time and energy consumption for memory profiling according to workload changes.

본 발명의 다른 실시예들은, 워크로드와 메모리 오브젝트 간 선형관계 여부에 상관없이 워크로드 변화에 따른 메모리 오브젝트의 접근 정보를 정확하게 예측하기 위한 메모리 프로파일링 장치 및 그의 동작 방법을 제공하는 데 일 목적이 있다.The purpose of other embodiments of the present invention is to provide a memory profiling device and a method of operating the same for accurately predicting access information of memory objects according to workload changes, regardless of whether there is a linear relationship between the workload and the memory object. there is.

본 발명의 일 측면에 의하면, 워크로드(workload) 변화에 따른 메모리 오브젝트의 접근 정보(access pattern)를 예측하는 메모리 프로파일링(profiling) 장치의 동작 방법에 있어서, 애플리케이션에 의해 할당된 메모리 오브젝트의 접근 정보를 추출하는 과정; 상기 접근 정보를 학습된 예측 모델에 입력하는 과정; 상기 예측 모델로부터 상기 메모리 오브젝트의 스케일링 비율(scaling rate)을 획득하는 과정; 및 상기 애플리케이션의 워크로드가 변화한 경우, 상기 스케일링 비율을 상기 접근 정보에 적용함으로써, 상기 메모리 오브젝트의 스케일링된 접근 정보를 예측하는 과정을 포함하는 메모리 프로파일링 장치의 동작 방법을 제공한다.According to one aspect of the present invention, in a method of operating a memory profiling device that predicts access patterns of memory objects according to workload changes, access to memory objects allocated by an application The process of extracting information; A process of inputting the access information into a learned prediction model; Obtaining a scaling rate of the memory object from the prediction model; and predicting scaled access information of the memory object by applying the scaling ratio to the access information when the workload of the application changes.

본 실시예의 다른 측면에 의하면, 워크로드 변화에 따른 메모리 오브젝트의 접근 정보를 예측하는 메모리 프로파일링 장치에 있어서, 애플리케이션에 의해 할당된 메모리 오브젝트의 접근 정보를 추출하는 추출부; 상기 접근 정보를 학습된 예측 모델에 입력하는 입력부; 상기 예측 모델로부터 상기 메모리 오브젝트의 스케일링 비율을 획득하는 획득부; 및 상기 애플리케이션의 워크로드가 변화한 경우, 상기 스케일링 비율을 상기 접근 정보에 적용함으로써, 상기 메모리 오브젝트의 스케일링된 접근 정보를 예측하는 예측부를 포함하는 메모리 프로파일링 장치를 제공한다.According to another aspect of the present embodiment, a memory profiling device for predicting access information of a memory object according to a change in workload, comprising: an extraction unit for extracting access information of a memory object allocated by an application; an input unit that inputs the access information into a learned prediction model; an acquisition unit that obtains a scaling ratio of the memory object from the prediction model; and a prediction unit that predicts scaled access information of the memory object by applying the scaling ratio to the access information when the workload of the application changes.

이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, 머신러닝 기반 예측 모델을 이용하여 메모리 오브젝트의 스케일링 비율을 예측하고, 워크로드가 변화하더라도 스케일링 비율을 메모리 오브젝트 접근 정보에 적용함으로써, 워크로드 변화에 따른 접근 정보 예측에 드는 시간과 에너지 소모를 감소시킬 수 있다.As described above, according to an embodiment of the present invention, the scaling ratio of a memory object is predicted using a machine learning-based prediction model, and the scaling ratio is applied to the memory object access information even if the workload changes, thereby preventing workload changes. The time and energy consumption required to predict access information can be reduced.

본 발명의 다른 실시예에 의하면, 머신러닝 기반 예측 모델을 이용하여 워크로드 변화에 따라 변화된 메모리 오브젝트의 접근 정보를 정확하게 예측할 수 있다.According to another embodiment of the present invention, access information of memory objects that change according to workload changes can be accurately predicted using a machine learning-based prediction model.

도 1은 본 발명의 일 실시예에 따른 애플리케이션과 메모리 프로파일링 장치를 설명하기 위해 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 메모리 프로파일링 장치의 구성도이다.
도 3a는 본 발명의 일 실시예에 따른 메모리 프로파일링 과정을 설명하기 위해 예시한 도면이다.
도 3b는 본 발명의 일 실시예에 따른 예측 모델의 학습 및 예측 모델을 이용한 에너지 소모량 추정 과정을 설명하기 위해 예시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 메모리 오브젝트의 접근 정보 추출 과정을 설명하기 위한 도면이다.
도 5a 및 도 5b는 본 발명과 종래기술의 메모리 프로파일링 결과를 비교한 도면이다.
도 6은 본 발명의 일 실시예에 따른 메모리 프로파일링 과정을 설명하기 위해 예시한 순서도다.
Figure 1 is a diagram illustrating an application and a memory profiling device according to an embodiment of the present invention.
Figure 2 is a configuration diagram of a memory profiling device according to an embodiment of the present invention.
FIG. 3A is a diagram illustrating a memory profiling process according to an embodiment of the present invention.
Figure 3b is a diagram illustrating the process of learning a prediction model and estimating energy consumption using the prediction model according to an embodiment of the present invention.
Figure 4 is a diagram for explaining a process of extracting access information of a memory object according to an embodiment of the present invention.
Figures 5a and 5b are diagrams comparing memory profiling results of the present invention and the prior art.
Figure 6 is a flow chart illustrating a memory profiling process according to an embodiment of the present invention.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail through illustrative drawings. When adding reference numerals to components in each drawing, it should be noted that identical components are given the same reference numerals as much as possible even if they are shown in different drawings. Additionally, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description will be omitted.

또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '~부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Additionally, when describing the components of the present invention, terms such as first, second, A, B, (a), and (b) may be used. These terms are only used to distinguish the component from other components, and the nature, sequence, or order of the component is not limited by the term. Throughout the specification, when a part is said to 'include' or 'have' a certain component, this means that it does not exclude other components but may further include other components, unless specifically stated to the contrary. . Additionally, terms such as 'unit' and 'module' used in the specification refer to a unit that processes at least one function or operation, and may be implemented through hardware, software, or a combination of hardware and software.

도 1은 본 발명의 일 실시예에 따른 애플리케이션과 메모리 프로파일링 장치를 설명하기 위해 예시한 도면이다.Figure 1 is a diagram illustrating an application and a memory profiling device according to an embodiment of the present invention.

도 1을 참조하면, 애플리케이션(100), 메모리 시스템(110), 메모리 프로파일러(memory profiler, 112) 및 메모리 디바이스(114)가 도시되어 있다. 메모리 시스템(110)은 메모리 프로파일러(112) 및 메모리 디바이스(114)를 포함할 수 있다. Referring to Figure 1, an application 100, a memory system 110, a memory profiler (112), and a memory device 114 are shown. Memory system 110 may include memory profiler 112 and memory device 114 .

본 발명의 일 실시예에 따른 메모리 프로파일링 장치는 메모리 시스템(110) 또는 메모리 프로파일러(112) 중 어느 하나일 수 있다.The memory profiling device according to an embodiment of the present invention may be either the memory system 110 or the memory profiler 112.

메모리 디바이스(114)는 휘발성 메모리(Volatile Memory) 또는 비휘발성 메모리(Non-Volatile Memory) 중 어느 하나이거나, 또는 두 종류의 메모리가 결합된 이기종 메모리 디바이스일 수 있다. 여기서, 메모리 디바이스(114)의 종류에 따라 메모리 오브젝트(memory object)의 에너지 소모량이 달라진다. 만일 메모리 디바이스(114)가 휘발성 메모리인 경우, 에너지 정보는 전처리 명령어에 의해 소비되는 에너지 소비량, 읽기 및 쓰기 명령어에 의해 소비되는 에너지 소비량 또는 리프레시 명령어에 의해 소비되는 에너지 소비량 중 적어도 하나를 포함한다.The memory device 114 may be either a volatile memory or a non-volatile memory, or may be a heterogeneous memory device combining two types of memory. Here, the energy consumption of a memory object varies depending on the type of memory device 114. If the memory device 114 is a volatile memory, the energy information includes at least one of energy consumption consumed by preprocessing instructions, energy consumption consumed by read and write instructions, or energy consumption consumed by refresh instructions.

메모리 프로파일러(112)는 애플리케이션(100)으로부터 프로파일링 요청을 수신하면, 애플리케이션(100)에 의해 메모리 디바이스(114)에 할당되는 메모리 오브젝트(memory object)가 소비하는 에너지 소비량을 예측한다.When the memory profiler 112 receives a profiling request from the application 100, it predicts the amount of energy consumed by a memory object allocated to the memory device 114 by the application 100.

이는 메모리 디바이스(114)의 종류 자체도 에너지 소비량에 영향을 주지만, 애플리케이션(100)이 사용하는 메모리 오브젝트가 메모리 디바이스(114)에 접근하는 패턴(access pattern) 또한 에너지 소비량에 영향을 끼치기 때문이다. 예를 들면, 메모리가 데이터를 기록하는 데 있어 많은 에너지를 소모하는 제1 메모리 디바이스와 적은 에너지를 소모하는 제2 메모리 디바이스가 존재하는 것으로 가정한다. 이때, 쓰기를 많이 수행하는 메모리 오브젝트가 제1 메모리 디바이스에 할당되면 제2 메모리 디바이스에 할당될 때보다 많은 에너지를 소비한다. 이처럼 어떤 메모리 오브젝트가 어떤 메모리 디바이스에서 이용되는지에 따라 총 에너지 소모량이 달라질 수 있다.This is because the type of the memory device 114 itself affects energy consumption, but the access pattern of the memory object used by the application 100 to the memory device 114 also affects energy consumption. For example, assume that there is a first memory device that consumes a lot of energy and a second memory device that consumes little energy when the memory writes data. At this time, when a memory object that performs a lot of writing is allocated to a first memory device, it consumes more energy than when it is allocated to a second memory device. In this way, the total energy consumption may vary depending on which memory object is used in which memory device.

따라서, 메모리 오브젝트의 에너지 소비량을 정확하게 예측하기 위해서는, 메모리 디바이스(114) 자체의 특성뿐만 아니라 메모리 오브젝트가 메모리 디바이스(114)에 접근하는 패턴 또한 고려해야 한다. 특히, 에너지 소모량 추정과 관련도가 높은 접근 정보들을 추출할 필요가 있다.Therefore, in order to accurately predict the energy consumption of a memory object, not only the characteristics of the memory device 114 itself but also the pattern in which the memory object accesses the memory device 114 must be considered. In particular, there is a need to extract access information that is highly relevant to energy consumption estimation.

본 발명의 일 실시예에 따른 메모리 프로파일러(112)는 애플리케이션(100)으로부터 프로파일링 요청을 수신하면, 애플리케이션(100)이 메모리 디바이스(114)에 할당하는 메모리 오브젝트가 메모리 디바이스(114)에 접근하는 접근 정보(access pattern)를 추출한다. 여기서, 에너지 추정에 이용하기 위해 추출되는 접근 정보는 메모리 오브젝트의 크기(size), 메모리 오브젝트의 메모리 접근 크기(accessed volume) 및 메모리 오브젝트의 수명(lifetime) 중 적어도 하나를 포함한다. 메모리 프로파일러(112)는 한 번 이상의 프로파일링을 수행함으로써, 메모리 오브젝트의 접근 정보를 추출할 수 있다.When the memory profiler 112 according to an embodiment of the present invention receives a profiling request from the application 100, the memory object allocated to the memory device 114 by the application 100 accesses the memory device 114. Extract access information (access pattern). Here, the access information extracted for use in energy estimation includes at least one of the size of the memory object, the memory access size of the memory object (accessed volume), and the lifetime of the memory object. The memory profiler 112 may extract access information of a memory object by performing profiling one or more times.

하지만, 메모리 프로파일러(112)가 애플리케이션(100)으로부터 프로파일링 요청을 수신할 때, 메모리 오브젝트의 접근 정보를 직접 추출하는 것은 많은 시간과 에너지를 소요한다. 또한, 애플리케이션(100)의 워크로드의 크기 등이 변화하는 경우 메모리 오브젝트의 접근 정보도 변화하므로, 워크로드의 크기 등이 변화할 때마다 메모리 오브젝트의 접근 정보를 추출하는 것은 시간과 에너지 측면에서 비효율적이다.However, when the memory profiler 112 receives a profiling request from the application 100, directly extracting access information of the memory object takes a lot of time and energy. In addition, when the size of the workload of the application 100 changes, the access information of the memory object also changes, so extracting the access information of the memory object every time the size of the workload changes is inefficient in terms of time and energy. am.

이와 달리, 본 발명의 일 실시예에 따른 메모리 프로파일링 장치는 예측 모델을 이용하여 워크로드 변화에 따른 접근 정보의 변화 정도를 의미하는 스케일링 비율(scaling rate)을 예측하고, 워크로드가 변화하는 경우 메모리 오브젝트의 접근 정보에 스케일링 비율을 적용함으로써 변화된 워크로드에 대한 메모리 오브젝트의 접근 정보를 예측할 수 있다. 그리고 LSR 모델과의 차별화를 위해 새로운 예측 모델을 이용한다. 이를 통해, 메모리 오브젝트의 접근 정보를 추출하는 데 드는 시간과 에너지 소모를 줄이되, 특히 예측 모델을 통해 접근 정보를 더 정확하게 예측할 수 있다.In contrast, the memory profiling device according to an embodiment of the present invention uses a prediction model to predict a scaling rate, which means the degree of change in access information according to workload changes, and when the workload changes By applying a scaling ratio to the memory object's access information, the memory object's access information for a changed workload can be predicted. And a new prediction model is used to differentiate it from the LSR model. Through this, the time and energy consumption required to extract access information of memory objects is reduced, and access information can be predicted more accurately, especially through a prediction model.

도 2는 본 발명의 일 실시예에 따른 메모리 프로파일링 장치의 구성도이다.Figure 2 is a configuration diagram of a memory profiling device according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 메모리 프로파일링 장치(20)는 추출부(200), 입력부(210), 획득부(220) 및 예측부(230)를 포함할 수 있다. 메모리 프로파일링 장치(20)는 애플리케이션의 워크로드 변화에 따른 메모리 오브젝트의 접근 정보를 예측하기 위한 장치이다.Referring to FIG. 2 , the memory profiling device 20 according to an embodiment of the present invention may include an extraction unit 200, an input unit 210, an acquisition unit 220, and a prediction unit 230. The memory profiling device 20 is a device for predicting access information of memory objects according to changes in the workload of an application.

추출부(200)는 애플리케이션에 의해 할당된 메모리 오브젝트의 접근 정보를 추출하는 구성요소다. The extraction unit 200 is a component that extracts access information of a memory object allocated by an application.

본 발명의 일 실시예에 의하면, 추출부(200)는 메모리 오브젝트가 메모리 디바이스에 할당되었을 때 소요되는 에너지 소모량과 관련된 접근 정보들을 추출한다. 여기서, 에너지 소모량 추정에 이용하기 위한 접근 정보는 메모리 오브젝트의 크기, 메모리 오브젝트의 메모리 접근 크기 및 메모리 오브젝트의 수명 중 적어도 하나를 포함한다. According to one embodiment of the present invention, the extraction unit 200 extracts access information related to the amount of energy consumed when a memory object is allocated to a memory device. Here, the access information used to estimate energy consumption includes at least one of the size of the memory object, the memory access size of the memory object, and the lifespan of the memory object.

구체적인 추출 과정으로써, 추출부(200)는 메모리 오브젝트의 접근 정보를 두 단계에 걸쳐 추출할 수 있다. 첫 번째 단계는 추출부(200)가 메모리 오브젝트의 식별자를 오브젝트-레벨에서 추출하는 단계다. 두 번째 단계는 추출부(200)가 메모리 오브젝트의 크기, 메모리 접근 크기 및 수명 시간 중 적어도 하나를 명령어-레벨에서 추출하는 단계다. 더 자세한 내용은 도 4에서 설명한다.As a specific extraction process, the extraction unit 200 can extract access information of a memory object in two steps. The first step is where the extraction unit 200 extracts the identifier of the memory object at the object level. The second step is a step in which the extraction unit 200 extracts at least one of the size, memory access size, and life time of the memory object at the instruction-level. More details are described in Figure 4.

입력부(210)는 접근 정보를 학습된 예측 모델에 입력하는 구성요소다. The input unit 210 is a component that inputs access information into a learned prediction model.

획득부(220)는 학습된 예측 모델로부터 메모리 오브젝트의 스케일링 비율을 획득하는 구성요소다. The acquisition unit 220 is a component that acquires the scaling ratio of the memory object from the learned prediction model.

예측 모델은 메모리 오브젝트의 접근 정보를 입력 받고, 메모리 오브젝트의 스케일링 비율(scaling rate)을 출력하도록 학습된 모델이다. The prediction model is a model learned to receive access information of a memory object as input and output the scaling rate of the memory object.

스케일링 비율이란 워크로드 변화에 따른 접근 정보의 변화 정도를 의미한다. 구체적으로, 다양한 워크로드에 따라 접근 정보가 변화되는 비율을 메모리 오브젝트의 접근 정보의 스케일링 비율이라고 한다. 스케일링 비율은 메모리 오브젝트의 크기에 대한 스케일링 비율, 메모리 접근 크기에 대한 스케일링 비율 및 수명에 대한 스케일링 비율 중 적어도 하나를 포함할 수 있다. 한편, 메모리 오브젝트들은 접근 정보들에 대해 다른 스케일링 비율을 가질 수 있다. The scaling ratio refers to the degree of change in access information according to workload changes. Specifically, the rate at which access information changes according to various workloads is called the scaling rate of access information of a memory object. The scaling ratio may include at least one of a scaling ratio for the size of the memory object, a scaling ratio for the memory access size, and a scaling ratio for the lifetime. Meanwhile, memory objects may have different scaling ratios for access information.

본 발명의 일 실시예에 의하면, 학습된 예측 모델은 학습 방법에 따라 선형 회귀(Linear Regression) 모델, K-최근접 이웃 회귀(K-Nearest Neighbor Regression) 모델 및 랜덤 포레스트 회귀(Random Forest Regression) 모델 중 어느 하나일 수 있다.According to an embodiment of the present invention, the learned prediction model is a Linear Regression model, a K-Nearest Neighbor Regression model, and a Random Forest Regression model depending on the learning method. It can be any one of them.

예측부(230)는 애플리케이션의 워크로드가 변화한 경우, 스케일링 비율을 접근 정보에 적용함으로써, 메모리 오브젝트의 스케일링된 접근 정보를 예측하는 구성요소다.The prediction unit 230 is a component that predicts scaled access information of a memory object by applying a scaling ratio to the access information when the workload of the application changes.

이로써, 메모리 프로파일링 장치(20)는 애플리케이션의 워크로드가 변화할 때, 변화된 워크로드에 따른 접근 정보를 다시 추출하는 것이 아니라 예측 모델을 통해 미리 구한 스케일링 비율을 이용함으로써 적은 시간 및 적은 에너지로도 메모리 오브젝트의 접근 정보를 예측할 수 있다. Accordingly, when the workload of an application changes, the memory profiling device 20 uses a scaling ratio obtained in advance through a prediction model rather than re-extracting access information according to the changed workload, thereby saving time and energy. Access information of memory objects can be predicted.

또한, 워크로드와 메모리 오브젝트의 접근 정보가 비선형관계를 포함한 다양한 관계에 있더라도 예측 모델을 이용함으로써, 워크로드 변화에 따른 메모리 오브젝트의 스케일링 비율 및 접근 정보를 정확하게 예측할 수 있다. 예측 모델의 종류에 대해서는 도 3a 및 도 3b에서 자세히 설명한다.In addition, even if the access information of the workload and the memory object are in various relationships, including non-linear relationships, by using a prediction model, the scaling ratio and access information of the memory object according to the workload change can be accurately predicted. The types of prediction models are explained in detail in FIGS. 3A and 3B.

도 3a는 본 발명의 일 실시예에 따른 메모리 프로파일링 과정을 설명하기 위해 예시한 도면이다.FIG. 3A is a diagram illustrating a memory profiling process according to an embodiment of the present invention.

도 3a를 참조하면, 메모리 프로파일링 장치는 애플리케이션으로부터 메모리 오브젝트에 대한 프로파일링 요청을 수신하면, 2 단계 메모리 프로파일링 과정을 수행함으로써, 메모리 오브젝트의 접근 정보를 추출한다. 여기서, 접근 정보는 메모리 오브젝트의 크기, 메모리 오브젝트의 메모리 접근 크기 및 메모리 오브젝트의 수명 중 적어도 하나를 포함한다.Referring to FIG. 3A, when a memory profiling device receives a profiling request for a memory object from an application, it extracts access information of the memory object by performing a two-step memory profiling process. Here, the access information includes at least one of the size of the memory object, the memory access size of the memory object, and the lifespan of the memory object.

도 3b는 본 발명의 일 실시예에 따른 예측 모델의 학습 및 예측 모델을 이용한 에너지 소모량 추정 과정을 설명하기 위해 예시한 도면이다.Figure 3b is a diagram illustrating the process of learning a prediction model and estimating energy consumption using the prediction model according to an embodiment of the present invention.

도 3b를 참조하면, 메모리 프로파일링 장치가 메모리 오브젝트의 접근 정보에 기초하여 예측 모델을 학습시키고, 학습된 예측 모델을 이용하여 접근 정보를 예측하며, 최종적으로 메모리 오브젝트의 에너지 소모량을 추정하는 과정이 순서대로 도시되어 있다.Referring to Figure 3b, the memory profiling device trains a prediction model based on the access information of the memory object, predicts the access information using the learned prediction model, and finally estimates the energy consumption of the memory object. They are shown in order.

이하에서, 예측 모델의 구체적인 학습 과정을 설명한다.Below, the specific learning process of the prediction model is explained.

메모리 프로파일링 장치는 학습용 메모리 오브젝트들에 대해 접근 정보들을 추출한다. 여기서, 접근 정보들은 에너지 추정과 관련된 정보들을 의미한다. The memory profiling device extracts access information about learning memory objects. Here, access information refers to information related to energy estimation.

이후, 메모리 프로파일링 장치는 워크로드를 변화시키고, 변화된 워크로드에 따라 스케일링된 학습용 메모리 오브젝트들의 접근 정보들을 추출한다. Afterwards, the memory profiling device changes the workload and extracts access information of learning memory objects scaled according to the changed workload.

메모리 프로파일링 장치는 위의 정보들을 이용하여 메모리 오브젝트들의 스케일링 비율들을 구할 수 있다. 구체적으로, 메모리 프로파일링 장치는 워크로드 크기 변화에 따른 메모리 오브젝트의 접근 정보 변화를 의미하는 스케일링 비율을 메모리 오브젝트별로 연산하여 구한다.The memory profiling device can obtain scaling ratios of memory objects using the above information. Specifically, the memory profiling device calculates and obtains a scaling ratio for each memory object, which indicates the change in access information of the memory object according to the change in workload size.

이후, 메모리 프로파일링 장치는 학습용 메모리 오브젝트의 접근 정보 및 스케일링 비율을 예측 모델에 학습시킨다. 예측 모델이 메모리 오브젝트의 접근 정보와 스케일링 비율 간 관계를 학습하는 것이다. 예측 모델의 학습 데이터는 메모리 오브젝트의 접근 정보 및 스케일링 비율이 된다. Afterwards, the memory profiling device trains the prediction model on the access information and scaling ratio of the learning memory object. The prediction model learns the relationship between access information of memory objects and scaling ratio. The training data of the prediction model becomes the access information and scaling ratio of the memory object.

본 발명의 일 실시예에 의하면, 예측 모델은 메모리 오브젝트의 접근 정보를 입력 받아 스케일링 비율을 출력하도록 학습될 때, 메모리 오브젝트의 접근 정보들 사이의 상관 관계도 함께 학습한다. 여기서, 접근 정보 간 상관 관계는 하나의 접근 정보가 변화할 때 다른 접근 정보에 영향을 미치는지 여부를 의미한다. 예를 들어, 메모리 오브젝트의 접근 정보 중 메모리 접근 크기와 수명 간에는 양의 상관 관계가 있음을 의미한다. 다시 말하면, 메모리 오브젝트의 메모리 접근 크기가 클수록 수명도 길다는 것을 의미한다. 반면, 메모리 오브젝트의 크기는 다른 접근 정보와 상관 관계에 있지 않다. 예측 모델은 메모리 오브젝트의 접근 정보와 스케일링 비율 간 관계뿐만 아니라 메모리 오브젝트의 접근 정보들 간 상관 관계를 함께 학습할 수 있다.According to one embodiment of the present invention, when the prediction model is trained to receive access information of a memory object and output a scaling ratio, it also learns the correlation between the access information of the memory object. Here, the correlation between access information means whether a change in one access information affects other access information. For example, it means that there is a positive correlation between memory access size and lifespan among the access information of a memory object. In other words, the larger the memory access size of a memory object, the longer its lifespan. On the other hand, the size of the memory object is not correlated with other access information. The prediction model can learn not only the relationship between access information and scaling ratio of memory objects, but also the correlation between access information of memory objects.

이하에서는, 예측 모델의 종류를 설명한다. 본 발명의 일 실시예에 따른 예측 모델은 선형 회귀 모델, K-최근접 이웃 회귀 모델 및 랜덤 포레스트 회귀 모델 중 어느 하나일 수 있다.Below, types of prediction models are described. The prediction model according to an embodiment of the present invention may be any one of a linear regression model, a K-nearest neighbor regression model, and a random forest regression model.

선형 회귀 모델은 애플리케이션의 워크로드와 메모리 오브젝트의 접근 정보가 선형 관계에 있는 것을 전제로, 워크로드 변화에 따라 접근 정보도 선형적으로 변화하는 것으로 추정하는 모델이다. 워크로드와 학습용 메모리 오브젝트들의 접근 정보들 간 스케일링 비율들을 선형 회귀 방식으로 학습한다. The linear regression model is a model that assumes that the application workload and access information of memory objects have a linear relationship, and that access information changes linearly as the workload changes. Scaling ratios between the workload and access information of learning memory objects are learned using a linear regression method.

본 발명의 일 실시예에 의하면, 선형 회귀 모델은 메모리 오브젝트별로 선형 회귀를 적용하거나 메모리 오브젝트의 접근 정보별로 선형 회귀를 적용할 수 있다. According to an embodiment of the present invention, the linear regression model may apply linear regression for each memory object or may apply linear regression for each access information of the memory object.

선형 회귀 모델은 데이터 세트들 사이에 존재하는 선형 접근 정보들을 이용하여 스케일링 비율을 예측하므로, 접근 정보들이 선형 관계에 있을 때, 스케일링 비율의 예측 정확도가 높다. 또한, 선형 회귀 모델에서는 스케일링 비율이 오직 선형 접근 정보들에 기초하여 예측되므로, 접근 정보들 사이의 관계가 복잡하지 않고 가벼운 예측 모델이라는 특성을 가진다. 다만, 워크로드의 메모리 오브젝트의 접근 정보들 사이에 상호관계가 존재한다면, 선형 회귀 모델은 스케일링 비율을 정확하게 예측하지 못한다. 따라서, 선형 회귀 모델은 다양한 메모리 오브젝트의 접근 정보들을 예측하는 데 적합하지는 않다.The linear regression model predicts the scaling ratio using linear access information that exists between data sets, so when the access information has a linear relationship, the prediction accuracy of the scaling ratio is high. Additionally, in the linear regression model, the scaling ratio is predicted based only on linear access information, so the relationship between access information is not complicated and it has the characteristics of a light prediction model. However, if there is a correlation between the access information of the memory object of the workload, the linear regression model cannot accurately predict the scaling ratio. Therefore, the linear regression model is not suitable for predicting access information of various memory objects.

K-최근접 이웃 회귀 모델은 존재하는 데이터들 중 가장 최근의 K 번째 데이터들의 평균으로부터 새로운 데이터를 예측하는 모델이다. k 번째까지의 학습용 메모리 오브젝트들의 스케일링 비율의 평균을 학습하는 것이다. K-최근접 이웃 회귀 모델은 워크로드 변화에 따라 각 메모리 오브젝트들의 스케일링 비율이 제각각인 경우, k 번째까지의 메모리 오브젝트들의 스케일링 비율을 평균한 값을 출력하도록 학습된 모델이다.The K-nearest neighbor regression model is a model that predicts new data from the average of the K most recent data among existing data. The average of the scaling ratios of up to k learning memory objects is learned. The K-nearest neighbor regression model is a model trained to output the average of the scaling ratios of up to the kth memory objects when the scaling ratios of each memory object are different depending on the workload change.

K-NNR 모델은 최근접 이웃 데이터의 개수에 따라 예측 정확도가 달라진다. k 값이 작을 경우, 데이터의 지엽적 특성에 오버피팅될 수있다. 반대로, k 값이 클 경우, K-NNR 모델은 언더피팅에 의해 과도하게 일반화될 수 있다. 예측 정확도 관점에서, 이웃한 메모리 오브젝트들 사이에 상호관계가 존재할 때, K-NNR 모델에 따른 예측 정확도는 높아진다. K-NNR 모델은 애플리케이션 내 메모리 오브젝트들 사이의 상호관계를 증명하고, 스케일링 비율을 예측할 수 있다. 또한, K-NNR 모델은 선형 회귀 모델과 유사하게, 복잡한 관계에 있는 메모리 오브젝트들로부터 스케일링 비율을 예측하는 것이 아니라 k 번째 이웃들을 이용하여 스케일링 비율을 예측하기 때문에, K-NNR 모델은 가벼운 모델일 수 있다.The K-NNR model's prediction accuracy varies depending on the number of nearest neighbor data. If the k value is small, there may be overfitting to local characteristics of the data. Conversely, when the k value is large, the K-NNR model may be overgeneralized due to underfitting. From a prediction accuracy perspective, when there is a correlation between neighboring memory objects, the prediction accuracy according to the K-NNR model increases. The K-NNR model can prove the correlation between memory objects in an application and predict the scaling ratio. In addition, similar to the linear regression model, the K-NNR model predicts the scaling ratio using the k-th neighbors rather than predicting the scaling ratio from memory objects in complex relationships, so the K-NNR model is a lightweight model. You can.

랜덤 포레스트 회귀 모델은 각 데이터들이 가진 속성들로부터 패턴을 찾아내서 결과를 출력할 수 있도록 하는 지도학습 머신러닝 모델이다. 학습 데이터 중 일부를 임의로 추출하여 트리를 만든다. 일부를 추출하는 것을 배깅(bagging)이라 하고, 데이터들의 특징(feature)들을 제한하여 구성된 트리를 이용하여 결과를 예측한다. 즉, 학습용 메모리 오브젝트들을 이용하여 트리를 구성하고, 트리를 이용하여 할당된 메모리 오브젝트의 스케일링 비율을 예측한다.The random forest regression model is a supervised machine learning model that finds patterns from the properties of each data and outputs the results. A tree is created by randomly extracting some of the learning data. Extracting part of the data is called bagging, and the result is predicted using a tree constructed by limiting the features of the data. That is, a tree is constructed using learning memory objects, and the scaling ratio of allocated memory objects is predicted using the tree.

본 발명의 일 실시예에 의하면, 예측 모델이 랜덤 포레스트 회귀(RFR) 모델인 경우, 예측 모델의 정확성을 위해 RFR을 구성하는 트리(tree) 수도 고려되어야 한다. 예측 모델의 정확도는 트리의 수에 따라 다르기 때문에 각 애플리케이션은 트리의 수에 따라 정확도가 포화되는 지점을 찾아 학습 과정에 반영한다. 이를 위해, 학습된 예측 모델의 트리의 수는 학습용 메모리 오브젝트들의 스케일링 비율들에 기초하여 결정될 수 있다. 구체적으로, 학습된 예측 모델의 트리의 수는 학습용 메모리 오브젝트들의 스케일링 비율들이 불규칙적일수록 높게 결정되는 것일 수 있다. 이는, 워크로드와 메모리 오브젝트의 접근 정보 간 관계가 복잡할수록 트리의 수를 증가시킴으로써, 예측 모델의 학습량을 늘려 스케일링 비율 및 접근 정보의 예측 정확도를 높이기 위한 것이다.According to an embodiment of the present invention, when the prediction model is a random forest regression (RFR) model, the number of trees constituting the RFR must be considered for the accuracy of the prediction model. Since the accuracy of the prediction model varies depending on the number of trees, each application finds the point where accuracy saturates depending on the number of trees and reflects it in the learning process. To this end, the number of trees of the learned prediction model may be determined based on the scaling ratios of memory objects for learning. Specifically, the number of trees of the learned prediction model may be determined to be higher as the scaling ratios of learning memory objects are more irregular. This is to increase the prediction accuracy of the scaling ratio and access information by increasing the learning amount of the prediction model by increasing the number of trees as the relationship between the workload and the access information of the memory object becomes more complex.

학습이 완료된 예측 모델은 메모리 오브젝트의 접근 정보를 입력 받으면 메모리 오브젝트의 스케일링 비율을 출력한다.When the trained prediction model receives access information of a memory object, it outputs the scaling ratio of the memory object.

도 4는 본 발명의 일 실시예에 따른 메모리 오브젝트의 접근 정보 추출 과정을 설명하기 위한 도면이다.Figure 4 is a diagram for explaining a process of extracting access information of a memory object according to an embodiment of the present invention.

도 4를 참조하면, 메모리 프로파일링 장치는 빠른 단계와 느린 단계를 포함하는 두 단계를 거쳐 학습용 메모리 오브젝트의 접근 정보를 추출한다. 이를 2 단계 메모리 프로파일링(Two Pass Memory Profiling; TPMP)이라 한다.Referring to Figure 4, the memory profiling device extracts access information of a learning memory object through two stages including a fast stage and a slow stage. This is called Two Pass Memory Profiling (TPMP).

첫 번째 단계로써, 메모리 프로파일링 장치는 학습용 메모리 오브젝트에 대해 1차 프로파일링을 수행한다. 1차 프로파일링은 첫 번째 단계로서, 빠른 단계에 해당한다. 빠른 단계에서, 메모리 프로파일링 장치는 애플리케이션의 서로 다른 변수들을 구분하고, 각 변수의 오브젝트들을 해당 변수와 맵핑(mapping)하기 위해 함수 호출 스택의 해시 값(hash value)을 추출한다. 여기서, 해시 값은 메모리 오브젝트의 식별자(identifier)에 해당한다.As a first step, the memory profiling device performs primary profiling on the learning memory object. Primary profiling is the first step and corresponds to the quick step. In a quick step, the memory profiling device extracts the hash value of the function call stack to distinguish different variables in the application and map the objects of each variable to the corresponding variable. Here, the hash value corresponds to the identifier of the memory object.

구체적으로, 메모리 프로파일링 장치는 래퍼 라이브러리(wrapper library)를 이용하여 malloc, calloc, realloc 함수와 같은 동적 할당 함수를 가로챈 다음, 동적 할당 함수의 호출 스택을 문자열로 저장하여 이를 해싱(hashing)한다. 메모리 프로파일링 장치는 모든 메모리 오브젝트들의 해시 값을 추출하여 결과 파일에 쓰면, 이후 오프라인 작업(offline processing)이 수행되면서 2차 프로파일링을 수행할 주요 변수들을 선정하여 해시 값을 파일에 나열한다.Specifically, the memory profiling device intercepts dynamic allocation functions such as malloc, calloc, and realloc functions using a wrapper library, then stores the call stack of the dynamic allocation function as a string and hashes it. . The memory profiling device extracts the hash values of all memory objects and writes them to the result file. Then, offline processing is performed, key variables for secondary profiling are selected, and the hash values are listed in the file.

이후, 메모리 프로파일링 장치는 학습용 메모리 오브젝트에 대해 2차 프로파일링을 수행한다. 2차 프로파일링은 두 번째 단계으로서, 느린 단계에 해당한다. 느린 단계에서, 메모리 프로파일링 장치는 주요 변수들을 핀 툴(PIN tool)을 이용하여 인스트럭션 단위에서 접근 정보에 대해 프로파일링을 수행한다. 이때, 핀 툴 라이브러리를 통해 메모리 프로파일링 장치는 에너지 추정에 필요한 접근 정보들만을 추출하고, 에너지 추정에 관련이 없는 접근 정보들을 생략할 수 있다.Afterwards, the memory profiling device performs secondary profiling on the learning memory object. Secondary profiling is the second stage and corresponds to the slow stage. In the slow stage, the memory profiling device performs profiling of access information on key variables at the instruction level using a PIN tool. At this time, through the pin tool library, the memory profiling device can extract only the access information necessary for energy estimation and omit access information unrelated to energy estimation.

예를 들면, 메모리 프로파일링 장치는 Intel Pin tool을 이용하여 런타임에 모든 학습용 메모리 오브젝트로들의 접근에 대해 프로파일링을 수행할 수 있으며, 이 경우 학습용 메모리 오브젝트들에 대한 프로파일링 결과를 첫 번째 단계에서 생성한 해시 테이블을 참조하여 해당 오브젝트가 속한 학습용 메모리 오브젝트의 결과로 저장할 수 있다.For example, the memory profiling device can use the Intel Pin tool to profile access to all learning memory objects at runtime. In this case, the profiling results for learning memory objects are profiled in the first step. You can refer to the created hash table and save the result of the learning memory object to which the object belongs.

두 번째 단계로써, 메모리 프로파일링 장치는 학습용 메모리 오브젝트에 대해 2차 프로파일링을 수행하여 학습용 메모리 오브젝트의 크기, 메모리 접근 크기 및 수명 중 적어도 하나를 추출한다.As a second step, the memory profiling device performs secondary profiling on the learning memory object to extract at least one of the size, memory access size, and lifespan of the learning memory object.

메모리 프로파일링 장치는 추출된 접근 정보를 이용하여 학습용 메모리 오브젝트가 메모리 디바이스에 할당되었을 때 예측되는 에너지 소비량을 결정한다. 구체적으로, 메모리 프로파일링 장치는 학습용 메모리 오브젝트로 인해 메모리 디바이스 상에서 수행되는 명령어에 따라 소비되는 에너지 정보를 결정하고, 접근 정보 및 에너지 정보를 이용하여 에너지 소비량을 결정한다.The memory profiling device uses the extracted access information to determine the predicted energy consumption when a learning memory object is allocated to a memory device. Specifically, the memory profiling device determines energy information consumed according to instructions performed on a memory device due to a learning memory object, and determines energy consumption using access information and energy information.

한편, 본 명세서에서는 메모리 프로파일링 장치가 학습용 메모리 오브젝트의 접근 정보를 추출하기 위해 첫 번째 단계 및 두 번째 단계를 통해 프로파일링하는 Two-pass 메모리 프로파일링을 사용하는 것으로 설명하였으나, 학습용 메모리 오브젝트의 접근 정보를 추출하기 위해 다른 메모리 프로파일링 기법을 사용할 수도 있다. Meanwhile, in this specification, the memory profiling device is described as using two-pass memory profiling that profiles through the first and second steps to extract access information of the learning memory object, but access to the learning memory object You can also use other memory profiling techniques to extract information.

도 5a 및 도 5b는 본 발명과 종래기술의 메모리 프로파일링 결과를 비교한 도면이다.Figures 5a and 5b are diagrams comparing memory profiling results of the present invention and the prior art.

도 5a를 참조하면, 종래 기술인 선형 스케일링 비율 모델과 본 발명인 메모리 프로파일링 장치 간 에너지 추정 정확도를 애플리케이션 별로 비교한 그래프가 도시되어 있다. 그래프는 여러 애플리케이션에서 메모리 프로파일링 장치에 따른 에너지 소모량 추정의 예측 정확도가 종래 기술보다 높다는 것을 보여준다.Referring to FIG. 5A, a graph comparing the energy estimation accuracy by application between the linear scaling ratio model of the prior art and the memory profiling device of the present invention is shown. The graph shows that the prediction accuracy of energy consumption estimation according to the memory profiling device is higher than that of the prior art in several applications.

도 5b를 참조하면, 종래 기술인 선형 스케일링 비율 모델과 본 발명이 메모리 프로파일링 장치 간 메모리 오브젝트의 접근 정보 예측 정확도를 애플리케이션 별로 비교한 그래프가 도시되어 있다. 메모리 프로파일링 장치는 예측 모델로부터 구한 스케일링 비율을 통해 접근 정보를 예측한 것이고, 종래기술은 선형 스케일링 비율을 통해 접근 정보를 예측한 것이다.Referring to FIG. 5B, a graph is shown comparing the accuracy of predicting access information of a memory object by application between the linear scaling ratio model of the prior art and the memory profiling device of the present invention. The memory profiling device predicts access information through a scaling ratio obtained from a prediction model, and the prior art predicts access information through a linear scaling ratio.

예측 모델이 RFR 모델인 경우, 메모리 프로파일링 장치의 접근 정보 예측 정확도는 평균적으로 92.85 퍼센트이며, 에너지 소모량 추정 정확도는 91.3 퍼센트이다.When the prediction model is an RFR model, the access information prediction accuracy of the memory profiling device is 92.85 percent on average, and the energy consumption estimation accuracy is 91.3 percent.

도 6은 본 발명의 일 실시예에 따른 메모리 프로파일링 과정을 설명하기 위해 예시한 순서도다.Figure 6 is a flowchart illustrating a memory profiling process according to an embodiment of the present invention.

도 6을 참조하면, 메모리 프로파일링 장치는 애플리케이션에 의해 할당된 메모리 오브젝트의 접근 정보를 추출한다(S600). 여기서, 접근 정보는 메모리 오브젝트의 크기(size), 메모리 접근 크기(accessed volume) 및 수명(lifetime) 중 적어도 하나를 포함한다.Referring to FIG. 6, the memory profiling device extracts access information of the memory object allocated by the application (S600). Here, the access information includes at least one of the size, accessed volume, and lifetime of the memory object.

구체적인 추출 과정은, 메모리 오브젝트의 식별자를 오브젝트-레벨에서 추출하는 과정 및 메모리 오브젝트의 크기, 메모리 접근 크기 및 수명 시간 중 적어도 하나를 명령어-레벨에서 추출하는 과정을 포함하여 두 단계로 수행된다.The specific extraction process is performed in two steps, including extracting the identifier of the memory object at the object level and extracting at least one of the size, memory access size, and lifetime time of the memory object at the instruction level.

메모리 프로파일링 장치는 접근 정보를 학습된 예측 모델에 입력한다(S602). 여기서, 예측 모델은 학습용 메모리 오브젝트들의 접근 정보들을 입력 받고 출력 스케일링 비율을 출력하도록 학습된 것이다. 예측 모델은 학습 종류에 따라 선형 회귀(Linear Regression) 모델, K-최근접 이웃 회귀(K-Nearest Neighbor Regression) 모델 및 랜덤 포레스트 회귀(Random Forest Regression) 모델 중 어느 하나일 수 있다. 만약 학습된 예측 모델이 랜덤 포레스트 회귀 모델인 경우, 학습된 예측 모델의 트리(tree)의 수는 학습용 메모리 오브젝트들의 스케일링 비율들에 기초하여 결정될 수 있다. 구체적으로는, 학습용 메모리 오브젝트들의 스케일링 비율들이 불규칙적일수록 학습된 예측 모델의 트리의 수가 높게 결정될 수 있다. The memory profiling device inputs access information into the learned prediction model (S602). Here, the prediction model is trained to receive access information of learning memory objects and output an output scaling ratio. Depending on the type of learning, the prediction model may be one of a Linear Regression model, K-Nearest Neighbor Regression model, and Random Forest Regression model. If the learned prediction model is a random forest regression model, the number of trees of the learned prediction model may be determined based on the scaling ratios of memory objects for learning. Specifically, the more irregular the scaling ratios of learning memory objects are, the higher the number of trees of the learned prediction model can be determined.

메모리 프로파일링 장치는 예측 모델로부터 메모리 오브젝트의 스케일링 비율을 획득한다(S604).The memory profiling device obtains the scaling ratio of the memory object from the prediction model (S604).

메모리 프로파일링 장치는 애플리케이션의 워크로드가 변화한 경우, 스케일링 비율을 접근 정보에 적용함으로써, 메모리 오브젝트의 스케일링된 접근 정보를 예측한다(S606).When the workload of an application changes, the memory profiling device predicts the scaled access information of the memory object by applying the scaling ratio to the access information (S606).

추후, 메모리 프로파일링 장치는 스케일링 비율을 이용하여 획득한 스케일링된 접근 정보로부터 메모리 오브젝트의 에너지 소모량을 추정할 수 있다.Later, the memory profiling device can estimate the energy consumption of the memory object from the scaled access information obtained using the scaling ratio.

도 6에서는 과정 S600 내지 과정 S606을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 6에 기재된 순서를 변경하여 실행하거나 과정 S600 내지 과정 S606 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 6은 시계열적인 순서로 한정되는 것은 아니다.In Figure 6, processes S600 to S606 are described as being sequentially executed, but this is merely an exemplary explanation of the technical idea of an embodiment of the present invention. In other words, a person skilled in the art to which an embodiment of the present invention pertains can change the sequence shown in FIG. 6 and perform one of steps S600 to S606 without departing from the essential characteristics of the embodiment of the present invention. Since the above processes can be applied in various modifications and variations by executing them in parallel, FIG. 6 is not limited to a time series order.

한편, 도 6에 도시된 과정들은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 즉, 이러한 컴퓨터가 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등의 비일시적인(non-transitory) 매체를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Meanwhile, the processes shown in FIG. 6 can be implemented as computer-readable codes on a computer-readable recording medium. Computer-readable recording media include all types of recording devices that store data that can be read by a computer system. In other words, such computer-readable recording media include non-transitory media such as ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. Additionally, computer-readable recording media can be distributed across networked computer systems so that computer-readable code can be stored and executed in a distributed manner.

또한, 본 발명의 구성 요소들은 메모리, 프로세서, 논리 회로, 룩-업 테이블(look-up table) 등과 같은 직접 회로 구조를 사용할 수 있다. 이러한 직접 회로 구조는 하나 이상의 마이크로 프로세서 또는 다른 제어 장치의 제어를 통해 본 명세서에 기술 된 각각의 기능을 실행한다. 또한, 본 발명의 구성 요소들은 특정 논리 기능을 수행하기 위한 하나 이상의 실행 가능한 명령을 포함하고 하나 이상의 마이크로 프로세서 또는 다른 제어 장치에 의해 실행되는 프로그램 또는 코드의 일부에 의해 구체적으로 구현될 수 있다. 또한, 본 발명의 구성 요소들은 각각의 기능을 수행하는 중앙 처리 장치(CPU), 마이크로 프로세서 등을 포함하거나 이에 의해 구현될 수 있다. 또한, 본 발명의 구성 요소들은 하나 이상의 프로세서에 의해 실행되는 명령어들을 하나 이상의 메모리에 저장할 수 있다.Additionally, the components of the present invention may use direct circuit structures such as memory, processor, logic circuit, look-up table, etc. These integrated circuit structures execute each function described herein through control of one or more microprocessors or other control devices. Additionally, the components of the present invention may be specifically implemented by a program or portion of code that includes one or more executable instructions for performing specific logical functions and is executed by one or more microprocessors or other control devices. Additionally, the components of the present invention may include or be implemented by a central processing unit (CPU), a microprocessor, etc. that perform their respective functions. Additionally, the components of the present invention may store instructions executed by one or more processors in one or more memories.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely an illustrative explanation of the technical idea of the present embodiment, and those skilled in the art will be able to make various modifications and variations without departing from the essential characteristics of the present embodiment. Accordingly, the present embodiments are not intended to limit the technical idea of the present embodiment, but rather to explain it, and the scope of the technical idea of the present embodiment is not limited by these examples. The scope of protection of this embodiment should be interpreted in accordance with the claims below, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of rights of this embodiment.

20: 메모리 프로파일링 장치 200: 추출부
210: 입력부 220: 획득부
230: 예측부
20: memory profiling device 200: extractor
210: input unit 220: acquisition unit
230: prediction unit

Claims (14)

워크로드(workload) 변화에 따른 메모리 오브젝트의 접근 정보(access pattern)를 예측하는 메모리 프로파일링(profiling) 장치의 동작 방법에 있어서,
애플리케이션에 의해 할당된 메모리 오브젝트의 접근 정보를 추출하는 과정;
상기 접근 정보를 학습된 예측 모델에 입력하는 과정;
상기 예측 모델로부터 상기 메모리 오브젝트의 스케일링 비율(scaling rate)을 획득하는 과정; 및
상기 애플리케이션의 워크로드가 변화한 경우, 상기 스케일링 비율을 상기 접근 정보에 적용함으로써, 상기 메모리 오브젝트의 스케일링된 접근 정보를 예측하는 과정
을 포함하는 메모리 프로파일링 장치의 동작 방법.
In a method of operating a memory profiling device that predicts access patterns of memory objects according to workload changes,
A process of extracting access information of a memory object allocated by an application;
A process of inputting the access information into a learned prediction model;
Obtaining a scaling rate of the memory object from the prediction model; and
When the workload of the application changes, the process of predicting scaled access information of the memory object by applying the scaling ratio to the access information.
A method of operating a memory profiling device comprising:
제1항에 있어서,
상기 접근 정보는,
상기 메모리 오브젝트의 크기(size), 메모리 접근 크기(accessed volume) 및 수명(lifetime) 중 적어도 하나를 포함하는 메모리 프로파일링 장치의 동작 방법.
According to paragraph 1,
The above access information is,
A method of operating a memory profiling device including at least one of size, accessed volume, and lifetime of the memory object.
제1항에 있어서,
상기 추출하는 과정은,
상기 메모리 오브젝트의 식별자를 오브젝트-레벨에서 추출하는 과정; 및
상기 메모리 오브젝트의 크기, 메모리 접근 크기 및 수명 시간 중 적어도 하나를 명령어-레벨에서 추출하는 과정
을 포함하는 메모리 프로파일링 장치의 동작 방법.
According to paragraph 1,
The extraction process is,
A process of extracting the identifier of the memory object at the object-level; and
A process of extracting at least one of the size, memory access size, and lifetime time of the memory object at the instruction-level
A method of operating a memory profiling device comprising:
제1항에 있어서,
상기 학습된 예측 모델은,
학습용 메모리 오브젝트들의 접근 정보들을 입력 받고 출력 스케일링 비율을 출력하도록 학습된 것인 메모리 프로파일링 장치의 동작 방법.
According to paragraph 1,
The learned prediction model is,
A method of operating a memory profiling device that is trained to receive access information of learning memory objects and output an output scaling ratio.
제1항에 있어서,
상기 학습된 예측 모델은,
선형 회귀(Linear Regression) 모델, K-최근접 이웃 회귀(K-Nearest Neighbor Regression) 모델 및 랜덤 포레스트 회귀(Random Forest Regression) 모델 중 어느 하나인 메모리 프로파일링 장치의 동작 방법.
According to paragraph 1,
The learned prediction model is,
A method of operating a memory profiling device that is one of a Linear Regression model, a K-Nearest Neighbor Regression model, and a Random Forest Regression model.
제1항에 있어서,
상기 학습된 예측 모델이 랜덤 포레스트 회귀 모델인 경우, 상기 학습된 예측 모델의 트리(tree)의 수는 학습용 메모리 오브젝트들의 스케일링 비율들에 기초하여 결정되는 것인 메모리 프로파일링 장치의 동작 방법.
According to paragraph 1,
When the learned prediction model is a random forest regression model, the number of trees of the learned prediction model is determined based on scaling ratios of memory objects for learning.
제6항에 있어서,
상기 학습된 예측 모델의 트리의 수는,
상기 학습용 메모리 오브젝트들의 스케일링 비율들이 불규칙적일수록 높게 결정되는 것인 메모리 프로파일링 장치의 동작 방법.
According to clause 6,
The number of trees of the learned prediction model is,
A method of operating a memory profiling device, wherein the more irregular the scaling ratios of the learning memory objects are, the higher they are determined.
워크로드 변화에 따른 메모리 오브젝트의 접근 정보를 예측하는 메모리 프로파일링 장치에 있어서,
애플리케이션에 의해 할당된 메모리 오브젝트의 접근 정보를 추출하는 추출부;
상기 접근 정보를 학습된 예측 모델에 입력하는 입력부;
상기 예측 모델로부터 상기 메모리 오브젝트의 스케일링 비율을 획득하는 획득부; 및
상기 애플리케이션의 워크로드가 변화한 경우, 상기 스케일링 비율을 상기 접근 정보에 적용함으로써, 상기 메모리 오브젝트의 스케일링된 접근 정보를 예측하는 예측부
를 포함하는 메모리 프로파일링 장치.
In a memory profiling device that predicts access information of memory objects according to workload changes,
an extraction unit that extracts access information of a memory object allocated by an application;
an input unit for inputting the access information into a learned prediction model;
an acquisition unit that obtains a scaling ratio of the memory object from the prediction model; and
When the workload of the application changes, a prediction unit that predicts the scaled access information of the memory object by applying the scaling ratio to the access information.
A memory profiling device including a.
제8항에 있어서,
상기 접근 정보는,
상기 메모리 오브젝트의 크기, 메모리 접근 크기 및 수명 중 적어도 하나를 포함하는 메모리 프로파일링 장치.
According to clause 8,
The above access information is,
A memory profiling device including at least one of a size, memory access size, and lifetime of the memory object.
제8항에 있어서,
상기 추출부는,
상기 메모리 오브젝트의 식별자를 오브젝트-레벨에서 추출하고, 상기 메모리 오브젝트의 크기, 메모리 접근 크기 및 수명 시간 중 적어도 하나를 명령어-레벨에서 추출하는 것인 메모리 프로파일링 장치.
According to clause 8,
The extraction unit,
A memory profiling device that extracts the identifier of the memory object at the object-level and extracts at least one of the size, memory access size, and lifetime time of the memory object at the instruction-level.
제8항에 있어서,
상기 학습된 예측 모델은,
학습용 메모리 오브젝트들의 접근 정보들을 입력 받고 출력 스케일링 비율을 출력하도록 학습된 것인 메모리 프로파일링 장치.
According to clause 8,
The learned prediction model is,
A memory profiling device that is trained to receive access information of learning memory objects and output an output scaling ratio.
제8항에 있어서,
상기 학습된 예측 모델은,
선형 회귀 모델, K-최근접 이웃 회귀 모델 및 랜덤 포레스트 회귀 모델 중 어느 하나인 메모리 프로파일링 장치.
According to clause 8,
The learned prediction model is,
A memory profiling device that is either a linear regression model, a K-nearest neighbor regression model, or a random forest regression model.
제8항에 있어서,
상기 학습된 예측 모델이 랜덤 포레스트 회귀 모델인 경우, 상기 학습된 예측 모델의 트리의 수는 학습용 메모리 오브젝트들의 스케일링 비율들에 기초하여 결정되는 것인 메모리 프로파일링 장치.
According to clause 8,
When the learned prediction model is a random forest regression model, the number of trees of the learned prediction model is determined based on scaling ratios of memory objects for learning.
제13항에 있어서,
상기 학습된 예측 모델의 트리의 수는,
상기 학습용 메모리 오브젝트들의 스케일링 비율들이 불규칙적일수록 높게 결정되는 것인 메모리 프로파일링 장치.
According to clause 13,
The number of trees of the learned prediction model is,
A memory profiling device in which the scaling ratios of the learning memory objects are determined to be higher as they become more irregular.
KR1020210008172A 2021-01-20 2021-01-20 Device and Method for Profiling Memory KR102644229B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210008172A KR102644229B1 (en) 2021-01-20 2021-01-20 Device and Method for Profiling Memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210008172A KR102644229B1 (en) 2021-01-20 2021-01-20 Device and Method for Profiling Memory

Publications (2)

Publication Number Publication Date
KR20220105453A KR20220105453A (en) 2022-07-27
KR102644229B1 true KR102644229B1 (en) 2024-03-06

Family

ID=82700989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210008172A KR102644229B1 (en) 2021-01-20 2021-01-20 Device and Method for Profiling Memory

Country Status (1)

Country Link
KR (1) KR102644229B1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102036182B1 (en) * 2018-02-07 2019-10-25 계명대학교 산학협력단 Method and system for detection of pedestrian crossing using a method of light weighted random forest classification by a soft target learning method

Also Published As

Publication number Publication date
KR20220105453A (en) 2022-07-27

Similar Documents

Publication Publication Date Title
Imani et al. Acam: Approximate computing based on adaptive associative memory with online learning
US20170017576A1 (en) Self-adaptive Cache Architecture Based on Run-time Hardware Counters and Offline Profiling of Applications
US8627018B2 (en) Automatic optimization for programming of many-core architectures
US20160328169A1 (en) Managed energy-efficient hybrid main memory systems
CN101611380A (en) Speculative throughput calculates
Wang et al. Graphcache: A caching system for graph queries
Bock et al. Analyzing the impact of useless write-backs on the endurance and energy consumption of PCM main memory
US20200364053A1 (en) Data structure-aware prefetching method and device on graphics processing unit
Tang et al. Improving read performance with online access pattern analysis and prefetching
US11513805B2 (en) Computer architecture with synergistic heterogeneous processors
Carvalho et al. Autonomous power management in mobile devices using dynamic frequency scaling and reinforcement learning for energy minimization
KR102644229B1 (en) Device and Method for Profiling Memory
Iwabuchi et al. NVM-based hybrid BFS with memory efficient data structure
Pala Using forecastHybrid Package to Ensemble Forecast Functions in the R
KR100938903B1 (en) Dynamic data allocation method on an application with irregular array access patterns in software controlled cache memory
Katsaragakis et al. Adjacent LSTM-Based Page Scheduling for Hybrid DRAM/NVM Memory Systems
US8427854B2 (en) Utilization of memory refresh cycles for pattern matching
Steinfeld et al. Low-power processors require effective memory partitioning
Kumar et al. Machine learning guided thermal management of Open Computing Language applications on CPU‐GPU based embedded platforms
Strobel et al. Combined MPSoC task mapping and memory optimization for low-power
Mahapatra et al. Support vector machine for frequently executed method prediction
Choi et al. Segment-aware energy-efficient management of heterogeneous memory system for ultra-low-power IoT devices
Rossi et al. Clustering-Based Numerosity Reduction for Cloud Workload Forecasting
Ashraf et al. Intra-application data-communication characterization
Ma et al. GATPS: An attention-based graph neural network for predicting SDC-causing instructions

Legal Events

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