KR101177059B1 - 병렬 제어 모듈을 동적으로 할당하는 방법 - Google Patents

병렬 제어 모듈을 동적으로 할당하는 방법 Download PDF

Info

Publication number
KR101177059B1
KR101177059B1 KR1020110004395A KR20110004395A KR101177059B1 KR 101177059 B1 KR101177059 B1 KR 101177059B1 KR 1020110004395 A KR1020110004395 A KR 1020110004395A KR 20110004395 A KR20110004395 A KR 20110004395A KR 101177059 B1 KR101177059 B1 KR 101177059B1
Authority
KR
South Korea
Prior art keywords
parallel control
control module
threads
cpu core
data processing
Prior art date
Application number
KR1020110004395A
Other languages
English (en)
Other versions
KR20120083000A (ko
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 KR1020110004395A priority Critical patent/KR101177059B1/ko
Publication of KR20120083000A publication Critical patent/KR20120083000A/ko
Application granted granted Critical
Publication of KR101177059B1 publication Critical patent/KR101177059B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 CPU 코어와 복수개의 병렬 제어 모듈로 구성된 쓰레드 처리 시스템에 관한 것으로, 더욱 상세하게는 입력된 쓰레드에 따라 복수 개의 병렬 제어 모듈을 동적으로 사용하는 방안에 관한 것이다.
이를 위해 본 발명의 CPU 코어와 상기 CPU 코어로부터 데이터 처리를 요청받는 복수 개의 병렬 제어 모듈을 포함하는 GPU 코어로 구성된 데이터 처리 시스템에서, 데이터 처리를 수행할 병렬 제어 모듈의 개수를 결정하는 방법은 상기 CPU 코어에서 데이터 처리가 요청되는 쓰레드의 개수를 분석하는 단계, 상기 CPU 코어에서 분석한 상기 쓰레드의 개수와 한 번에 묶을 수 있는 최소 쓰레드의 개수(Warp size)와 하나의 블록으로 묶을 수 있는 최대 쓰레드의 개수를 이용하여 데이터를 처리할 병렬 제어 모듈의 개수를 결정하는 단계, 및 상기 CPU 코어에서 병렬 제어 모듈과 각 병렬 제어 모듈로 처리를 요청할 데이터에 대한 정보를 저장한 후, 각 병렬 제어 모듈로 데이터 처리를 요청하는 단계를 포함한다.

Description

병렬 제어 모듈을 동적으로 할당하는 방법{Method for dynamically assigned of parallel control module}
본 발명은 CPU 코어와 복수개의 병렬 제어 모듈로 구성된 쓰레드 처리 시스템에 관한 것으로, 더욱 상세하게는 입력된 쓰레드에 따라 복수 개의 병렬 제어 모듈을 동적으로 사용하는 방안에 관한 것이다.
현재 높은 클록 주파수 프로세서와 관련하여 늘어난 하드웨어 복잡성을 인식하게 되었다. 또한 클록 주파수를 무한정 증가시킬 수 없으며 다른 방법이 필요하다. 이에 따라 프로세서의 효율성 개선은 물론 쓰레드 단위의 병렬실행(TLP: Thread Level Parallelism)을 통해 전체적인 성능을 향상키시기 방법으로 멀티프로세서와 멀티쓰레딩 기술이 출현하게 되었다.
최근의 이러한 멀티프로세싱으로의 전환은 데스크탑에서 임베디드 설계 분야로까지 인기가 확산되면서 다수의 소프트웨어에 대한 발상의 전환이 요구되고 있다. 여러 해 동안 임베디드 설계자들은 자신들의 설계에 여러 개의 프로세서를 내장함으로써 한정된 전력으로 더 나은 계산 능력을 구현할 수 있었다.
멀티프로세서와 멀티쓰레딩은 모두 프로세서 성능을 전체적으로 향상시키며, 이로 인해 병행 소프트웨어 쓰레드를 이용하여 어플리케이션의 처리시간을 단축한다. 그러나 이 두 기술은 이러한 목표를 달성하기 위해서 하드웨어적으로 서로 다른 접근방법을 취하고 있으며 특정 소프트웨어 코드의 예에 대해 각기 다른 성취 수준을 나타낸다.
멀티쓰레딩의 기본 개념은 높은 주파수의 프로세서가 저속 메모리와 결합되었을 때, 일반적으로 액세스 지연으로 인한 유니 프로세서 설계에서 발생하는 비효율적인 사이클을 이용해서 전체적인 프로세서 성능을 높이려 하는 것이다.
쓰레드를 여유 사이클에 맞춤으로써 코어의 효율이 향상된다. 기본적으로 멀티쓰레딩은 최소의 프로세서 로직만을 중복시켜서 추가적인 하드웨어 쓰레드를 지원하는 유니 프로세서로 분류된다.
일반적으로 이것은 프로그래머의 레지스터 집합이며, CPU의 수퍼바이저 상태로 충분하므로 오늘날의 OS가 이 하드웨어 쓰레드를 가상 프로세서로 인식할 수 있다. 이러한 나머지 프로세서 로직을 공유하는 것은 소프트웨어의 복잡성을 증가시키는 중요한 문제다.
일반적으로 CPU는 순서대로 실행되는 일련의 명령어를 처리하도록 설계되었다. 멀티쓰레딩(Multithreading) 기능과 다중 코어의 출현으로 CPU에서도 상당한 수준의 병렬 처리가 가능하나, CPU와 GPU 간의 성능 차이가 발생한다.
GPU는 동시에 여러 개의 작업을 처리할 수 있도록 설계된 병렬 프로세서로 각각의 GPU 코어는 CPU 코어보다 더 단순하고 덜 강력하지만 GPU에는 코어가 수 십 수 백 개가 들어있다.
동시에 수 백 개의 작업을 처리할 수 있는 능력으로 인해 GPU는 병렬 처리의 이점을 확보하고 있다. 따라서 기존 병렬 소프트웨어 구조 생성 방법으로 병렬 처리 프로그램을 수행하려면, 매우 시간이 많이 소요되고 어렵다. 기존의 방법과 다른 병렬 소프트웨어 구조 생성 및 제어 방법이 필요하다.
즉, 종래 쓰레드는 고정된 개수의 병렬 제어 모듈을 이용하여 처리하였다. 즉, 입력된 쓰레드의 분석 없이 설정된 개수의 병렬 제어 모듈을 이용하여 쓰레드를 처리하였다. 따라서 GPU 코어로 입력되는 쓰레드는 고정된 병렬 제어 모듈에 의해 처리됨으로써 경우에 따라서는 많은 처리 시간이 소요되는 효율적으로 처리되지 않는다는 단점이 있다.
본 발명이 해결하려는 과제는 GPU 코어를 구성하고 있는 병렬 제어 모듈에서 입력되는 쓰레드를 분석하여 효율적으로 처리하는 방안을 제안함에 있다.
본 발명이 해결하려는 다른 과제는 기존 고정된 병렬 제어 모듈의 개수를 입력되는 쓰레드에 따라 동적으로 사용하는 방안을 제안함에 있다.
본 발명이 해결하려는 또 다른 과제는 병렬 제어 모듈을 효율적으로 사용함으로써 편의성 및 수행 속도를 향상시키는 방안을 제안함에 있다.
이를 위해 본 발명의 CPU 코어와 상기 CPU 코어로부터 데이터 처리를 요청받는 복수 개의 병렬 제어 모듈을 포함하는 GPU 코어로 구성된 데이터 처리 시스템에서, 데이터 처리를 수행할 병렬 제어 모듈의 개수를 결정하는 방법에 있어서, 상기 CPU 코어에서 데이터 처리가 요청되는 쓰레드의 개수를 분석하는 단계; 상기 CPU 코어에서 분석한 상기 쓰레드의 개수와 한 번에 묶을 수 있는 최소 쓰레드의 개수(Warp size)와 하나의 블록으로 묶을 수 있는 최대 쓰레드의 개수를 이용하여 데이터를 처리할 병렬 제어 모듈의 개수를 결정하는 단계; 및 상기 CPU 코어에서 병렬 제어 모듈과 각 병렬 제어 모듈로 처리를 요청할 데이터에 대한 정보를 저장한 후, 각 병렬 제어 모듈로 데이터 처리를 요청하는 단계를 포함한다.
이를 위해 본 발명의 CPU 코어와 상기 CPU 코어로부터 데이터 처리를 요청받는 복수 개의 병렬 제어 모듈을 포함하는 GPU 코어로 구성된 데이터 처리 시스템에서, 데이터 처리를 수행할 병렬 제어 모듈의 개수를 결정하는 방법에 있어서, 상기 CPU 코어에서 데이터 처리가 요청되는 쓰레드의 개수를 분석하는 단계; 상기 CPU 코어에서 분석한 상기 쓰레드의 개수와 한 번에 묶을 수 있는 최소 쓰레드의 개수(Warp size)와 하나의 블록으로 묶을 수 있는 최대 쓰레드의 개수와 각 병렬 제어 모듈의 데이터 처리와 관련된 우선순위를 이용하여 데이터를 처리할 병렬 제어 모듈의 개수를 결정하는 단계; 상기 CPU 코어에서 병렬 제어 모듈과 각 병렬 제어 모듈로 처리를 요청할 데이터에 대한 정보를 저장한 후, 각 병렬 제어 모듈로 데이터 처리를 요청하는 단계; 및 상기 CPU 코어에서 상기 각 병렬 제어 모듈에서 처리한 데이터를 취합하는 단계를 포함한다.
본 발명에 따른 병렬 제어 모듈을 동적으로 할당하는 방법은 GPU 코어를 구성하고 있는 병렬 제어 모듈에서 입력되는 쓰레드를 분석하여 효율적으로 처리한다. 즉 기존 고정된 병렬 제어 모듈의 개수를 입력되는 쓰레드에 따라 동적으로 사용함으로써 편의성 및 수행 속도를 향상시킬수 있는 장점이 있다.
도 1은 본 발명의 일실시 예에 따른 CPU와 GPU에서 수행되는 동작을 도시한 흐름도이며,
도 2는 본 발명의 일실시 예에 따른 쓰레드 처리 시스템을 도시하고 있으며,
도 3은 본 발명의 일실시 예에 따른 로그 저장소에 저장되어 정보의 일예를 도시하고 있다.
전술한, 그리고 추가적인 본 발명의 양상들은 첨부된 도면을 참조하여 설명되는 바람직한 실시 예들을 통하여 더욱 명백해질 것이다. 이하에서는 본 발명의 이러한 실시 예를 통해 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 설명하기로 한다.
하나의 프로그램을 프로세스라고 볼 때, 쓰레드는 하나의 프로그램 내에서의 실행 단위라고 할 수 있다. 자바에서는 각 작업을 쓰레드라고 표현하며, 이러한 쓰레드를 복수 개 둘 수 있도록 함으로써 멀티태스킹을 가능하게 한다. 자바에서는 멀티태스킹을 여러 개의 쓰레드를 동시에 수행하는 멀티Tm레딩을 이용하여 해결하고 있다.
자바 가상머신은 하나의 애플리케이션이 동시에 수행되는 여러 개의 쓰레드를 가질 수 있도록 한다. 물론 일의 우선순위가 있듯이 모든 쓰레드는 우선순위를 갖는다.
기존에 병렬 제어 구조 자동 요청 시 정해진 병렬 모듈 개수를 사용함으로써 발생했던 단점을 극복하기 위해 본 발명은 환경에 따라 병렬 모듈의 개수를 동적으로 사용하는 방안을 제안한다.
도 1은 본 발명의 일실시 예에 따른 CPU와 GPU에서 수행되는 동작을 도시한 흐름도이다. 이하 도 1을 이용하여 본 발명의 일실시 예에 따른 CPU와 GPU에서 수행되는 동작에 대해 상세하게 알아보기로 한다.
S100단계는 CPU의 멀티쓰레딩 병렬 구조를 병렬 GPU 제어 구조로 변환하기 위해 쓰레드를 분석한다. 즉, S100단계는 처리하고자 하는 쓰레드를 분석한다.
S102단계는 CPU 코어 개수와 GPU 코어 개수에 따라 동적으로 사용할 병렬 제어 모듈의 개수를 결정한다. 부가하여 병렬 제어 모듈의 개수는 각 병렬 제어 모듈을 구성하고 있는 512개의 블록(block)과 32개의 랩(warp)을 고려하여 결정한다. 즉, 한 번에 묶을 수 있는 최소 쓰레드의 개수(Warp size) 는 32개이며, 하나의 블록으로 묶을 수 있는 최대 쓰레드의 개수는 512개이다.
S104단계는 동적으로 사용할 병렬 제어 모듈의 개수가 결정되며, 각 병렬 제어 모듈은 로그 저장소에 각 모듈의 식별자가 저장된다.
S106단계는 각 병렬 제어 모듈은 처리에 필요한 데이터 프로세싱이 정의되며, 생성된다.
S108단계는 생성된 병렬 제어 모듈은 GPU 코어에 각각 할당되어 요청받아 할당된 자원을 처리한다. 자원 처리 순서는 로그 저장소를 통해 병렬 제어 모듈의 식별자 및 각 병렬 제어 모듈이 처리해야 할 처리 파트가 저장되어 있다. 따라서 각 병렬 제어 모듈은 로그 저장소에 저장되어 있는 각 처리 파트에 대한 정보를 이용하여 해당 부분을 처리한다.
S110단계는 각 병렬 제어 모듈에서 처리된 데이터는 로그 저장소를 기반으로 머지(merging) 과정을 통해 취합된다. 취합 단계에서 최대 타임아웃(Maximum Timeout) 시간을 확인하는 동안 지연된 GPU 코어 작업이 있을 경우 해당 병렬 제어 모듈 식별자 확인을 거쳐 작업의 우선순위를 높임으로써 최대 타임아웃을 초과 하지 않도록 처리 한다.
이와 같이 본 발명은 기존 고정된 병렬 제어 모듈의 개수를 다양한 인자를 이용하여 병렬 제어 모듈의 개수를 동적으로 사용하는 방안을 제안한다.
도 2는 본 발명의 일실시 예에 따른 쓰레드 처리 시스템을 도시하고 있다. 이하 도 2를 이용하여 본 발명의 일실시 예에 따른 쓰레드 처리 시스템에 대해 알아보기로 한다.
도 2에 의하면 쓰레드 처리 시스템은 CPU 코어(200), GPU 코어(210)를 구성하고 있는 복수개의 병렬 제어 모듈(220)을 포함한다. 물론 상술한 구성 이외에 다른 구성이 쓰레드 처리 시스템에 포함될 수 있음은 자명하다.
CPU 코어(200)는 입력된 쓰레드를 분석한다. 즉, CPU 코어(200)는 처리해야 하는 쓰레드의 개수를 분석한다. CPU 코어(200)는 입력된 쓰레드를 효율적으로 처리하기 위해 동적으로 사용해야 하는 병렬 제어 모듈의 개수를 결정한다. CPU 코어(200)는 입력된 쓰레드의 개수에 따라 처리해야 하는 병렬 제어 모듈의 개수를 결정한다. CPU 코어(200)는 쓰레드를 처리하기 위해 결정한 병렬 제어 모듈의 개수와 각 병렬 제어 모듈에서 처리해야 하는 부분을 로그 저장소에 저장한다. CPU 코어(200)는 각 병렬 제어 모듈로 처리해야 하는 쓰레드에 관한 정보를 제공한다.
CPU 코어(200)는 각 병렬 제어 모듈에서 처리한 데이터를 로그 저장소에 저장되어 있는 정보를 기반으로 취합 과정을 수행한다. 취합 단계에서 최대 타임아웃(Maximum Timeout) 시간을 확인하는 동안 지연된 GPU 코어 작업이 있을 경우 해당 병렬 제어 모듈 식별자 확인을 거쳐 작업의 우선순위를 높임으로써 최대 타임아웃을 초과 하지 않도록 처리 한다.
즉, 복수 개의 병렬 제어 모듈 중 특정 병렬 제어 모듈에서 처리 시간이 소용되는 경우 CPU 코어(200)는 처리된 데이터를 취합하는 과정을 수행할 없게 된다. 따라서 CPU 코어(200)는 특정 병렬 제어 모듈에서 데이터 처리 속도가 지연되는 경우 해당 병렬 제어 모듈의 데이터 처리 작업에 대한 우선순위를 높임으로서 신속하게 데이터를 처리할 수 있도록 한다.
부가하여 CPU 코어(200)는 특정 병렬 제어 모듈에서 데이터 처리 시간이 지연되는 경우, 현재 데이터 처리 작업을 수행하지 않는 병렬 제어 모듈에서 해당 데이터의 일부 또는 전부를 처리하도록 요청할 수 있다. 이 경우 CPU 코어는 이에 대한 정보를 로드 저장소에 새로 저장한다. 이와 같이 함으로써 CUP 코어는 입력된 쓰레드를 최대한 신속하게 처리할 수 있도록 한다.
이와 별도로 CPU 코어는 각 병렬 제어 모듈의 성능을 측정하기 위한 성능 측정부를 구비할 수 있다.
성능 측정부는 각 쓰레드의 로드를 측정(또는 예측)한다. 또한, 성능 측정부는 측정된 쓰레드별 로드 정보를 쓰레드 로그 저장소에 업데이트한다. 성능 측정부는 각 병렬 제어 모듈간의 로드가 불균형한지 여부를 결정하고, 코어 간 로드가 불균형하다고 결정되면 로드 밸런싱 요청을 전송한다.
이를 위해 성능 측정부는 통상의 여러 가지 방법을 이용하여 로드 측정 또는 예측을 할 수 있다. 예를 들어, 각 코어별로 로드의 불균형을 나타내는 값이 설정된 임계값을 넘게 되면, 로드가 불균형한 것으로 결정할 수 있다.
병렬 제어 모듈(220)은 CPU 코어로부터 요청받은 데이터 처리 작업을 수행한다. 병렬 제어 모듈(220)은 CPU 코어로부터 요청받은 데이터의 처리 작업이 완료되면 이에 대한 정보를 CPU 코어로 제공한다. 이와 같이 함으로써 CPU 코어는 복수개의 병렬 제어 모듈(220) 중 데이터 처리 작업이 완료된 병렬 제어 모듈(220)에 대한 정보를 획득할 수 있게 된다.
부가하여 병렬 제어 모듈(220)은 현재 요청받은 데이터 처리 작업에 과부하가 걸린 경우에는 이에 대한 정보를 CPU 코어로 제공할 수 있다. 이와 같이 함으로써 CPU 코어는 신속하게 해당 데이터 처리 작업을 다른 병렬 제어 모듈로 할당하여 요청할 수 있다.
도 3은 본 발명의 일실시 예에 따른 로그 저장소에 저장되어 정보의 일예를 도시하고 있다. 이하 도 3을 이용하여 로그 저장소에 저장되는 정보의 일예에 대해 상세하게 알아보기로 한다.
도 3에 의하면, 쓰레드1은 병렬 제어 모듈1에서 처리하며, 쓰레드2와 쓰레드3은 병렬 제어 모듈2에서 처리된다. 또한 쓰레드n은 병렬 제어 모듈n에서 처리됨을 알 수 있다. 이와 같이 각 병렬 제어 모듈에서 처리한 쓰레드는 이후 CPU 코어에서 취합 과정을 거치게 된다.
상술한 바와 같이 CPU 코어는 각 쓰레드별로 처리하는 병렬 제어 모듈이 변경된 경우에는 이에 대한 정보를 업데이트함은 당연하다. 도 3은 각 병렬 제어 모듈에서 적어도 하나의 쓰레드를 처리하는 것으로 도시되어 있으나, 이에 한정되는 것은 아니다. 즉, 복수개의 병렬 제어 모듈에서 하나의 쓰레드를 처리할 수 있다.
또한 도 3에 도시되어 있는 바와 같이 각 병렬 제어 모듈별로 할당받은 데이터 처리 작업을 완료하였는지 여부를 로그 저장소에 저장할 수 있다. 도 3에 의하면 병렬 제어 모듈1과 병렬 제어 모듈n은 할당받은 데이터 처리 작업을 완료하였으나, 병렬 제어 모듈2는 할당받은 데이터 처리 작업을 완료하지 않았음을 알 수 있다.
본 발명은 도면에 도시된 일실시 예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
200: CPU 코어 210: GPU 코어
220: 병렬 제어 모듈

Claims (7)

  1. CPU 코어와 상기 CPU 코어로부터 데이터 처리를 요청받는 복수 개의 병렬 제어 모듈을 포함하는 GPU 코어로 구성된 데이터 처리 시스템에서, 데이터 처리를 수행할 병렬 제어 모듈의 개수를 동적으로 할당하는 방법에 있어서,
    상기 CPU 코어에서 데이터 처리가 요청되는 쓰레드의 개수를 분석하는 단계;
    상기 CPU 코어에서 분석한 상기 쓰레드의 개수와 한 번에 묶을 수 있는 최소 쓰레드의 개수(Warp size)와 하나의 블록으로 묶을 수 있는 최대 쓰레드의 개수를 이용하여 데이터를 처리할 병렬 제어 모듈의 개수를 결정하는 단계; 및
    상기 CPU 코어에서 병렬 제어 모듈과 각 병렬 제어 모듈로 처리를 요청할 데이터에 대한 정보를 저장한 후, 각 병렬 제어 모듈로 데이터 처리를 요청하는 단계;를 포함함을 특징으로 하는 병렬 제어 모듈 개수 동적 할당 방법.
  2. 제 1항에 있어서, 상기 한 번에 묶을 수 있는 최소 쓰레드의 개수는 32개이며, 상기 하나의 블록으로 묶을 수 있는 최대 쓰레드의 개수는 512개임을 특징으로 하는 병렬 제어 모듈 개수 동적 할당 방법.
  3. 제 2항에 있어서, 상기 CPU 코어는 상기 병렬 제어 모듈과 각 병렬 제어 모듈로 처리를 요청할 데이터에 대한 정보를 로그 저장소에 저장함을 특징으로 하는 병렬 제어 모듈 개수 동적 할당 방법.
  4. 제 3항에 있어서, 상기 로그 저장소는,
    상기 병렬 제어 모듈의 식별자와 각 병렬 제어 모듈에서 처리하는 데이터에 대한 정보를 저장함을 특징으로 하는 병렬 제어 모듈 개수 동적 할당 방법.
  5. CPU 코어와 상기 CPU 코어로부터 데이터 처리를 요청받는 복수 개의 병렬 제어 모듈을 포함하는 GPU 코어로 구성된 데이터 처리 시스템에서, 데이터 처리를 수행할 병렬 제어 모듈의 개수를 동적으로 할당하는 방법에 있어서,
    상기 CPU 코어에서 데이터 처리가 요청되는 쓰레드의 개수를 분석하는 단계;
    상기 CPU 코어에서 분석한 상기 쓰레드의 개수와 한 번에 묶을 수 있는 최소 쓰레드의 개수(Warp size)와 하나의 블록으로 묶을 수 있는 최대 쓰레드의 개수와 각 병렬 제어 모듈의 데이터 처리와 관련된 우선순위를 이용하여 데이터를 처리할 병렬 제어 모듈의 개수를 결정하는 단계;
    상기 CPU 코어에서 병렬 제어 모듈과 각 병렬 제어 모듈로 처리를 요청할 데이터에 대한 정보를 저장한 후, 각 병렬 제어 모듈로 데이터 처리를 요청하는 단계; 및
    상기 CPU 코어에서 상기 각 병렬 제어 모듈에서 처리한 데이터를 취합하는 단계를 포함함을 특징으로 하는 병렬 제어 모듈 개수 동적 할당 방법.
  6. 제 5항에 있어서, 상기 CPU 코어는,
    요청한 데이터 처리를 설정된 시간보다 지연되어 처리하는 병렬 제어 모듈의 데이터 처리의 우선순위를 높게 설정함을 특징으로 하는 병렬 제어 모듈 개수 동적 할당 방법.
  7. 제 6항에 있어서, 상기 한 번에 묶을 수 있는 최소 쓰레드의 개수는 32개이며, 상기 하나의 블록으로 묶을 수 있는 최대 쓰레드의 개수는 512개임을 특징으로 하는 병렬 제어 모듈 개수 동적 할당 방법.
KR1020110004395A 2011-01-17 2011-01-17 병렬 제어 모듈을 동적으로 할당하는 방법 KR101177059B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110004395A KR101177059B1 (ko) 2011-01-17 2011-01-17 병렬 제어 모듈을 동적으로 할당하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110004395A KR101177059B1 (ko) 2011-01-17 2011-01-17 병렬 제어 모듈을 동적으로 할당하는 방법

Publications (2)

Publication Number Publication Date
KR20120083000A KR20120083000A (ko) 2012-07-25
KR101177059B1 true KR101177059B1 (ko) 2012-08-28

Family

ID=46714527

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110004395A KR101177059B1 (ko) 2011-01-17 2011-01-17 병렬 제어 모듈을 동적으로 할당하는 방법

Country Status (1)

Country Link
KR (1) KR101177059B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170105343A (ko) * 2016-03-09 2017-09-19 한국전자통신연구원 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101420592B1 (ko) * 2012-12-21 2014-07-17 전남대학교산학협력단 컴퓨터 시스템
KR101553649B1 (ko) 2013-05-13 2015-09-16 삼성전자 주식회사 멀티 코어 장치 및 멀티 코어 장치의 작업 스케줄링 방법
KR102213668B1 (ko) 2013-09-06 2021-02-08 삼성전자주식회사 제너럴 퍼포즈 프로그래머블 컴퓨팅 디바이스에서의 멀티미디어 데이터 프로세싱 방법 및 그에 따른 데이터 프로세싱 시스템
KR102384345B1 (ko) 2015-05-15 2022-04-19 삼성전자 주식회사 스레드를 실행하는 방법, 프로세서 및 기록매체
CN116257365B (zh) * 2023-05-15 2023-08-22 建信金融科技有限责任公司 数据入库方法、装置、设备、存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257428A (ja) 2009-04-28 2010-11-11 Toshiba Corp 情報処理装置、並列処理最適化方法およびプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257428A (ja) 2009-04-28 2010-11-11 Toshiba Corp 情報処理装置、並列処理最適化方法およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170105343A (ko) * 2016-03-09 2017-09-19 한국전자통신연구원 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법
KR102018541B1 (ko) * 2016-03-09 2019-09-06 한국전자통신연구원 코어 컨트롤러를 포함하는 시스템 온 칩 및 그것의 코어 관리 방법

Also Published As

Publication number Publication date
KR20120083000A (ko) 2012-07-25

Similar Documents

Publication Publication Date Title
US10133602B2 (en) Adaptive contention-aware thread placement for parallel runtime systems
EP2707797B1 (en) Automatic load balancing for heterogeneous cores
US8332854B2 (en) Virtualized thread scheduling for hardware thread optimization based on hardware resource parameter summaries of instruction blocks in execution groups
KR101177059B1 (ko) 병렬 제어 모듈을 동적으로 할당하는 방법
US9672035B2 (en) Data processing apparatus and method for performing vector processing
US8970607B2 (en) Run-time allocation of functions to a hardware accelerator
US8869162B2 (en) Stream processing on heterogeneous hardware devices
KR101651871B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
JP2008191949A (ja) マルチコアシステムおよびマルチコアシステムの負荷分散方法
KR101640848B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
JP2009151774A (ja) マルチコア・プロセッサ上での自律型ワークロード分配のための方法、装置、およびシステム
US20130198758A1 (en) Task distribution method and apparatus for multi-core system
US9612867B2 (en) Apparatus and method for data partition and allocation in heterogeneous multi-processor environment
JP6252140B2 (ja) タスク割り付けプログラム及びタスク割り付け方法
KR20120066189A (ko) 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법
CN103810035A (zh) 智能上下文管理
Thoman et al. Adaptive granularity control in task parallel programs using multiversioning
Chen et al. Case: A compiler-assisted scheduling framework for multi-gpu systems
US8862786B2 (en) Program execution with improved power efficiency
US11645124B2 (en) Program execution control method and vehicle control device
Tsog et al. Static allocation of parallel tasks to improve schedulability in cpu-gpu heterogeneous real-time systems
US20120042322A1 (en) Hybrid Program Balancing
KR102210765B1 (ko) 긴 지연시간 숨김 기반 워프 스케줄링을 위한 방법 및 장치
GB2521151A (en) Configurable thread ordering for a data processing apparatus
Zahaf et al. Contention-aware GPU partitioning and task-to-partition allocation for real-time workloads

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160816

Year of fee payment: 5