1 |
1
복수 개의 입력 행렬에 대해 양자화(quantization)를 수행하여 복수 개의 이진화 된 행렬로 출력하는 단계;상기 복수 개의 이진화 된 행렬을 압축하여 복수 개의 압축된 비트 벡터로 변환하는 단계;상기 복수 개의 압축된 비트 벡터 상에서 특정 비트의 위치를 계산하는 단계;상기 복수 개의 압축된 비트 벡터 간 곱셈을 수행하여 결과 행렬을 출력하는 단계; 및상기 압축된 비트 벡터 상에서 상기 특정 비트의 위치에 대응하여, 상기 결과 행렬을 변환하는 단계; 를 포함하는,다차원 행렬 곱셈 방법
|
2 |
2
제 1 항에 있어서,상기 복수 개의 압축된 비트 벡터로 변환하는 단계는,상기 복수 개의 이진화 된 행렬을 언폴드(unfold)하여 비트 벡터로 변환하는 단계;상기 변환된 비트 벡터에 포함되는 비트의 값을 기록하여 상기 변환된 비트 벡터의 압축을 수행하는 단계; 를 포함하는,다차원 행렬 곱셈 방법
|
3 |
3
제 2 항에 있어서,상기 비트 벡터의 값은 0, 1 및 0 과 1이 반복된 횟수를 포함하는다차원 행렬 곱셈 방법
|
4 |
4
제 1 항에 있어서,상기 복수 개의 입력 행렬은 제 1 행렬 및 제 2 행렬을 포함하고,상기 결과 행렬을 출력하는 단계는,상기 제 1 행렬의 열의 개수 또는 상기 제 2 행렬의 행의 개수 중 적어도 하나의 개수만큼 상기 압축된 비트 벡터에 포함되는 비트들을 논리적인 블록 단위로 그루핑(grouping)하는 단계;상기 그루핑 된 비트들에 대하여 기 설정된 연산을 수행하는 단계;상기 기 설정된 연산을 통해 얻어진 새로운 비트 벡터에 포함되는 1의 개수를 계산하는 단계; 및상기 1의 개수를 위치(position)로 설정하여 상기 결과 행렬을 출력하는 단계; 를 더 포함하는다차원 행렬 곱셈 방법
|
5 |
5
제 4 항에 있어서,상기 기 설정된 연산은 XNOR(exclusive nor) 연산과 Bitcount 연산인,다차원 행렬 곱셈 방법
|
6 |
6
제 4 항에 있어서,상기 논리적인 블록 단위로 그루핑 된 비트들은 제 1 그룹 및 제 2 그룹을 포함하고,상기 결과 행렬을 출력하는 단계는,상기 제 1 그룹에 대하여 결과 행렬이 출력됨에 따라, 상기 제 2 그룹에 대하여 결과 행렬을 출력하는 단계; 를 포함하는다차원 행렬 곱셈 방법
|
7 |
7
제 6 항에 있어서,상기 논리적인 블록 단위로 그루핑 된 비트들 전부에 대해 결과 행렬을 출력한 경우,상기 논리적인 블록 단위의 크기만큼, 상기 압축된 비트 벡터에 포함되는 비트 벡터를 순환 시프트(circular shift)하는 단계;상기 제 1 행렬의 열의 개수 또는 상기 제 2 행렬의 행의 개수 중 적어도 하나의 개수만큼 상기 압축된 비트 벡터에 포함되는 비트들을 논리적인 블록 단위로 그루핑하는 단계;상기 그루핑 된 비트들에 대하여 기 설정된 연산을 수행하는 단계;상기 기 설정된 연산을 통해 얻어진 새로운 비트 벡터에 포함되는 1의 개수를 계산하는 단계; 및상기 1의 개수를 위치로 설정하여 상기 결과 행렬을 출력하는 단계; 를 더 포함하는다차원 행렬 곱셈 방법
|
8 |
8
복수 개의 입력 행렬에 대해 양자화를 수행하여 복수 개의 이진화 된 행렬을 출력하는 이진화 모듈;상기 복수 개의 이진화 된 행렬을 복수 개의 압축된 비트 벡터로 변환하는 비트 벡터 압축 모듈;상기 복수 개의 압축된 비트 벡터 상에서 특정 위치의 비트를 계산하는 커서 모듈; 및상기 복수 개의 압축된 비트 벡터의 곱셈을 수행하여 결과 행렬을 출력하는 곱셈 연산 모듈;을 포함하는다차원 행렬 곱셈 연산 장치
|
9 |
9
제 8 항에 있어서,상기 비트 벡터 압축 모듈은,상기 복수 개의 이진화 된 행렬을 언폴드하여 비트 벡터로 변환하고,상기 변환된 비트 벡터에 포함되는 비트의 값을 기록하여 상기 변환된 비트 벡터의 압축을 수행하는,다차원 행렬 곱셈 연산 장치
|
10 |
10
제 9 항에 있어서,상기 비트 벡터의 값은 0, 1 및 0 과 1이 반복된 횟수를 포함하는다차원 행렬 곱셈 연산 장치
|
11 |
11
제 8 항에 있어서,상기 복수 개의 입력 행렬은 제 1 행렬 및 제 2 행렬을 포함하고,상기 곱셈 연산 모듈은,상기 제 1 행렬의 열의 개수 또는 상기 제 2 행렬의 행의 개수 중 적어도 하나의 개수만큼 상기 압축된 비트 벡터에 포함되는 비트들을 논리적인 블록 단위로 그루핑하고,상기 그루핑 된 비트들에 대하여 기 설정된 연산을 수행하고,상기 기 설정된 연산을 통해 얻어진 새로운 비트 벡터에 포함되는 1의 개수를 계산하고,상기 1의 개수를 위치로 설정하여 상기 결과 행렬을 출력하는,다차원 행렬 곱셈 연산 장치
|
12 |
12
제 11 항에 있어서,상기 기 설정된 연산은 XNOR 연산과 Bitcount 연산인,다차원 행렬 곱셈 연산 장치
|
13 |
13
제 11 항에 있어서,상기 논리적인 블록 단위로 그루핑 된 비트들은 제 1 그룹 및 제 2 그룹을 포함하고,상기 곱셈 연산 모듈은,상기 제 1 그룹에 대하여 결과 행렬이 출력됨에 따라, 상기 제 2 그룹에 대하여 결과 행렬을 출력하는,다차원 행렬 곱셈 연산 장치
|
14 |
14
제 13 항에 있어서,상기 곱셈 연산 모듈이, 상기 논리적인 블록 단위로 그루핑 된 비트들 전부에 대해 결과 행렬을 출력한 경우,상기 곱셈 연산 모듈은, 상기 논리적인 블록 단위의 크기만큼 상기 압축된 비트 벡터에 포함되는 비트 벡터를 순환 시프트하고, 상기 제 1 행렬의 열의 개수 또는 상기 제 2 행렬의 행의 개수 중 적어도 하나의 개수만큼 상기 압축된 비트 벡터에 포함되는 비트들을 논리적인 블록 단위로 그루핑하고,상기 그루핑 된 비트들에 대하여 기 설정된 연산을 수행하고,상기 기 설정된 연산을 통해 얻어진 새로운 비트 벡터에 포함되는 1의 개수를 계산하고,상기 1의 개수를 위치로 설정하여 상기 결과 행렬을 출력하는,다차원 행렬 곱셈 연산 장치
|
15 |
15
복수 개의 입력 행렬에 대해 양자화를 수행하여 복수 개의 이진화 된 행렬로 출력하고;상기 복수 개의 이진화 된 행렬을 복수 개의 압축된 비트 벡터로 변환하고;상기 복수 개의 압축된 비트 벡터 상에서 특정 비트의 위치를 계산하고;상기 복수 개의 압축된 비트 벡터 간 곱셈을 수행하여 결과 행렬을 출력하고;상기 압축된 비트 벡터 상에서 상기 특정 비트의 위치에 대응하여, 상기 결과 행렬을 변환하는;다차원 행렬 곱셈 프로그램을 저장하는 저장매체
|