KR20210092302A - 로시 복원을 통한 로시 중요성 압축 - Google Patents

로시 복원을 통한 로시 중요성 압축 Download PDF

Info

Publication number
KR20210092302A
KR20210092302A KR1020217019697A KR20217019697A KR20210092302A KR 20210092302 A KR20210092302 A KR 20210092302A KR 1020217019697 A KR1020217019697 A KR 1020217019697A KR 20217019697 A KR20217019697 A KR 20217019697A KR 20210092302 A KR20210092302 A KR 20210092302A
Authority
KR
South Korea
Prior art keywords
data
bits
truncated
compressed
memory
Prior art date
Application number
KR1020217019697A
Other languages
English (en)
Inventor
가브리엘 에이치. 로
Original Assignee
어드밴스드 마이크로 디바이시즈, 인코포레이티드
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 어드밴스드 마이크로 디바이시즈, 인코포레이티드 filed Critical 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20210092302A publication Critical patent/KR20210092302A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6029Pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Multimedia (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

데이터의 로시 압축 및 복원을 위한 시스템 및 방법이 설명된다. 원시 데이터가 먼저 절단된다. 그런 다음 절단된 데이터가 압축된다. 압축된 절단된 데이터는 더 적은 비트를 사용하여 효율적으로 저장 및/또는 전송될 수 있다. 데이터를 복원하기 위해, 압축된 데이터가 압축해제되고 복원 비트가 연결된다. 복원 비트는 절단으로 인한 통계적 바이어싱을 보상하기 위해 선택된다.

Description

로시 복원을 통한 로시 중요성 압축
관련 출원에 대한 상호 참조
본 출원은 2018년 12월 14일에 출원된 미국 정규 특허 출원 번호 제16/220,540호의 이익을 주장하며, 그 내용은 본원에 참조로 포함된다.
컴퓨터 메모리, 캐시 및 링크는 저장된 정보를 정확하게 재현하기 위해 로스레스(lossless)로 설계된다. 그러나 기계 학습과 같은 일부 어플리케이션에서는 정확한 값이 필요하지 않다. 실제로, 이러한 많은 상황에서 정확한 값을 사용하면 추가적인 이점없이 기계 학습 시스템의 성능이 저하된다.
첨부된 도면과 함께 예시로서 주어진 다음 설명으로부터 보다 상세한 이해를 얻을 수 있으며, 여기서:
도 1은 하나 이상의 개시된 구현들이 구현될 수 있는 예시적인 디바이스의 블록도이고;
도 2a는 일 예에 따른 압축 유닛(compression unit)의 블록도이고;
도 2b는 일 예에 따른 복원 유닛(restoration unit)의 블록도이고;
도 2c는 데이터를 압축하는 기술의 예시적인 흐름도이고;
도 2d는 압축된 데이터를 복원하기 위한 기술의 예시적인 흐름도이고;
도 3은 사전-기반(dictionary-based) FVC(frequent value compression)만을 사용하여 구현되는 데이터 압축의 예이고;
도 4는 특정 구현들에 따른 데이터 압축 및 복원의 예이고;
도 5a는 평가를 위해 복원 유닛을 이용하는 기계 학습 시스템의 블록도이고;
도 5b는 훈련을 위해 압축 유닛 및 복원 유닛을 이용하는 기계 학습 시스템의 블록도이고;
도 6a는 평가를 수행하기 위한 기계 학습 기술의 예시적인 흐름도이고; 그리고
도 6b는 훈련을 수행하기 위한 기계 학습 기술의 예시적인 흐름도이다.
본 개시는 데이터의 로시(lossy) 압축 및 복원을 위한 기술에 관한 것이다. 이 기술에 따르면 원시 데이터가 절단된다. 그런 다음 절단된 데이터가 압축된다. 압축된 절단된 데이터는 더 적은 비트를 사용하여 효율적으로 저장 및 전송될 수 있다. 데이터를 복원하기 위해 압축된 데이터의 압축이 해제된다. 그런 다음 복원 비트가 압축해제된 데이터에 추가된다. 일부 구현에서, 복원 비트는 절단에 의해 도입된 통계적 바이어싱을 보상하기 위해 선택된다.
개시된 데이터의 로시 압축 및 복원을 위한 시스템 및 방법은 중앙 처리 디바이스(CPU), 그래픽 처리 디바이스(GPU), 가속 처리 디바이스(APU), FPGA(Field Programmable Gate Arrays) 또는 메모리, 캐시 및 상호 연결을 사용하는 기타 처리 디바이스에 적용될 수 있다. 일부 예에서, 데이터 로시 압축 및 복원 기술은 메모리 압축, 캐시 압축, 레지스터 파일 압축, 링크 압축 및 데이터 전송 및 저장의 다른 인스턴스에 사용될 수 있다.
많은 기계 학습 시스템에서, 워크로드는 메모리에 의해 병목 현상이 발생한다. 특히, 많은 기계 학습 워크로드는 인공 신경망을 사용하여 하나 이상의 입력 값들을 기반으로 하나 이상의 예측 점수들을 생성하는 것과 관련된다. 인공 신경망을 통한 처리에는 조정 가능한 가중치를 기반으로 바이어싱된 각 뉴런에 대한 입력과 함께 각 뉴런에 대한 전달 함수 계산이 포함된다. 대규모 신경망 시스템에서는, 많은 수의 뉴런, 따라서 가중치로 인해 처리 디바이스와 메모리간에 많은 양의 데이터가 전송된다. 구체적으로, 예측을 생성하는 과정에서 많은 수의 뉴런 가중치가 메모리와 처리 디바이스간에 전송될 수 있다. 이 사실로 인해 메모리 대역폭이 그러한 예측이 생성되는 속도에 병목이 될 수 있다.
효과적인 압축 기술을 사용하여 처리 디바이스와 메모리 간에 전송되는 데이터의 양을 줄일 수 있다. 이 기술은 뉴런 가중치가 종종 "만족스러운" 정밀도를 갖는다는 사실을 활용한다. 이 정밀도 보다 더 정확한 값은 예측 모델에 추가 정확도를 거의 또는 전혀 제공하지 않는다. 따라서 이 기술에는 가중치 값을 특정 정밀도로 절단한 다음 결과를 압축하는 것이 포함된다. 압축에 유리한 기술은 빈번한 값 압축 기술이다. 이 기술에서는 데이터세트의 동일한 값들이 사전의 키 값들로 대체된다. 가중치 값을 특정 정밀도로 절단하면 가중치 값들의 더 중요한 비트를 기반으로 사전을 구성할 수 있으며, 이는 따라서 특정 가중치 값이 실제로 사전 값으로 대체될 가능성이 높아진다. 가중치 값의 복원에는 압축된 값의 압축을 해제한 다음 최하위 비트의 복원 비트로 압축해제된 값을 복원하는 것이 포함된다. 사용되는 특정 복원 비트는 고정 비트(예를 들어, 값 0), 랜덤 비트일 수 있으며, 기술적으로 가능한 기술에 따라 선택될 수 있다. 랜덤 비트는 랜덤 비트가 고정 비트로 도입될 수 있는 특정 값에 대한 바이어싱을 감소시킨다는 이점을 제공한다. 고정 비트는 구현 용이성의 이점을 제공한다. 추가 세부 사항이 아래에 제공된다.
도 1은 본 개시의 하나 이상의 양태들이 구현되는 예시적인 디바이스(100)의 블록도이다. 디바이스(100)는, 예를 들어, 컴퓨터(서버, 데스크톱 또는 랩톱 컴퓨터와 같은), 게임 디바이스, 핸드 헬드 디바이스, 셋톱 박스, 텔레비전, 휴대폰 또는 태블릿 컴퓨터를 포함한다. 디바이스(100)는 프로세서(102), 메모리(104), 저장 디바이스(106), 하나 이상의 입력 디바이스들(108) 및 하나 이상의 출력 디바이스들(110)을 포함한다. 디바이스(100)는 선택적으로 입력 드라이버(112) 및 출력 드라이버(114)를 포함한다. 디바이스(100)는 선택적으로 도 1에 도시되지 않은 추가 구성 요소를 포함하는 것으로 이해된다.
프로세서(102)는 다음 중 하나 이상을 포함한다: 중앙 처리 디바이스(CPU), 그래픽 처리 디바이스(GPU), 동일한 다이(die)에 위치한 CPU 및 GPU, 또는 각 프로세서 코어가 CPU 또는 GPU인 하나 이상의 프로세서 코어들. 메모리(104)는 프로세서(102)와 동일한 다이 상에 또는 프로세서(102)와 별개로 위치된다. 메모리(104)는 휘발성 또는 비 휘발성 메모리, 예를 들어 랜덤 액세스 메모리(RAM), 동적 RAM 또는 캐시를 포함한다.
저장 디바이스(106)는 고정 또는 이동식 저장 디바이스, 예를 들어 하드 디스크 드라이브, 솔리드 스테이트 드라이브, 광 디스크 또는 플래시 드라이브를 포함한다. 입력 디바이스(108)는 카메라, 키보드, 키패드, 터치 스크린, 터치 패드, 검출기, 마이크로폰, 가속도계, 자이로스코프 또는 생체인식 스캐너 중 하나 이상을 포함한다. 출력 디바이스(110)는 디스플레이, 스피커, 프린터, 햅틱 피드백 디바이스, 하나 이상의 조명들 또는 안테나 중 하나 이상을 포함한다.
입력 드라이버(112)는 프로세서(102) 및 입력 디바이스들(108)과 통신하고 프로세서(102)가 입력 디바이스들(108)로부터 입력을 수신하도록 허용한다. 출력 드라이버(114)는 프로세서(102) 및 출력 디바이스들(110)과 통신하고 프로세서(102)가 출력 디바이스들(110)로 출력을 전송하도록 허용한다.
압축 유닛(105) 및 복원 유닛(103)은 여러 다른 형태들로 도시된다. 압축 유닛(105)은 데이터를 수신하고 압축된 데이터를 출력한다. 복원 유닛(103)은 압축된 데이터를 수신하고 복원된 데이터를 출력한다. 제1 형태에서, 압축 유닛(105) 및 복원 유닛(103)은 도시된 바와 같이 메모리(104)에 저장되고 프로세서(102)에서 실행되는 소프트웨어이다. 이러한 형태에서, 실행되지 않을 때, 압축 유닛(105) 및/또는 복원 유닛(103)은 저장소(106)에 저장될 수 있다. 제2 형태에서, 압축 유닛(105) 및 복원 유닛(103)은 출력 드라이버들(114)에 상주하는 하드웨어 엔진의 적어도 일부이다. 다른 형태에서, 압축 유닛(105) 및 복원 유닛(103)은 소프트웨어 및 하드웨어 요소들의 조합이며, 하드웨어는 예를 들어 출력 드라이버들(114)에 상주하고 소프트웨어는 예를 들어 프로세서(102)에서 실행된다. 압축 유닛(105)은 압축된 데이터를 메모리(104)와 같은 메모리, 또는 압축 유닛(105)의 하드웨어 구현에 저장되거나 이와 연관된 버퍼와 같은 임의의 다른 메모리, 또는 임의의 다른 메모리에 저장한다. 유사하게, 복원 유닛(103)은 메모리로부터 압축 된 데이터를 검색하고, 데이터를 복원된 상태로 복원하고, 복원 된 데이터를 디바이스(100) 내의 다른 구성 요소들에 제공한다. 압축 유닛(105) 및 복원 유닛(103)이 특정 예시적인 구현 모드에서 설명되지만, 압축 및 복원의 원리는 그러한 압축 및/또는 복원이 의미가 있는 모든 상황에서 사용될 수 있음을 이해해야 한다. 또한, 임의의 특정 구현에서, 본원에 설명된 압축, 복원, 또는 압축 및 복원 모두가 구현될 수 있다.
일부 경우에, 프로세서(102)는 압축 유닛(105) 및/또는 복원 유닛(103)을 사용하여 데이터를 로딩하고 저장하기 위한 명령어들의 세트를 구현한다. 프로세서(102)가 로시 방식으로 저장될 데이터와 함께 로시 스토어(lossy store)를 압축 유닛(105)으로 전송하면, 압축 유닛(105)은 데이터를 자르고(truncating) 압축하기 위해 본원에 설명된 기술을 수행하고, 자르고 압축된 데이터는 저장을 위해 출력된다. 프로세서(102)가 로시 방식으로 로딩될 압축 데이터를 지정하는 로시 로드 명령어를 복원 유닛(103)에 전송하면, 복원 유닛(103)은 압축된 데이터를 불러오고, 압축해제(decompression) 및 복원 기술을 수행하고, 사용을 위해 압축해제된, 복원된 데이터를 프로세서(102)에 다시 제공한다.
또 다른 예에서, 압축 및 압축해제는 캐시 압축에 대해 사용된다. 이 예에서, 프로세서(102)가 로시 로드 명령어(하나 이상의 레지스터들을 목표로 함)를 실행할 때, 압축 유닛(105)은 캐시 라인을 불러오고(예를 들어, 백업 메모리로부터), 절단하고 및 압축하고 압축된 캐시 라인을 캐시에 저장한다. 그 다음 캐시는 처리를 위해 요청된 데이터의 압축된 버전을 프로세서(102)로 전송한다. 프로세서는 그의 레지스터들에 배치되기 전에 데이터를 복원하는 복원 유닛(103)을 포함한다. 프로세서가 로시 스토어 명령어를 실행하면, 레지스터들의 값은 압축 유닛(105)에 의해 재압축되고, 이러한 압축된 값들은 캐시에 저장된다. 캐시 라이트백(cache writeback)이 발생할 때, 복원 유닛(103)은 데이터를 복원하고 그 데이터를 배킹 메모리(backing memory)에 배치한다.
다른 경우에, 로시 로드 명령어를 수신하면, 캐시는 캐시로부터 데이터를 판독하고 압축 유닛(105)으로 이를 압축하고 압축된 데이터를 프로세서(102)로 다시 전달한다. 그 다음, 프로세서(102)는 복원 유닛(103)을 이용하여 압축해제된 데이터를 복원한다.
프로세서(102)가 이러한 명령어를 구현할 수 있다고 언급되었지만, 본 개시에서 설명되고 설명되지 않은 것을 포함하는 임의의 처리 유닛은 이들 명령어들 중 하나 또는 둘 모두를 구현하고 실행할 수 있다. 또한, 다른 구현들에서 압축된 데이터는 캐시에서만, 백업 메모리에서만 또는 캐시와 배킹 메모리의 조합으로 사용될 수 있다. 캐시에 압축된 데이터를 저장하고 사용하기 위한 위에서 설명한 기술은 예시일 뿐이며, 압축 유닛(105) 및 복원 유닛(103)은 캐시 또는 배킹 메모리의 프로세서 및 저장소에 의해 사용하기 위해 데이터를 압축 및 복원하기 위해 임의의 기술적으로 가능한 방식으로 사용될 수 있다는 것을 이해해야 한다.
도 2a는 예시적인 압축 유닛(105)의 블록도이다. 압축 유닛(105)은 압축 엔진(204)에 결합된 절단 유닛(truncation unit)(202)을 포함한다. 일부 예에서, 절단 유닛(202) 및 압축 엔진(204)은 고정 기능 회로로서 구현된다. 다른 경우에, 절단 유닛(202) 및 압축 엔진(204)은 프로세서에서 실행되는 소프트웨어 또는 펌웨어로서 구현된다. 또 다른 예에서, 절단 유닛(202) 및 압축 엔진(204)은 고정 기능 회로 및 소프트웨어의 조합으로 구현된다.
원시 데이터(405)는 절단 유닛(202)에 의해 수신된다. 일부 경우에, 원시 데이터(405)는 메모리(104), 저장 디바이스(106), 입력 드라이버(112) 또는 캐시 라인으로부터 검색된다. 절단 유닛(202)은 원시 데이터(405)에서 각각의 고정된 크기의 데이터 조각(예를 들어, 워드)의 비트를 절단함으로써 절단된 데이터(410)를 형성한다. 일부 구현들에서, 각각의 고정된 크기의 데이터 조각은 압축 유닛(105)이 포함된 컴퓨터 시스템의 워드와 동일한 크기이다. 예시들에서, 이 크기는 32 비트이다. 다른 예시들에서, 압축 유닛(105)에 의해 처리된 고정된 크기의 데이터 조각들은 압축 유닛(105)이 포함된 컴퓨터 시스템의 워드로서의 크기와 다른 크기이다. 고정된 크기의 데이터 조각에 대해 기술적으로 가능한 모든 크기를 사용할 수 있다.
절단 유닛(202)에 의해 절단되는 비트 수는 파라미터 k에 의해 설정된다. 일부 경우에, 파라미터 k는 소프트웨어-정의 인수(argument)이다. 소프트웨어를 통해 정의된다면, 이는 메모리(104)의 일부에 저장될 수 있다. 대안적으로, 파라미터는 프로세서(102) 또는 출력 드라이버(114)로부터의 명령어(예를 들어, 로시 저장 명령어)(레지스터 인수를 통해 또는 즉시 값으로서)에 대한 인수로서 절단 유닛(202)에 전달될 수 있다.
일 구현에서, 압축 유닛(105)이 기계 학습 시스템(500B)과 같은 기계 학습 시스템에서 사용될 때, 기계 학습 시스템은 훈련 프로세스가 신경망 모델(neural network model)을 최종 상태에 더 가깝게 가져옴에 따라 점차적으로 감소하는 k 값을 압축 유닛(102)에 전달할 수 있다. 알고리즘 정밀도를 위해 압축 밀도를 점진적으로 트레이드오프(tradeoff)하기 위해 k 값을 점진적으로 줄임으로써, 높은 정밀도가 필요하지 않은 교육 초기 단계의 처리 속도를 높일 수 있다. 나중에 - 예를 들어 특정, 횟수의 훈련 반복 후, 예측 모델의 정밀도를 개선하기 위해 파라미터 k를 줄일 수 있다. 다른 경우에, 파라미터 k는 컨버전스 기준(convergence criteria) 또는 기계 학습 알고리즘과 관련된 기타 동적 메트릭에 따라 수정된다.
다른 예들에서, 파라미터 k는 디바이스(100)의 이용 가능한 리소스에 기초하여 결정된다. 다른 경우에, k는 고정된 수이다. 또 다른 경우에, 파라미터 k는 이전에 압축된 데이터를 기초로 동적으로 결정된다. 예를 들어, k의 초기 값은 데이터를 압축하는 데 사용될 수 있다. 그런 다음 압축된 데이터를 분석하여 더 큰 k 값의 효과를 결정한다. 효과가 미리 결정된 임계 값 미만이면, 상기 더 큰 k 값이 압축 유닛(105)에 의해 사용된다.
절단된 데이터(410)는 압축 엔진(204)에 의해 수신된다. 압축 엔진(204)은 압축된 데이터(415)를 형성하기 위해 절단된 데이터(410)에 대해 압축 알고리즘을 실행한다. 경우에 따라, 압축 알고리즘은 사전 기반(dictionary-based) FVC(frequent value compression)를 사용한다. 다른 경우에는, 실행-길이(run-length) 압축, 허프만(Huffman)-기반 압축 또는 베이스-델타(base-delta) 압축이 사용될 수 있다. 대안적 구현에서, 임의의 기술적으로 실행 가능한 압축 알고리즘 또는 알고리즘들의 조합이 사용될 수 있다. 압축된 데이터(415)는 디바이스(100) 내의 다른 구성 요소로 출력된다.
도 2b는 예시적인 복원 유닛(103)의 블록도이다. 복원 유닛(103)은 복원 유닛(208)에 결합된 압축해제 유닛(206)을 포함한다. 일부 경우에, 압축해제 유닛(206) 및 복원 유닛(208)은 고정 기능 회로로서 구현된다. 다른 경우에, 압축해제 유닛(206) 및 복원 유닛(208)은 소프트웨어 또는 펌웨어를 실행하는 프로세서에 의해 구현된다. 또 다른 예에서, 압축해제 유닛(206) 및 복원 유닛(208)은 고정 기능 회로 및 프로세서 구현 소프트웨어의 조합으로 구현된다.
압축된 데이터(415)는 압축해제 유닛(206)에 의해 수신된다. 일부 예에서, 압축된 데이터(415)는 메모리(104), 저장 디바이스(106), 입력 드라이버(112) 또는 캐시 라인으로부터 검색된다. 압축해제 엔진(206)은 압축해제된 절단된 데이터(420)를 형성하기 위해 압축된 데이터(415)에 대해 압축해제 알고리즘을 실행한다. 수행되는 압축해제 유형은 압축 유닛(105)에 의해 사용되는 압축 유형에 기초하여 결정된다. 예를 들어, FVC 압축이 사용될 때, 압축해제된 절단된 데이터는 사전(435)을 기반으로 형성된다.
압축해제된 절단된 데이터(420)는 복원 유닛(208)에 의해 수신된다. 복원 유닛(208)은 복원 비트(425)를 선택한다. 복원 유닛(208)은 복원된 데이터(430)를 형성하기 위해 복원 비트(425)를 압축해제 된 절단된 데이터(420)에 연결한다(concatenate). 복원된 데이터(430)는 디바이스(100) 내의 다른 구성 요소로 출력된다.
복원 비트(425)의 수는 파라미터 k와 동일하다. 일부 예에서, 절단된 데이터(420)는 모두 0과 같은 고정 값인 복원 비트(425)를 선택한다. 그러나, 모두 0과 같은 고정 값을 사용하면 데이터를 음의 무한대로 라운딩(rounding)하여 데이터를 바이어싱(biasing)한다. "FF"와 같이 더 높은 값은 데이터를 양의 무한대로 라운딩한다. 두 경우 모두, 값의 시프트는 고정 기법에 의해 도입된다. 랜덤 값을 도입하면 이러한 바이어싱을 완화하는 데 도움이 된다.
그 결과, 다른 경우에, 복원 유닛(208)은 확률적(stochastic) 복원 프로세스를 사용하여 복원 비트(425)를 선택한다. 확률적 복원에서, 통계 기술은 복원 비트(425)를 선택하는 데 사용된다.
일 예에서, 확률적 복원 프로세스는 의사-랜덤(pseudo-random) 수 생성기를 사용하여 복원 비트(425)를 생성한다. 다른 구현에서, 복원 유닛(208)은 확률 분포로부터 값을 샘플링함으로써 확률적 복원 프로세스를 구현한다. 어떤 경우에는, 확률 분포가 파라메트릭(parametric)이다. 사용할 수 있는 파라메트릭 확률 분포의 예시는 포아송 분포(Poisson Distribution이다. 이러한 경우에, 복원 유닛(208)은 메모리로부터 파라미터를 검색하거나 이전에 복원된 데이터에 기초하여 값을 동적으로 결정함으로써 파라메트릭 분포의 파라미터를 결정한다. 다른 경우에, 복원 유닛(208)은 비-파라메트릭 확률 분포를 이용한다. 일부 예에서, 비-파라메트릭 분포는 복원 유닛(208)에 의해 미리 정의되고 메모리로부터 검색된다. 다른 예들에서, 비-파라메트릭 분포는 이전에 복원된 데이터에 기초하여 복원 유닛(208)에 의해 동적으로 결정된다. 예를 들어, 이전에 복원된 데이터를 사용하여 마르코브(Markov) 체인과 베이지안(Bayesian) 네트워크가 형성될 수 있다.
일부 경우에, 복원 유닛(208)은 확률적 복원 프로세스를 선택적으로 수행한다. 예를 들어, 0 값에 대해 확률적 복원을 수행하는 것은 바람직하지 않을 수 있다. 따라서, 이 경우 복원 유닛(208)은 확률적 복원 프로세스를 수행하지 않고 대신 모두 0인 복원 비트를 선택한다. 보다 구체적으로, 일부 구현에서, 압축되지 않은 값은 0이고, 따라서 절단된 값도 0이다. 이 값이 발견되면, 이러한 상황에서 확률적으로 복원 비트(425)를 선택하는 대신, 복원 유닛(208)은 결과가 0 값이 되도록 복원 비트(425)에 대해 0 값을 선택한다. 이렇게 하는 이유는 원래 데이터가 0이면 데이터를 0이 아닌 값으로 복원하는 것이 적절하지 않을 수 있기 때문이며, 이는 랜덤 비트가 최하위(lowest-order) 위치로 복원되면 발생한다.
도 2c는 압축 유닛(105)에 의해 구현되는 프로세스(200C)의 흐름도이다. 단계(211)에서 원시 데이터(405)가 수신된다. 일부 예에서, 원시 데이터(405)는 메모리(104), 저장 디바이스(106) 또는 입력 드라이버(112)로부터 검색된다.
선택적으로 단계(212)에서, 절단할 k 비트의 수가 결정된다. 일부 경우에, 파라미터 k는 소프트웨어 정의 인수이다. k가 소프트웨어 정의된 경우, 값은 메모리(104)로부터 검색되거나 프로세서(102) 또는 출력 드라이버(114)로부터의 인수를 통해 절단 유닛(202)으로 전달된다. 다른 경우에 k는 고정된 수이다.
또 다른 예에서, 파라미터 k는 이전에 압축된 데이터를 기초로 동적으로 결정된다. 예를 들어, k의 초기 값은 데이터를 압축하는 데 사용될 수 있다. 그런 다음 압축된 데이터를 분석하여 더 큰 k 값의 효과를 결정한다. 효과가 미리 결정된 임계 값 미만이면, 상기 k의 더 큰 값이 단계(212)의 출력으로 결정된다.
그 다음, 단계(213)에서, 원시 데이터(405)는 절단된 데이터(410)를 형성하기 위해 절단된다. 원시 데이터(405)는 원시 데이터(405)에서 각각의 고정된 크기의 데이터 조각(예를 들어, 워드)의 k 비트를 절단함으로써 절단된다. 일부 구현에서, 각각의 고정된 크기의 데이터 조각은 압축 유닛(105)이 포함된 컴퓨터 시스템에서 워드의 동일한 크기이다. 예에서, 이 크기는 32 비트이다. 다른 예들에서, 압축 유닛(105)에 의해 처리되는 고정된 크기의 데이터 조각은 압축 유닛(105)이 포함된 컴퓨터 시스템의 워드 크기와 다른 크기이다. 고정된 크기의 데이터 조각에 대해 기술적으로 가능한 모든 크기가 사용될 수 있다.
다음으로, 단계(214)에서 절단된 데이터(410)가 압축되어 압축된 데이터(415)를 형성한다. 많은 경우에, 단계(214)는 압축 엔진(204)에 의해 수행된다. 일부 예에서, 단계(214)에서의 압축은 사전-기반 FVC(frequent value compression)를 사용하여 수행된다. 대안적인 구현에서, 기술적으로 가능한 압축 알고리즘이 사용될 수 있다.
이러한 압축 알고리즘은 데이터 블록을 분석하고 더 효율적으로 다시 인코딩될 수 있는 반복되는 값을 찾는 방식으로 작동한다. 절단된 데이터(410)에 압축을 구현함으로써, 압축 알고리즘은 비슷한 값을 갖지만 정확히 같은 값이 아닌 데이터에서 공간적으로 로컬 값들의 패턴들을 찾을 수 있다. 전통적으로, 압축 알고리즘들은 값들이 비슷하지만 정확히 동일하지는 않기 때문에(또는 정확한 압축 알고리즘에 따라 충분히 동일) 이러한 패턴들로 어려움을 겪는다. 따라서 압축 알고리즘은 덜 효과적이다.
그 다음 단계(215)에서 압축된 데이터(415)가 전송된다. 일부 예에서, 압축된 데이터(415)는 메모리(104), 저장 디바이스(106) 또는 출력 드라이버(114)로 전송된다.
도 2d는 복원 프로세스(200D)의 흐름도이다. 단계(221)에서, 프로세스(200C)에 의해 생성된 압축 데이터(415)가 수신된다. 일부 예에서, 압축된 데이터(415)는 메모리(104), 저장 디바이스(106) 또는 입력 드라이버(112)로부터 검색된다.
단계(222)에서, 압축된 데이터(415)는 압축해제된 절단된 데이터(420)를 형성하기 위해 압축해제된다. 수행되는 압축해제의 유형은 단계(214)에서 사용된 압축 유형에 기초하여 결정된다. 예를 들어, FVC 압축이 사용될 때, 압축해제된 절단된 데이터는 사전(435)을 기반으로 형성된다.
다음 단계(223)에서, 복원 비트(425)는 복원된 데이터(430)를 형성하기 위해 압축해제된 절단된 데이터에 연결된다. 복원 비트(425)의 수는 파라미터 k와 동일하다. 일부 경우에, 복원 비트(425)는 모두 0이다. 다른 경우에는, 확률적 복원 프로세스가 복원 비트를 결정하는 데 사용된다. 확률적 복원에서 통계 기법은 복원 비트(425)를 선택하는 데 사용된다.
일부 구현에서, 확률적 복원 프로세스는 의사-랜덤 수 생성기를 사용한다. 다른 구현에서, 확률적 복원 프로세스는 확률 분포로부터 값을 샘플링하는 것을 포함한다. 어떤 경우에는 확률 분포가 파라메트릭이다. 예를 들어, 분포는 포아송 분포이다. 이러한 경우에, 파라메트릭 분포의 파라미터는 미리 결정되거나 이전에 복원된 데이터에 기초하여 동적으로 결정될 수 있다. 다른 경우에, 확률 분포는 비-파라메트릭일 수 있다. 어떤 경우에는, 비-파라메트릭 분포가 미리 정의 될 수 있으며, 다른 경우에는, 이전에 복원된 데이터를 기초로 비-파라메트릭 분포가 동적으로 결정된다. 예를 들어, 이전에 복원된 데이터를 사용하여 마르코브(Markov) 체인과 베이지안 네트워크가 형성될 수 있다. 확률적 복원 프로세스를 구현함으로써 단계(320)에서 절단에 의해 도입된 통계적 바이어싱이 감소된다.
그 다음, 단계(224)에서, 복원된 데이터(430)가 전송된다. 일부 경우에, 복원된 데이터(430)는 프로세서(102), 메모리(104), 저장 디바이스(106) 또는 출력 드라이버(114)로 전송된다.
도 3은 FVC가 단독으로 사용되는 예를 도시한다.
FVC에서는, 데이터의 패턴이 식별되어 사전(예를 들어, 사전(435))에 저장된다. 전체 데이터 패턴이 메모리에 저장되는 대신, 사전 엔트리에 대한 인덱스가 메모리에 저장된다. 보다 구체적으로, FVC 알고리즘은 일반적으로 발생하는 패턴을 식별하고 해당 패턴에 대한 키(key)를 생성한다. 각 키에 대한 각 패턴의 관계는 사전에 저장된다. 패턴에 대한 키만을 메모리에 저장하면, 더 적은 메모리 비트가 필요하다. 압축해제를 위해, 메모리로부터 데이터가 검색되고 사전에 저장된 패턴이 사전 키를 사용하여 복원된다. 이 복원은 압축된 데이터의 각 키에 대해 수행되므로 복원된 데이터에서 키가 사전 값으로 대체되어 데이터가 압축되지 않은 형식으로 복원된다.
도 3에 도시된 FVC의 예시에서, 원시 데이터(305)는 8 개의 32 비트 워드들을 포함하는 256 비트로 구성된다. 이 예에서, 단어가 압축될 수 있으면(즉, 32 비트 워드와 일치하는 사전 값이 있는 경우) 각각의 원래 32 비트 워드들이 2 비트 코드(310)로 대체된다. 워드들의 값들이 충분히 드물게(infrequently) 사용되어 사전이 이들 값들을 포함해도 저장된 전체 데이터가 손실되지 않는 경우 워드가 압축해제될 수 있다. 2 비트 코드(310)는 값이 압축되지 않았거나(00) 압축되었음을 나타내고 2 비트 코드는 최대 3 개의 사전 엔트리들(315) 중 어느 하나가 활용되는지를 지정한다. 이 예에서는, 값들의 다양성과 제한된 사전 크기로 인해, 32 비트 워드들 중 몇 개만 압축될 수 있다. 따라서, 예제에서는 FVC만 사용하는 경우 208 비트가 필요함을 보여준다.
도 4는 프로세스(200C의) 개선된 효율을 보여주는 예를 도시한다. 이 예에서, 원시 데이터(405)는 단계(211)에 따라 수신된다. 이 예에서, 원시 데이터(405)는 8 개의 32 비트 워드들을 나타내는 256 비트로 구성된다. 단계(212)에서, 파라미터 k는 2로 설정되고, 최하위 비트(least significant bit)는 절단된다. 원시 데이터(405)는 단계(213)에 따라 절단되어 절단된 데이터(410)를 형성한다. 절단된 데이터(410)는 단계(214)에 따라 압축되어 압축된 데이터(415)를 형성한다. 이 예에서, FVC 압축은 단계(214)에서 사전(435)과 함께 사용된다. 원시 데이터(405)에 프로세스(300C)를 적용함으로써, FVC만을 사용하는 경우 208 비트에 비해 40 비트만이 필요하다.
도 4는 복원 프로세스(200D)에 따른 압축 데이터(415)의 복원을 더 예시한다. 단계(221)에서 압축된 데이터(415)가 수신된다. 그 다음, 압축된 데이터(415)는 단계(222)에 따라 압축해제되어 압축해제된 절단된 데이터(420)를 형성한다. 이 예에서, 압축해제는 FVC 및 사전(435)을 사용하여 수행된다. 복원 비트(425)는 그 다음 단계(335)에 따라 복원된 데이터(430)를 형성하기 위해 압축해제된 절단된 데이터(420)에 연결된다.
도 5a는 평가를 위해 복원 유닛(103)을 이용하는 기계 학습 시스템(500A)의 블록도이다. 시스템(500A)은 가중치의 데이터베이스(502)를 포함한다. 데이터베이스(502)에 저장된 가중치는 평가기(504)의 뉴런 노드들에 의해 수신된 복수의 입력들의 각각에 상대적 중요도를 할당한다.
복원 유닛(103)은 데이터베이스(502)로부터 가중치를 입력으로 수신한다. 복원 유닛(103)은 평가 기(504)로 전송되는 복원 데이터를 생성하기 위해 프로세스(200D)를 수행한다.
평가기(504)는 복원 유닛(103)으로부터 복원된 가중치를 수신한다. 평가기(504)는 복수의 상호 연결된 뉴런 노드들로 구성된다. 상호 연결된 뉴런들의 각각은 다른 뉴런 노드들 또는 입력 소스(506)로부터 복수의 입력들을 수신한다. 그런 다음 각 뉴런 노드는 데이터베이스(502) 및 전달 함수(508)로부터 수신된 가중치에 기초하여 개별 출력을 계산한다. 평가기(504)는 복수의 상호 연결된 뉴런 노드들의 각각의 개별 출력에 기초하여 예측 데이터(510)를 출력한다.
도 5b는 훈련을 위해 압축 유닛(105) 및 복원 유닛(103)을 이용하는 기계 학습 시스템(500B)의 블록도이다. 기계 학습 시스템(500B)은 훈련 데이터(512)에 기초하여 데이터베이스(502)에 저장될 가중치를 결정하는 훈련기(514)를 포함한다. 훈련기(514)는 평가기(504)에 의해 생성된 예측 데이터를 훈련 데이터에 대한 미리 결정된 출력과 비교함으로써 가중치를 결정한다. 훈련기(514)는 피드백 메커니즘에 기초하여 가중치를 조정한다.
훈련기(514)에 의해 결정되면, 가중치는 압축 유닛(105)을 사용하여 데이터베이스(502)에 저장된다. 압축 유닛(105)은 가중치를 입력으로 수신한다. 압축 유닛(105)은 데이터베이스(502)에 저장된 데이터를 생성하기 위해 프로세스(200C)를 수행한다.
일부 경우에, 압축 유닛(105)에 의해 사용되는 k 값은 훈련 프로세스를 통해 동적으로 변경된다. 예를 들어, 훈련 프로세스의 초기 반복에서 가중치의 더 높은 수준의 노이즈가 허용될 수 있다. 따라서, 더 큰 k 값이 사용된다. 이 상황에서, 훈련기(514)는 더 작은 인수를 압축 유닛(105)에 전달한다. 그러나, 훈련이 진행되고 가중치가 수렴되기 시작하면, 훈련 프로세스가 가중치의 노이즈에 덜 관대해진다. 따라서, 더 작은 k 값이 사용된다. 이 상황에서, 훈련기(514)는 더 작은 k 개의 인수를 압축 유닛(105)에 전달한다.
도 6a는 평가 프로세스(600A)의 흐름도이다. 단계(610)에서 압축된 가중치가 검색된다. 그 후 단계(620)에서, 복원된 가중치를 생성하기 위해 검색된 압축된 가중치에 대해 복원 프로세스(200D)가 수행된다. 그 다음, 복원된 가중치에 기초하여 신경망에 의해 단계(630)에서 출력이 생성된다.
도 6b는 훈련 프로세스(600B)의 흐름도이다. 단계(605)에서 압축된 가중치가 검색된다. 그 다음, 단계(615)에서, 복원 프로세스(200D)는 복원된 가중치를 생성하기 위해 검색된 압축된 가중치에 대해 수행된다. 그 다음, 복원된 가중치를 사용하여 신경망에 의해 단계(625)에서 출력이 생성된다. 그 다음 단계(635)에서 출력에 대해 훈련 프로세스가 수행된다. 훈련 프로세스의 결과는 새로운 가중치이다. 새로운 가중치는 프로세스(200C)에 따라 단계(645)에서 압축된다. 압축된 새로운 가중치는 단계(655)에서 저장된다.
본원의 개시에 기초하여 많은 변형이 가능하다는 것을 이해해야 한다. 특징과 요소는 위에서 특정 조합으로 설명되었지만, 각 특징 또는 요소는 다른 특징 및 요소 없이 단독으로 또는 다른 특징 및 요소와 함께 또는 없이 다양한 조합으로 사용될 수 있다.
제공된 방법은 범용 컴퓨터, 프로세서 또는 프로세서 코어에서 구현될 수 있다. 적합한 프로세서들은, 예를 들어, 범용 프로세서, 특수 목적 프로세서, 기존 프로세서, 디지털 신호 프로세서(DSP), 복수의 마이크로프로세서들, DSP 코어와 관련된 하나 이상의 마이크로 프로세서들, 제어기, 마이크로컨트롤러, ASIC(Application Specific Integrated Circuits), FPGA(Field Programmable Gate Arrays) 회로, 다른 유형의 집적 회로(IC) 및/또는 상태 머신을 포함한다. 이러한 프로세서는 처리된 하드웨어 설명 언어(HDL) 명령어의 결과와 넷리스트를 포함한 기타 중간 데이터(컴퓨터 판독 가능 매체에 저장할 수 있는 명령어)를 사용하여 제조 프로세스를 구성하여 제조될 수 있다. 이러한 처리의 결과는 실시 예의 양태를 구현하는 프로세서를 제조하기 위해 반도체 제조 공정에서 사용되는 마스크워크(maskwork)일 수 있다.
본원에 제공된 방법 또는 순서도는 범용 컴퓨터 또는 프로세서에 의한 실행을 위해 비 일시적 컴퓨터 판독 가능 저장 매체에 통합된 컴퓨터 프로그램, 소프트웨어 또는 펌웨어로 구현될 수 있다. 비 일시적 컴퓨터 판독 가능 저장 매체의 예에는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 레지스터, 캐시 메모리, 반도체 메모리 디바이스, 내부 하드 디스크 및 이동식 디스크와 같은 자기 매체, 광 자기 매체 및 CD-ROM 디스크 및 DVD(digital versatile disk)와 같은 광학 매체를 포함한다.

Claims (20)

  1. 데이터 저장 및 검색 방법에 있어서,
    데이터를 수신하는 단계;
    절단된 데이터(truncated data)를 형성하기 위해 상기 데이터의 미리 결정된 수의 비트를 절단하는 단계;
    압축된 데이터를 형성하기 위해 상기 절단된 데이터를 압축하는 단계; 및
    상기 압축된 데이터를 메모리에 저장하거나 상기 압축된 데이터를 수신 시스템으로 전송하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 압축된 데이터를 검색하는 단계;
    압축해제된 절단된 데이터를 형성하기 위해 상기 압축된 데이터를 압축해제하는 단계; 및
    복원된 데이터를 형성하기 위해 복원 비트를 상기 압축해제된 절단된 데이터에 연결하는 단계를 더 포함하는, 방법.
  3. 제2항에 있어서, 상기 복원 비트는 통계적 분포(statistical distribution)로부터 샘플링함으로써 선택되는, 방법.
  4. 제3항에 있어서, 상기 통계적 분포는 비-파라메트릭(non-parametric) 분포인, 방법.
  5. 제4항에 있어서, 상기 비-파라메트릭 분포는 이전에 복원된 데이터에 기초하여 결정되는, 방법.
  6. 제3항에 있어서, 상기 통계적 분포는 파라메트릭 분포인, 방법.
  7. 제6항에 있어서, 상기 파라메트릭 분포는 이전에 복원된 데이터에 기초하여 결정되는, 방법.
  8. 제1항에 있어서, 상기 미리 결정된 수의 비트는 이전에 압축된 데이터 또는 원하는 노이즈 레벨에 기초하여 결정되는, 방법.
  9. 제1항에 있어서,
    소프트웨어 전달 인수(software passed argument)를 통해 상기 미리 결정된 수의 비트를 수신하는 단계를 더 포함하는, 방법.
  10. 데이터 저장 및 검색 시스템에 있어서,
    메모리; 및
    상기 메모리에 통신 가능하게 연결된 프로세서를 포함하며, 상기 프로세서는:
    상기 메모리에서 데이터를 검색하고;
    절단된 데이터를 형성하기 위해 상기 데이터의 미리 결정된 수의 비트를 절단하고;
    압축된 데이터를 형성하기 위해 상기 절단된 데이터를 압축하고; 그리고
    상기 압축된 데이터를 메모리에 저장하거나 상기 압축된 데이터를 수신 시스템으로 전송하는, 시스템.
  11. 제10항에 있어서, 상기 프로세서는 추가로:
    상기 압축된 데이터를 검색하고;
    압축해제된 절단된 데이터를 형성하기 위해 상기 압축된 데이터를 압축해제하고; 그리고
    복원된 데이터를 형성하기 위해 복원 비트를 상기 압축해제된 절단된 데이터에 연결하는, 시스템.
  12. 제11항에 있어서, 상기 복원 비트는 통계적 분포로부터 샘플링함으로써 선택되는, 시스템.
  13. 제12항에 있어서, 상기 통계적 분포는 비-파라메트릭 분포인, 시스템.
  14. 제13항에 있어서, 상기 비-파라메트릭 분포는 이전에 복원된 데이터에 기초하여 결정되는, 시스템.
  15. 제12항에 있어서, 상기 통계적 분포는 파라메트릭 분포인, 시스템.
  16. 제15항에 있어서, 상기 파라메트릭 분포는 이전에 복원된 데이터에 기초하여 결정되는, 시스템.
  17. 제10항에 있어서, 상기 미리 결정된 수의 비트는 이전에 압축된 데이터 또는 원하는 노이즈 레벨에 기초하여 결정되는, 시스템.
  18. 제10항에 있어서, 상기 프로세서는 추가로:
    소프트웨어 전달 인수를 통해 상기 미리 결정된 수의 비트를 수신하는, 시스템.
  19. 명령어를 저장하는 비 일시적 컴퓨터 판독 가능 저장 매체에 있어서, 상기 명령어는 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    메모리로부터 데이터를 검색하고;
    절단된 데이터를 형성하기 위해 상기 데이터의 미리 결정된 수의 비트를 절단하고;
    압축된 데이터를 형성하기 위해 상기 절단된 데이터를 압축하고; 그리고
    상기 압축된 데이터를 상기 메모리에 저장하거나 상기 압축된 데이터를 수신 시스템으로 전송하게 하는, 비 일시적 컴퓨터 판독 가능 저장 매체.
  20. 제19항에 있어서, 상기 명령어는 상기 프로세서로 하여금 추가로:
    상기 압축된 데이터를 검색하고;
    압축해제된 절단된 데이터를 형성하기 위해 상기 압축된 데이터를 압축해제하고; 그리고
    복원된 데이터를 형성하기 위해 복원 비트를 상기 압축해제된 절단된 데이터에 연결하게 하는, 비 일시적 컴퓨터 판독 가능 저장 매체.
KR1020217019697A 2018-12-14 2019-12-02 로시 복원을 통한 로시 중요성 압축 KR20210092302A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/220,540 2018-12-14
US16/220,540 US11342933B2 (en) 2018-12-14 2018-12-14 Lossy significance compression with lossy restoration
PCT/US2019/063981 WO2020123173A1 (en) 2018-12-14 2019-12-02 Lossy significance compression with lossy restoration

Publications (1)

Publication Number Publication Date
KR20210092302A true KR20210092302A (ko) 2021-07-23

Family

ID=71073055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217019697A KR20210092302A (ko) 2018-12-14 2019-12-02 로시 복원을 통한 로시 중요성 압축

Country Status (6)

Country Link
US (1) US11342933B2 (ko)
EP (1) EP3895081A4 (ko)
JP (1) JP2022510944A (ko)
KR (1) KR20210092302A (ko)
CN (1) CN113168590A (ko)
WO (1) WO2020123173A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11922178B2 (en) * 2021-06-25 2024-03-05 Intel Corporation Methods and apparatus to load data within a machine learning accelerator

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101738640B1 (ko) 2011-01-18 2017-05-24 삼성전자주식회사 트레이스 데이터 압축 장치 및 방법
CN103947209A (zh) 2011-11-18 2014-07-23 皇家飞利浦有限公司 使用标准较低质量(网络)图像格式对高质量(医学)图像进行编码
US9189394B2 (en) 2012-08-08 2015-11-17 Wisconsin Alumni Research Foundation Memory-link compression for graphic processor unit
US20140132429A1 (en) * 2012-11-10 2014-05-15 John Conant Scoville Method for data compression and inference
US10382789B2 (en) 2013-03-08 2019-08-13 Board Of Regents Of The University Of Texas System Systems and methods for digital media compression and recompression
US8989257B1 (en) 2013-10-09 2015-03-24 Integrated Device Technology Inc. Method and apparatus for providing near-zero jitter real-time compression in a communication system
WO2015142341A1 (en) * 2014-03-20 2015-09-24 Hewleet-Packard Development Company, L. P. Dynamic memory expansion by data compression
US9385751B2 (en) * 2014-10-07 2016-07-05 Protein Metrics Inc. Enhanced data compression for sparse multidimensional ordered series data
US10169359B1 (en) * 2015-09-28 2019-01-01 EMC IP Holding Company LLC Distribution content-aware compression and decompression of data
US10795836B2 (en) 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
US10812630B2 (en) * 2018-11-19 2020-10-20 Fungible, Inc. Merging techniques in data compression accelerator of a data processing unit

Also Published As

Publication number Publication date
JP2022510944A (ja) 2022-01-28
EP3895081A1 (en) 2021-10-20
WO2020123173A1 (en) 2020-06-18
US20200195273A1 (en) 2020-06-18
EP3895081A4 (en) 2022-11-30
CN113168590A (zh) 2021-07-23
US11342933B2 (en) 2022-05-24

Similar Documents

Publication Publication Date Title
US11902369B2 (en) Autoencoder, data processing system, data processing method and non-transitory computer readable medium
JP6998968B2 (ja) ディープニューラルネットワークの実行方法、実行装置、学習方法、学習装置及びプログラム
KR102608467B1 (ko) 뉴럴 네트워크의 경량화 방법, 이를 이용한 인식 방법, 및 그 장치
US11593711B2 (en) Method and system for adaptively reducing feature bit-size for homomorphically encrypted data sets used to train machine learning models
JP6789894B2 (ja) ネットワーク係数圧縮装置、ネットワーク係数圧縮方法およびプログラム
JP2018206016A (ja) 機械学習システム及び機械学習方法
EP4008057B1 (en) Lossless exponent and lossy mantissa weight compression for training deep neural networks
Di et al. Optimization of error-bounded lossy compression for hard-to-compress HPC data
JP2023505647A (ja) ニューラルネットワークモデルの圧縮
KR20210092302A (ko) 로시 복원을 통한 로시 중요성 압축
US20240080038A1 (en) Compression of Data that Exhibits Mixed Compressibility
US20190348999A1 (en) Method and apparatus for compression and decompression of a numerical file
US20200242456A1 (en) Neural network accelerator and operating method thereof
Djusdek et al. Adaptive image compression using adaptive Huffman and LZW
JP7233875B2 (ja) 作成方法、コンピュータ及びプログラム
JP2016170750A (ja) データ管理プログラム、情報処理装置およびデータ管理方法
US20210174815A1 (en) Quantization method of latent vector for audio encoding and computing device for performing the method
JP2022045615A (ja) 演算装置及び演算方法
TWI708196B (zh) 使用基於累積計數分佈之函數之用於模型參數之解壓縮之方法及處理器
US9176973B1 (en) Recursive-capable lossless compression mechanism
Oswald et al. Text and image compression based on data mining perspective
TWI729939B (zh) 使用基於累積計數分佈之函數之用於模型參數之解壓縮之方法及處理器
KR20230059435A (ko) 뉴럴 네트워크의 압축 장치 및 방법
JP2010016684A (ja) 符号化装置、符号化方法および符号化プログラム
CN114912584A (zh) 神经网络量化方法及装置、电子设备、介质