1 |
1
복수의 리소스들을 이용한 태스크 수행 방법에 있어서,제1 태스크에 대한 수행 요청을 수신하는 단계;상기 제1 태스크를 분석하여 복수의 서브 태스크들로 구분하는 단계;상기 복수의 서브 태스크들 중 제1 뉴럴 네트워크를 이용하는 서브 태스크를 확인하고, 상기 확인한 서브 태스크를 상기 제1 뉴럴 네트워크를 구성하는 레이어들 간의 연산들에 대응하는 복수의 레이어 태스크들로 구분하는 단계;상기 복수의 서브 태스크들 각각의 마감 시간을 산출하는 단계;상기 복수의 리소스들 중 제1 리소스 그룹에 스케줄링 대상인 제1 서브 태스크를 스케줄링하는 단계; 및상기 제1 서브 태스크의 수행 시간이 상기 제1 서브 태스크의 마감 시간을 초과하면, 상기 제1 서브 태스크에 후속하는 서브 태스크 또는 레이어 태스크를 제2 리소스 그룹에 스케줄링하는 단계;를 포함하는 태스크 수행 방법
|
2 |
2
제1항에 있어서, 상기 제1 리소스 그룹은, GPU인 리소스들을 포함하고, 상기 제2 리소스 그룹은, FPGA인 리소스들을 포함하는 것을 특징으로 하는 태스크 수행 방법
|
3 |
3
제1항에 있어서, 상기 복수의 서브 태스크들 각각의 마감 시간을 산출하는 단계는,상기 복수의 서브 태스크들 각각의 예상 수행 시간을 산출하는 단계; 상기 제1 태스크의 예상 수행 시간을 산출하는 단계; 및상기 제1 태스크의 예상 수행 시간 및 상기 복수의 서브 태스크들 각각의 예상 수행 시간을 기초로 상기 복수의 서브 태스크들 각각의 마감 시간을 산출하는 단계;를 포함하는 것을 특징으로 하는 태스크 수행 방법
|
4 |
4
제3항에 있어서, 상기 복수의 서브 태스크들 각각의 예상 수행 시간을 산출하는 단계는,상기 복수의 서브 태스크들 각각에 대하여, 해당 서브 태스크와 동일 또는 유사한 서브 태스크의 과거 계산 시간을 기초로 계산 시간을 산출하는 단계;상기 복수의 서브 태스크들 각각에 대하여, 해당 서브 태스크에 관련된 데이터의 상기 제1 리소스 그룹에 속하는 리소스들로의 전송 시간을 산출하는 단계; 및상기 복수의 서브 태스크들 각각에 대하여, 상기 계산 시간 및 상기 전송 시간을 기초로 상기 예상 수행 시간을 산출하는 단계;를 포함하는 것을 특징으로 하는 태스크 수행 방법
|
5 |
5
제4항에 있어서, 상기 제1 태스크를 분석하여 복수의 서브 태스크들로 구분하는 단계는,상기 제1 태스크를 수행 순서에 따라 상기 복수의 서브 태스크들로 구성된 워크플로우로 변환하고,상기 제1 태스크의 예상 수행 시간을 산출하는 단계는,상기 워크플로우를 기초로 상기 복수의 서브 태스크들 중 첫 번째 서브 태스크에서 마지막 서브 태스크로의 가능한 경로들을 확인하는 단계;상기 경로들 각각의 예상 수행 시간을 산출하는 단계; 및상기 경로들 중 가장 긴 예상 수행 시간을 갖는 임계 경로를 확인하고, 상기 임계 경로의 예상 수행 시간을 상기 제1 태스크의 예상 수행 시간으로 결정하는 단계;를 포함하는 것을 특징으로 하는 태스크 수행 방법
|
6 |
6
제5항에 있어서, 상기 제1 태스크의 예상 수행 시간 및 상기 복수의 서브 태스크들 각각의 예상 수행 시간을 기초로 상기 복수의 서브 태스크들 각각의 마감 시간을 산출하는 단계는,상기 제1 태스크의 예상 수행 시간 대비 상기 복수의 서브 태스크들 각각의 예상 수행 시간의 비율들을 산출하는 단계; 및상기 산출한 비율들을 기초로 상기 복수의 서브 태스크들 각각의 마감 시간을 산출하는 단계;를 포함하는 것을 특징으로 하는 태스크 수행 방법
|
7 |
7
제1항에 있어서, 상기 복수의 리소스들 중 제1 리소스 그룹에 스케줄링 대상인 제1 서브 태스크를 스케줄링하는 단계는,상기 제1 리소스 그룹에 속하는 리소스들 각각의 큐에 큐잉(queing)된 다른 태스크들의 예상 수행 시간을 산출하는 단계; 및상기 제1 리소스 그룹에 속하는 리소스들 중 상기 다른 태스크들의 예상 수행 시간이 가장 작은 리소스에 상기 제1 서브 태스크를 스케줄링하는 단계;를 포함하고,상기 제1 서브 태스크에 후속하는 서브 태스크 또는 레이어 태스크를 제2 리소스 그룹에 스케줄링하는 단계는,상기 제2 리소스 그룹에 속하는 리소스들 각각의 큐에 큐잉된 다른 태스크들의 예상 수행 시간을 산출하는 단계; 및상기 제2 리소스 그룹에 속하는 리소스들 중 상기 다른 태스크들의 예상 수행 시간이 가장 작은 리소스에 상기 후속하는 서브 태스크 또는 레이어 태스크를 스케줄링하는 단계;를 포함하는 것을 특징으로 하는 태스크 수행 방법
|
8 |
8
복수의 리소스들을 이용한 태스크 수행 방법에 있어서,제1 태스크에 대한 수행 요청을 수신하는 단계;상기 제1 태스크를 분석하여 복수의 서브 태스크들로 구분하는 단계;상기 복수의 서브 태스크들 중 제1 뉴럴 네트워크를 이용하는 서브 태스크를 확인하고, 상기 확인한 서브 태스크를 상기 제1 뉴럴 네트워크를 구성하는 레이어들 간의 연산들에 대응하는 복수의 레이어 태스크들로 구분하는 단계;상기 복수의 리소스들 중 스케줄링 대상인 서브 태스크 또는 레이어 태스크에 대응하는 리소스들을 확인하는 단계; 및상기 확인한 리소스들 중 하나에 상기 스케줄링 대상인 서브 태스크 또는 레이어 태스크를 스케줄링하는 단계;를 포함하는 태스크 수행 방법
|
9 |
9
제8항에 있어서, 상기 복수의 리소스들 중 스케줄링 대상인 서브 태스크 또는 레이어 태스크에 대응하는 리소스들을 확인하는 단계는,상기 제1 뉴럴 네트워크를 이용하지 않는 서브 태스크에 대응하는 리소스로, 상기 복수의 리소스들 중 제1 리소스 그룹을 확인하고,상기 제1 뉴럴 네트워크를 이용하는 서브 태스크 또는 레이어 태스크에 대응하는 리소스로, 상기 복수의 리소스들 중 제2 리소스 그룹을 확인하는 것을 특징으로 하는 태스크 수행 방법
|
10 |
10
적어도 하나의 FPGA 및 적어도 하나의 GPU를 포함하는 복수의 리소스들; 및제1 태스크에 대한 수행 요청을 수신하면, 상기 제1 태스크를 분석하여 복수의 서브 태스크들로 구분하고, 상기 복수의 서브 태스크들을 상기 적어도 하나의 GPU에 스케줄링하는 프로세서;를 포함하고,상기 프로세서는,상기 복수의 서브 태스크들 중 제1 뉴럴 네트워크를 이용하는 서브 태스크를 확인하고, 상기 확인한 서브 태스크를 상기 제1 뉴럴 네트워크를 구성하는 레이어들 간의 연산들에 대응하는 복수의 레이어 태스크들로 구분하고, 상기 복수의 서브 태스크들 중 제1 서브 태스크의 수행 시간이 마감 시간을 초과하면, 상기 제1 서브 태스크에 후속하는 제1 레이어 태스크를 상기 적어도 하나의 GPU 또는 상기 적어도 하나의 FPGA에 스케줄링하는 것을 특징으로 하는 전자 장치
|