KR102065672B1 - 합성곱 연산을 위한 장치 및 방법 - Google Patents
합성곱 연산을 위한 장치 및 방법 Download PDFInfo
- Publication number
- KR102065672B1 KR102065672B1 KR1020180035104A KR20180035104A KR102065672B1 KR 102065672 B1 KR102065672 B1 KR 102065672B1 KR 1020180035104 A KR1020180035104 A KR 1020180035104A KR 20180035104 A KR20180035104 A KR 20180035104A KR 102065672 B1 KR102065672 B1 KR 102065672B1
- Authority
- KR
- South Korea
- Prior art keywords
- vector
- partial
- matrix
- unit
- product
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 239000013598 vector Substances 0.000 claims abstract description 170
- 239000011159 matrix material Substances 0.000 claims abstract description 87
- 239000002131 composite material Substances 0.000 claims abstract description 66
- 238000004364 calculation method Methods 0.000 claims abstract description 30
- 239000000872 buffer Substances 0.000 claims description 128
- 230000015654 memory Effects 0.000 claims description 27
- 150000001875 compounds Chemical class 0.000 claims description 16
- 238000005192 partition Methods 0.000 claims description 12
- 238000000638 solvent extraction Methods 0.000 claims description 11
- 230000003247 decreasing effect Effects 0.000 claims 1
- 230000015572 biosynthetic process Effects 0.000 abstract description 2
- 238000003786 synthesis reaction Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 13
- 238000013528 artificial neural network Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000004913 activation Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
Description
도 2는 합성곱 신경망 기법을 적용하기 위한 하드웨어 장치를 예시적으로 도시한 도면이다.
도 3a 내지 3c는 본 발명의 일 실시예에 따른 합성곱 연산 장치의 구성에 대해 설명하기 위한 도면이다.
도 4a 내지 5c는 본 발명의 일 실시예에 따른 합성곱 연산 장치에 의해 수행되는 합성곱 연산 과정에 대해 설명하기 위한 도면이다.
도 6a 내지 6c는 본 발명의 일 실시예에 따른 합성곱 연산 과정 중 합성곱 커널 분할이 적용된 경우에 대해 설명하기 위한 도면이다.
도 7a 및 7b는 본 발명의 일 실시예에 따른 합성곱 연산 과정 중 스캔 간격 확대가 적용된 경우에 대해 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 합성곱 연산 방법의 각 단계를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 합성곱 연산 방법 중 합성곱 커널 분할이 적용된 경우의 각 단계를 도시한 도면이다.
110: 상위 버퍼부
111: 특징 데이터 버퍼부
112: 합성곱 커널 버퍼부
120: 하위 버퍼부
121: 제 1 버퍼부
122: 제 2 버퍼부
130: 연산부
131: 곱셈 유닛
140: 곱셈 버퍼
150: 덧셈기
160: 출력 버퍼
Claims (22)
- MхN 행렬(M과 N은 자연수)인 특징 데이터의 일부 영역에 해당되며, KхL(K는 M 이하의 자연수, L은 N 이하의 자연수) 행렬인 합성곱 커널과 동일한 차원을 갖는 행렬인 부분 행렬을, 서로 다르게 복수 개 추출하는 단계;
상기 특징 데이터의 원소 중 적어도 하나의 상기 부분 행렬에 속하는 원소를 원소로서 포함하는 제 1 벡터와, 상기 합성곱 커널의 원소를 원소로서 포함하는 제 2 벡터를 생성하는 단계;
상기 부분 행렬 각각에 대해, 자신의 모든 원소를 포함하며 상기 제 1 벡터의 일부인 부분 벡터를 추출하는 단계;
상기 부분 행렬 각각에 대해, 대응되는 부분 벡터의 각 원소와, 상기 제 2 벡터 내에서 대응되는 위치에 존재하는 원소 간의 곱을 수행하고, 상기 곱 수행의 결과를 모두 더함으로써, 상기 합성곱 커널과의 합성곱 연산 결과를 산출하는 단계; 및
상기 제 1 벡터의 각 원소가 0인지의 여부를 판별하기 위한 제 1 플래그 벡터와, 상기 제 2 벡터의 각 원소가 0인지의 여부를 판별하기 위한 제 2 플래그 벡터를 생성하는 단계를 포함하며,
상기 산출하는 단계는,
상기 부분 벡터의 각 원소에 대해, 상기 제 1 플래그 벡터 내에서 대응되는 위치에 존재하는 원소가 0일 경우, 0이라 판단하고, 상기 제 2 벡터의 각 원소에 대해, 상기 제 2 플래그 벡터 내에서 대응되는 위치에 존재하는 원소가 0일 경우, 0이라 판단하는 단계를 포함하는
합성곱 연산 방법. - 제 1 항에 있어서,
상기 산출하는 단계는, 상기 곱을 상기 곱의 대상이 되는 두 원소가 모두 0이 아닐 경우에 수행하는 단계를 포함하는
합성곱 연산 방법. - 제 1 항에 있어서,
상기 부분 행렬 중 서로 다른 부분 행렬에 대한 상기 합성곱 커널과의 합성곱 연산은, 서로 다른 곱셈 유닛(multiplier)을 이용하여 병렬적으로 수행되는
합성곱 연산 방법. - 삭제
- MхN 행렬(M과 N은 자연수)인 특징 데이터의 일부 영역에 해당되며, KхL(K는 M 이하의 자연수, L은 N 이하의 자연수) 행렬인 합성곱 커널과 동일한 차원을 갖는 행렬인 부분 행렬을, 서로 다르게 복수 개 추출하는 단계;
상기 특징 데이터의 원소 중 적어도 하나의 상기 부분 행렬에 속하는 원소를 원소로서 포함하는 제 1 벡터와, 상기 합성곱 커널의 원소를 원소로서 포함하는 제 2 벡터를 생성하는 단계;
상기 부분 행렬 각각에 대해, 자신의 모든 원소를 포함하며 상기 제 1 벡터의 일부인 부분 벡터를 추출하는 단계; 및
상기 부분 행렬 각각에 대해, 대응되는 부분 벡터의 각 원소와, 상기 제 2 벡터 내에서 대응되는 위치에 존재하는 원소 간의 곱을 수행하고, 상기 곱 수행의 결과를 모두 더함으로써, 상기 합성곱 커널과의 합성곱 연산 결과를 산출하는 단계를 포함하며,
상기 합성곱 연산을 위한 스캔 방향이 행 방향이고 스캔 간격(stride)이 v(v는 자연수이며, 상기 스캔 간격은 행렬의 원소의 개수를 의미함)일 경우, 상기 복수의 부분 행렬은 상기 복수의 부분 행렬 각각이 상기 특징 데이터 상에서 인접한 부분 행렬과 v의 간격을 가지며 행 방향으로 정렬되도록 추출되는
합성곱 연산 방법. - 제 5 항에 있어서,
상기 제 1 벡터의 각 원소와 상기 제 2 벡터의 각 원소는, 상기 특징 데이터 혹은 상기 합성곱 커널 내에서 가졌던 행 번호와 열 번호(상기 행 번호와 상기 열 번호는 자연수)의 대소에 따라 상기 제 1 벡터와 상기 제 2 벡터 내에서 각각 정렬되되, 상기 열 번호가 작을수록 상기 제 1 벡터 혹은 상기 제 2 벡터 내에서 앞쪽에 존재하고, 상기 열 번호가 동일할 경우 상기 행 번호가 작을수록 상기 제 1 벡터 혹은 상기 제 2 벡터 내에서 앞쪽에 존재하도록 정렬되는
합성곱 연산 방법. - 제 5 항에 있어서,
상기 K의 값이, 상기 제 1 벡터 혹은 상기 제 2 벡터를 저장하는 기억 장치의 구조에 기초하여 결정되는 소정의 자연수인 P에 미달하는 경우, 상기 제 1 벡터 및 상기 제 2 벡터의 i번째 위치(i는 자연수) 중 I mod P의 값이 K 이하의 자연수가 되는 유효 위치에만 상기 부분 행렬 혹은 상기 합성곱 커널의 원소가 채워지고, 상기 유효 위치 외의 다른 위치에는 임의의 더미(dummy) 값이 채워지며,
상기 산출하는 단계는, 상기 제 1 벡터 및 상기 제 2 벡터의 상기 더미 값을 0으로 간주하는 단계를 포함하는
합성곱 연산 방법. - MхN 행렬(M과 N은 자연수)인 특징 데이터의 일부 영역에 해당되며, KхL(K는 M 이하의 자연수, L은 N 이하의 자연수) 행렬인 합성곱 커널과 동일한 차원을 갖는 행렬인 부분 행렬을, 서로 다르게 복수 개 추출하는 단계;
상기 특징 데이터의 원소 중 적어도 하나의 상기 부분 행렬에 속하는 원소를 원소로서 포함하는 제 1 벡터와, 상기 합성곱 커널의 원소를 원소로서 포함하는 제 2 벡터를 생성하는 단계;
상기 부분 행렬 각각에 대해, 자신의 모든 원소를 포함하며 상기 제 1 벡터의 일부인 부분 벡터를 추출하는 단계; 및
상기 부분 행렬 각각에 대해, 대응되는 부분 벡터의 각 원소와, 상기 제 2 벡터 내에서 대응되는 위치에 존재하는 원소 간의 곱을 수행하고, 상기 곱 수행의 결과를 모두 더함으로써, 상기 합성곱 커널과의 합성곱 연산 결과를 산출하는 단계를 포함하며,
상기 합성곱 연산을 위한 스캔 방향이 행 방향이고 상기 K의 값이 소정 값을 초과하는 경우, R개(R는 2 이상의 자연수)의 제 1 분할 행렬과 R개의 제 2 분할 행렬로 상기 부분 행렬과 상기 합성곱 커널을 각각 분할하고, 상기 제 1 분할 행렬 중 i(i는 1 이상 R 이하의 자연수)번째 행렬과 상기 제 2 분할 행렬 중 i번째 행렬 간의 합성곱 연산을 모든 i에 대해 수행한 결과를 결합하여 상기 부분 행렬과 상기 합성곱 커널 간의 합성곱 연산 결과를 산출하는 것이며,
상기 제 1 분할 행렬 각각과 상기 제 2 분할 행렬 각각은, 행의 수가 상기 소정 값을 넘지 않고 열의 수가 상기 L과 같은
합성곱 연산 방법. - MхN 행렬(M과 N은 자연수)인 특징 데이터의 일부 영역에 해당되며, KхL(K는 M 이하의 자연수, L은 N 이하의 자연수) 행렬인 합성곱 커널과 동일한 차원을 갖는 행렬인 부분 행렬을, 서로 다르게 복수 개 추출하고, 상기 특징 데이터의 원소 중 적어도 하나의 상기 부분 행렬에 속하는 원소를 원소로서 포함하는 제 1 벡터를 생성하는 제 1 버퍼부;
상기 합성곱 커널의 원소를 원소로서 포함하는 제 2 벡터를 생성하는 제 2 버퍼부; 및
상기 부분 행렬 각각에 대해, 자신의 모든 원소를 포함하며 상기 제 1 벡터의 일부인 부분 벡터를 추출하고, 상기 부분 행렬 각각에 대해, 대응되는 부분 벡터의 각 원소와, 상기 제 2 벡터 내에서 대응되는 위치에 존재하는 원소 간의 곱을 수행하고, 상기 곱 수행의 결과를 모두 더함으로써, 상기 합성곱 커널과의 합성곱 연산 결과를 산출하는 연산부를 포함하며,
상기 제 1 버퍼부는, 상기 제 1 벡터의 각 원소가 0인지의 여부를 판별하기 위한 제 1 플래그 벡터를 생성하고,
상기 제 2 버퍼부는, 상기 제 2 벡터의 각 원소가 0인지의 여부를 판별하기 위한 제 2 플래그 벡터를 생성하며,
상기 연산부는, 상기 부분 벡터의 각 원소에 대해, 상기 제 1 플래그 벡터 내에서 대응되는 위치에 존재하는 원소가 0일 경우, 0이라 판단하고, 상기 제 2 벡터의 각 원소에 대해, 상기 제 2 플래그 벡터 내에서 대응되는 위치에 존재하는 원소가 0일 경우, 0이라 판단하는
합성곱 연산 장치. - ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈제 9 항에 있어서,
상기 연산부는, 상기 곱을 상기 곱의 대상이 되는 두 원소가 모두 0이 아닐 경우에 수행하는
합성곱 연산 장치. - 제 9 항에 있어서,
상기 장치는, 상기 특징 데이터 및 상기 합성곱 커널을 저장하고, 상기 제 1 버퍼부 및 상기 제 2 버퍼부와 연결되는 상위 버퍼부를 더 포함하며,
상기 상위 버퍼부로부터, 상기 제 1 버퍼부는 상기 특징 데이터의 각 원소의 값을, 상기 제 2 버퍼부는 상기 합성곱 커널의 각 원소의 값을 각각 획득하는
합성곱 연산 장치. - 제 9 항에 있어서,
상기 연산부는, 복수의 곱셈 유닛을 포함하며,
상기 부분 행렬 중 서로 다른 부분 행렬에 대한 상기 합성곱 커널과의 합성곱 연산은, 상기 곱셈 유닛 중 서로 다른 곱셈 유닛을 이용하여 병렬적으로 수행되는
합성곱 연산 장치. - 삭제
- 삭제
- 제 9 항에 있어서,
상기 제 1 벡터의 각 원소와 상기 제 2 벡터의 각 원소는, 상기 특징 데이터 혹은 상기 합성곱 커널 내에서 가졌던 행 번호와 열 번호(상기 행 번호와 상기 열 번호는 자연수)의 대소에 따라 상기 제 1 벡터와 상기 제 2 벡터 내에서 각각 정렬되되, 상기 열 번호가 작을수록 상기 제 1 벡터 혹은 상기 제 2 벡터 내에서 앞쪽에 존재하고, 상기 열 번호가 동일할 경우 상기 행 번호가 작을수록 상기 제 1 벡터 혹은 상기 제 2 벡터 내에서 앞쪽에 존재하도록 정렬되는
합성곱 연산 장치. - MхN 행렬(M과 N은 자연수)인 특징 데이터의 일부 영역에 해당되며, KхL(K는 M 이하의 자연수, L은 N 이하의 자연수) 행렬인 합성곱 커널과 동일한 차원을 갖는 행렬인 부분 행렬을, 서로 다르게 복수 개 추출하고, 상기 특징 데이터의 원소 중 적어도 하나의 상기 부분 행렬에 속하는 원소를 원소로서 포함하는 제 1 벡터를 생성하는 제 1 버퍼부;
상기 합성곱 커널의 원소를 원소로서 포함하는 제 2 벡터를 생성하는 제 2 버퍼부; 및
상기 부분 행렬 각각에 대해, 자신의 모든 원소를 포함하며 상기 제 1 벡터의 일부인 부분 벡터를 추출하고, 상기 부분 행렬 각각에 대해, 대응되는 부분 벡터의 각 원소와, 상기 제 2 벡터 내에서 대응되는 위치에 존재하는 원소 간의 곱을 수행하고, 상기 곱 수행의 결과를 모두 더함으로써, 상기 합성곱 커널과의 합성곱 연산 결과를 산출하는 연산부를 포함하며,
상기 제 1 버퍼부 및 상기 제 2 버퍼부는, PхQ 행렬(P와 Q는 2 이상의 자연수)을 이루도록 배열된 복수의 단위 기억 장치를 포함하는 데이터 어레이(data array)를 각각 포함하고,
상기 제 1 버퍼부는, 상기 제 1 벡터의 각 원소를 상기 제 1 버퍼부의 데이터 어레이의 서로 다른 단위 기억 장치에 각각 저장하며,
상기 제 2 버퍼부는, 상기 제 2 벡터의 각 원소를 상기 제 2 버퍼부의 데이터 어레이의 서로 다른 단위 기억 장치에 각각 저장하는
합성곱 연산 장치. - 제 16 항에 있어서,
상기 K의 값이 상기 P의 값에 미달하는 경우, 상기 부분 행렬 및 상기 합성곱 커널의 각 원소에 대해, 상기 부분 행렬 혹은 상기 합성곱 커널 내에서 가졌던 행 번호와 열 번호를 각각 row 및 col이라 할 때, 상기 부분 행렬의 각 원소는 상기 제 1 벡터의 (P*col + row)번째 위치에, 상기 합성곱 커널의 각 원소는 상기 제 2 벡터의 (P*col + row)번째 위치에 각각 저장되고, 그 외의 다른 단위 기억 장치에는 임의의 더미(dummy) 값이 저장되며,
상기 연산부는, 상기 제 1 버퍼부 혹은 상기 제 2 버퍼부의 데이터 어레이의 단위 기억 장치에 저장된 상기 더미 값을 0으로 간주하는
합성곱 연산 장치. - 제 16 항에 있어서,
상기 합성곱 연산을 위한 스캔 방향이 행 방향이고 상기 K의 값이 상기 P의 값을 초과하는 경우, 상기 연산부는 R개(R는 2 이상의 자연수)의 제 1 분할 행렬로 상기 부분 행렬을 분할하고, R개의 제 2 분할 행렬로 상기 합성곱 커널을 분할하며, 상기 제 1 분할 행렬 중 i(i는 1 이상 R 이하의 자연수)번째 행렬과 상기 제 2 분할 행렬 중 i번째 행렬 간의 합성곱 연산을 모든 i에 대해 수행한 결과를 결합하여 상기 부분 행렬과 상기 합성곱 커널 간의 합성곱 연산 결과를 산출하고,
상기 제 1 분할 행렬 각각과 상기 제 2 분할 행렬 각각은, 행의 수가 상기 P의 값을 넘지 않고 열의 수가 상기 L과 같은
합성곱 연산 장치. - 제 16 항에 있어서,
상기 제 1 버퍼부의 데이터 어레이 혹은 상기 제 2 버퍼부의 데이터 어레이에 포함된 단위 기억 장치 중, 행 번호가 동일한 단위 기억 장치끼리는 하나의 단위 기억 장치 세트(set)를 이루며, 상기 단위 기억 장치 세트 각각은 상위 버퍼부에 저장된 상기 특징 데이터 혹은 상기 합성곱 커널의 서로 다른 열에 접근 가능하도록 연결되는
합성곱 연산 장치. - 제 19 항에 있어서,
상기 단위 기억 장치 세트 내의 각 단위 기억 장치에는, 열 번호가 작은 단위 기억 장치부터, 상기 단위 기억 장치 세트에 연결된 상기 특징 데이터 혹은 상기 합성곱 커널의 열의 데이터 K개가 열 번호가 작은 순서에 따라 순차적으로 하나씩 채워지는
합성곱 연산 장치. - 제 1 항 내지 제 3 항 및 제 5 항 내지 제 8 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하는
컴퓨터 판독 가능 기록매체에 저장된 프로그램. - 제 1 항 내지 제 3 항 및 제 5 항 내지 제 8 항 중 어느 한 항에 기재된 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된
컴퓨터 판독 가능 기록매체.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180035104A KR102065672B1 (ko) | 2018-03-27 | 2018-03-27 | 합성곱 연산을 위한 장치 및 방법 |
CN201980021781.3A CN111902813B (zh) | 2018-03-27 | 2019-03-25 | 用于卷积运算的装置以及方法 |
PCT/KR2019/003440 WO2019190139A1 (ko) | 2018-03-27 | 2019-03-25 | 합성곱 연산을 위한 장치 및 방법 |
US17/034,886 US11475100B2 (en) | 2018-03-27 | 2020-09-28 | Device and method for convolution operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180035104A KR102065672B1 (ko) | 2018-03-27 | 2018-03-27 | 합성곱 연산을 위한 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190113007A KR20190113007A (ko) | 2019-10-08 |
KR102065672B1 true KR102065672B1 (ko) | 2020-01-13 |
Family
ID=68059316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180035104A Active KR102065672B1 (ko) | 2018-03-27 | 2018-03-27 | 합성곱 연산을 위한 장치 및 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11475100B2 (ko) |
KR (1) | KR102065672B1 (ko) |
CN (1) | CN111902813B (ko) |
WO (1) | WO2019190139A1 (ko) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102764317B1 (ko) | 2019-01-31 | 2025-02-07 | 삼성전자주식회사 | 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치 |
US12014505B2 (en) * | 2019-01-31 | 2024-06-18 | Samsung Electronics Co., Ltd. | Method and apparatus with convolution neural network processing using shared operand |
US11222092B2 (en) * | 2019-07-16 | 2022-01-11 | Facebook Technologies, Llc | Optimization for deconvolution |
CN110807170B (zh) * | 2019-10-21 | 2023-06-27 | 中国人民解放军国防科技大学 | 多样本多通道卷积神经网络Same卷积向量化实现方法 |
KR102410166B1 (ko) * | 2019-11-27 | 2022-06-20 | 고려대학교 산학협력단 | 이종 곱셈-누셈 유닛을 이용하는 심층 신경망의 가속기 |
US20210334072A1 (en) * | 2020-04-22 | 2021-10-28 | Facebook, Inc. | Mapping convolution to connected processing elements using distributed pipelined separable convolution operations |
KR20210156554A (ko) * | 2020-06-18 | 2021-12-27 | 삼성전자주식회사 | 텐서 처리 방법, 가속기 및 이를 포함한 전자 장치 |
US20220012587A1 (en) * | 2020-07-09 | 2022-01-13 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Convolution operation method and convolution operation device |
CN112308837A (zh) * | 2020-10-30 | 2021-02-02 | 京东方科技集团股份有限公司 | 一种图像处理方法及装置、电子设备和可读存储介质 |
CN114764615A (zh) * | 2021-01-13 | 2022-07-19 | 华为技术有限公司 | 卷积运算的实现方法、数据处理方法及装置 |
US11748062B2 (en) | 2021-01-28 | 2023-09-05 | Macronix International Co., Ltd. | Multiplication and addition operation device and control method for multiplication and addition operation thereof |
KR102657104B1 (ko) * | 2021-05-24 | 2024-04-15 | 연세대학교 산학협력단 | 합성곱 연산 장치, 합성곱 연산 방법 및 합성곱 연산 방법을 실행시키도록 기록매체에 저장된 컴퓨터 프로그램 |
CN113435586B (zh) * | 2021-08-03 | 2021-11-30 | 北京大学深圳研究生院 | 用于卷积神经网络的卷积运算装置、系统和图像处理装置 |
CN113641952B (zh) * | 2021-10-14 | 2022-02-08 | 北京壁仞科技开发有限公司 | 卷积设备、卷积方法、矩阵拆聚装置以及矩阵拆聚方法 |
KR102715720B1 (ko) | 2021-12-28 | 2024-10-11 | 주식회사 퓨쳐디자인시스템 | 광폭 데이터 정렬장치 |
TWI842180B (zh) * | 2022-11-04 | 2024-05-11 | 瑞昱半導體股份有限公司 | 卷積電路與卷積計算方法 |
CN116521611B (zh) * | 2023-04-23 | 2024-12-13 | 哈尔滨理工大学 | 一种深度学习处理器的泛化架构设计方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170103311A1 (en) | 2015-10-08 | 2017-04-13 | Via Alliance Semiconductor Co., Ltd. | Neural network unit that performs convolutions using collective shift register among array of neural processing units |
US20170372071A1 (en) | 2016-06-22 | 2017-12-28 | Invincea, Inc. | Methods and apparatus for detecting whether a string of characters represents malicious activity using machine learning |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100465876C (zh) * | 2007-07-12 | 2009-03-04 | 浙江大学 | 基于单fpga的矩阵乘法器装置 |
CN103294648B (zh) * | 2013-05-08 | 2016-06-01 | 中国人民解放军国防科学技术大学 | 支持多mac运算部件向量处理器的分块矩阵乘法向量化方法 |
US10077360B2 (en) * | 2014-12-01 | 2018-09-18 | Lg Chem, Ltd. | Polycarbonate resin composition and method of preparing the same |
US20160259826A1 (en) * | 2015-03-02 | 2016-09-08 | International Business Machines Corporation | Parallelized Hybrid Sparse Matrix Representations for Performing Personalized Content Ranking |
KR101719278B1 (ko) | 2015-04-14 | 2017-04-04 | (주)한국플랫폼서비스기술 | 비주얼 콘텐츠기반 영상 인식을 위한 딥러닝 프레임워크 및 영상 인식 방법 |
US10438117B1 (en) * | 2015-05-21 | 2019-10-08 | Google Llc | Computing convolutions using a neural network processor |
KR102325602B1 (ko) * | 2015-07-06 | 2021-11-12 | 삼성전자주식회사 | 데이터를 병렬적으로 처리하는 장치 및 방법 |
CN108491359B (zh) * | 2016-04-22 | 2019-12-24 | 北京中科寒武纪科技有限公司 | 子矩阵运算装置及方法 |
CN106844294B (zh) * | 2016-12-29 | 2019-05-03 | 华为机器有限公司 | 卷积运算芯片和通信设备 |
CN107977704B (zh) * | 2017-11-10 | 2020-07-31 | 中国科学院计算技术研究所 | 权重数据存储方法和基于该方法的神经网络处理器 |
US11514136B2 (en) * | 2019-05-17 | 2022-11-29 | Aspiring Sky Co. Limited | Circuit for neural network convolutional calculation of variable feature and kernel sizes |
CN113222101B (zh) * | 2020-02-05 | 2025-04-25 | 昆仑芯(北京)科技有限公司 | 深度学习处理装置、方法、设备和存储介质 |
-
2018
- 2018-03-27 KR KR1020180035104A patent/KR102065672B1/ko active Active
-
2019
- 2019-03-25 CN CN201980021781.3A patent/CN111902813B/zh active Active
- 2019-03-25 WO PCT/KR2019/003440 patent/WO2019190139A1/ko active Application Filing
-
2020
- 2020-09-28 US US17/034,886 patent/US11475100B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170103311A1 (en) | 2015-10-08 | 2017-04-13 | Via Alliance Semiconductor Co., Ltd. | Neural network unit that performs convolutions using collective shift register among array of neural processing units |
US20170372071A1 (en) | 2016-06-22 | 2017-12-28 | Invincea, Inc. | Methods and apparatus for detecting whether a string of characters represents malicious activity using machine learning |
Also Published As
Publication number | Publication date |
---|---|
US20210011970A1 (en) | 2021-01-14 |
US11475100B2 (en) | 2022-10-18 |
WO2019190139A1 (ko) | 2019-10-03 |
CN111902813A (zh) | 2020-11-06 |
KR20190113007A (ko) | 2019-10-08 |
CN111902813B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102065672B1 (ko) | 합성곱 연산을 위한 장치 및 방법 | |
JP6736646B2 (ja) | 畳み込みニューラルネットワークにおいて畳み込み演算を実行する装置および方法 | |
JP7279226B2 (ja) | 代替ループ限界値 | |
US10521488B1 (en) | Dynamic partitioning | |
KR102659997B1 (ko) | 저전력 컨볼루션 신경망 추론 애플리케이션을 위한 메모리 대역폭 감소 기술 | |
JP6726246B2 (ja) | 畳み込みニューラルネットワークにおいて演算を実行する方法および装置並びに非一時的な記憶媒体 | |
US10394929B2 (en) | Adaptive execution engine for convolution computing systems | |
CN107633295B (zh) | 用于适配神经网络的参数的方法和装置 | |
KR20200081044A (ko) | 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치 | |
TW202123093A (zh) | 實行卷積運算的系統及方法 | |
CN112395092B (zh) | 数据处理方法及人工智能处理器 | |
CN113673701B (zh) | 神经网络模型的运行方法、可读介质和电子设备 | |
US9965343B2 (en) | System and method for determining concurrency factors for dispatch size of parallel processor kernels | |
KR102764317B1 (ko) | 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치 | |
CN111886605B (zh) | 针对多个输入数据集的处理 | |
US12125124B1 (en) | Matrix transpose hardware acceleration | |
CN112860597B (zh) | 一种神经网络运算的系统、方法、装置及存储介质 | |
KR101989793B1 (ko) | 컨볼루션 신경망을 위한 가속기 인식 가지 치기 방법 및 기록 매체 | |
CN117787365B (zh) | 一种卷积数据流的调度方法、装置、介质及设备 | |
WO2020059156A1 (en) | Data processing system, method, and program | |
US20220138527A1 (en) | Process for processing data by an artificial neural network with grouped executions of individual operations to avoid side-channel attacks, and corresponding system | |
CN118485118B (zh) | 基于缓存映射的计算电路、芯片及计算装置 | |
Mehrez et al. | Towards an auto-tuning system design for optimal sparse compression format selection with user expertise | |
Mehrez et al. | Understanding the performances of SMVP on multiprocessor platform | |
KR20240086533A (ko) | 희소 행렬에 대한 연산 최적화를 위한 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20180327 |
|
PA0201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20190520 Patent event code: PE09021S01D |
|
PG1501 | Laying open of application | ||
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20191118 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20200107 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20200108 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
G170 | Re-publication after modification of scope of protection [patent] | ||
PG1701 | Publication of correction |
Patent event code: PG17011E01I Patent event date: 20210225 Comment text: Request for Publication of Correction Publication date: 20210302 |
|
PR1001 | Payment of annual fee |
Payment date: 20230104 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20240103 Start annual number: 5 End annual number: 5 |