KR101694306B1 - 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법 - Google Patents

하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법 Download PDF

Info

Publication number
KR101694306B1
KR101694306B1 KR1020120146900A KR20120146900A KR101694306B1 KR 101694306 B1 KR101694306 B1 KR 101694306B1 KR 1020120146900 A KR1020120146900 A KR 1020120146900A KR 20120146900 A KR20120146900 A KR 20120146900A KR 101694306 B1 KR101694306 B1 KR 101694306B1
Authority
KR
South Korea
Prior art keywords
parallelization
execution time
steps
performance
calculating
Prior art date
Application number
KR1020120146900A
Other languages
English (en)
Other versions
KR20140077775A (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 KR1020120146900A priority Critical patent/KR101694306B1/ko
Priority to US13/953,993 priority patent/US9189274B2/en
Publication of KR20140077775A publication Critical patent/KR20140077775A/ko
Application granted granted Critical
Publication of KR101694306B1 publication Critical patent/KR101694306B1/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/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
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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
    • 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
    • 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, look ahead
    • 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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • 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/44Arrangements for executing specific programs
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Abstract

설계 중간 단계에서 하드웨어 가속 장치를 이용한 병렬화 처리에 따른 성능 향상을 예측하도록 한 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법이 제시된다. 제시된 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치는 작업의 수행 시간을 복수의 작업 단계들 및 처리 단계들로 구분하고, 병렬화 지수 및 목표 성능 중에 하나를 설정하고, 복수의 작업 단계들 및 처리 단계들 각각의 수행 시간을 근거로 작업 중에 병렬화 대상 단계의 비율 및 속도 향상값 중에 적어도 하나를 산출하고, 산출한 복수의 작업 단계들 및 처리 단계들의 수행 시간들과 산출한 병렬화 대상 단계의 비율과 속도 향상값 및 설정된 목표 성능 중에 적어도 하나를 근거로 예상 성능값 또는 병렬화 지수를 산출한다.

Description

하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법{APPARATUS AND METHOD FOR PREDICTING PERFORMANCE ACCORDING TO PARALLELIZATION OF HARDWARE ACCELERATION DEVICE}
본 발명은 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법에 관한 것으로, 더욱 상세하게는 실시간 처리 시스템에서 하드웨어 가속 장치를 이용하여 병렬화하여 작업을 수행함에 따른 성능 향상 정도를 예측하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법에 대한 것이다. 즉, 본 발명은 FPGA, MIC, GPU 등의 범용 멀티코어(Multicore) 하드웨어 가속 장치를 이용하여 소프트웨어 수행을 병렬화함에 따라 CPU 기반 소프트웨어 수행 대비 성능 향상 정도를 예측하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법에 대한 것이다.
종래의 실시간 데이터 처리 시스템은 CPU 기반으로 소프트웨어를 처리하는 방식으로 구성되었다. 하지만, 최근 실시간 데이터의 사용이 폭증함에 따라 종래의 실시간 데이터 처리 시스템만으로는 실시간 데이터의 처리 성능이 저하되는 문제가 발생하였다.
이에, 실시간 데이터 처리 시스템은 FPGA, MIC, GPU 등의 하드웨어 가속 장치를 이용하여 소프트웨어 처리를 병렬화하는 방식으로 구성되고 있다. 일례로, 한국등록특허 제10-0463642호(명칭: 보조프로세서를 이용한 멀티미디어 처리를 위한 가속장치)에서는 병렬화 처리를 수행하여 멀티미디어의 처리 성능을 향상시키는 멀티미디어 처리를 위한 가속장치를 개시하고 있다.
하드웨어 가속 장치를 이용한 실시간 데이터 처리 시스템은 전체 작업 중에서 병렬화가 용이한 부분을 모듈화한 후, 모듈들을 하드웨어 가속 장치에서 병렬 처리하여 실행하는 방식으로 전체적인 성능 향상을 도모하고 있다. 즉, 순차적으로 수행될 수밖에 없는 부분은 고속의 CPU에서 소프트웨어 방식으로 수행하고, 병렬화가 가능한 부분은 하드웨어 가속 장치에서 구현하는 방식이다.
하지만, 일반적으로 CPU가 하드웨어 구성 요소 중에 처리 속도가 가장 빠르기 때문에 하드웨어 가속 장치에서 적절한 수준의 병렬화를 하지 못하면 병렬화에 따른 성능(가속) 향상을 기대하기 어렵다. 다시 말해, 전체 작업 과정에서 얼마의 모듈을 병렬화하고, 병렬화된 모듈이 동시에 병렬 처리하는 정도에 따라 전체 작업이 빨라질 수도 있고 때에 따라서는 오히려 느려질 수도 있다.
물론, 병렬화된 모듈을 최대한 많은 하드웨어 가속 장치에서 병렬 처리하여 작업 성능을 높일 수 있지만 이러한 경우 하드웨어 가속 장치의 크기가 커지고 비용이 높아지는 문제점이 있다.
종래의 하드웨어 가속 장치를 이용한 병렬화 처리의 방식을 설명하면, 시스템 설계자는 경험적 판단에 따라 전체 작업 중에 병렬화할 부분을 결정한다. 시스템 설계자는 전체 작업 중에서 병렬화로 결정된 부분을 하드웨어 가속 장치에서 수행하고, 나머지 부분을 CPU에서 수행하는 작업 흐름을 결정한다. 실시간 데이터 처리 시스템은 결정된 작업 흐름에 따라 실제로 데이터를 처리를 수행하고, 시스템 설계자는 실시간 데이터 처리 시스템의 실제 데이터 처리를 통해 병렬화에 따른 성능 향상 정도를 확인한다.
이러한 종래의 방식은 작업의 병렬화 처리에 따른 작업 흐름을 결정하는 데 있어 시스템 설계자의 경험에 크게 의존하며, 하드웨어 가속 장치를 이용한 병렬화 처리를 구성하는데 많은 시간이 소비된다.
하지만, 하드웨어 가속 장치를 이용한 병렬화 처리의 성능 확인은 실제 구현이 완료된 상태에서만 가능하기 때문에, 설계 오류, 성능 향상 미달 등의 이유로 재설계를 하거나 새로운 하드웨어 가속 장치로 대체하게 되면 설계부터 최종 구현단계까지 반복해야하기 때문에 개발 시간이 증가하게 되는 문제점이 있다. 즉, 하드웨어 가속 장치를 이용한 병렬화 처리를 구성하는데 많은 노력과 시간이 투입되어야 하지만 기대 효과를 미리 예측할 수 없고, 최종 단계가 되어야만 실제 테스트하고 성능을 측정할 수 있기 때문에, 성능 확인까지 많은 시간이 소비되며, 병렬화 처리 구성을 수정하여 다시 성능을 측정하고자 하면 많은 시간과 노력이 반복적으로 낭비되는 문제점이 있다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 설계 중간 단계에서 하드웨어 가속 장치를 이용한 병렬화 처리에 따른 성능 향상을 예측하도록 한 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법을 제공하는 것을 목적으로 한다. 즉, 본 발명은 설계 중간 단계에서 하드웨어 가속 장치를 이용한 병렬화 처리에 따른 성능 향상을 예측하여 재설계에 따른 시간 및 노력 낭비를 최소화하도록 한 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위하여 본 발명의 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치는, 병렬화 대상 모듈을 기준으로 작업의 수행 시간을 복수의 작업 단계들 및 처리 단계들로 구분하고, 병렬화 지수 및 목표 성능 중에 하나를 설정하는 설정부; 복수의 작업 단계들 및 처리 단계들 각각의 수행 시간을 산출하고, 산출한 수행 시간들을 근거로 작업 중에 병렬화 대상 단계의 비율 및 속도 향상값 중에 적어도 하나를 산출하는 연산부; 및 산출한 복수의 작업 단계들 및 처리 단계들의 수행 시간들과 산출한 병렬화 대상 단계의 비율과 속도 향상값 및 설정된 목표 성능 중에 적어도 하나를 근거로 예상 성능값 또는 병렬화 지수를 산출하는 예측부를 포함한다.
연산부는, 산출한 복수의 작업 단계들 각각의 수행 시간을 근거로 작업 중에 병렬화 대상 단계의 비율을 산출한다.
연산부는, 설정된 병렬화 지수 및 기산출한 복수의 처리 단계들 각각의 수행 시간을 근거로 속도 향상값을 산출한다.
예측부는, 산출한 병렬화 대상 단계의 비율 및 속도 향상값을 근거로 예상 성능값을 산출한다.
예측부는, 산출한 복수의 처리 단계들 각각의 수행 시간과 산출한 병렬화 대상 단계의 비율 및 설정된 목표 성능을 근거로 병렬화 지수를 산출한다.
설정부는, 작업의 수행 시간을 병렬화 전단계, 병렬화 단계, 병렬화 후단계를 포함하는 복수의 작업 단계로 구분한다.
설정부는, 병렬화 대상 단계인 병렬화 단계를 초기화 단계, 수행 단계, 후처리 단계를 포함하는 복수의 처리 단계로 구분한다.
설정부는, 병렬화 대상 단계를 처리할 하드웨어 가속 장치의 개수를 병렬화 지수로 설정한다.
상기한 목적을 달성하기 위하여 본 발명의 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법은, 설정부에 의해, 병렬화 대상 모듈을 기준으로 작업의 수행 시간을 복수의 단계로 구분하는 단계; 연산부에 의해, 구분하는 단계에서 구분된 복수의 단계 각각의 수행 시간을 산출하는 단계; 연산부에 의해, 산출한 복수의 단계 각각의 수행 시간을 근거로 작업 중에 병렬화 대상 단계의 비율을 산출하는 단계; 설정부에 의해, 병렬화 지수를 설정하는 단계; 연산부에 의해, 설정된 병렬화 지수, 복수의 단계 각각의 수행 시간을 근거로 속도 향상값을 산출하는 단계; 및 예측부에 의해, 산출한 작업의 병렬화 대상 단계의 비율 및 산출한 속도 향상값을 근거로 예상 성능값을 산출하는 단계를 포함한다.
작업의 수행 시간을 복수의 단계로 구분하는 단계는, 설정부에 의해, 병렬화 대상 모듈을 기준으로 작업의 수행 시간을 병렬화 전단계, 병렬화 단계, 병렬화 후단계를 포함하는 복수의 작업 단계로 구분하는 단계를 포함한다.
병렬화 대상 단계의 비율을 산출하는 단계에서는, 연산부에 의해, 병렬화 전단계의 수행시간, 병렬화 단계의 수행시간 및 병렬화 후단계의 수행시간을 근거로 작업의 병렬화 대상 단계의 비율을 산출한다.
작업의 수행 시간을 복수의 단계로 구분하는 단계는, 설정부에 의해, 병렬화 단계를 초기화 단계, 수행 단계, 후처리 단계를 포함하는 복수의 처리 단계로 구분하는 단계를 포함한다.
속도 향상값을 산출하는 단계에서는, 연산부에 의해, 초기화 단계의 수행 시간, 수행 단계의 수행 시간, 후처리 단계의 수행 시간과 설정된 병렬화 지수를 근거로 속도 향상값을 산출한다.
병렬화 지수를 설정하는 단계에서는, 설정부에 의해, 구분된 복수의 단계 중에서 병렬화 대상 단계를 처리할 하드웨어 가속 장치의 개수를 병렬화 지수로 설정한다.
예상 성능값을 산출하는 단계에서는, 예측부에 의해, 산출한 병렬화 대상 단계의 비율 및 산출한 속도 향상값을 암달의 법칙에 대입하여 예상 성능값을 산출한다.
상기한 목적을 달성하기 위하여 본 발명의 다른 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법은, 설정부에 의해, 병렬화 대상 모듈을 기준으로 작업의 수행 시간을 복수의 단계로 구분하는 단계; 연산부에 의해, 구분하는 단계에서 구분된 복수의 단계 각각의 수행 시간을 산출하는 단계; 연산부에 의해, 산출한 복수의 단계 각각의 수행 시간을 근거로 작업 중에 병렬화 대상 단계의 비율을 산출하는 단계; 설정부에 의해, 목표 성능을 설정하는 단계; 및 예측부에 의해, 설정된 목표 성능, 복수의 단계 각각의 수행 시간, 및 산출한 병렬화 대상 단계의 비율을 근거로 병렬화 지수를 산출하는 단계를 포함한다.
작업의 수행 시간을 복수의 단계로 구분하는 단계는, 설정부에 의해, 병렬화 대상 모듈을 기준으로 작업의 수행 시간을 병렬화 전단계, 병렬화 단계, 병렬화 후단계를 포함하는 복수의 작업 단계로 구분하는 단계를 포함한다.
병렬화 대상 단계의 비율을 산출하는 단계에서는, 연산부에 의해, 병렬화 전단계의 수행시간, 병렬화 단계의 수행시간 및 병렬화 후단계의 수행시간을 근거로 작업의 병렬화 대상 단계의 비율을 산출한다.
작업의 수행 시간을 복수의 단계로 구분하는 단계는, 설정부에 의해, 병렬화 단계를 초기화 단계, 수행 단계, 후처리 단계를 포함하는 복수의 처리 단계로 구분하는 단계를 더 포함한다.
병렬화 지수를 산출하는 단계에서는, 예측부에 의해, 초기화 단계의 수행시간, 수행 단계의 수행시간, 후처리 단계의 수행시간과 병렬화 대상 단계의 비율 및 목표 성능을 암달의 법칙에 대입하여 병렬화 지수를 산출한다.
본 발명에 의하면, 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법은 하드웨어 가속 장치를 이용한 시스템 구현에 다음과 같은 장점을 가진다.
첫째, 하드웨어 가속 장치에 특정 모듈을 구현하면 기능적 모듈을 먼저 완성하고 이를 여러 개로 물리적으로 반복 배치하여 병렬화를 구현한다. 이때, 하나의 기능을 여러 개로 반복 구현할 때에 실제 구현하여 수행하기 전에 한 개만 구현한 상태에서도 최종 상태의 성능 향상이 얼마나 되는지를 예측할 수 있는 효과가 있다.
둘째, 최종 성능 향상 목표를 위해서는 기능적 모듈이 실제 물리적으로 몇 개로 반복되어야 달성될 수 있는지 예측할 수 있는 효과가 있다. 즉, 대상 모듈을 하드웨어 가속 장치에서 한 개(즉, 단위 모듈)만 구현한 상태에서, 최종 시스템 성능 향상을 달성하기 위해서는 단위 모듈이 물리적으로 몇 개로 병렬화하여야 하는지를 예측할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치를 설명하기 위한 블록도.
도 2 및 도 3은 도 1의 설정부를 설명하기 위한 도면.
도 4는 본 발명의 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법을 설명하기 위한 흐름도.
도 5는 본 발명의 다른 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법을 설명하기 위한 흐름도.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
먼저, 본 발명의 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법을 간략하게 요약하여 설명하면 아래와 같다.
본 발명에서는 하드웨어 가속 장치를 이용한 데이터의 병렬화 실시간 처리를 수행할 때 기대되는 성능을 예측하거나, 목표 성능을 고정하였을 경우 하드웨어 가속 장치에서 달성하여야 하는 병렬화 정도를 구하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법을 제안한다. 이때, 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법을 구현함에 있어 병렬화 성능에 관한 법칙인 암달의 법칙(Amdahl's law)을 이용한다. 이를 위하여, 본 발명은 전체적인 작업을 CPU에 의한 소프트웨어 작업 부분과 하드웨어 가속 장치에서 실행하고자 하는 부분으로 세분화하여 각 구간별로 성능 지표를 구하고 이를 암달의 법치에 대입하여 값을 얻는다.
전체적인 작업(J)을 수행 시간의 측면에서 (1) 시작부터 병렬화하고자 하는 모듈의 전 단계, (2) 병렬화하려는 모듈을 CPU에 의해 실행하는 단계, (3) 병렬화하려는 모듈 이후에서 완료 단계로 구분하고, 각 단계를 소프트웨어 방식인 기본 수행 성능으로 본다.
그리고, 병렬화하려는 모듈을 하드웨어 가속 장치에 실행할 경우에는 작업(J)은 (2) 단계를 (2-1) 하드웨어 가속 장치 준비 단계, (2-2) 하드웨어 가속 장치에서 실행하는 단계, (2-3) 결과를 CPU가 제어하는 메모리로 전달하는 단계로 재구성할 수 있다. 이를 작업 JP라고 한다.
이렇게 하면 기본적인 하드웨어 가속 장치에 의한 성능 향상은 (TIME(J) / TIME(JP))*100이다. 여기서 TIME(x)는 작업 x를 처리하는데 걸리는 시간을 뜻한다.
설계자는 (2-2) 단계에서 실행하고자 하는 모듈을 하드웨어 가속 장치의 기능인 병렬화를 함으로써 보다 높은 성능을 얻게 된다. 이때, 병렬화라고 하면 대상 모듈을 여러 개(즉, N 개)의 하드웨어 가속 장치에서 구현하고 이들을 동시 실행함을 뜻한다.
종래에는 개발자가 실제 하드웨어 가속 장치를 N개로 구성한 후, 병렬화처리를 실측하여 성능을 보고 테스트하는 반복 작업을 통해 병렬화처리에 따른 성능 향상을 도출한다. 이러한 종래의 방식은 구현-테스트-실측의 단계를 반복 실행해야하기 때문에, 많은 시간과 노력을 필요로 한다.
하지만, 본 발명은 개발자가 병렬화 대상 모듈을 여러 개로 구현하여 병렬화를 하고자 할 경우에, 실제 완전히 구현하지 않아도 암달의 공식에 의해 성능 향상을 예측할 수 있다.
이에 따라 본 발명이 예측하는 성능은 다음과 같다. (2-2) 단계가 N개로 병렬 처리됨에 따라 TIME(2-2)=TIME(2-2)/N이 되어 TIME(JP)=TIME(1)+TIME(2-1)+TIME(2-2)/N+TIME(2-3)+TIME(3)가 된다. 여기서, 이값과 각 구간의 수행 시간을 획득하여 암달의 공식에 대입함으로써 병렬화에 따른 성능 향상 폭을 예측할 수 있게 된다.
이하, 본 발명의 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치를 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다. 도 1은 본 발명의 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치를 설명하기 위한 블록도이고, 도 2 및 도 3은 도 1의 설정부를 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치(100)는 설정부(120), 연산부(140), 예측부(160), 출력부(180)를 포함하여 구성된다.
설정부(120)는 병렬화 대상 모듈을 기준으로 작업(J)의 수행 시간을 복수의 작업 단계들로 구분한다. 즉, 도 2에 도시된 바와 같이, 설정부(120)는 전체 작업(J)의 수행 시간(Time(J))을 기준으로 시작부터 병렬 처리하고자 하는 모듈의 전까지의 시간인 병렬화 전단계(JT1), 병렬화 처리 대상 모듈이 CPU를 통해 처리되는 시간인 병렬화 단계(JT2), 병렬화 처리 대상 모듈의 처리 후 작업 종료까지의 시간인 병렬화 후단계(JT3)를 포함하는 작업 단계들로 구분한다.
설정부(120)는 기구분한 복수의 단계 중에서 병렬화 대상 단계(JT2)를 복수의 처리 단계로 구분한다. 즉, 도 3에 도시된 바와 같이, 설정부(120)는 기구분한 병렬화 단계를 병렬화 처리 위해 하드웨어 가속 장치를 준비하는 단계인 초기화 단계(JPT1), 하드웨어 가속 장치를 통해 병렬화 처리를 수행하는 단계인 수행 단계(JPT2), 수행 단계의 병렬화 처리 결과를 CPU로 전송하는 후처리 단계(JPT3)를 포함하는 처리 단계들로 구분한다. 이때, 병렬화 대상 단계(JT2)를 복수의 하드웨어 가속 장치를 통해 처리하는 경우 전체 작업(J)의 수행 시간을 Time(JP)로 표시한다.
설정부(120)는 병렬화 대상 단계의 병렬화 지수(N)를 설정한다. 즉, 설정부(120)는 병렬화 처리를 통한 성능 예측을 위해 병렬화 대상 단계를 처리할 하드웨어 가속 장치의 개수를 병렬화 지수로 설정한다. 이때, 설정부(120)는 설계자로부터 병렬화 지수(N)를 입력받을 수도 있다. 즉, 설정부(120)는 설계자가 요구하는 개수의 하드웨어 가속 장치를 이용하여 병렬화 처리를 한 경우의 성능 향상을 예측하기 위해 설계자로부터 병렬화 지수(N)를 입력받는다.
설정부(120)는 병렬화 대상 단계의 목표 성능을 설정할 수도 있다. 즉, 설정부(120)는 병렬화 처리를 통한 성능 향상의 목표인 목표 성능(E)을 설정한다. 이때, 설정부(120)는 설계자로부터 목표 성능을 입력받을 수도 있다. 즉, 설정부(120)는 설계자가 요구하는 목표 성능(E)을 달성하기 위해 구성해야할 하드웨어 가속 장치의 개수(즉, 병렬화 지수)를 산출하기 위해 설계자로부터 목표 성능(E)을 입력받는다.
연산부(140)는 설정부(120)에서 구분한 복수의 작업 단계들 각각의 수행 시간을 산출한다. 즉, 연산부(140)는 병렬화 전단계의 수행 시간, 병렬화 단계의 수행 시간, 병렬화 후단계의 수행 시간을 각각 산출한다.
연산부(140)는 기산출한 작업 단계들 각각의 수행 시간을 근거로 작업(J) 중에 병렬화 대상 단계의 비율을 산출한다. 즉, 연산부(140)는 병렬화 전단계의 수행 시간, 병렬화 단계의 수행 시간, 병렬화 후단계의 수행 시간을 하기의 수학식 1에 대입하여 작업(J) 중에 병렬화 대상 단계의 비율을 산출한다.
Figure 112012104431145-pat00001
여기서, F는 작업(J) 중에 병렬화 대상 단계의 비율이고, JT1은 병렬화 전단계의 수행 시간, JT2는 병렬화 단계의 수행 시간, JT3은 병렬화 후단계의 수행 시간이다.
연산부(140)는 설정부(120)에서 구분한 복수의 처리 단계들 각각의 수행 시간을 산출한다. 즉, 연산부(140)는 초기화 단계의 수행 시간, 수행 단계의 수행 시간, 후처리 단계의 수행 시간을 산출한다.
연산부(140)는 설정부(120)에서 설정된 병렬화 지수 및 기산출한 복수의 처리 단계들 각각의 수행 시간을 이용하여 속도 향상값을 산출한다. 즉, 연산부(140)는 초기화 단계의 수행 시간, 수행 단계의 수행 시간, 후처리 단계의 수행 시간과 병렬화 지수를 하기의 수학식 2에 대입하여 속도 향상값을 산출한다.
Figure 112012104431145-pat00002
여기서, S는 속도 향상값이고, JPT1은 초기화 단계의 수행 시간, JPT2는 수행 단계의 수행 시간, JPT3은 후처리 단계의 수행 시간, N은 병렬화 지수이다.
예측부(160)는 연산부(140)에서 산출한 작업(J) 중에 병렬화 대상 단계의 비율 및 속도 향상값을 근거로 예상 성능값을 산출한다. 즉, 예측부(160)는 작업(J) 중에 병렬화 대상 단계의 비율 및 속도 향상값을 하기의 수학식 3(즉, 암달의 법칙(amdahl's law))에 대입하여 예상 성능값을 산출한다.
Figure 112012104431145-pat00003
여기서, E는 예상 성능값이다.
예측부(160)는 연산부(140)에서 산출한 복수의 처리 단계 각각의 수행 시간과 작업(J) 중에 병렬화 대상 단계의 비율 및 목표 성능을 근거로 병렬화 지수를 산출할 수도 있다. 즉, 예측부(160)는 복수의 처리 단계들 각각의 수행 시간과 작업(J) 중에 병렬화 대상 단계의 비율 및 목표 성능을 하기의 수학식 4에 대입하여 병렬화 지수를 산출한다.
Figure 112012104431145-pat00004
여기서, N은 병렬화 지수, E는 목표 성능, F는 작업(J) 중에 병렬화 대상 단계의 비율, JPT1은 초기화 단계의 수행 시간, JPT2는 수행 단계의 수행 시간, JPT3은 후처리 단계의 수행 시간이다.
출력부(180)는 예측부(160)에서 산출한 예상 성능값 또는 병렬화 지수를 출력한다. 즉, 출력부(180)는 예상 성능값 또는 병렬화 지수를 화면에 표시하거나, 실시간 데이터 처리 시스템으로 출력한다.
이하, 본 발명의 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법을 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다. 도 4는 본 발명의 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법을 설명하기 위한 흐름도이다.
먼저, 설정부(120)는 병렬화 대상 모듈을 기준으로 작업(J)의 수행 시간을 복수의 단계로 구분한다(S110). 이때, 설정부(120)는 작업(J)의 수행 시간을 병렬화 전단계, 병렬화 단계, 병렬화 후단계로 구분한다.
연산부(140)는 S110 단계에서 구분한 각 단계의 수행 시간을 산출한다(S120). 즉, 연산부(140)는 병렬화 전단계의 수행 시간, 병렬화 단계의 수행 시간, 병렬화 후단계의 수행 시간을 각각 산출한다.
설정부(120)는 기구분한 복수의 단계 중에서 병렬화 대상 단계를 복수의 단계로 구분한다(S130). 즉, 설정부(120)는 기구분한 병렬화 단계를 초기화 단계, 수행 단계, 후처리 단계로 구분한다.
연산부(140)는 S130 단계에서 구분한 각 단계의 수행 시간을 산출한다(S140). 즉, 연산부(140)는 초기화 단계의 수행 시간, 수행 단계의 수행 시간, 후처리 단계의 수행 시간을 각각 산출한다.
연산부(140)는 S120 단계에서 산출한 각 단계의 수행 시간을 근거로 작업(J) 중에 병렬화 대상 단계의 비율을 산출한다(S150). 즉, 연산부(140)는 병렬화 전단계의 수행 시간, 병렬화 단계의 수행 시간, 병렬화 후단계의 수행 시간을 이용하여 작업(J) 중에 병렬화 대상 단계의 비율을 산출한다.
설정부(120)는 병렬화 대상 단계의 병렬화 지수를 설정한다(S160). 즉, 설정부(120)는 병렬화 대상 단계를 처리할 하드웨어 가속 장치의 개수를 병렬화 지수로 설정한다. 이때, 설정부(120)는 설계자로부터 병렬화 지수를 입력받는다.
연산부(140)는 기설정된 병렬화 지수 및 S140 단계에서 산출한 각 단계의 수행 시간을 이용하여 속도 향상값을 산출한다(S170). 즉, 연산부(140)는 초기화 단계의 수행 시간, 수행 단계의 수행 시간, 후처리 단계의 수행 시간과 병렬화 지수를 이용하여 속도 향상값을 산출한다.
예측부(160)는 기산출한 작업(J) 중에 병렬화 대상 단계의 비율 및 속도 향상값을 근거로 예상 성능값을 산출한다(S180). 즉, 예측부(160)는 기산출한 작업(J) 중에 병렬화 대상 단계의 비율 및 속도 향상값을 암달의 법칙에 대입하여 예상 성능값을 산출한다.
출력부(180)는 예측부(160)에서 산출한 예상 성능값을 출력한다(S190). 즉, 출력부(180)는 예상 성능값을 화면에 표시하거나, 실시간 데이터 처리 시스템으로 출력한다.
이하, 본 발명의 다른 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법을 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다. 도 5는 본 발명의 다른 실시예에 따른 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법을 설명하기 위한 흐름도이다.
먼저, 설정부(120)는 병렬화 대상 모듈을 기준으로 작업(J)의 수행 시간을 복수의 단계로 구분한다(S210). 이때, 설정부(120)는 작업(J)의 수행 시간을 병렬화 전단계, 병렬화 단계, 병렬화 후단계로 구분한다.
연산부(140)는 S210 단계에서 구분한 각 단계의 수행 시간을 산출한다(S220). 즉, 연산부(140)는 병렬화 전단계의 수행 시간, 병렬화 단계의 수행 시간, 병렬화 후단계의 수행 시간을 각각 산출한다.
설정부(120)는 기구분한 복수의 단계 중에서 병렬화 대상 단계를 복수의 단계로 구분한다(S230). 즉, 설정부(120)는 기구분한 병렬화 단계를 초기화 단계, 수행 단계, 후처리 단계로 구분한다.
연산부(140)는 S230 단계에서 구분한 각 단계의 수행 시간을 산출한다(S240). 즉, 연산부(140)는 초기화 단계의 수행 시간, 수행 단계의 수행 시간, 후처리 단계의 수행 시간을 각각 산출한다.
연산부(140)는 S220 단계에서 산출한 각 단계의 수행 시간을 근거로 작업(J) 중에 병렬화 대상 단계의 비율을 산출한다(S250). 즉, 연산부(140)는 병렬화 전단계의 수행 시간, 병렬화 단계의 수행 시간, 병렬화 후단계의 수행 시간을 상기의 수학식 1(제1실시예 참조)에 대입하여 작업(J) 중에 병렬화 대상 단계의 비율을 산출한다.
설정부(120)는 병렬화 대상 단계의 목표 성능을 설정한다(S260). 즉, 설정부(120)는 병렬화 처리를 통한 성능 향상의 목표인 목표 성능을 설정한다. 이때, 설정부(120)는 설계자로부터 목표 성능을 입력받는다.
예측부(160)는 S240 단계에서 산출한 각 단계의 수행 시간과 작업(J) 중에 병렬화 대상 단계의 비율 및 목표 성능을 근거로 병렬화 지수를 산출한다(S270). 즉, 예측부(160)는 각 단계의 수행 시간과 작업(J) 중에 병렬화 대상 단계의 비율 및 목표 성능을 이용하여 병렬화 지수를 산출한다.
출력부(180)는 예측부(160)에서 산출한 병렬화 지수를 출력한다(S280). 즉, 출력부(180)는 병렬화 지수를 화면에 표시하거나, 실시간 데이터 처리 시스템으로 출력한다.
상술한 바와 같이, 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법은 하드웨어 가속 장치를 이용한 시스템 구현에 다음과 같은 장점을 가진다.
첫째, 하드웨어 가속 장치에 특정 모듈을 구현하면 기능적 모듈을 먼저 완성하고 이를 여러 개로 물리적으로 반복 배치하여 병렬화를 구현한다. 이때, 하나의 기능을 여러 개로 반복 구현할 때에 실제 구현하여 수행하기 전에 한 개만 구현한 상태에서도 최종 상태의 성능 향상이 얼마나 되는지를 예측할 수 있는 효과가 있다.
둘째, 최종 성능 향상 목표를 위해서는 기능적 모듈이 실제 물리적으로 몇 개로 반복되어야 달성될 수 있는지 예측할 수 있는 효과가 있다. 즉, 대상 모듈을 하드웨어 가속 장치에서 한 개(즉, 단위 모듈)만 구현한 상태에서, 최종 시스템 성능 향상을 달성하기 위해서는 단위 모듈이 물리적으로 몇 개로 병렬화하여야 하는지를 예측할 수 있는 효과가 있다.
이상에서 본 발명에 따른 바람직한 실시예에 대해 설명하였으나, 다양한 형태로 변형이 가능하며, 본 기술분야에서 통상의 지식을 가진자라면 본 발명의 특허청구범위를 벗어남이 없이 다양한 변형예 및 수정예를 실시할 수 있을 것으로 이해된다.
100: 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치
120: 설정부 140: 연산부
160: 예측부 180: 출력부

Claims (20)

  1. 병렬화 대상 모듈을 기준으로 작업의 수행 시간을 복수의 작업 단계들 및 처리 단계들로 구분하고, 병렬화 지수 및 목표 성능 중에 하나를 설정하는 설정부;
    상기 복수의 작업 단계들 및 처리 단계들 각각의 수행 시간을 산출하고, 상기 산출한 수행 시간들을 근거로 작업 중에 병렬화 대상 단계의 비율 및 속도 향상값 중에 적어도 하나를 산출하는 연산부; 및
    상기 산출한 복수의 작업 단계들 및 처리 단계들의 수행 시간들과 상기 산출한 병렬화 대상 단계의 비율과 속도 향상값 및 상기 설정된 목표 성능 중에 적어도 하나를 근거로 예상 성능값 또는 병렬화 지수를 산출하는 예측부를 포함하고,
    상기 연산부는,
    상기 산출한 복수의 작업 단계들 각각의 수행 시간을 근거로 작업 중에 병렬화 대상 단계의 비율을 산출하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 연산부는,
    상기 설정된 병렬화 지수 및 기산출한 복수의 처리 단계들 각각의 수행 시간을 근거로 속도 향상값을 산출하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치.
  4. 청구항 1에 있어서,
    상기 예측부는,
    상기 산출한 병렬화 대상 단계의 비율 및 속도 향상값을 근거로 예상 성능값을 산출하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치.
  5. 청구항 1에 있어서,
    상기 예측부는,
    상기 산출한 복수의 처리 단계들 각각의 수행 시간과 상기 산출한 병렬화 대상 단계의 비율 및 상기 설정된 목표 성능을 근거로 병렬화 지수를 산출하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치.
  6. 청구항 1에 있어서,
    상기 설정부는,
    상기 작업의 수행 시간을 병렬화 전단계, 병렬화 단계, 병렬화 후단계를 포함하는 복수의 작업 단계로 구분하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치.
  7. 청구항 6에 있어서,
    상기 설정부는,
    병렬화 대상 단계인 상기 병렬화 단계를 초기화 단계, 수행 단계, 후처리 단계를 포함하는 복수의 처리 단계로 구분하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치.
  8. 청구항 1에 있어서,
    상기 설정부는,
    병렬화 대상 단계를 처리할 하드웨어 가속 장치의 개수를 병렬화 지수로 설정하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치.
  9. 설정부에 의해, 병렬화 대상 모듈을 기준으로 작업의 수행 시간을 복수의 단계로 구분하는 단계;
    연산부에 의해, 상기 구분하는 단계에서 구분된 복수의 단계 각각의 수행 시간을 산출하는 단계;
    상기 연산부에 의해, 상기 산출한 복수의 단계 각각의 수행 시간을 근거로 작업 중에 병렬화 대상 단계의 비율을 산출하는 단계;
    상기 설정부에 의해, 병렬화 지수를 설정하는 단계;
    상기 연산부에 의해, 상기 설정된 병렬화 지수, 상기 복수의 단계 각각의 수행 시간을 근거로 속도 향상값을 산출하는 단계; 및
    예측부에 의해, 상기 산출한 작업의 병렬화 대상 단계의 비율 및 상기 산출한 속도 향상값을 근거로 예상 성능값을 산출하는 단계를 포함하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
  10. 청구항 9에 있어서,
    상기 작업의 수행 시간을 복수의 단계로 구분하는 단계는,
    상기 설정부에 의해, 병렬화 대상 모듈을 기준으로 작업의 수행 시간을 병렬화 전단계, 병렬화 단계, 병렬화 후단계를 포함하는 복수의 작업 단계로 구분하는 단계를 포함하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
  11. 청구항 10에 있어서,
    상기 병렬화 대상 단계의 비율을 산출하는 단계에서는,
    상기 연산부에 의해, 상기 병렬화 전단계의 수행시간, 상기 병렬화 단계의 수행시간 및 상기 병렬화 후단계의 수행시간을 근거로 작업의 병렬화 대상 단계의 비율을 산출하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
  12. 청구항 10에 있어서,
    상기 작업의 수행 시간을 복수의 단계로 구분하는 단계는,
    상기 설정부에 의해, 상기 병렬화 단계를 초기화 단계, 수행 단계, 후처리 단계를 포함하는 복수의 처리 단계로 구분하는 단계를 포함하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
  13. 청구항 12에 있어서,
    상기 속도 향상값을 산출하는 단계에서는,
    상기 연산부에 의해, 상기 초기화 단계의 수행 시간, 상기 수행 단계의 수행 시간, 상기 후처리 단계의 수행 시간과 상기 설정된 병렬화 지수를 근거로 속도 향상값을 산출하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
  14. 청구항 9에 있어서,
    상기 병렬화 지수를 설정하는 단계에서는,
    상기 설정부에 의해, 상기 구분된 복수의 단계 중에서 병렬화 대상 단계를 처리할 하드웨어 가속 장치의 개수를 병렬화 지수로 설정하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
  15. 청구항 9에 있어서,
    상기 예상 성능값을 산출하는 단계에서는,
    상기 예측부에 의해, 상기 산출한 병렬화 대상 단계의 비율 및 상기 산출한 속도 향상값을 암달의 법칙에 대입하여 예상 성능값을 산출하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
  16. 설정부에 의해, 병렬화 대상 모듈을 기준으로 작업의 수행 시간을 복수의 단계로 구분하는 단계;
    연산부에 의해, 상기 구분하는 단계에서 구분된 복수의 단계 각각의 수행 시간을 산출하는 단계;
    상기 연산부에 의해, 상기 산출한 복수의 단계 각각의 수행 시간을 근거로 작업 중에 병렬화 대상 단계의 비율을 산출하는 단계;
    상기 설정부에 의해, 목표 성능을 설정하는 단계; 및
    예측부에 의해, 상기 설정된 목표 성능, 상기 복수의 단계 각각의 수행 시간, 및 상기 산출한 병렬화 대상 단계의 비율을 근거로 병렬화 지수를 산출하는 단계를 포함하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
  17. 청구항 16에 있어서,
    상기 작업의 수행 시간을 복수의 단계로 구분하는 단계는,
    상기 설정부에 의해, 병렬화 대상 모듈을 기준으로 작업의 수행 시간을 병렬화 전단계, 병렬화 단계, 병렬화 후단계를 포함하는 복수의 작업 단계로 구분하는 단계를 포함하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
  18. 청구항 17에 있어서,
    상기 병렬화 대상 단계의 비율을 산출하는 단계에서는,
    상기 연산부에 의해, 상기 병렬화 전단계의 수행시간, 상기 병렬화 단계의 수행시간 및 상기 병렬화 후단계의 수행시간을 근거로 작업의 병렬화 대상 단계의 비율을 산출하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
  19. 청구항 17에 있어서,
    상기 작업의 수행 시간을 복수의 단계로 구분하는 단계는,
    상기 설정부에 의해, 상기 병렬화 단계를 초기화 단계, 수행 단계, 후처리 단계를 포함하는 복수의 처리 단계로 구분하는 단계를 더 포함하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
  20. 청구항 19에 있어서,
    상기 병렬화 지수를 산출하는 단계에서는,
    상기 예측부에 의해, 상기 초기화 단계의 수행시간, 상기 수행 단계의 수행시간, 상기 후처리 단계의 수행시간과 상기 병렬화 대상 단계의 비율 및 상기 목표 성능을 암달의 법칙에 대입하여 병렬화 지수를 산출하는 것을 특징으로 하는 하드웨어 가속 장치의 병렬화에 따른 성능 예측 방법.
KR1020120146900A 2012-12-14 2012-12-14 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법 KR101694306B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120146900A KR101694306B1 (ko) 2012-12-14 2012-12-14 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법
US13/953,993 US9189274B2 (en) 2012-12-14 2013-07-30 Apparatus and method for predicting performance attributable to parallelization of hardware acceleration devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120146900A KR101694306B1 (ko) 2012-12-14 2012-12-14 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140077775A KR20140077775A (ko) 2014-06-24
KR101694306B1 true KR101694306B1 (ko) 2017-01-09

Family

ID=50932572

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120146900A KR101694306B1 (ko) 2012-12-14 2012-12-14 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법

Country Status (2)

Country Link
US (1) US9189274B2 (ko)
KR (1) KR101694306B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715663B2 (en) * 2014-05-01 2017-07-25 International Business Machines Corporation Predicting application performance on hardware accelerators
CN107220247B (zh) * 2016-03-21 2019-03-01 阿里巴巴集团控股有限公司 MR计算平台中用户任务map端聚合的控制方法及装置
CN106126320A (zh) * 2016-06-21 2016-11-16 依偎科技(南昌)有限公司 一种终端性能优化的方法、装置以及终端
CN108198124B (zh) * 2017-12-27 2023-04-25 上海联影医疗科技股份有限公司 医学图像处理方法、装置、计算机设备和存储介质
CN108510429B (zh) * 2018-03-20 2021-11-02 华南师范大学 一种基于gpu的多变量密码算法并行化加速方法
GB202020519D0 (en) * 2018-12-28 2021-02-03 Fujitsu Client Computing Ltd Information processing device, inference processing device, and information processing system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040194074A1 (en) * 2003-03-31 2004-09-30 Nec Corporation Program parallelization device, program parallelization method, and program parallelization program
US20070130568A1 (en) * 2005-12-06 2007-06-07 Jung Chang H Adaptive execution method for multithreaded processor-based parallel system
US20090288088A1 (en) * 2002-07-22 2009-11-19 Fujitsu Limited Parallel efficiency calculation method and apparatus

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100463642B1 (ko) 2003-03-06 2004-12-29 한국과학기술원 보조프로세서를 이용한 멀티미디어 처리를 위한 가속장치
US9128763B2 (en) * 2011-08-23 2015-09-08 Infosys Limited System and method for job scheduling optimization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090288088A1 (en) * 2002-07-22 2009-11-19 Fujitsu Limited Parallel efficiency calculation method and apparatus
US20040194074A1 (en) * 2003-03-31 2004-09-30 Nec Corporation Program parallelization device, program parallelization method, and program parallelization program
US20070130568A1 (en) * 2005-12-06 2007-06-07 Jung Chang H Adaptive execution method for multithreaded processor-based parallel system

Also Published As

Publication number Publication date
US20140173608A1 (en) 2014-06-19
US9189274B2 (en) 2015-11-17
KR20140077775A (ko) 2014-06-24

Similar Documents

Publication Publication Date Title
KR101694306B1 (ko) 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법
TWI622939B (zh) 用於執行類神經網路之類神經網路計算之方法、系統及電腦可讀取媒體
US11449364B2 (en) Processing in a multicore processor with different cores having different architectures
Zhong et al. Data partitioning on heterogeneous multicore and multi-GPU systems using functional performance models of data-parallel applications
JP4988789B2 (ja) シミュレーション・システム、方法及びプログラム
US20120079498A1 (en) Method and apparatus for dynamic resource allocation of processing units
KR102215271B1 (ko) 데이터 기반 함수 모델의 모델 계산 유닛, 제어 장치 및 계산 방법
KR101400577B1 (ko) Gpu를 이용한 희소행렬 곱셈 방법
CN110058882B (zh) 一种用于cnn加速的opu指令集定义方法
US20150331787A1 (en) Software verification
Zhong et al. Model-based parallelizer for embedded control systems on single-isa heterogeneous multicore processors
Donfack et al. Dynamically balanced synchronization-avoiding LU factorization with multicore and GPUs
CN111984417B (zh) 用于移动终端的图像处理方法及装置、存储介质、终端
Zhong et al. Model-based parallelization for simulink models on multicore cpus and gpus
Lang et al. Dynamic distribution of workload between CPU and GPU for a parallel conjugate gradient method in an adaptive FEM
CN113222136A (zh) 卷积运算方法及芯片
Khan et al. Accelerating SpMV multiplication in probabilistic model checkers using GPUs
Kedad-Sidhoum et al. Fast biological sequence comparison on hybrid platforms
KR102001222B1 (ko) 신호 처리 장치 및 방법
Ren et al. Global optimization model on power efficiency of GPU and multicore processing element for SIMD computing with CUDA
Gudukbay et al. GYAN: Accelerating bioinformatics tools in galaxy with GPU-aware computation mapping
EP4024286A1 (en) Computing method and apparatus for convolutional neural network model
JP5739759B2 (ja) ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体
Ezhova Verification of BSF Parallel Computational Model
Kaiser et al. Towards Splitting Monolithic Workflows Into Serverless Functions and Estimating Their Run-Time in the Earth Observation Domain (Poster).

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant