1 |
1
딥러닝을 위한 비순차적 역전파 스케줄링 방법으로서,딥러닝 모델에서 하나의 레이어 내의 역전파 과정의 가중치 기울기 연산과 출력 기울기 연산의 의존성을 제거하여 상기 역전파 과정에서 가중치 기울기 연산을 출력 기울기 연산에 관계 없이 뒤로 미루고,그래픽 처리 장치(graphic processing unit, GPU)의 리소스 사용량을 최대로 하는 시점에서 뒤로 미룬 가중치 기울기 연산을 실행하는, 스케줄링 방법
|
2 |
2
청구항 1에 있어서,상기 역전파 과정의 모든 영역 쌍에 대해 동시 커널 실행을 프로파일링하고, 순차적 실행에 대한 속도 향상을 기록하는 단계;메인 스트림 커널을 순차적으로 스케줄링하는 단계;서브 스트림 커널의 예약 가능한 시간 간격과 영역을 계산하는 단계;상기 서브 스트림 커널을 예약 가능한 후보로 상기 예약 가능한 영역에 할당하는 단계;각 영역의 후보 중에서 상기 예약 가능한 영역의 상기 메인 스트림 커널에 대해 가장 빠른 속도 향상을 보이는 서브 스트림 커널을 찾는 단계;가장 빠른 속도 향상을 가진 영역-커널 쌍을 선택하고 예약하는 단계; 및모든 서브 스트림 커널이 예약될 때까지 가장 빠른 속도 향상을 보이는 서브 스트림 커널을 찾고 가장 빠른 속도 향상을 가진 영역-커널 쌍을 선택하고 예약하는 과정을 반복하는 단계를 포함하는, 스케줄링 방법
|
3 |
3
청구항 1에 있어서,상기 딥러닝 모델의 레이어 1에서 레이어 k로의 가중치 기울기 계산을 생략하고 레이어 L에서 상기 레이어 1로의 기울기 계산을 예약하는 단계-상기 딥러닝 모델은 레이어 1 내지 레이어 L로 구성된 복수의 레이어들을 순전파 과정과 역전파 과정에 각각 구비하고, 상기 k는 1과 L 사이에 위치함-;상기 레이어 1에서 레이어 k의 가중치 기울기 계산을 역전파 과정의 레이아웃의 역순으로 예약하는 단계;상기 딥러닝 모델의 처리량(throughput)이 k의 오목 함수(concave function)라고 가정하고 휴리스틱 검색(heuristic search)을 적용하여 k의 최적 값을 결정하는 단계; 및결정된 최적 값을 토대로 중요한 작업의 동기화에 대한 우선순위를 지정하는 단계를 포함하는, 스케줄링 방법
|
4 |
4
청구항 1에 있어서,상기 GPU 중 하나인 GPU 2에서 역전파 과정의 출력 기울기들의 연산을 먼저 수행한 후 상기 GPU 중 다른 하나인 GPU 1로 출력 기울기들의 결과를 전송하고,상기 GPU 2에서 가중치 기울기들의 연산을 진행하는 동안 상기 GPU 1에서 상기 출력 기울기들에 대한 계산을 동시에 수행하는, 스케줄링 방법
|
5 |
5
청구항 4에 있어서,상기 딥러닝 모델을 n(2 이상의 자연수)개의 GPUs을 사용하여 훈련할 때 신경망의 l(1<l≤n)번째 레이어를 으로 할당하는 것을 더 포함하며,여기서 l은 모델의 레이어(layer) 번호를, n은 GPU의 개수를, 그리고 mod는 모듈로(modulo) 연산 혹은 나머지 연산을 각각 나타내는, 스케줄링 방법
|
6 |
6
딥러닝을 위한 비순차적 역전파 스케줄링 방법으로서,딥러닝 모델에서 하나의 레이어 내의 역전파 과정의 가중치 기울기 연산과 출력 기울기 연산의 의존성을 제거하여 상기 역전파 과정에서 가중치 기울기 연산을 출력 기울기 연산에 관계 없이 뒤로 미루기 위해, 상기 역전파 과정의 모든 영역 쌍에 대해 동시 커널 실행을 프로파일링하고, 순차적 실행에 대한 속도 향상을 기록하고, 메인 스트림 커널을 순차적으로 스케줄링하고, 서브 스트림 커널의 예약 가능한 시간 간격과 영역을 계산하고, 상기 서브 스트림 커널을 예약 가능한 후보로 상기 예약 가능한 영역에 할당하는 제1 단계; 및그래픽 처리 장치(graphic processing unit, GPU)의 리소스 사용량을 최대로 하는 시점에서 뒤로 미룬 가중치 기울기 연산을 실행하는 제2 단계;를 포함하는 스케줄링 방법
|
7 |
7
청구항 6에 있어서,상기 제2 단계는,각 영역의 후보 중에서 상기 예약 가능한 영역의 상기 메인 스트림 커널에 대해 가장 빠른 속도 향상을 보이는 서브 스트림 커널을 찾는 단계; 및가장 빠른 속도 향상을 가진 영역-커널 쌍을 선택하고 예약하는 단계;를 포함하는 스케줄링 방법
|
8 |
8
청구항 7에 있어서,상기 제2 단계는, 모든 서브 스트림 커널이 예약될 때까지 가장 빠른 속도 향상을 보이는 서브 스트림 커널을 찾고 가장 빠른 속도 향상을 가진 영역-커널 쌍을 선택하고 예약하는 과정을 반복하는 단계를 더 포함하는, 스케줄링 방법
|
9 |
9
딥러닝을 위한 비순차적 역전파 스케줄링 방법으로서,딥러닝 모델에서 하나의 레이어 내의 역전파 과정의 가중치 기울기 연산과 출력 기울기 연산의 의존성을 제거하여 상기 역전파 과정에서 가중치 기울기 연산을 출력 기울기 연산에 관계 없이 뒤로 미루기 위해, 상기 딥러닝 모델의 레이어 1에서 레이어 k로의 가중치 기울기 계산을 생략하고 레이어 L에서 상기 레이어 1로의 기울기 계산을 예약하고, 상기 레이어 1에서 레이어 k의 가중치 기울기 계산을 역전파 과정의 레이아웃의 역순으로 예약하는 제1 단계-상기 딥러닝 모델은 레이어 1 내지 레이어 L로 구성된 복수의 레이어들을 순전파 과정과 역전파 과정에 각각 구비하고, 상기 k는 1과 L 사이에 위치함-; 및그래픽 처리 장치(graphic processing unit, GPU)의 리소스 사용량을 최대로 하는 시점에서 뒤로 미룬 가중치 기울기 연산을 실행하는 제2 단계;를 포함하는 스케줄링 방법
|
10 |
10
청구항 9에 있어서,상기 제2 단계는,상기 딥러닝 모델의 처리량(throughput)이 k의 오목 함수(concave function)라고 가정하고 휴리스틱 검색(heuristic search)을 적용하여 k의 최적 값을 결정하는 단계; 및결정된 최적 값을 토대로 중요한 작업의 동기화에 대한 우선순위를 지정하는 단계를 포함하는, 스케줄링 방법
|
11 |
11
딥러닝을 위한 비순차적 역전파 스케줄링 방법으로서,그래픽 처리 장치(graphic processing unit, GPU)에 할당된 딥러닝 모델의 레이어들 중 하나의 레이어 내의 역전파 과정의 가중치 기울기 연산을 출력 기울기 연산의 의존성을 제거하여 상기 역전파 과정에서 가중치 기울기 연산보다 출력 기울기 연산의 실행에 우선 순위를 높게 부여하는 단계; 및상기 GPU의 리소스 사용량을 최대로 하는 시점에서 GPU 1의 출력 기울기 연산이 GPU 2의 가중치 기울기 연산과 동시에 실행되는 단계;를 포함하는 스케줄링 방법
|
12 |
12
청구항 11에 있어서,상기 딥러닝 모델을 상기 GPU 1과 상기 GPU 2를 포함한 n(2 이상의 자연수)개의 GPUs을 사용하여 훈련할 때, 신경망의 l(1<l≤n)번째 레이어를 으로 할당하는 단계를 더 포함하며,여기서 l은 모델의 레이어(layer) 번호를, n은 GPU의 개수를, 그리고 mod는 모듈로 연산 혹은 나머지 연산을 각각 나타내는, 스케줄링 방법
|
13 |
13
청구항 12에 있어서,상기 GPU는 마이크로 배치를 이용하는, 스케줄링 방법
|
14 |
14
청구항 11에 있어서,상기 GPU 1과 상기 GPU 2의 트랜스포머 레이어의 출력은 텐서-병렬 랭크(rank)에 걸쳐 복제되는, 스케줄링 방법
|
15 |
15
청구항 11에 있어서,상기 딥러닝 모델은 ResNet, RNN(recurrent neural network), LSTM(long-short-term memory), BERT(bidirectional encoder representations from transformers), 또는 FFNN(feed-forward neural network)를 포함하는, 스케줄링 방법
|