1 |
1
입력 데이터 행렬을 설정된 필터 행렬과 일반 행렬 곱(GEneral Matrix Multiplication) 연산하여 출력 데이터 행렬에 대응하는 특징 데이터 행렬을 생성하는 합성곱 연산 방법에 있어서,적어도 하나의 프로세서에 의해, 상기 입력 데이터 행렬의 복수의 성분들 중 서로 중복되는 데이터를 나타내는 중복 성분들의 제1 목적 레지스터들 주소들이 동일한 제2 목적 레지스터 주소에 대응하도록 레지스터 매핑 테이블을 갱신하는 단계; 및상기 적어도 하나의 프로세서에 의해, 상기 레지스터 매핑 테이블에 기초하여 상기 중복 성분들에 대해 상기 동일한 제2 목적 레지스터 주소를 가지는 레지스터를 재사용하여 합성곱 연산을 수행하는 단계;를 포함하는, 합성곱 연산 방법
|
2 |
2
제1항에 있어서,상기 레지스터 매핑 테이블을 갱신하는 단계는,상기 복수의 성분들의 식별자를 생성하는 단계; 및상기 복수의 성분들 중 동일한 식별자가 생성된 성분들의 제1 목적 레지스터 주소들이 동일한 제2 목적 레지스터 주소에 대응하도록 상기 레지스터 매핑 테이블을 갱신하는 단계;를 포함하는, 합성곱 연산 방법
|
3 |
3
제2항에 있어서,상기 식별자는, 엘레멘트 아이디를 포함하고,상기 식별자를 생성하는 단계는,상기 복수의 성분들의 어레이 인덱스, 상기 필터 행렬의 행의 개수 및 열의 개수 및 상기 출력 데이터 행렬의 열의 개수에 기초하여 상기 복수의 성분들의 패치 아이디를 생성하는 단계; 및상기 패치 아이디 및 상기 복수의 성분들의 오프셋에 기초하여 상기 복수의 성분들의 엘레멘트 아이디를 생성하는 단계;를 포함하며,상기 오프셋은,상기 패치 아이디, 상기 입력 데이터 행렬의 열의 개수 및 채널의 개수에 기초하여 결정되는 값이고,상기 어레이 인덱스는, 상기 복수의 성분들이 단일 차원 어레이로 배열되었을 때 각 성분들의 위치를 나타내는 값인, 합성곱 연산방법
|
4 |
4
제3항에 있어서,상기 식별자는, 배치 아이디를 더 포함하고,상기 식별자를 생성하는 단계는,상기 복수의 성분들의 어레이 인덱스, 상기 필터 행렬의 행의 개수 및 열의 개수 및 출력 데이터 행렬의 행의 개수 및 열의 개수에 기초하여 상기 복수의 성분들의 배치 아이디를 생성하는 단계;를 더 포함하는, 합성곱 연산 방법
|
5 |
5
제3항에 있어서,상기 패치 아이디를 생성하는 단계는,상기 복수의 성분들의 제1 패치 요소 및 제2 패치 요소를 산출하는 단계; 및상기 제1 패치 요소에 상기 필터 행렬의 스트라이드를 곱한 값에 상기 제2 패치 요소를 더하여 상기 패치 아이디를 생성하는 단계;를 포함하고,상기 제1 패치 요소는,상기 복수의 성분들의 행 요소를 상기 출력 데이터 행렬의 열의 개수로 나누었을 때 출력되는 몫이고,상기 제2 패치 요소는,상기 복수의 성분들의 열 요소를 상기 필터 행렬의 열의 개수로 나누었을 때 출력되는 몫이며, 상기 행 요소는, 상기 어레이 인덱스를 상기 필터 행렬의 크기로 나누었을때 출력되는 몫이고,상기 열 요소는, 상기 어레이 인덱스를 상기 필터 행렬의 크기로 나누었을때, 출력되는 나머지인, 합성곱 연산 방법
|
6 |
6
제5항에 있어서,상기 엘레멘트 아이디를 생성하는 단계는,상기 오프셋에 상기 행 요소를 상기 출력 데이터 행렬의 열의 개수에 상기 채널의 개수 및 상기 스트라이드를 곱한 값으로 나누었을 때 출력되는 나머지 값과, 상기 열 요소를 상기 필터 행렬의 열의 개수에 상기 채널의 개수를 곱한 값으로 나누었을 때 출력되는 나머지 값을 더하여 상기 엘레멘트 아이디를 생성하고,상기 입력 데이터 행렬의 오프셋은,상기 패치 아이디에 상기 입력 데이터 행렬의 열의 개수 및 채널의 개수를 곱한 값인, 합성곱 연산 방법
|
7 |
7
제1항에 있어서,상기 적어도 하나의 프로세서에 의해, 원본 입력 데이터 행렬의 크기, 복수의 성분들의 개수 및 순서를 워크스페이스에 해당하는 메모리 영역으로 변경하여 상기 입력 데이터 행렬을 생성하는 단계;를 더 포함하고,상기 입력 데이터 행렬은,상기 원본 입력 데이터 행렬이 필터 행렬과 GEMM 연산으로 상기 특징 데이터 행렬을 출력할 수 있도록, 상기 원본 입력 데이터 행렬의 복수의 성분들이 규칙을 가지고 재조합되어 배열된 행렬인, 합성곱 연산 방법
|
8 |
8
제7항에 있어서,상기 입력 데이터 행렬을 생성하는 단계는,상기 원본 입력 데이터 행렬을 특징 데이터 행렬의 행의 개수와 동일한 행의 개수를 가지고, 상기 필터 행렬의 크기와 동일한 열의 개수를 가지는 워크스페이스로 변환하여 상기 입력 데이터 행렬을 생성하는 단계;를 포함하는, 합성곱 연산 방법
|
9 |
9
제1항에 있어서,상기 레지스터 매핑 테이블을 갱신하는 단계는,텐서 코어 로드 데이터를 입력받는 단계;상기 텐서 코어 로드 데이터에 포함된 제1 목적 레지스터 주소를 가지는 성분의 식별자 및 제2 목적 레지스터 주소가 로드 기록 버퍼에 기록되어 있는지 식별하는 단계;상기 식별자 및 상기 제2 목적 레지스터 주소가 상기 로드 기록 버퍼에 기록되어 있지 않은 경우, 메모리에 접근하여 메모리 계층으로부터 상기 성분의 데이터를 패치하고, 상기 식별자 및 상기 패치된 데이터가 저장된 레지스터의 제2 목적 레지스터 주소를 상기 로드 기록 버퍼에 기록하고, 상기 로드 기록 버퍼에 기록된 제2 목적 레지스터 주소가 상기 제1 목적 레지스터 주소에 대응하도록 상기 레지스터 매핑 테이블을 갱신하는 단계; 및상기 식별자 및 상기 제2 목적 레지스터 주소가 상기 로드 기록 버퍼에 기록되어 있는 경우, 메모리에 접근하지 않고 상기 로드 기록 버퍼에 기록된 제2 목적 레지스터 주소가 상기 제1 목적 레지스터 주소에 대응하도록 상기 레지스터 매핑 테이블을 갱신하는 단계;를 포함하는, 합성곱 연산 방법
|
10 |
10
제1항 내지 제9항 중 어느 한 항의 합성곱 연산 방법을 실행시키도록 컴퓨터로 판독 가능한 기록매체에 저장된 컴퓨터 프로그램
|
11 |
11
합성곱 연산 장치에 있어서,레지스터 매핑 테이블이 저장된 메모리; 및입력 데이터 행렬을 설정된 필터 행렬과 일반 행렬 곱(GEneral Matrix Multiplication) 연산하여 출력 데이터 행렬에 대응하는 특징 데이터 행렬을 생성하는 합성곱 연산을 수행하는 프로세서;를 포함하고,상기 프로세서는,상기 입력 데이터 행렬의 복수의 성분들 중 서로 중복되는 데이터를 나타내는 중복 성분들의 제1 목적 레지스터 주소들이 동일한 제2 목적 레지스터 주소에 대응하도록 상기 레지스터 매핑 테이블을 갱신하고,상기 레지스터 매핑 테이블에 기초하여 상기 중복 성분들에 대해 상기 동일한 제2 목적 레지스터 주소를 가지는 레지스터를 재사용하여 합성곱 연산을 수행하는, 합성곱 연산 장치
|
12 |
12
제11항에 있어서,상기 프로세서는,상기 복수의 성분들의 식별자를 생성하고,상기 복수의 성분들 중 동일한 식별자가 생성된 성분들의 제1 목적 레지스터 주소들이 동일한 제2 목적 레지스터 주소에 대응하도록 상기 레지스터 매핑 테이블을 갱신하는, 합성곱 연산 장치
|
13 |
13
제12항에 있어서,상기 식별자는, 엘레멘트 아이디를 포함하고,상기 프로세서는,상기 복수의 성분들의 어레이 인덱스, 상기 필터 행렬의 행의 개수 및 열의 개수 및 상기 출력 데이터 행렬의 열의 개수에 기초하여 상기 복수의 성분들의 패치 아이디를 생성하고,상기 패치 아이디 및 상기 복수의 성분들의 오프셋에 기초하여 상기 복수의 성분들의 엘레멘트 아이디를 생성하며,상기 오프셋은,상기 패치 아이디, 상기 입력 데이터 행렬의 열의 개수 및 채널의 개수에 기초하여 결정되는 값이고,상기 어레이 인덱스는, 상기 복수의 성분들이 단일 차원 어레이로 배열되었을 때 각 성분들의 위치를 나타내는 값인, 합성곱 연산장치
|
14 |
14
제13항에 있어서,상기 식별자는, 배치 아이디를 더 포함하고,상기 프로세서는,상기 복수의 성분들의 어레이 인덱스, 상기 필터 행렬의 행의 개수 및 열의 개수 및 출력 데이터 행렬의 행의 개수 및 열의 개수에 기초하여 상기 복수의 성분들의 배치 아이디를 생성하는, 합성곱 연산 장치
|
15 |
15
제13항에 있어서,상기 프로세서는,상기 복수의 성분들의 제1 패치 요소 및 제2 패치 요소를 산출하고,상기 제1 패치 요소에 상기 필터 행렬의 스트라이드를 곱한 값에 상기 제2 패치 요소를 더하여 상기 패치 아이디를 생성하고,상기 제1 패치 요소는,상기 복수의 성분들의 행 요소를 상기 출력 데이터 행렬의 열의 개수로 나누었을 때 출력되는 몫이고,상기 제2 패치 요소는,상기 복수의 성분들의 열 요소를 상기 필터 행렬의 열의 개수로 나누었을 때 출력되는 몫이며, 상기 행 요소는, 상기 어레이 인덱스를 상기 필터 행렬의 크기로 나누었을때 출력되는 몫이고,상기 열 요소는, 상기 어레이 인덱스를 상기 필터 행렬의 크기로 나누었을때, 출력되는 나머지인, 합성곱 연산 장치
|
16 |
16
제15항에 있어서,상기 프로세서는,상기 오프셋에 상기 행 요소를 상기 출력 데이터 행렬의 열의 개수에 상기 채널의 개수 및 상기 스트라이드를 곱한 값으로 나누었을 때 출력되는 나머지 값과, 상기 열 요소를 상기 필터 행렬의 열의 개수에 상기 채널의 개수를 곱한 값으로 나누었을 때 출력되는 나머지 값을 더하여 상기 엘레멘트 아이디를 생성하고,상기 입력 데이터 행렬의 오프셋은,상기 패치 아이디에 상기 입력 데이터 행렬의 열의 개수 및 채널의 개수를 곱한 값인, 합성곱 연산 장치
|
17 |
17
제11항에 있어서,상기 프로세서는,원본 입력 데이터 행렬의 크기, 복수의 성분들의 개수 및 순서를 워크스페이스에 해당하는 메모리 영역으로 변경하여 상기 입력 데이터 행렬을 생성하고,상기 입력 데이터 행렬은,상기 원본 입력 데이터 행렬이 필터 행렬과 GEMM 연산으로 상기 특징 데이터 행렬을 출력할 수 있도록, 상기 원본 입력 데이터 행렬의 복수의 성분들이 규칙을 가지고 재조합되어 배열된 행렬인, 합성곱 연산 장치
|
18 |
18
제17항에 있어서,상기 프로세서는,상기 원본 입력 데이터 행렬을 특징 데이터 행렬의 행의 개수와 동일한 행의 개수를 가지고, 상기 필터 행렬의 크기와 동일한 열의 개수를 가지는 워크스페이스로 변환하여 상기 입력 데이터 행렬을 생성하는, 합성곱 연산 장치
|
19 |
19
제11항에 있어서,상기 프로세서는,텐서 코어 로드 데이터를 입력받고,상기 텐서 코어 로드 데이터에 포함된 제1 목적 레지스터 주소를 가지는 성분의 식별자 및 제2 목적 레지스터 주소가 로드 기록 버퍼에 기록되어 있는지 식별하고,상기 식별자 및 상기 제2 목적 레지스터 주소가 상기 로드 기록 버퍼에 기록되어 있지 않은 경우, 상기 성분의 데이터를 패치하고, 상기 식별자 및 상기 패치된 데이터가 저장된 레지스터의 제2 목적 레지스터 주소를 상기 로드 기록 버퍼에 기록하고, 상기 로드 기록 버퍼에 기록된 제2 목적 레지스터 주소가 상기 제1 목적 레지스터 주소에 대응하도록 상기 레지스터 매핑 테이블을 갱신하고,상기 식별자 및 상기 제2 목적 레지스터 주소가 상기 로드 기록 버퍼에 기록되어 있는 경우, 상기 로드 기록 버퍼에 기록된 제2 목적 레지스터 주소가 상기 제1 목적 레지스터 주소에 대응하도록 상기 레지스터 매핑 테이블을 갱신하는, 합성곱 연산 장치
|