KR20220027434A - 딥러닝 가속 장치 및 그 방법 - Google Patents
딥러닝 가속 장치 및 그 방법 Download PDFInfo
- Publication number
- KR20220027434A KR20220027434A KR1020200108298A KR20200108298A KR20220027434A KR 20220027434 A KR20220027434 A KR 20220027434A KR 1020200108298 A KR1020200108298 A KR 1020200108298A KR 20200108298 A KR20200108298 A KR 20200108298A KR 20220027434 A KR20220027434 A KR 20220027434A
- Authority
- KR
- South Korea
- Prior art keywords
- unit
- kernel
- data
- activation data
- bitstream
- Prior art date
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims description 36
- 230000004913 activation Effects 0.000 claims description 111
- 238000000354 decomposition reaction Methods 0.000 claims description 24
- 238000013139 quantization Methods 0.000 claims description 15
- 230000001133 acceleration Effects 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 7
- 238000007906 compression Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000003786 synthesis reaction Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003334 potential effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Discrete Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 딥러닝 가속 장치에 관한 것으로, 본 발명에 따른 딥러닝 가속 장치는 딥러닝 네트워크 모델 데이터를 인코딩/디코딩 할 때 전체 데이터가 아닌 레이어 등 특정 단위로 필요한 만큼만 인코딩/디코딩을 수행함으로써 전체 데이터를 외부 메모리에 저장하거나 불러오면서 소모되는 전력을 절약할 수 있는 효과가 있다.
Description
본 발명은 하드웨어 딥러닝 가속 장치에 관한 것으로, 특히 저전력 딥러닝 가속 장치에 관한 것이다.
딥러닝 기술은 영상 인식, 음성 신호처리, 자연어 처리 등 다양한 응용분야에서 기존 전통적인 방법을 압도하는 고무적인 성능을 보여주고 있다. 딥러닝 기술은 가중치(Weights)와 편향치(Biases)로 구성된 네트워크 모델을 주어진 응용분야에 적합하게 학습시키고, 학습된 네트워크 모델을 해당 응용분야에 다시 적용하는 과정을 거쳐 성능을 개선해 나간다.
학습량이 늘어날수록 딥러닝 기술은 발전하지만 그럴수록 딥러닝 네트워크 모델의 크기는 점점 커져가는 추세이다. 따라서 모바일 응용분야와 같이 저전력으로 사용시간을 늘려야 하는 분야에 적용하기에는 딥러닝 네트워크 모델의 크기가 문제가 될 수 있다. 딥러닝 네트워크 모델의 크기가 커질수록 데이터 양이 증가하므로 처리 시간도 문제지만 연산량에 따라 소비전력도 증가하기 때문이다.
본 발명의 발명자들은 이러한 종래 기술의 딥러닝 가속기의 높은 소비전력 문제를 해결하기 위해 연구 노력해 왔다. 종래기술의 딥러닝 가속기가 가지는 높은 소비 전력 문제를 완화하면서도 딥러닝 네트워크 모델의 성능을 유지하도록 하여 모바일 환경에도 사용이 가능한 딥러닝 가속기를 제공하기 위해 많은 노력 끝에 본 발명을 완성하기에 이르렀다.
본 발명의 목적은 딥러닝 네트워크 모델의 성능 저하 없이 딥러닝 연산에 소요되는 전력을 줄일 수 있는 딥러닝 가속기를 제공하는 것이다.
한편, 본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론 할 수 있는 범위 내에서 추가적으로 고려될 것이다.
본 발명에 따른 인코더는,
커널 또는 활성화 데이터를 압축하여 비트스트림으로 생성하는 인코딩부; 및 상기 압축된 데이터를 레이어, 타일 및 블록 중 어느 하나의 단위로 구분하는 구분자를 상기 비트스트림에 삽입하여 출력하는 삽입부;를 포함하되, 상기 인코딩부는, 커널 또는 활성화 데이터를 양자화하는 양자화부; 상기 양자화된 커널 또는 활성화 데이터와 이전 커널 또는 활성화 데이터를 바탕으로 문맥 정보를 도출하는 문맥 모델링부; 상기 문맥 모델링부의 문맥 정보를 기반으로 상기 양자화부를 통해 양자화된 커널 또는 활성화 데이터를 압축하여 비트스트림으로 생성하는 엔트로피 코딩부; 및 상기 압축된 데이터를 레이어, 타일 및 블록 중 어느 하나의 단위로 구분하는 구분자를 상기 비트스트림에 삽입하여 출력하는 삽입부;를 포함한다.
상기 엔트로피 코딩부는, 런-렝스 코딩(Run-Length Coding), 허프만 코딩(Huffman Coding) 또는 아리스메틱 코딩(Arithmetic Coding) 방법을 이용하는 것을 특징으로 한다.
상기 커널 또는 활성화 데이터를 미리 인코딩 된 커널 또는 활성화 데이터와의 상관성을 이용하여 예측하는 예측부; 상기 커널 또는 활성화 데이터를 시간 영역에서 주파수 영역으로 변환하는 변환부; 및 상기 커널 또는 활성화 데이터를 복수개의 작은 차원 데이터로 분해하는 분해부;를 더 포함하는 것을 특징으로 한다.
상기 삽입부는, 인코딩 방식에 따라 상기 예측부, 변환부 및 분해부를 선택적으로 활성화하는 활성화 여부를 표시하는 플래그를 상기 비트스트림에 더 삽입하는 것을 특징으로 한다.
상기 변환부는, 상기 커널 또는 활성화 데이터를 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform) 또는 DFT(Discrete Fourier Transform) 변환하는 것을 특징으로 한다.
상기 분해부는 저차원 분해(Low Rank Decomposition) 또는 CP 분해(Canonical Polyadic Decomposition)를 이용하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 디코더는,
메모리; 비트스트림에 삽입된 레이어, 타일 및 블록 단위의 커널 또는 활성화 데이터 중 어느 하나의 단위를 구분하는 구분자를 이용하여 상기 비트스트림을 단위로 구분하는 파서; 및 상기 비트스트림 중 상기 파서에 의해 구분된 단위를 디코딩하여 상기 메모리에 저장하는 디코딩부;를 포함한다.
상기 디코딩부는, 상기 구분된 단위의 커널 또는 활성화 데이터를 문맥 정보를 이용하여 엔트로피 디코딩하는 엔트로피 디코딩부; 상기 엔트로피 디코딩된 커널 또는 활성화 데이터와 이전 엔트로피 디코딩된 커널 또는 활성화 데이터를 바탕으로 문맥 정보를 도출하는 문맥 모델링부;를 및 상기 엔트로피 디코딩 된 커널 또는 활성화 데이터를 역양자화하는 역양자화부;를 포함하는 것을 특징으로 한다.
상기 디코딩부는, 상기 엔트로피 디코딩 된 커널 또는 활성화 데이터를 이미 엔트로피 디코딩 된 커널 또는 활성화 데이터와의 상관성을 이용하여 역예측하는 역예측부; 상기 엔트로피 디코딩 된 커널 또는 활성화 데이터를 주파수 영역에서 시간 영역으로 역변환하는 역변환부; 및 상기 커널 또는 활성화 데이터를 복수개의 낮은 차원 데이터에서 보다 높은 차원의 데이터로 복원하는 역분해부;를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 실시예에 따른 딥러닝 가속 장치는,
메모리; 비트스트림에 삽입된 레이어, 타일 및 블록 단위의 커널 또는 활성화 데이터 중 어느 하나의 단위를 구분하는 구분자를 이용하여 상기 비트스트림을 단위로 구분하는 파서; 상기 비트스트림 중 상기 파서에 의해 구분된 단위를 디코딩하여 상기 메모리에 저장하는 디코더; 및 상기 디코딩된 데이터를 이용하여 딥러닝 연산을 수행하는 가속부;를 포함한다.
본 발명의 또 다른 실시예에 따른 인코딩 방법은,
커널 또는 활성화 데이터를 양자화 하는 단계; 상기 양자화된 커널 또는 활성화 데이터와 이전 커널 또는 활성화 데이터를 바탕으로 문맥 정보를 도출하는 단계; 상기 도출된 문맥 정보를 기반으로 상기 양자화된 커널 또는 활성화 데이터를 압축하여 비트스트림으로 생성하는 단계; 및 상기 압축된 커널 또는 활성화 데이터를 레이어, 타일 및 블록 중 어느 하나의 단위로 구분하는 구분자를 상기 비트스트림에 삽입하여 출력하는 단계;를 포함한다.
본 발명의 또 다른 실시예에 따른 디코딩 방법은,
비트스트림에 삽입된 레이어, 타일 및 블록 단위의 커널 또는 활성화 데이터 중 어느 하나의 단위를 구분하는 구분자를 이용하여 상기 비트스트림을 단위로 구분하는 단계; 상기 구분된 단위의 커널 또는 활성화 데이터를 문맥 정보를 이용하여 엔트로피 디코딩하는 단계; 상기 엔트로피 디코딩된 커널 또는 활성화 데이터와 이전 엔트로피 디코딩된 커널 또는 활성화 데이터를 바탕으로 문맥 정보를 도출하는 단계; 및 상기 엔트로피 디코딩 된 커널 또는 활성화 데이터를 역양자화하는 단계;를 포함한다.
본 발명의 또 다른 실시예에 따른 프로세서는,
메모리; 레이어, 타일 및 블록 중 어느 하나의 단위로 구분된 커널 데이터 비트스트림을 상기 단위로 디코딩하고 상기 메모리에 저장하는 제1디코더; 활성화 데이터를 압축하고 레이어, 타일 및 블록 중 어느 하나의 단위로 구분하는 구분자를 삽입한 활성화 데이터 비트스트림을 생성하는 인코더; 상기 구분자를 이용하여 상기 활성화 데이터 비트스트림을 레이어, 타일 및 블록 중 어느 하나의 단위로 구분하는 파서; 상기 구분된 활성화 데이터 비트스트림을 상기 단위로 디코딩하여 상기 메모리에 저장하는 제2디코더; 및 상기 메모리에 저장된 커널 또는 활성화 디코딩 데이터를 이용하여 딥러닝 연산을 수행하는 가속부를 포함한다.
본 발명에 따르면 딥러닝 네트워크 모델 데이터 중 필요한 부분에 접근하여 이용함으로써 불필요한 외부 메모리 접근을 낮춰 전력소모를 줄일 수 있는 효과가 있다.
또한 딥러닝 네트워크 모델의 변형 없이 레이어/타일/블록 단위로 전체 데이터를 이용할 수 있으므로 딥러닝 네트워크 모델의 성능 저하 없이 딥러닝 가속기를 구현할 수 있는 장점이 있다.
한편, 여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급됨을 첨언한다.
도 1은 종래기술에 따른 딥러닝 가속 장치의 구조도이다.
도 2는 본 발명의 바람직한 어느 실시예에 따른 딥러닝 가속 장치를 이용한 전체 시스템의 구조도이다.
도 3은 본 발명의 바람직한 어느 실시예에 따른 비트스트림 파싱 방법의 예이다.
도 4는 본 발명의 바람직한 어느 실시예에 따른 인코더의 구조도이다.
도 5는 본 발명의 바람직한 어느 실시예에 따른 디코더의 구조도이다.
도 6은 본 발명의 바람직한 어느 실시예에 따른 인코딩 방법의 흐름도이다.
도 7은 본 발명의 바람직한 어느 실시예에 따른 디코딩 방법의 흐름도이다.
※ 첨부된 도면은 본 발명의 기술사상에 대한 이해를 위하여 참조로서 예시된 것임을 밝히며, 그것에 의해 본 발명의 권리범위가 제한되지는 아니한다
도 2는 본 발명의 바람직한 어느 실시예에 따른 딥러닝 가속 장치를 이용한 전체 시스템의 구조도이다.
도 3은 본 발명의 바람직한 어느 실시예에 따른 비트스트림 파싱 방법의 예이다.
도 4는 본 발명의 바람직한 어느 실시예에 따른 인코더의 구조도이다.
도 5는 본 발명의 바람직한 어느 실시예에 따른 디코더의 구조도이다.
도 6은 본 발명의 바람직한 어느 실시예에 따른 인코딩 방법의 흐름도이다.
도 7은 본 발명의 바람직한 어느 실시예에 따른 디코딩 방법의 흐름도이다.
※ 첨부된 도면은 본 발명의 기술사상에 대한 이해를 위하여 참조로서 예시된 것임을 밝히며, 그것에 의해 본 발명의 권리범위가 제한되지는 아니한다
본 발명의 상기 목적과 수단 및 그에 따른 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 경우에 따라 복수형도 포함한다. 본 명세서에서, "포함하다", “구비하다”, “마련하다” 또는 “가지다” 등의 용어는 언급된 구성요소 외의 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
본 명세서에서, “또는”, “적어도 하나” 등의 용어는 함께 나열된 단어들 중 하나를 나타내거나, 또는 둘 이상의 조합을 나타낼 수 있다. 예를 들어, “A 또는 B”, “A 및 B 중 적어도 하나”는 A 또는 B 중 하나만을 포함할 수 있고, A와 B를 모두 포함할 수도 있다.
본 명세서에서, “예를 들어” 등에 따르는 설명은 인용된 특성, 변수, 또는 값과 같이 제시한 정보들이 정확하게 일치하지 않을 수 있고, 허용 오차, 측정 오차, 측정 정확도의 한계와 통상적으로 알려진 기타 요인을 비롯한 변형과 같은 효과로 본 발명의 다양한 실시 예에 따른 발명의 실시 형태를 한정하지 않아야 할 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소에 ‘연결되어’ 있다거나 ‘접속되어’ 있다고 기재된 경우, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성 요소에 ‘직접 연결되어’ 있다거나 ‘직접 접속되어’ 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소의 '상에' 있다거나 '접하여' 있다고 기재된 경우, 다른 구성요소에 상에 직접 맞닿아 있거나 또는 연결되어 있을 수 있지만, 중간에 또 다른 구성요소가 존재할 수 있다고 이해되어야 할 것이다. 반면, 어떤 구성요소가 다른 구성요소의 '바로 위에' 있다거나 '직접 접하여' 있다고 기재된 경우에는, 중간에 또 다른 구성요소가 존재하지 않은 것으로 이해될 수 있다. 구성요소 간의 관계를 설명하는 다른 표현들, 예를 들면, '~사이에'와 '직접 ~사이에' 등도 마찬가지로 해석될 수 있다.
본 명세서에서, '제1', '제2' 등의 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 해당 구성요소는 위 용어에 의해 한정되어서는 안 된다. 또한, 위 용어는 각 구성요소의 순서를 한정하기 위한 것으로 해석되어서는 안되며, 하나의 구성요소와 다른 구성요소를 구별하는 목적으로 사용될 수 있다. 예를 들어, '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하도록 한다.
도 1은 종래 기술의 딥러닝 가속기를 포함하는 모바일 프로세서 칩(AP: Application Processor)의 개략적인 구성도이다.
모바일 프로세서 칩(10)은 중앙처리장치(CPU, 11), 외부 인터페이스(12), 메모리 컨트롤러(13), 딥러닝 가속기(14) 및 온-칩 메모리(15)를 포함한다.
외부 메모리(20)에는 학습된 커널 데이터(22)와 활성화 데이터(24)가 저장된다.
커널 데이터(22)는 딥러닝 네트워크 모델이라고도 불리며, 여러 개의 레이어(Layer)로 구성되어 있고, 각 레이어는 가중치와 편향치로 구성된다. 커널 데이터(22)의 한 레이어는 레이어 타입(Input / Output / Convolutional / Residual / Fully-Connected / Recurrent / Batch Normalization 등)에 따라 가중치와 편향치의 개수가 다르기 때문에 레이어의 구성에 따라 커널 데이터(22)의 크기가 달라진다.
딥러닝 네트워크 모델의 크기는 AlexNet 네트워크는 240MB, VGG-16 네트워크는 552MB에 달한다. 이렇게 용량이 큰 모델은 SRAM을 사용하는 내부 온-칩 메모리(15)에 저장해두고 계속 사용할 수가 없으므로 저장공간이 큰 DRAM 등을 사용하는 외부 메모리(20)에 저장해 두고 사용해야 하는데, 그러면 딥러닝 연산을 위해 빈번하게 커널 데이터(22)를 외부 메모리(20)에서 가져와야 하므로 전력소모가 크게 된다(45nm CMOS 공정에서 32-bit DRAM 메모리 접근은 640pJ의 에너지가 소모됨).
또한 딥러닝 추론 과정에서는 각 레이어마다 입력 데이터와 커널 데이터(22)와의 산술 연산(Convolutional/Fully-connected Operation)이 수행되고, 이 후 활성화 함수를 거쳐 나온 결과물이 활성화 데이터(24)이다. 활성화 데이터(24)는 다음 레이어의 입력으로 사용되고, 경우에 따라 몇 단계 이후의 레이어에도 사용된다. 활성화 데이터(24)는 입력 데이터의 크기에 따라 달라지는데 입력 해상도가 커지면 활성화 데이터(24)의 양도 증가한다. 따라서 활성화 데이터(24)를 추후 사용하기 위해 외부 메모리(20)에 저장하면 역시 전력 소모가 커지게 된다.
종래기술들은 외부 메모리(20)로의 접근 횟수와 데이터의 양을 줄이기 위해 커널/활성화 데이터(22, 24)를 압축하여 저장하는 방법을 사용했다. 하지만 압축 방법을 사용해도 압축이 된 데이터 전체를 외부 메모리(20)에서 가져와 필요한 데이터만을 사용하고 버리는 과정이 반복되다 보니 비효율적으로 전력을 사용하는 문제점이 여전히 존재한다.
도 2는 본 발명의 바람직한 어느 실시예에 따른 딥러닝 가속 장치가 적용된 전체 시스템의 구성도이다.
본 발명에 따른 딥러닝 가속 장치(100)는 온-칩 메모리(110), 딥러닝 가속기(120), CPU(130), 인터페이스(140) 및 메모리 컨트롤러(150)를 포함한다.
온-칩 메모리(110)는 딥러닝 가속기(120)에서 연산을 하기 위해 필요한 데이터들을 저장한다. 온-칩 메모리(110)에는 속도가 빠른 SRAM을 사용하는 대신 용량이 작기 때문에 많은 양의 데이터들은 용량이 큰 DRAM을 사용하는 외부 메모리(20)를 이용해서 저장한다.
딥러닝 가속기(120)는 커널 데이터 디코더(122) 및 활성화 데이터 디코더/인코더(124)를 포함한다.
CPU(130)는 비트스트림 파서(132)를 포함할 수 있다.
인터페이스(140)는 딥러닝 가속 장치(100) 외부와의 통신 등을 위해 사용된다.
메모리 컨트롤러(150)는 외부 메모리(20)와의 데이터 송수신을 제어한다.
커널 데이터 압축을 위한 커널 데이터 인코더(30)는 딥러닝 가속 장치(100)의 외부에 존재한다.
외부 메모리(20)에 있는 압축된 커널 데이터(22)를 전부 가져오면 온-칩 메모리(110)가 부족할 수 있고, 가져올 때마다 전력을 소모하므로 전력 사용에 효율적이지 못하다. 따라서 본 발명에서는 압축된 커널 데이터(22)를 일정한 단위로 구분해서 가져온다.
비트스트림 파서(132)는 외부에 저장된 압축 커널 데이터(22) 또는 압축 활성화 데이터(24)에서 필요한 부분만을 파싱하여 딥러닝 가속기(120)로 전달하여 압축된 데이터를 디코딩 하게 된다. 이를 위해 압축 커널 데이터(22) 또는 압축 활성화 데이터(24)는
도 3은 비트스트림 파서를 이용하여 압축된 데이터에서 필요한 데이터만 가져오는 한 예이다.
비트스트림 파서(132)는 압축된 커널 데이터 또는 활성화 데이터를 필요한 만큼만 구분해서 커널 데이터 디코더(122) 또는 활성화 데이터 디코더(124)로 전달한다. 이를 위해 비트스트림 파서(132)는 비트스트림에 삽입된 구분자(221, Start Code Prefix)에 의해 압축 커널 데이터 또는 활성화 데이터를 레이어, 타일, 블록 등 특정 단위로 구분할 수 있다. 따라서 이렇게 구분된 m번째 레이어 데이터를 구분자를 제거하고 구분자가 제거된 데이터를 딥러닝 가속기(120)로 전달한다.
비트스트림 파서(132)는 딥러닝 가속 장치(100)의 CPU(130)에 의해 소프트웨어로 구현되는 것도 가능하고 딥러닝 가속 장치(100) 내부에 하드웨어 형태로 구현될 수도 있다.
도 4는 활성화 데이터 인코더의 구조도이다.
활성화 데이터 인코더(126)는 동일한 구조로 커널 데이터를 인코딩 하는 것도 가능하다.
활성화 데이터 인코더(126)는 전처리부(1261), 양자화부(1262), 분해부(1263), 변환부(1264), 예측부(1265), 문맥 모델링부(1266), 엔트로피 코딩부(1267) 및 삽입부(1268)를 포함한다.
인코더(126)에는 커널 데이터 또는 활성화 데이터를 입력으로 받아 구분자가 삽입된 비트스트림이 생성된다. 이하에서는 활성화 데이터로 설명되지만 커널 데이터도 동일하게 인코딩이 가능하다.
활성화 데이터가 입력되면 전처리부(1261)를 거친다. 전처리부(1261)는 가지치기(Pruning) 기법 등을 이용하여 입력 데이터의 중요도에 따라 데이터 값을 선택적으로 0으로 치환한다.
전처리부(1261)를 거친 활성화 데이터는 양자화부(1262)에서 양자화된다. 양자화(Quantization)는 실수값인 활성화 데이터를 계산 속도를 높이고 연산량을 줄이기 위해 정수화 하는 과정이다. 예를 들면 일반적으로 32비트의 플로팅 포인트로 표현되는 실수값을 16/8/6/4-비트의 정수 값으로 변환하는 것이다.
분해부(1263)는 활성화 데이터를 여러 개의 작은 차원 데이터로 분해한다. 분해부(1263)는 저차원 분해(Low Rank Decomposition), CP 분해(Canonical Polyadic Decomposition) 등을 이용하여 입력 데이터를 분해할 수 있다.
변환부(1264)는 활성화 데이터를 주파수 영역 데이터로 변환(Transform)한다. 변환부(1264)는 DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), DFT (Discrete Fourier Transform)와 같은 변환을 사용하여 데이터를 블록 단위의 주파수 영역 데이터로 변환하게 된다. 활성화 데이터의 특성 상 일정 주파수 영역에 데이터가 집중되는 현상이 발생하고, 따라서 주파수 영역에서 신호를 처리하는 것이 압축에 더 효과적이기 때문에 주파수 영역 변환을 수행하는 것이다.
예측부(1265)는 이전에 인코딩 된 활성화 데이터와의 상관관계를 이용하여 활성화 데이터를 예측한다. 예측부(1265)가 사용된 경우 활성화 데이터의 잔차(Residual)만 인코딩되어 전송할 수 있으므로 데이터의 양을 줄일 수 있다.
이와 같은 예측부(1265), 변환부(1264), 분해부(1263)는 양자화부(1262)의 전 또는 후에 위치하여 활성화 데이터를 처리할 수 있다. 또한 예측부(1265), 변환부(1264), 분해부(1263)는 필요에 따라 비활성화 되는 것도 가능하다. 활성화 데이터의 실시간 처리를 위해 일부 블록을 비활성화 하는 경우가 있을 수 있다. 따라서 어떤 블록이 활성화 되었는지 또는 비활성화 되었는지 알 수 있는 정보는 엔트로피 코딩부(1267)로 전달되어 비트스트림에 삽입된다.
문맥 모델링부(1266)는 위의 예측부(1265), 변환부(1264), 분해부(1263) 또는 양자화부(1262)를 거친 활성화 데이터를 이전에 인코딩 된 활성화 데이터와 비교하여 문맥(Context)을 파악하는 문맥 모델링(Context Modeling)을 수행한다. 문맥 모델링은 데이터의 경향을 분석하는 것으로, 활성화 데이터의 변화 경향을 파악함으로써 엔트로피 코딩부(1267)에서 사용할 확률 테이블의 아이디인 문맥 정보(Context_id)를 도출하여 전달한다.
엔트로피 코딩부(1267)은 이전 과정을 모두 거친 활성화 데이터를 압축한다. 엔트로피 코딩은 무손실 압축 코딩으로 Run-Length Coding, Huffman Coding, Arithmetic Coding 등의 압축 방법이 사용될 수 있다.
마지막으로 삽입부(1268)는 압축된 비트스트림에 구분자(Start Code Prefix)를 삽입한다. 구분자에 의해 비트스트림을 레이어, 타일, 블록 등의 특정 단위로 구분할 수 있다.
도 5는 커널 데이터 디코더(122)의 개략적인 구조도이다.
커널 데이터 디코더(122)는 압축된 커널 데이터를 디코딩 하는데, 활성화 데이터 인코더(126)에 의해 압축된 활성화 데이터를 디코딩하는 활성화 데이터 디코더(124) 역시 동일한 구조를 가진다.
커널 데이터 디코더(122)는 엔트로피 디코딩부(1221), 문맥 모델링부(1222), 역양자화부(1223), 합성부(1224), 역변환부(1225), 역예측부(1226) 및 후처리부(1227)를 포함한다.
엔트로피 디코딩부(1221)는 비트스트림 파서(132)에서 구분자를 제거한 데이터를 전달받아 엔트로피 디코딩을 수행한다. 압축된 비트스트림을 압축을 풀어 커널데이터로 변환하는 것이다.
엔트로피 디코딩부(1221)는 문맥 모델링부(1222)의 문맥 정보(Context_id)를 이용하여 엔트로피 디코딩을 수행한다.
역양자화부(1223)는 인코더에서 정수 데이터로 양자화된 데이터를 다시 실수 데이터로 변환한다.
역양자화부(1223)를 거친 커널 데이터는 후처리부(1227)의 후처리 과정을 거쳐 복원되어 딥러닝 가속부에 의해 사용된다.
엔트로피 디코딩된 커널 데이터는 합성부(1224), 역변환부(1225) 또는 역예측부(1226)를 거칠 수 있다. 어떤 블록이 활성화 되는지는 비트스트림에 포함되어 있으므로 이 정보에 의해 각 블록의 활성화 여부를 결정할 수 있다.
합성부(1224), 역변환부(1225), 역예측부(1226)은 인코더의 분해부(1263), 변환부(1264), 예측부(1265)의 반대 과정을 수행한다. 즉, 합성부(1224)는 여러 개의 작원 차원 데이터로 분해된 데이터를 복원하고, 역변환부(1225)는 주파수 영역으로 변환된 데이터를 다시 시간 영역으로 복원하고, 예측부(1265)는 잔차 데이터에 의해 원 데이터를 복원하는 것이다.
이렇게 본 발명의 인코더/디코더를 이용하여 전체 데이터가 아닌 딥러닝 연산에 필요한 데이터만을 선택적으로 인코딩/디코딩 함으로써 딥러닝 네트워크 모델 데이터 전체를 전송하는데 소모되던 전력과 시간을 줄일 수 있다.
도 6은 본 발명에 따른 데이터 인코딩 방법의 개략적인 흐름도이다.
입력된 커널/활성화 데이터는 우선 양자화된다(S10). 실수인 데이터를 정수 데이터로 변환한다.
양자화 된 데이터는 예측(S20), 변환(S30) 또는 분해(S40)단계를 거칠 수 있다. 이 세 단계는 연산량에 따라 선택적으로 수행될 수 있다. 또한 양자화 단계(S10)와 순서가 바뀔 수도 있다.
양자회된 데이터는 데이터 예측이 수행될 수 있다(S20). 이전에 인코딩 된 데이터와의 상관관계를 이용하여 다음 데이터를 예측하는 것이다.
주파수 영역 변환은 DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), DFT (Discrete Fourier Transform)와 같은 변환을 사용하여 데이터를 블록 단위의 주파수 영역 데이터로 변환한다(S30).
데이터 분해는 저차원 분해(Low Rank Decomposition), CP 분해(Canonical Polyadic Decomposition) 등을 이용하여 데이터를 여러 개의 작은 차원 데이터로 분해한다(S40).
이렇게 처리된 커널 데이터를 이전에 인코딩 된 활성화 데이터와 비교하여 문맥(Context)을 파악하는 문맥 모델링(Context Modeling)을 수행한다(S50). 문맥 모델링에 의해 수행된 문맥 정보는 다음 단계로 전달된다.
양자화된 커널 데이터는 문맥 정보를 이용하여 엔트로피 코딩이 이루어진다(S60). Run-Length Coding, Huffman Coding, Arithmetic Coding 등의 압축 방법이 사용될 수 있다
마지막으로 압축된 비트스트림에 구분자(Start Code Prefix)를 삽입함으로써(S70) 데이터 인코딩이 마무리된다. 구분자는 압축 데이터를 레이어, 타일, 블록 단위로 구분하게 해준다.
도 7은 인코딩된 커널 데이터 또는 활성화 데이터를 디코딩하는 방법의 개략적인 흐름도이다.
압축된 커널 데이터 또는 활성화 데이터인 비트스트림이 입력되면 비트스트림 파싱이 이루어진다(S110). 비트스트림 파서는 구분자를 이용하여 필요한 데이터를 찾아내어 디코더에 공급한다.
압축된 데이터는 엔트로피 디코딩에 의해 압축이 복원된다(S120). Run-Length Coding, Huffman Coding, Arithmetic Coding 등의 압축 방법에 의해 압축된 데이터를 반대로 디코딩 하는 것이다.
엔트로피 디코딩 된 데이터와 이전에 이미 디코딩 된 데이터를 비교하여 문맥 모델링이 수행된다(S130). 문맥 모델링에 의해 문맥 정보가 도출되고, 이는 다시 엔트로피 디코딩 단계에서 이용된다.
데이터 합성(S140), 시간 영역 변환(S150), 데이터 역예측(S160) 단계는 선택적으로 이루어 질 수 있다. 각 블록의 활성화 여부인 코딩 파라미터는 압축된 데이터의 비트스트림에 포함되어 전달되므로, 이 정보에 의해 각 단계를 수행할 지 결정한다. 또한 데이터 합성(S140), 시간 영역 변환(S150), 데이터 역예측(S160) 단계는 역양자화 단계(S170) 이후에 위치할 수도 있다.
데이터 합성 단계는 여러 개의 작원 차원 데이터로 분해된 데이터를 복원한다(S140).
시간 영역 변환 단계는 주파수 영역의 데이터를 시간 영역의 데이터로 변환한다(S150). iDCT (Inverse Discrete Cosine Transform), iDST (Inverse Discrete Sine Transform), iDFT (Inverse Discrete Fourier Transform) 등의 역변환 방법이 사용될 수 있다.
데이터 역예측 단계는 인코딩 단계에서 예측한 데이터를 이용하여 데이터를 복원한다(S160).
마지막으로 역양자화(Inverse Quantization) 단계에서는 정수 데이터를 다시 실수 데이터로 변환함으로써 커널 데이터의 복원이 마무리된다(S170).
이러한 인코딩/디코딩 방법은 딥러닝 가속에서 필요한 단위의 데이터만을 인코딩/디코딩함으로써 부족한 온-칩 메모리에서도 성능저하 없이 딥러닝 네트워크 모델 데이터를 이용할 수 있으며, 전체 데이터 중 일부만을 외부 메모리에 저장하거나 불러옴으로써 데이터 전송에 소모되는 전력량을 효율적으로 감소시킬 수 있는 장점도 있다.
본 발명의 보호범위가 이상에서 명시적으로 설명한 실시예의 기재와 표현에 제한되는 것은 아니다. 또한, 본 발명이 속하는 기술분야에서 자명한 변경이나 치환으로 말미암아 본 발명이 보호범위가 제한될 수도 없음을 다시 한 번 첨언한다.
Claims (13)
- 커널 또는 활성화 데이터를 압축하여 비트스트림으로 생성하는 인코딩부; 및
상기 압축된 데이터를 레이어, 타일 및 블록 중 어느 하나의 단위로 구분하는 구분자를 상기 비트스트림에 삽입하여 출력하는 삽입부;를 포함하되,
상기 인코딩부는,
커널 또는 활성화 데이터를 양자화하는 양자화부;
상기 양자화된 커널 또는 활성화 데이터와 이전 커널 또는 활성화 데이터를 바탕으로 문맥 정보를 도출하는 문맥 모델링부;
상기 문맥 모델링부의 문맥 정보를 기반으로 상기 양자화부를 통해 양자화된 커널 또는 활성화 데이터를 압축하여 비트스트림으로 생성하는 엔트로피 코딩부; 및
상기 압축된 데이터를 레이어, 타일 및 블록 중 어느 하나의 단위로 구분하는 구분자를 상기 비트스트림에 삽입하여 출력하는 삽입부;를 포함하는 인코더.
- 제1항에 있어서 상기 엔트로피 코딩부는,
런-렝스 코딩(Run-Length Coding), 허프만 코딩(Huffman Coding) 또는 아리스메틱 코딩(Arithmetic Coding) 방법을 이용하는 것을 특징으로 하는 인코더.
- 제1항에 있어서,
상기 커널 또는 활성화 데이터를 미리 인코딩 된 커널 또는 활성화 데이터와의 상관성을 이용하여 예측하는 예측부;
상기 커널 또는 활성화 데이터를 시간 영역에서 주파수 영역으로 변환하는 변환부; 및
상기 커널 또는 활성화 데이터를 복수개의 작은 차원 데이터로 분해하는 분해부;를 더 포함하는 것을 특징으로 하는 인코더.
- 제3항에 있어서 상기 삽입부는,
인코딩 방식에 따라 상기 예측부, 변환부 및 분해부를 선택적으로 활성화하는 활성화 여부를 표시하는 플래그를 상기 비트스트림에 더 삽입하는 것을 특징으로 하는 인코더.
- 제3항에 있어서 상기 변환부는,
상기 커널 또는 활성화 데이터를 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform) 또는 DFT(Discrete Fourier Transform) 변환하는 것을 특징으로 하는 인코더.
- 제3항에 있어서 상기 분해부는 저차원 분해(Low Rank Decomposition) 또는 CP 분해(Canonical Polyadic Decomposition)를 이용하는 것을 특징으로 하는 인코더.
- 메모리;
비트스트림에 삽입된 레이어, 타일 및 블록 단위의 커널 또는 활성화 데이터 중 어느 하나의 단위를 구분하는 구분자를 이용하여 상기 비트스트림을 단위로 구분하는 파서; 및
상기 비트스트림 중 상기 파서에 의해 구분된 단위를 디코딩하여 상기 메모리에 저장하는 디코딩부;를 포함하는 디코더.
- 제7항에 있어서 상기 디코딩부는,
상기 구분된 단위의 커널 또는 활성화 데이터를 문맥 정보를 이용하여 엔트로피 디코딩하는 엔트로피 디코딩부;
상기 엔트로피 디코딩된 커널 또는 활성화 데이터와 이전 엔트로피 디코딩된 커널 또는 활성화 데이터를 바탕으로 문맥 정보를 도출하는 문맥 모델링부;를 및
상기 엔트로피 디코딩 된 커널 또는 활성화 데이터를 역양자화하는 역양자화부;를 포함하는 것을 특징으로 하는 디코더.
- 제8항에 있어서 상기 디코딩부는,
상기 엔트로피 디코딩 된 커널 또는 활성화 데이터를 이미 엔트로피 디코딩 된 커널 또는 활성화 데이터와의 상관성을 이용하여 역예측하는 역예측부;
상기 엔트로피 디코딩 된 커널 또는 활성화 데이터를 주파수 영역에서 시간 영역으로 역변환하는 역변환부; 및
상기 커널 또는 활성화 데이터를 복수개의 낮은 차원 데이터에서 보다 높은 차원의 데이터로 복원하는 역분해부;를 더 포함하는 디코더.
- 메모리;
비트스트림에 삽입된 레이어, 타일 및 블록 단위의 커널 또는 활성화 데이터 중 어느 하나의 단위를 구분하는 구분자를 이용하여 상기 비트스트림을 단위로 구분하는 파서;
상기 비트스트림 중 상기 파서에 의해 구분된 단위를 디코딩하여 상기 메모리에 저장하는 디코더; 및
상기 디코딩된 데이터를 이용하여 딥러닝 연산을 수행하는 가속부;를 포함하는 딥러닝 가속 장치.
- 커널 또는 활성화 데이터를 양자화 하는 단계;
상기 양자화된 커널 또는 활성화 데이터와 이전 커널 또는 활성화 데이터를 바탕으로 문맥 정보를 도출하는 단계;
상기 도출된 문맥 정보를 기반으로 상기 양자화된 커널 또는 활성화 데이터를 압축하여 비트스트림으로 생성하는 단계; 및
상기 압축된 커널 또는 활성화 데이터를 레이어, 타일 및 블록 중 어느 하나의 단위로 구분하는 구분자를 상기 비트스트림에 삽입하여 출력하는 단계;를 포함하는 인코딩 방법.
- 비트스트림에 삽입된 레이어, 타일 및 블록 단위의 커널 또는 활성화 데이터 중 어느 하나의 단위를 구분하는 구분자를 이용하여 상기 비트스트림을 단위로 구분하는 단계;
상기 구분된 단위의 커널 또는 활성화 데이터를 문맥 정보를 이용하여 엔트로피 디코딩하는 단계;
상기 엔트로피 디코딩된 커널 또는 활성화 데이터와 이전 엔트로피 디코딩된 커널 또는 활성화 데이터를 바탕으로 문맥 정보를 도출하는 단계; 및
상기 엔트로피 디코딩 된 커널 또는 활성화 데이터를 역양자화하는 단계;를 포함하는 디코딩 방법.
- 메모리;
레이어, 타일 및 블록 중 어느 하나의 단위로 구분된 커널 데이터 비트스트림을 상기 단위로 디코딩하고 상기 메모리에 저장하는 제1디코더;
활성화 데이터를 압축하고 레이어, 타일 및 블록 중 어느 하나의 단위로 구분하는 구분자를 삽입한 활성화 데이터 비트스트림을 생성하는 인코더;
상기 구분자를 이용하여 상기 활성화 데이터 비트스트림을 레이어, 타일 및 블록 중 어느 하나의 단위로 구분하는 파서;
상기 구분된 활성화 데이터 비트스트림을 상기 단위로 디코딩하여 상기 메모리에 저장하는 제2디코더; 및
상기 메모리에 저장된 커널 또는 활성화 디코딩 데이터를 이용하여 딥러닝 연산을 수행하는 가속부를 포함하는 프로세서.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200108298A KR102654690B1 (ko) | 2020-08-27 | 2020-08-27 | 딥러닝 가속 장치 및 그 방법 |
PCT/KR2020/011528 WO2022045401A1 (ko) | 2020-08-27 | 2020-08-28 | 딥러닝 비트스트림 인코더, 디코더 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200108298A KR102654690B1 (ko) | 2020-08-27 | 2020-08-27 | 딥러닝 가속 장치 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220027434A true KR20220027434A (ko) | 2022-03-08 |
KR102654690B1 KR102654690B1 (ko) | 2024-04-04 |
Family
ID=80812448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200108298A KR102654690B1 (ko) | 2020-08-27 | 2020-08-27 | 딥러닝 가속 장치 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102654690B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024135862A1 (ko) * | 2022-12-19 | 2024-06-27 | 한국전자기술연구원 | 비정형 데이터 처리를 지원하는 데이터 처리 및 가공 장치 |
US12073312B2 (en) | 2022-03-15 | 2024-08-27 | Rebellions Inc. | Neural processing device and method for controlling the same |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200050433A (ko) * | 2018-11-01 | 2020-05-11 | 한국전자통신연구원 | 신경망을 사용하여 영상에 대한 처리를 수행하는 방법 및 장치 |
KR20200052201A (ko) * | 2018-11-05 | 2020-05-14 | 삼성전자주식회사 | 뉴럴 네트워크 활성화 맵의 손실 압축 |
KR20200052200A (ko) * | 2018-11-05 | 2020-05-14 | 삼성전자주식회사 | 뉴럴 네트워크 가중치들의 압축을 위한 방법 및 시스템 |
-
2020
- 2020-08-27 KR KR1020200108298A patent/KR102654690B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200050433A (ko) * | 2018-11-01 | 2020-05-11 | 한국전자통신연구원 | 신경망을 사용하여 영상에 대한 처리를 수행하는 방법 및 장치 |
KR20200052201A (ko) * | 2018-11-05 | 2020-05-14 | 삼성전자주식회사 | 뉴럴 네트워크 활성화 맵의 손실 압축 |
KR20200052200A (ko) * | 2018-11-05 | 2020-05-14 | 삼성전자주식회사 | 뉴럴 네트워크 가중치들의 압축을 위한 방법 및 시스템 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12073312B2 (en) | 2022-03-15 | 2024-08-27 | Rebellions Inc. | Neural processing device and method for controlling the same |
WO2024135862A1 (ko) * | 2022-12-19 | 2024-06-27 | 한국전자기술연구원 | 비정형 데이터 처리를 지원하는 데이터 처리 및 가공 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR102654690B1 (ko) | 2024-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2610721C (en) | Method and apparatus for adaptive tranforms for compressing data streams | |
US11588499B2 (en) | Lossless compression of neural network weights | |
CN101562749B (zh) | 具有集成的有损压缩和无损压缩的视频数据压缩方法和装置 | |
US10516414B2 (en) | Method and device for arithmetic encoding or arithmetic decoding | |
Sonal | A study of various image compression techniques | |
KR102654690B1 (ko) | 딥러닝 가속 장치 및 그 방법 | |
Al-Khafaji | Image compression based on quadtree and polynomial | |
US9948928B2 (en) | Method and apparatus for encoding an image | |
Hadi | Medical Image Compression using DCT and DWT Techniques | |
Lu et al. | Image Compression Based on Mean Value Predictive Vector Quantization. | |
Al-Azawi et al. | Compression of Audio Using Transform Coding. | |
CN111225205B (zh) | 用于执行区块内预测的方法和装置 | |
CN111225207B (zh) | 用于对变换系数进行编码的方法和装置 | |
CN111294055B (zh) | 一种基于自适应字典的数据压缩的编解码方法 | |
Tilki et al. | Image data compression using multiple bases representation | |
Abed et al. | Gray-Scale Image Compression Method Based on a Pixel-Based Adaptive Technique | |
Hasan et al. | Discrete Cosine Transform Based Image Compression in Visual Sensor Networks | |
Ryan et al. | Real-time lossless image compression in a hardware environment | |
KR970014385A (ko) | 적응 양자화를 이용한 부호화기 | |
FRÝZA et al. | Image Compression Algorithms Optimized for MATLAB | |
Anitha | An Overview of Image Compression. | |
Ramachandra | Information Compression | |
KR970050841A (ko) | 양자화 스텝 사이즈 결정 장치 | |
KR19990027639A (ko) | 피엘에이(pla)를 갖는 마이크로프로세서 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |