KR102271324B1 - 하드웨어 가속기 제어 방법 및 장치 - Google Patents

하드웨어 가속기 제어 방법 및 장치 Download PDF

Info

Publication number
KR102271324B1
KR102271324B1 KR1020200179440A KR20200179440A KR102271324B1 KR 102271324 B1 KR102271324 B1 KR 102271324B1 KR 1020200179440 A KR1020200179440 A KR 1020200179440A KR 20200179440 A KR20200179440 A KR 20200179440A KR 102271324 B1 KR102271324 B1 KR 102271324B1
Authority
KR
South Korea
Prior art keywords
hardware accelerator
delay time
specific hardware
polling
setting
Prior art date
Application number
KR1020200179440A
Other languages
English (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 KR1020200179440A priority Critical patent/KR102271324B1/ko
Priority to PCT/KR2020/018800 priority patent/WO2022138995A1/ko
Application granted granted Critical
Publication of KR102271324B1 publication Critical patent/KR102271324B1/ko
Priority to US18/336,639 priority patent/US20230333889A1/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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

하드웨어 가속기 제어 방법 및 장치가 제공된다. 상기 방법은, 특정 하드웨어 가속기의 태스크 (task) 수행과 관련된 지연 시간을 설정하는 지연 시간 설정 단계; 중앙 처리 장치 (central processing unit; CPU)로 상기 특정 하드웨어 가속기에게 태스크 가속을 요청하는 것을 요청하는 경우, 상기 요청 시점부터 상기 설정된 지연 시간동안 슬립 (sleep) 상태로 전환하는 슬립 상태 전환 단계; 상기 지연 시간 이후 상기 슬립 상태에서 동작 상태로 전환하여 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하는 폴링 단계; 및 상기 폴링에 응답하여, 상기 CPU로부터 상기 폴링에 대응하는 결과 정보를 수신하는 결과 정보 수신 단계를 포함한다.

Description

하드웨어 가속기 제어 방법 및 장치 {Method and Device of controlling hardware accelerator}
본 발명은 하드웨어 가속기 제어 방법 및 장치에 관한 것이다.
하드웨어 가속기는 컴퓨팅의 일부 기능을 중앙 처리 장치 (central processing unit; CPU) 보다 더 빠르게 수행 가능한 하드웨어 장치를 의미한다. 이에, 상기 하드웨어 가속기는 작업 부하를 프로세싱하는 것을 돕는데 사용될 수 있다.
호스트 CPU는 이러한 하드웨어 가속기의 동작을 제어하여 프로세스 관리를 수행한다. 일반적으로, 상기 호스트 CPU는 하드웨어 가속기 코어의 상태 레지스터를 계속 감시하다 상태 변경이 감지되면 다음 연산을 위한 데이터를 업로드하는 등의 가속기 조작을 수행할 수 있다. 이를 위해, 상기 호스트 CPU는 폴링 (polling) 방식을 활용하여 빠르고 단순하게 가속기의 현재 상태를 검사할 수 있다. 이때, 호스트 CPU는 멀티태스킹이 가능한 환경에 기반하며, 이에 따라 동시에 여러 작업 (예: 선/후처리, 다른 시스템 태스크 등)을 수행하고 있을 수 있다.
다만, 이와 같은 폴링 방식은 CPU 사이클을 소모하는 바, 선/후처리나 다른 동작중인 프로그램의 성능 등 CPU 연산 속도에 영향을 주며, 이에 따라 전체 시스템의 성능을 떨어뜨리는 문제점이 있다.
공개특허공보 제10-2019-0050988호, 2019.05.14
본 발명이 해결하고자 하는 과제는 불필요한 폴링 동작을 최소화할 수 있는 하드웨어 가속기 제어 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 하드웨어 가속기 제어 방법은, 특정 하드웨어 가속기의 태스크 (task) 수행과 관련된 지연 시간을 설정하는 지연 시간 설정 단계; 중앙 처리 장치 (central processing unit; CPU)로 상기 특정 하드웨어 가속기에게 태스크 가속을 요청하는 것을 요청하는 경우, 상기 요청 시점부터 상기 설정된 지연 시간동안 슬립 (sleep) 상태로 전환하는 슬립 상태 전환 단계; 상기 지연 시간 이후 상기 슬립 상태에서 동작 상태로 전환하여 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하는 폴링 단계; 및 상기 폴링에 응답하여, 상기 CPU로부터 상기 폴링에 대응하는 결과 정보를 수신하는 결과 정보 수신 단계를 포함할 수 있다.
본 발명에 있어, 상기 지연 시간 설정 단계는, 상기 특정 하드웨어 가속기를 이용하는 시스템 잡 (job)으로부터 상기 특정 하드웨어 가속기의 설정 초기화 요청을 수신하는 단계; 상기 설정 초기화 요청에 따라, 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간을 결정하는 단계; 및 상기 시스템 잡으로 상기 특정 하드웨어 가속기의 설정 초기화 완료 메시지를 제공하는 단계를 포함할 수 있다.
일 예로, 상기 특정 하드웨어 가속기의 설정 초기화 요청이 상기 지연 시간의 자동 설정을 요청하는 경우, 상기 지연 시간 설정 단계는, 상기 CPU로 상기 특정 하드웨어 가속기에게 상기 지연 시간 측정을 위한 태스크의 가속을 요청하는 지연 시간 측정용 태스크 가속 요청 단계; 일정 시간 이후, 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하고, 상기 폴링에 대응하여 측정용 결과 정보를 수신하는 단계를 더 포함할 수 있다. 이때, 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간은 상기 수신된 측정용 결과 정보를 이용하여 결정될 수 있다.
다른 예로, 상기 특정 하드웨어 가속기의 설정 초기화 요청이 상기 지연 시간의 수동 설정을 요청하는 경우, 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간은 사용자로부터 입력된 입력 정보, 또는 상기 하드웨어 가속기를 위해 설정된 최소 지연 시간 정보 중 적어도 하나 이상을 이용하여 결정될 수 있다.
본 발명에 있어, 상기 특정 하드웨어 가속기는 그래픽 처리 장치 (graphic processing unit; GPU)를 포함하고, 상기 특정 하드웨어 가속기의 태스크 수행은 딥러닝 알고리즘 구현을 포함할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른 하드웨어 가속기 제어 장치는, 특정 하드웨어 가속기의 태스크 (task) 수행과 관련된 지연 시간을 설정하는 지연 시간 설정부; 중앙 처리 장치 (central processing unit; CPU)로 상기 특정 하드웨어 가속기에게 태스크 가속을 요청하는 것을 요청하는 경우, 상기 요청 시점부터 상기 설정된 지연 시간동안 슬립 (sleep) 상태로 전환하는 슬립 상태 전환부; 상기 지연 시간 이후 상기 슬립 상태에서 동작 상태로 전환하여 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하는 폴링부; 및 상기 폴링에 응답하여, 상기 CPU로부터 상기 폴링에 대응하는 결과 정보를 수신하는 결과 정보 수신부를 포함할 수 있다.
본 발명에 있어, 상기 지연 시간 설정부는, 상기 특정 하드웨어 가속기를 이용하는 시스템 잡 (job)으로부터 가속기의 설정 초기화 요청을 수신하고, 상기 설정 초기화 요청에 따라, 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간을 결정하고, 상기 시스템 잡으로 상기 특정 하드웨어 가속기의 설정 초기화 완료 메시지를 제공하도록 설정될 수 있다.
일 예로, 상기 특정 하드웨어 가속기의 설정 초기화 요청이 상기 지연 시간의 자동 설정을 요청하는 경우, 상기 지연 시간 설정부는, 상기 CPU로 상기 특정 하드웨어 가속기에게 상기 지연 시간 측정을 위한 태스크의 가속을 요청하고, 일정 시간 이후, 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하고, 상기 폴링에 대응하여 측정용 결과 정보를 수신하도록 구성될 수 있다. 이때, 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간은 상기 수신된 측정용 결과 정보를 이용하여 결정될 수 있다.
다른 예로, 상기 특정 하드웨어 가속기의 설정 초기화 요청이 상기 지연 시간의 수동 설정을 요청하는 경우, 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간은 사용자로부터 입력된 입력 정보, 또는 상기 하드웨어 가속기를 위해 설정된 최소 지연 시간 정보 중 적어도 하나 이상을 이용하여 결정될 수 있다.
상술한 과제를 해결하기 위한 본 발명의 또 다른 면에 따른 컴퓨터 프로그램은, 컴퓨터와 결합하여, 앞서 상술한 하드웨어 가속기 제어 방법을 실행시키기 위하여 컴퓨터 판독가능 기록매체에 저장될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명에 따르면, 시간 결정적인 폴링 방식의 하드웨어 가속기를 위한 호스트 CPU의 불필요한 사이클 소모를 최소화할 수 있다.
특히, 본 발명에 따르면, 불필요한 폴링 동작을 최소화함으로써 불필요한 CPU 사이클의 소모를 최소화할 수 있고, 이를 통해 전체 시스템의 성능을 향상시킬 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 예에 따른 하드웨어 가속기 제어 방법을 나타낸 도면이다.
도 2는 본 발명의 다른 예에 따른 하드웨어 가속기 제어 방법을 나타낸 도면이다.
도 3은 본 발명에 따른 하드웨어 가속기 제어 장치를 간단히 나타낸 도면이다.
도 4는 본 발명의 일 예에 따라 설정 초기화 시 지연 시간의 자동 설정을 요청한 동작예를 나타낸 도면이고, 도 5는 본 발명의 다른 예에 따라 설정 초기화 시 지연 시간의 수동 설정을 요청한 동작예를 나타낸 도면이다.
도 6은 인공 신경망의 기본적인 개념을 간단히 나타낸 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
도 1은 본 발명의 일 예에 따른 하드웨어 가속기 제어 방법을 나타낸 도면이다.
도 1에 도시된 바와 같이, 본 발명의 일 예에 따른 하드웨어 가속기 제어 방법은, 특정 하드웨어 가속기의 태스크 (task) 수행과 관련된 지연 시간 (또는 연산 시간, 이하 설명의 편의상 지연 시간이라 통칭함)을 설정하는 지연 시간 설정 단계 (S110), 중앙 처리 장치 (central processing unit; CPU)로 상기 특정 하드웨어 가속기에게 태스크 가속을 요청하는 것을 요청하는 경우, 상기 요청 시점부터 상기 설정된 지연 시간동안 슬립 (sleep) 상태로 전환하는 슬립 상태 전환 단계 (S120), 상기 지연 시간 이후 상기 슬립 상태에서 동작 상태로 전환하여 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하는 폴링 단계 (S130), 및 상기 폴링에 응답하여, 상기 CPU로부터 상기 폴링에 대응하는 결과 정보를 수신하는 결과 정보 수신 단계 (S140)를 포함할 수 있다.
본 발명에 있어, 상술한 하드웨어 가속기 제어 방법은 하드웨어 가속기 제어 장치에 의해 수행된다고 가정한다. 이때, 상기 하드웨어 가속기 제어 장치는 소프트웨어 프레임워크 또는 운영체제 (operating system; OS) 등 멀티태스킹 환경 내 구현 가능한 가상적 애플리케이션 장치를 포함할 수 있다.
이하에서는 도 2에 도시된 상세한 실시예에 따라 본 발명에 적용 가능한 하드웨어 가속기 제어 방법에 대해 상세히 설명한다.
도 2는 본 발명의 다른 예에 따른 하드웨어 가속기 제어 방법을 나타낸 도면이다.
먼저, 하드웨어 가속기 제어 장치는 하드웨어 가속기를 설정할 수 있다 (S210). 일 예로, 특정 시스템 잡 (job)이 특정 하드웨어 가속기를 이용하고자 하는 경우, 상기 하드웨어 가속기 제어 장치는 상기 특정 시스템 잡을 위해 상기 특정 하드웨어 가속기를 설정할 수 있다. 이때, 잡 (job)이란 특정한 단일 작업을 수행하는 작은 작업 단위를 의미할 수 있다.
S210 단계에서, 하드웨어 가속기 제어 장치는 특정 시스템 잡으로부터 특정 하드웨어 가속기의 설정 초기화 요청 메시지를 수신할 수 있다.
본 발명에 있어, 설정 초기화 요청 메시지는 특정 하드웨어 가속기와 관련된 지연 시간의 자동 설정을 요청하거나, 또는 상기 특정 하드웨어 가속기와 관련된 지연 시간의 수동 설정을 요청할 수 있다.
일 예로, 설정 초기화 요청 메시지가 특정 하드웨어 가속기와 관련된 지연 시간의 자동 설정을 요청하는 경우, 본 발명에 따른 하드웨어 가속기 제어 장치는 (호스트) CPU로 상기 특정 하드웨어 가속기에게 상기 지연 시간 측정을 위한 태스크의 가속을 요청할 수 있다 (S220). 이어, 일정 시간 이후, 상기 하드웨어 가속기 제어 장치는 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하고, 상기 폴링에 대응하여 측정용 결과 정보를 수신할 수 있다. 이를 통해, 상기 하드웨어 가속기 제어 장치는 수신된 측정용 결과 정보를 이용하여 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간을 결정할 수 있다 (S230). 이어, 상기 하드웨어 가속기 제어 장치는 상기 결정된 지연 시간을 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간으로 설정할 수 있다 (S240).
다른 예로, 설정 초기화 요청 메시지가 특정 하드웨어 가속기와 관련된 지연 시간의 수동 설정을 요청하는 경우, 본 발명에 따른 하드웨어 가속기 제어 장치는 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간을 자체적으로 결정할 수 있다. 일 예로, 상기 하드웨어 가속기 제어 장치는 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간을 사용자로부터 입력된 입력 정보, 또는 상기 하드웨어 가속기를 위해 설정된 최소 지연 시간 정보 중 적어도 하나 이상을 이용하여 결정할 수 있다.
상기와 같은 과정을 통해 특정 하드웨어 가속기에 대한 설정이 초기화되면, 본 발명에 따른 하드웨어 가속기 제어 장치는 설정 초기화 요청을 전송한 시스템 잡으로 상기 특정 하드웨어 가속기의 설정 초기화 완료 메시지를 제공할 수 있다.
이어, 하드웨어 가속기 제어 장치는 상술한 시스템 잡으로부터 태스크 요청을 수신할 수 있다. 상기 태스크 요청을 수신한 경우, 상기 하드웨어 가속기 제어 장치는 (호스트) CPU로 상기 시스템 잡과 관련된 특정 하드웨어 가속기에게 태스크 가속을 요청하는 것을 요청할 수 있다 (S250). 이때, 상기 하드웨어 가속기 제어 장치는 상기 요청 시점부터 S240 단계에서 설정된 지연 시간 동안 슬립 상태로 전환할 수 있다 (S260). 다시 말해, 상기 하드웨어 가속기 제어 장치는 상기 설정된 지연 시간 동안 슬립 상태로 전환함으로써 상기 지연 시간 동안 불필요한 폴링 동작을 최소화할 수 있다.
하드웨어 가속기 제어 장치는 상술한 지연 시간 이후 슬립 상태에서 동작 상태로 전환하여 CPU로 특정 하드웨어 가속기의 상태를 폴링할 수 있다 (S270). 이어, 상기 하드웨어 가속기 제어 장치는, 상기 폴링에 응답하여, 상기 CPU로부터 상기 폴링에 대응하는 결과 정보를 수신할 수 있다 (S280).
이처럼, 본 발명에 따른 하드웨어 가속기 제어 장치는 특정 하드웨어 가속기가 특정 태스크를 처리하는데 필요한 시간만큼 슬립(sleep)하고 깨어난 뒤 폴링 동작을 수행할 수 있다. 이를 통해, 전체 지연 시간 (total latency) 중 하드웨어&태스크 지연 시간(예: 사양상 결정되어 있음)은 확정적인 바, 상기 하드웨어 가속기 제어 장치는 상기 하드웨어&태스크 지연 시간 동안 슬립할 수 있다. 이어, 상기 하드웨어 가속기 제어 장치는 폴링하여 대응하는 결과를 수신하는 동안 시스템 지연 시간(예: 시스템마다 다름)이 발생할 수 있는데, 멀티태스킹이 가능한 환경 (예: OS)으로써 특정 하드웨어 가속기의 지연시간과는 달리 전체 시스템 상 소요 시간의 예측이 어려운 바, 상기 하드웨어 가속기 제어 장치는 해당 시스템 지연 시간 동안 폴링을 수행하여 최대한 빨리 특정 하드웨어 가속기의 상태를 감지하여 가속기 연산 처리 결과를 획득할 수 있다.
도 3은 본 발명에 따른 하드웨어 가속기 제어 장치를 간단히 나타낸 도면이다.
도 3에 도시된 바와 같이, 본 발명에 따른 하드웨어 가속기 제어 장치 (300)는 지연 시간 설정부 (310), 슬립 상태 전환부 (320), 폴링부 (330) 및 결과 정보 수신부 (340)를 포함할 수 있다.
보다 구체적으로, 지연 시간 설정부 (310)는 특정 하드웨어 가속기의 태스크 (task) 수행과 관련된 지연 시간을 설정할 수 있다.
슬립 상태 전환부 (320)는, 중앙 처리 장치 (central processing unit; CPU)로 특정 하드웨어 가속기에게 태스크 가속을 요청하는 것을 요청하는 경우, 상기 요청 시점부터 상기 설정된 지연 시간동안 슬립 (sleep) 상태로 전환할 수 있다.
폴링부 (330)는 지연 시간 이후 상기 슬립 상태에서 동작 상태로 전환하여 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링할 수 있다.
결과 정보 수신부 (340)는, 상술한 폴링에 응답하여, CPU로부터 상기 폴링에 대응하는 결과 정보를 수신할 수 있다.
상술한 바와 같이, 하드웨어 가속기 제어 장치 (300)는 특정 시스템 잡으로부터 특정 하드웨어 가속기의 설정 초기화 요청 메시지를 수신할 수 있다. 이때, 상기 설정 초기화 요청 메시지는 특정 하드웨어 가속기와 관련된 지연 시간의 자동 설정을 요청하거나, 또는 상기 특정 하드웨어 가속기와 관련된 지연 시간의 수동 설정을 요청할 수 있다. 따라서, 이하에서는 도 4 및 도 5를 참고하여 설정 초기화 동작을 위한 구체적인 실시예에 대해 상세히 설명한다.
도 4는 본 발명의 일 예에 따라 설정 초기화 시 지연 시간의 자동 설정을 요청한 동작예를 나타낸 도면이고, 도 5는 본 발명의 다른 예에 따라 설정 초기화 시 지연 시간의 수동 설정을 요청한 동작예를 나타낸 도면이다.
도 4 및 도 5에 도시된 바와 같이, 전체 시스템은 멀티태스킹 환경 (예: OS), CPU, 하드웨어 가속기 (HW 가속기)를 포함할 수 있다. 이때, 상기 멀티태스킹 환경은 특정 시스템 잡 (예: 도 4 및 도 5의 HW 가속기를 이용하는 시스템 잡), 다른 러닝 잡 (running job) 및 소프트웨어 프레임워크 (SW 프레임워크)를 포함할 수 있다. 상기 예시에서, 본 발명에 따른 하드웨어 가속기 제어 장치는 상기 소프트웨어 프레임워크에 대응할 수 있다.
상술한 바와 같이, 하드웨어 가속기 제어 장치 (300)는 하드웨어 가속기를 설정할 수 있다. 이때, 하드웨어 가속기 제어 장치 (300)는 지연 시간 설정부 (310)를 통해 특정 시스템 잡으로부터 특정 하드웨어 가속기의 설정 초기화 요청 메시지를 수신할 수 있다.
본 발명에 있어, 설정 초기화 요청 메시지는 특정 하드웨어 가속기와 관련된 지연 시간 (또는 연산 시간, 이하에서는 지연 시간으로 통칭함)의 자동 설정을 요청하거나 (예: 도 4), 또는 상기 특정 하드웨어 가속기와 관련된 지연 시간의 수동 설정을 요청할 수 있다 (예: 도 5).
일 예로, 도 4에 도시된 바와 같이, 설정 초기화 요청 메시지가 특정 하드웨어 가속기와 관련된 지연 시간의 자동 설정을 요청하는 경우, 본 발명에 따른 하드웨어 가속기 제어 장치 (300)는 지연 시간 설정부 (310)를 통해 (호스트) CPU로 상기 특정 하드웨어 가속기에게 상기 지연 시간 측정을 위한 태스크의 가속을 요청하는 것을 요청할 수 있다. 이어, 일정 시간 이후, 상기 하드웨어 가속기 제어 장치 (300)는 상기 지연 시간 설정부 (310)를 통해 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하고, 상기 폴링에 대응하여 측정용 결과 정보를 수신할 수 있다. 이를 위해, 상기 CPU는 HW 가속기로 지연시간 측정을 위한 태스크의 가속을 요청할 수 있다.
이를 통해, 상기 하드웨어 가속기 제어 장치 (300)는 상기 지연 시간 설정부 (310)를 통해 수신된 측정용 결과 정보를 이용하여 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간을 결정할 수 있다. 이어, 상기 하드웨어 가속기 제어 장치 (300)는 상기 지연 시간 설정부 (310)를 통해 상기 결정된 지연 시간을 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간으로 설정할 수 있다.
다른 예로, 도 5에 도시된 바와 같이, 설정 초기화 요청 메시지가 특정 하드웨어 가속기와 관련된 지연 시간의 수동 설정을 요청하는 경우, 본 발명에 따른 하드웨어 가속기 제어 장치 (300)는 상기 지연 시간 설정부 (310)를 통해 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간을 자체적으로 결정할 수 있다. 일 예로, 상기 하드웨어 가속기 제어 장치는 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간을 사용자로부터 입력된 입력 정보, 또는 상기 하드웨어 가속기를 위해 설정된 최소 지연 시간 정보 중 적어도 하나 이상을 이용하여 결정할 수 있다.
상기와 같은 과정을 통해 특정 하드웨어 가속기에 대한 설정이 초기화되면, 본 발명에 따른 하드웨어 가속기 제어 장치 (300)는 지연 시간 설정부 (310)를 통해 설정 초기화 요청을 전송한 시스템 잡으로 상기 특정 하드웨어 가속기의 설정 초기화 완료 메시지를 제공할 수 있다.
이어, 하드웨어 가속기 제어 장치 (300)는 상술한 시스템 잡으로부터 태스크 요청을 수신할 수 있다. 상기 태스크 요청을 수신한 경우, 상기 하드웨어 가속기 제어 장치 (300)는 (호스트) CPU로 상기 시스템 잡과 관련된 특정 하드웨어 가속기에게 태스크 가속을 요청하는 것을 요청할 수 있다. 이때, 상기 하드웨어 가속기 제어 장치 (300)는 슬립 상태 전환부 (320)를 통해 상기 요청 시점부터 설정된 지연 시간 동안 슬립 상태로 전환할 수 있다. 다시 말해, 상기 하드웨어 가속기 제어 장치 (300)는 상기 슬립 상태 전환부 (320)를 통해 상기 설정된 지연 시간 동안 슬립 상태로 전환함으로써 상기 지연 시간 동안 불필요한 폴링 동작을 최소화할 수 있다.
하드웨어 가속기 제어 장치 (300)는 폴링부 (330)를 통해 상술한 지연 시간 이후 슬립 상태에서 동작 상태로 전환하여 CPU로 특정 하드웨어 가속기의 상태를 폴링할 수 있다. 이에 대응하여, 상기 CPU는 상기 특정 하드웨어 가속기로 태스크 가속을 요청할 수 있다. 이어, 상기 하드웨어 가속기 제어 장치 (300)는 결과 정보 수신부 (340)를 통해, 상기 폴링에 응답하여, 상기 CPU로부터 상기 폴링에 대응하는 결과 정보를 수신할 수 있다.
상술한 본 발명의 예시들에 있어, 특정 하드웨어 가속기는 그래픽 처리 장치 (graphic processing unit; GPU)를 포함할 수 있다. 또한, 상기 특정 하드웨어 가속기의 태스크 수행은 딥러닝 알고리즘 구현을 포함할 수 있다.
따라서, 본 발명에 따른 하드웨어 가속기 제어 장치는 불필요한 폴링 동작을 최소화하며 딥러닝 알고리즘을 위한 하드웨어 가속기를 제어할 수 있다.
참고로, 본 발명에 적용 가능한 딥러닝 알고리즘에 대해 설명하면 다음과 같다.
딥러닝 알고리즘은 머신 러닝 (machine learning) 알고리즘의 하나로 인간의 신경망을 본딴 인공 신경망에서 발전된 모델링 기법을 의미한다. 인공 신경망은 도 6에 도시된 바와 같이 다층 계층 구조로 구성될 수 있다.
도 6은 인공 신경망의 기본적인 개념을 간단히 나타낸 도면이다.
도 6에 도시된 바와 같이, 인공 신경망 (artifical neural network; ANN)은 입력 층, 출력 층, 그리고 상기 입력 층과 출력 층 사이에 적어도 하나 이상의 중간 층 (또는 은닉 층, hidden layer)을 포함하는 계층 구조로 구성될 수 있다. 딥러닝 알고리즘은, 이와 같은 다중 계층 구조에 기반하여, 층간 활성화 함수 (activation function)의 가중치를 최적화 (optimization)하는 학습을 통해 결과적으로 신뢰성 높은 결과를 도출할 수 있다.
본 발명에 적용 가능한 딥러닝 알고리즘은, 심층 신경망 (deep neural network; DNN), 합성곱 신경망 (convolutional neural network; CNN), 순환 신경망 (recurrent neural network; RNN) 등을 포함할 수 있다.
DNN은 기본적으로 기존 ANN 모델 내 중간 층 (또는 은닉 층)을 많이 늘려서 학습의 결과를 향상시키는 것을 특징으로 한다. 일 예로, 상기 DNN은 2개 이상의 중간 층을 이용하여 학습 과정을 수행하는 것을 특징으로 한다. 이에 따라, 컴퓨터는 스스로 분류 레이블을 만들어 내고 공간을 왜곡하고 데이터를 구분짓는 과정을 반복하여 최적의 출력 값을 도출할 수 있다.
CNN은, 기존의 데이터에서 지식을 추출하여 학습 과정이 수행되는 기법과 달리, 데이터의 특징을 추출하여 특징들의 패턴을 파악하는 구조를 갖는 것을 특징으로 한다. 상기 CNN은 콘볼루션 (convolution) 과정과 풀링 (pooling) 과정을 통해 수행될 수 있다. 다시 말해, 상기 CNN은 콘볼루션 층과 풀링 층이 복합적으로 구성된 알고리즘을 포함할 수 있다. 여기서, 콘볼루션 층에서는 데이터의 특징을 추출하는 과정 (일명, 콘볼루션 과정)이 수행된다. 상기 콘볼루션 과정은 데이터에 각 성분의 인접 성분들을 조사해 특징을 파악하고 파악한 특징을 한장으로 도출하는 과정으로써, 하나의 압축 과정으로써 파라미터의 개수를 효과적으로 줄일 수 있다. 풀링 층에서는 콘볼루션 과정을 거친 레이어의 사이즈를 줄여주는 과정 (일명, 풀링 과정)이 수행된다. 상기 풀링 과정은 데이터의 사이즈를 줄이고 노이즈를 상쇄시키고 미세한 부분에서 일관적인 특징을 제공할 수 있다. 일 예로, 상기 CNN은 정보 추출, 문장 분류, 얼굴 인식 등 여러 분야에 활용될 수 있다.
RNN은 반복적이고 순차적인 데이터 (sequential data) 학습에 특화된 인공 신경망의 한 종류로써 내부에 순환 구조를 갖는 것을 특징으로 한다. 상기 RNN은 상기 순환 구조를 이용하여 과거의 학습 내용에 가중치를 적용하여 현재 학습에 반영함으로써, 현재의 학습과 과거의 학습 간 연결을 가능하게 하고 시간에 종속된다는 특징을 갖는다. 상기 RNN은 기존의 지속적이고 반복적이며 순차적인 데이터 학습의 한계를 해결한 알고리즘으로써, 음성 웨이브폼을 파악하거나 텍스트의 앞 뒤 성분을 파악하는 등에 활용될 수 있다.
다만, 이는 본 발명에 적용 가능한 구체적인 딥러닝 기법의 일 예시들에 불과하며, 실시예에 따라 다른 딥러닝 기법이 본 발명에 적용될 수도 있다.
추가적으로, 본 발명에 따른 컴퓨터 프로그램은, 컴퓨터와 결합하여, 앞서 상술한 다양한 하드웨어 가속기 제어 방법을 실행시키기 위하여 컴퓨터 판독가능 기록매체에 저장될 수 있다.
전술한 프로그램은, 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
300: 하드웨어 가속기 제어 장치
310: 지연 시간 설정부
320: 슬립 상태 전환부
330: 폴링부
340: 결과 정보 수신부

Claims (10)

  1. 특정 하드웨어 가속기의 태스크 (task) 수행과 관련된 지연 시간을 설정하는 지연 시간 설정 단계;
    중앙 처리 장치 (central processing unit; CPU)로 상기 특정 하드웨어 가속기에게 태스크 가속을 요청하는 것을 요청하는 경우, 상기 요청 시점부터 상기 설정된 지연 시간 동안 슬립 (sleep) 상태로 전환하는 슬립 상태 전환 단계;
    상기 슬립 상태로 전환되면 상기 지연 시간 동안 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하지 않는 단계;
    상기 지연 시간 이후 상기 슬립 상태에서 동작 상태로 전환하여 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하는 폴링 단계; 및
    상기 폴링에 응답하여, 상기 CPU로부터 상기 폴링에 대응하는 결과 정보를 수신하는 결과 정보 수신 단계를 포함하는 것을 특징으로 하는,
    하드웨어 가속기 제어 방법.
  2. 제 1항에 있어서,
    상기 지연 시간 설정 단계는,
    상기 특정 하드웨어 가속기를 이용하는 시스템 잡 (job)으로부터 상기 특정 하드웨어 가속기의 설정 초기화 요청을 수신하는 단계;
    상기 설정 초기화 요청에 따라, 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간을 결정하는 단계; 및
    상기 시스템 잡으로 상기 특정 하드웨어 가속기의 설정 초기화 완료 메시지를 제공하는 단계를 포함하는 것을 특징으로 하는,
    하드웨어 가속기 제어 방법.
  3. 제 2항에 있어서,
    상기 특정 하드웨어 가속기의 설정 초기화 요청이 상기 지연 시간의 자동 설정을 요청하는 경우, 상기 지연 시간 설정 단계는,
    상기 CPU로 상기 특정 하드웨어 가속기에게 상기 지연 시간 측정을 위한 태스크의 가속을 요청하는 지연 시간 측정용 태스크 가속 요청 단계;
    일정 시간 이후, 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하고, 상기 폴링에 대응하여 측정용 결과 정보를 수신하는 단계를 더 포함하고,
    상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간은 상기 수신된 측정용 결과 정보를 이용하여 결정되는 것을 특징으로 하는,
    하드웨어 가속기 제어 방법.
  4. 제 2항에 있어서,
    상기 특정 하드웨어 가속기의 설정 초기화 요청이 상기 지연 시간의 수동 설정을 요청하는 경우, 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간은 사용자로부터 입력된 입력 정보, 또는 상기 하드웨어 가속기를 위해 설정된 최소 지연 시간 정보 중 적어도 하나 이상을 이용하여 결정되는 것을 특징으로 하는,
    하드웨어 가속기 제어 방법.
  5. 제 1항에 있어서,
    상기 특정 하드웨어 가속기는 그래픽 처리 장치 (graphic processing unit; GPU)를 포함하고,
    상기 특정 하드웨어 가속기의 태스크 수행은 딥러닝 알고리즘 구현을 포함하는 것을 특징으로 하는,
    하드웨어 가속기 제어 방법.
  6. 특정 하드웨어 가속기의 태스크 (task) 수행과 관련된 지연 시간을 설정하는 지연 시간 설정부;
    중앙 처리 장치 (central processing unit; CPU)로 상기 특정 하드웨어 가속기에게 태스크 가속을 요청하는 것을 요청하는 경우, 상기 요청 시점부터 상기 설정된 지연 시간 동안 슬립 (sleep) 상태로 전환하는 슬립 상태 전환부;
    상기 슬립 상태로 전환되면 상기 지연 시간 동안 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하지 않고, 상기 지연 시간 이후 상기 슬립 상태에서 동작 상태로 전환하여 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하는 폴링부; 및
    상기 폴링에 응답하여, 상기 CPU로부터 상기 폴링에 대응하는 결과 정보를 수신하는 결과 정보 수신부를 포함하는 것을 특징으로 하는,
    하드웨어 가속기 제어 장치.
  7. 제 6항에 있어서,
    상기 지연 시간 설정부는,
    상기 특정 하드웨어 가속기를 이용하는 시스템 잡 (job)으로부터 가속기의 설정 초기화 요청을 수신하고,
    상기 설정 초기화 요청에 따라, 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간을 결정하고,
    상기 시스템 잡으로 상기 특정 하드웨어 가속기의 설정 초기화 완료 메시지를 제공하도록 설정되는 것을 특징으로 하는,
    하드웨어 가속기 제어 장치.
  8. 제 7항에 있어서,
    상기 특정 하드웨어 가속기의 설정 초기화 요청이 상기 지연 시간의 자동 설정을 요청하는 경우, 상기 지연 시간 설정부는,
    상기 CPU로 상기 특정 하드웨어 가속기에게 상기 지연 시간 측정을 위한 태스크의 가속을 요청하고,
    일정 시간 이후, 상기 CPU로 상기 특정 하드웨어 가속기의 상태를 폴링하고, 상기 폴링에 대응하여 측정용 결과 정보를 수신하도록 구성되고,
    상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간은 상기 수신된 측정용 결과 정보를 이용하여 결정되는 것을 특징으로 하는,
    하드웨어 가속기 제어 장치.
  9. 제 7항에 있어서,
    상기 특정 하드웨어 가속기의 설정 초기화 요청이 상기 지연 시간의 수동 설정을 요청하는 경우, 상기 특정 하드웨어 가속기의 태스크 수행과 관련된 지연 시간은 사용자로부터 입력된 입력 정보, 또는 상기 하드웨어 가속기를 위해 설정된 최소 지연 시간 정보 중 적어도 하나 이상을 이용하여 결정되는 것을 특징으로 하는,
    하드웨어 가속기 제어 장치.
  10. 컴퓨터와 결합하여, 제1 항 내지 제 5 항 중 어느 하나의 항의 하드웨어 가속기 제어 방법을 실행시키기 위하여 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램.
KR1020200179440A 2020-12-21 2020-12-21 하드웨어 가속기 제어 방법 및 장치 KR102271324B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200179440A KR102271324B1 (ko) 2020-12-21 2020-12-21 하드웨어 가속기 제어 방법 및 장치
PCT/KR2020/018800 WO2022138995A1 (ko) 2020-12-21 2020-12-21 하드웨어 가속기 제어 방법 및 장치
US18/336,639 US20230333889A1 (en) 2020-12-21 2023-06-16 Method and apparatus for controlling hardware accelerator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200179440A KR102271324B1 (ko) 2020-12-21 2020-12-21 하드웨어 가속기 제어 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102271324B1 true KR102271324B1 (ko) 2021-06-30

Family

ID=76601860

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200179440A KR102271324B1 (ko) 2020-12-21 2020-12-21 하드웨어 가속기 제어 방법 및 장치

Country Status (3)

Country Link
US (1) US20230333889A1 (ko)
KR (1) KR102271324B1 (ko)
WO (1) WO2022138995A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102411681B1 (ko) 2021-12-24 2022-06-22 주식회사 모빌린트 시간 결정적인 태스크의 가속을 지원하기 위한 동종 다중 코어 가속기의 sw 프레임워크 구조를 이용하는 하드웨어 가속기 제어 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190050988A (ko) 2016-09-19 2019-05-14 퀄컴 인코포레이티드 동적 입력/출력 코히어런시
WO2020234792A1 (en) * 2019-05-21 2020-11-26 Politecnico Di Milano An fpga-as-a-service system for accelerated serverless computing

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902581B (zh) * 2011-07-29 2016-05-11 国际商业机器公司 硬件加速器及方法、中央处理单元、计算设备
US20160117199A1 (en) * 2014-10-28 2016-04-28 Samsung Electronics Co., Ltd. Computing system with thermal mechanism and method of operation thereof
US10310897B2 (en) * 2016-09-30 2019-06-04 Intel Corporation Hardware accelerators and methods for offload operations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190050988A (ko) 2016-09-19 2019-05-14 퀄컴 인코포레이티드 동적 입력/출력 코히어런시
WO2020234792A1 (en) * 2019-05-21 2020-11-26 Politecnico Di Milano An fpga-as-a-service system for accelerated serverless computing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102411681B1 (ko) 2021-12-24 2022-06-22 주식회사 모빌린트 시간 결정적인 태스크의 가속을 지원하기 위한 동종 다중 코어 가속기의 sw 프레임워크 구조를 이용하는 하드웨어 가속기 제어 방법 및 장치
WO2023120836A1 (ko) * 2021-12-24 2023-06-29 주식회사 모빌린트 시간 결정적인 태스크의 가속을 지원하기 위한 동종 다중 코어 가속기의 sw 프레임워크 구조를 이용하는 하드웨어 가속기 제어 방법 및 장치

Also Published As

Publication number Publication date
US20230333889A1 (en) 2023-10-19
WO2022138995A1 (ko) 2022-06-30

Similar Documents

Publication Publication Date Title
US9754221B1 (en) Processor for implementing reinforcement learning operations
KR20190120698A (ko) Dnn을 사용하여 ssd의 성능을 최적화하기 위한 시스템 및 방법
US8884906B2 (en) Offloading touch processing to a graphics processor
JP7223048B2 (ja) タスク計算量決定方法、装置、電子機器及びコンピュータプログラム製品
Dai et al. Reveal training performance mystery between TensorFlow and PyTorch in the single GPU environment
CN114895773B (zh) 异构多核处理器的能耗优化方法、系统、装置及存储介质
US20230333889A1 (en) Method and apparatus for controlling hardware accelerator
CN112783616A (zh) 一种并发冲突处理方法、装置及计算机存储介质
Sun et al. Evaluating performance, power and energy of deep neural networks on CPUs and GPUs
CN114286985A (zh) 用于预测内核调谐参数的方法和设备
Hoffmann et al. Online machine learning for energy-aware multicore real-time embedded systems
CN112418416A (zh) 神经网络计算系统、神经网络计算方法和计算机系统
Li et al. An adaptive cpu-gpu governing framework for mobile games on big. little architectures
CN111160049A (zh) 文本翻译方法、装置、机器翻译系统和存储介质
CN108574600B (zh) 云计算服务器的功耗和资源竞争协同控制的服务质量保障方法
CN115705275A (zh) 参数获取方法、装置以及电子设备
EP3939033B1 (en) Automated assistant control of external applications lacking automated assistant application programming interface functionality
EP3933703A1 (en) Dynamic loading neural network inference at dram/on-bus sram/serial flash for power optimization
CN115586955A (zh) 命令执行方法、装置、计算机设备和存储介质
Akgun et al. KMLIB: Towards machine learning for operating systems
US10025368B2 (en) Computation apparatus and frequency determination method
CN117971630B (zh) 异构计算平台及其任务仿真与耗时预测方法、装置、设备
CN112828896B (zh) 一种家用智能陪伴机器人及其执行控制方法
Aghapour et al. PELSI: Power-Efficient Layer-Switched Inference
US20230342211A1 (en) Method and device for controlling hardware accelerator by using sw framework structure homogeneous multi-core accelerator for supporting acceleration of time-critical task

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant