1 |
1
적어도 하나의 프로세서에 의해 수행되는, 가속기(accelerator)에서 실행되는 프로그램에 대한 중간표현을 생성하는 방법에 있어서,프로그램에서 명령에 대한 정보를 후킹(hooking)하는 단계;상기 후킹된 명령에 대한 정보가 가속기와 연관되어 있는지 여부를 판정하는 단계;상기 명령에 대한 정보가 가속기와 연관되어 있다고 판정된 경우, 상기 명령에 포함된 연산과 연관된 더미 데이터(dummy data)를 상기 프로그램으로 반환하고, 상기 명령에 포함된 입출력 데이터에 대한 정보 및 연산에 대한 정보를 이용하여 상기 명령에 대한 제1 중간표현을 생성하는 단계; 및상기 제1 중간표현을 이용하여 하나 이상의 가속기를 위한 상기 프로그램에 대한 제2 중간표현을 생성하는 단계를 포함하고,상기 제1 중간표현 및 상기 제2 중간표현은 복수의 데이터 노드(nodes), 하나 이상의 연산 노드 및 상기 복수의 데이터 노드와 상기 하나 이상의 연산 노드의 입출력 관계를 나타내는 복수의 엣지(edges)를 포함하는, 프로그램에 대한 중간표현을 생성하는 방법
|
2 |
2
제1항에 있어서,상기 프로그램은 딥 러닝(deep learning) 프로그램을 포함하고,상기 프로그램의 데이터는 텐서(tensor) 타입의 데이터를 포함하는, 프로그램에 대한 중간표현을 생성하는 방법
|
3 |
3
제1항에 있어서,상기 프로그램에서 상기 명령에 포함된 연산과 연관된 더미 데이터를 사용하는 사용자 입력에 응답하여, 상기 제1 중간표현 및 상기 제2 중간표현에 저장된 상기 더미 데이터와 연관된 연산이 수행되는, 프로그램에 대한 중간표현을 생성하는 방법
|
4 |
4
제1항에 있어서,상기 제1 중간표현을 이용하여 하나 이상의 가속기를 위한 상기 프로그램에 대한 제2 중간표현을 생성하는 단계는,상기 제1 중간표현에 포함된 복수의 데이터 노드가 상기 하나 이상의 가속기에 저장되는 형태를 결정하는 단계; 및상기 제1 중간표현에 포함된 복수의 데이터 노드가 상기 하나 이상의 가속기에 저장되는 형태에 대한 정보를 상기 제1 중간표현에 포함된 복수의 데이터 노드에 대응되는 제2 중간표현에 저장하는 단계를 포함하고,상기 하나 이상의 가속기에 저장되는 형태에 대한 정보는 상기 제1 중간표현에 포함된 복수의 데이터 노드를 상기 하나 이상의 가속기에 나누어 저장하도록 하는 정보 또는 상기 제1 중간표현에 포함된 복수의 데이터 노드를 상기 하나 이상의 가속기에 나누어 저장하지 않도록 하는 정보를 포함하는, 프로그램에 대한 중간표현을 생성하는 방법
|
5 |
5
제4항에 있어서,상기 제1 중간표현을 이용하여 하나 이상의 가속기를 위한 상기 프로그램에 대한 제2 중간표현을 생성하는 단계는,상기 제1 중간표현에 포함된 복수의 데이터 노드에 저장된 상기 하나 이상의 가속기에 저장되는 형태를 기초로, 상기 제1 중간표현에 포함된 복수의 데이터 노드, 하나 이상의 연산 노드 또는 복수의 엣지 중 적어도 하나를 변경함으로써, 제2 중간표현을 생성하는 단계를 포함하는, 프로그램에 대한 중간표현을 생성하는 방법
|
6 |
6
제1항에 있어서,상기 제1 중간표현을 이용하여 하나 이상의 가속기를 위한 상기 프로그램에 대한 제2 중간표현을 생성하는 단계는,상기 제1 중간표현에 포함되지 않은 데이터 노드, 연산 노드 또는 엣지 중 적어도 하나를 추가함으로써, 제2 중간표현을 생성하는 단계를 포함하는, 프로그램에 대한 중간표현을 생성하는 방법
|
7 |
7
제1항에 있어서,상기 하나 이상의 가속기는 복수의 가속기를 포함하고, 상기 프로그램에 대한 제2 중간표현은 상기 복수의 가속기에서 실행되기 위한 병렬화 방식에 대한 정보를 포함하는, 프로그램에 대한 중간표현을 생성하는 방법
|
8 |
8
제1항에 있어서,상기 프로그램에 대한 제2 중간표현은 상기 하나 이상의 가속기에서 실행되는 연산에 대한 정보를 포함하는, 프로그램에 대한 중간표현을 생성하는 방법
|
9 |
9
제1항 내지 제8항 중 어느 한 항에 따른 방법을 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램
|
10 |
10
정보 처리 시스템으로서,메모리; 및상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독 가능한 적어도 하나의 프로그램을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,상기 적어도 하나의 프로그램은,프로그램에서 명령에 대한 정보를 후킹하고,상기 후킹된 명령에 대한 정보가 가속기와 연관되어 있는지 여부를 판정하고,상기 명령에 대한 정보가 가속기와 연관되어 있다고 판정된 경우, 상기 명령에 포함된 연산과 연관된 더미 데이터(dummy data)를 상기 프로그램으로 반환하고, 상기 명령에 포함된 입출력 데이터에 대한 정보 및 연산에 대한 정보를 이용하여 상기 명령에 대한 제1 중간표현을 생성하고,상기 제1 중간표현을 이용하여 하나 이상의 가속기를 위한 상기 프로그램에 대한 제2 중간표현을 생성하기 위한 명령어들을 포함하고,상기 제1 중간표현 및 상기 제2 중간표현은 복수의 데이터 노드, 하나 이상의 연산 노드 및 상기 복수의 데이터 노드와 상기 하나 이상의 연산 노드의 입출력 관계를 나타내는 복수의 엣지를 포함하는, 정보 처리 시스템
|