KR20210151730A - 메모리 할당 방법, 장치 및 전자 기기 - Google Patents

메모리 할당 방법, 장치 및 전자 기기 Download PDF

Info

Publication number
KR20210151730A
KR20210151730A KR1020210165434A KR20210165434A KR20210151730A KR 20210151730 A KR20210151730 A KR 20210151730A KR 1020210165434 A KR1020210165434 A KR 1020210165434A KR 20210165434 A KR20210165434 A KR 20210165434A KR 20210151730 A KR20210151730 A KR 20210151730A
Authority
KR
South Korea
Prior art keywords
memory
data
tensors
frames
amount
Prior art date
Application number
KR1020210165434A
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 KR20210151730A publication Critical patent/KR20210151730A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/285Memory allocation or algorithm optimisation to reduce hardware requirements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • 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/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Neurology (AREA)
  • Machine Translation (AREA)
  • Telephonic Communication Services (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 출원은 메모리 할당 방법, 장치 및 전자 기기를 개시하며, 컴퓨터 기술 분야에 관한 것으로, 구체적으로 음성 기술 및 딥 러닝 등 인공 지능 기술 분야에 관한 것이다. 구체적인 구현 방식은, 복수의 프레임의 음성 데이터를 수신하고; 복수의 프레임의 음성 데이터를 신경망 모델에 입력하되, 신경망 모델은 복수의 프레임의 음성 데이터를 처리할 때 복수의 데이터 텐서를 신청하고, 복수의 데이터 텐서는 공유 메모리를 공유하는 것이다. 본 출원의 실시예에 따른 메모리 할당 방법은 메모리 오버헤드를 효과적으로 감소시키는 동시에 메모리와 계산의 균형을 보장할 수 있다.

Description

메모리 할당 방법, 장치 및 전자 기기{MEMORY ALLOCATION METHOD, DEVICE AND ELECTRONIC EQUIPMENT}
본 출원은 컴퓨터 기술 분야에 관한 것으로, 구체적으로 음성 기술 및 딥 러닝 등 인공 지능 기술 분야에 관한 것이며, 특히 메모리 할당 방법, 장치 및 전자 기기에 관한 것이다.
인공 지능은 최근 급속도로 발전하고 있으며, 딥 러닝 및 신경망은 인공 지능 발전의 기초이다. 신경망은 일반적으로 계층 수가 많고 텐서 크기가 크므로, 칩에서 많은 메모리를 소모한다. 또한, 최근 신경망을 임베디드 기기에 배치해야 할 수요가 더욱 크다. 따라서, 메모리 할당에 대한 최적화는 매우 중요하다.
본 출원은 메모리 할당 방법, 장치 및 전자 기기를 제공한다.
본 출원의 일 양태에 따르면, 메모리 할당 방법을 제공하고, 당해 방법은,
복수의 프레임의 음성 데이터를 수신하는 단계; 및
상기 복수의 프레임의 음성 데이터를 신경망 모델에 입력하는 단계; 를 포함하고, 상기 신경망 모델은 상기 복수의 프레임의 음성 데이터를 처리할 때 복수의 데이터 텐서를 신청하고, 상기 복수의 데이터 텐서는 공유 메모리를 공유한다.
본 출원의 다른 양태에 따르면, 메모리 할당 장치를 제공하고, 당해 장치는,
복수의 프레임의 음성 데이터를 수신하는 수신 모듈; 및
상기 복수의 프레임의 음성 데이터를 신경망 모델에 입력하는 입력 모듈; 을 포함하고, 상기 신경망 모델은 상기 복수의 프레임의 음성 데이터를 처리할 때 복수의 데이터 텐서를 신청하고, 상기 복수의 데이터 텐서는 공유 메모리를 공유한다.
본 출원의 다른 양태에 따르면, 전자 기기를 제공하고, 당해 전자 기기는,
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서와 통신 가능하게 연결되는 메모리; 를 포함하고,
상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 상기 일 양태의 실시예에 따른 메모리 할당 방법을 수행하도록 한다.
본 출원의 다른 양태에 따르면, 컴퓨터 명령이 저장된 비일시적 컴퓨터 판독 가능 저장 매체를 제공하고, 컴퓨터 프로그램이 저장되고, 상기 컴퓨터 명령은 상기 컴퓨터가 일 양태의 실시예에 따른 메모리 할당 방법을 수행하도록 한다.
본 출원의 다른 양태에 따르면, 비일시적 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램을 제공하고, 상기 컴퓨터 프로그램은 프로세서에 의해 실행될 경우, 일 양태의 실시예에 따른 메모리 할당 방법을 구현한다.
상기 선택 가능한 방식이 가지는 다른 효과는 아래에서 구체적인 실시예를 결합하여 추가로 설명될 것이다.
본 출원은 메모리 할당 방법, 장치 및 전자 기기를 제공할 수 있다.
첨부 도면은 본 해결수단을 더 잘 이해하기 위한 것으로서, 본 출원을 한정하지 않는다.
도 1은 본 출원의 실시예에 의해 제공되는 메모리 할당 방법의 개략적인 흐름도이다.
도 2는 본 출원의 실시예에 의해 제공되는 다른 메모리 할당 방법의 개략적인 흐름도이다.
도 3은 본 출원의 실시예에 의해 제공되는 다른 메모리 할당 방법의 개략적인 흐름도이다.
도 4는 본 출원의 실시예에 의해 제공되는 메모리 할당 장치의 개략적인 구조도이다.
도 5는 본 출원의 실시예에 따른 메모리 할당 방법을 구현하기 위한 전자 기기의 블록도이다.
아래 첨부 도면을 결부하여 본 출원의 예시적인 실시예에 대해 설명하되, 여기에는 이해를 돕기 위한 본 출원의 실시예의 다양한 세부 사항이 포함되며, 이들은 단지 예시적인 것으로 간주되어야 한다. 따라서, 본 분야의 통상적인 지식을 가진 자라면, 본 출원의 범위와 정신을 벗어나지 않으면서 여기에 설명되는 실시예에 대해 다양한 변경과 수정이 이루어질 수 있음을 이해하여야 한다. 마찬가지로, 명확성과 간결성을 위해, 공지된 기능 및 구조에 대한 설명은 아래의 설명에서 생략된다.
아래 첨부 도면을 참조하여 본 출원의 실시예에 따른 메모리 할당 방법, 장치 및 전자 기기를 설명한다.
인공 지능은 컴퓨터를 사용하여 인간의 일부 사고 과정과 지능적 행동(예를 들어, 학습, 추론, 사고, 계획 등)을 시뮬레이션하는 것을 연구하는 학과로, 하드웨어 수준의 기술 뿐만 아니라, 소프트웨어 수준의 기술도 포함한다. 인공 지능 하드웨어 기술에는 일반적으로 센서, 전용 인공 지능 칩, 클라우드 컴퓨팅, 분산 스토리지 및 빅데이터 처리와 같은 기술이 포함되고, 인공 지능 소프트웨어 기술에는 컴퓨터 비전 기술, 음성 인식 기술, 자연 언어 처리 기술 및 딥 러닝, 빅데이터 처리 기술 및 지식 그래프 기술과 같은 몇 가지 방향이 포함된다.
음성 기술은 컴퓨터 분야의 핵심 기술로, 자동 음성 인식 기술과 음성 합성 기술이 있다.
딥 러닝은 기계 학습 분야의 하나의 새로운 연구 방향이다. 딥 러닝은 샘플 데이터의 내재적 법칙과 표현 수준을 학습하는 것으로, 이러한 학습 과정에서 획득된 정보는 문자, 이미지 및 소리 등과 같은 데이터의 해석에 매우 큰 도움이 된다. 딥 러닝의 최종 목표는 기계가 인간처럼 학습 분석 기능을 구비하여 문자, 이미지 및 소리와 같은 데이터를 인식할 수 있도록 하는 것이다. 딥 러닝은 하나의 복잡한 기계 학습 알고리즘으로, 음성 및 이미지 인식 분야에서 달성한 효과는 종래의 관련 기술을 훨씬 능가한다.
본 출원의 실시예에 의해 제공되는 메모리 할당 방법은 전자 기기에 의해 수행될 수 있고, 상기 전자 기기는 PC(Personal Computer, 개인용 컴퓨터) 컴퓨터, 태블릿 컴퓨터, 핸드헬드 컴퓨터 및 스마트 스피커 등 일 수 있으며, 여기서 아무런 한정도 하지 않는다.
본 출원의 실시예에서, 전자 기기에는 프로세싱 컴포넌트, 저장 컴포넌트 및 구동 컴포넌트가 설치될 수 있다. 선택적으로, 상기 구동 컴포넌트 및 프로세싱 컴포넌트는 통합되게 설치될 수 있고, 상기 저장 컴포넌트는 운영 체제, 애플리케이션 프로그램 또는 기타 프로그램 모듈을 저장할 수 있으며, 상기 프로세싱 컴포넌트는 저장 컴포넌트에 저장된 애플리케이션 프로그램을 수행하여 본 출원의 실시예에 의해 제공되는 메모리 할당 방법을 구현한다.
도 1은 본 출원의 실시예에 의해 제공되는 메모리 할당 방법의 개략적인 흐름도이다.
본 출원의 실시예에 따른 메모리 할당 방법은 또한, 본 출원의 실시예에 의해 제공되는 메모리 할당 장치에 의해 수행될 수 있고, 상기 장치는 전자 기기에 구성될 수 있으며, 복수의 프레임의 음성 데이터를 수신하고, 복수의 프레임의 음성 데이터를 신경망 모델에 입력하되, 여기서 신경망 모델은 복수의 프레임의 음성 데이터를 처리할 때 복수의 데이터 텐서를 신청하고, 복수의 데이터 텐서는 공유 메모리를 공유하여, 메모리 오버헤드의 감소를 구현한다.
가능한 일 경우로서, 본 출원의 실시예에 따른 메모리 할당 방법은 또한 서버 측에서 수행될 수 있고, 서버는 클라우드 서버일 수 있으며, 클라우드에서 상기 메모리 할당 방법을 수행할 수 있다.
도 1에 도시된 바와 같이, 상기 메모리 할당 방법은 하기와 같은 단계를 포함할 수 있다.
단계 101에서 복수의 프레임의 음성 데이터를 수신한다.
본 출원의 실시예에서, 전자 기기는 복수의 프레임의 음성 데이터를 수신할 수 있다. 설명해야 할 것은, 상기 실시예에서 설명된 복수의 프레임의 음성 데이터는 사운드 파일(예를 들어, WAV 포맷의 파일)에 임시로 저장되어, 전자 기기가 용이하게 수신(획득)하거나, 전자 기기가 마이크를 통해 사용자에 의해 입력된 음성 정보를 직접 수신하고, 상기 음성 정보를 복수의 프레임의 음성 데이터로 변환할 수 있도록 하며, 여기서 아무런 한정도 하지 않는다.
단계 102에서, 복수의 프레임의 음성 데이터를 신경망 모델에 입력하되, 신경망 모델은 복수의 프레임의 음성 데이터를 처리할 때 복수의 데이터 텐서를 신청하고, 복수의 데이터 텐서는 공유 메모리를 공유한다.
설명해야 할 것은, 상기 실시예에서 설명된 신경망 모델은 호출 및 사용을 용이하게 하기 위해 사전에 트레이닝되어 전자 기기의 저장 공간에 미리 저장될 수 있고, 상기 저장 공간은 하드 디스크와 같은 엔티티 기반의 저장 공간에 제한되지 않고, 상기 저장 공간은 전자 기기에 연결되는 네트워크 하드 디스크의 저장 공간(클라우드 저장 공간)일 수도 있다. 여기서, 상기 신경망 모델은 복수의 프레임의 음성 데이터를 채점하기 위한 채점 신경망 모델일 수 있고, 상기 신경망 모델은 복수의 계층을 포함할 수 있다.
구체적으로, 전자 기기는 복수의 프레임의 음성 데이터를 수신한 후, 먼저 자체의 저장 공간으로부터 신경망 모델을 호출하고, 그 다음 당해 복수의 프레임의 음성 데이터를 당해 신경망 모델에 입력함으로써, 당해 신경망 모델을 통해 복수의 프레임의 음성 데이터를 채점하여 당해 신경망 모델에 의해 출력된 채점 결과를 얻을 수 있다. 설명해야 할 것은, 전자 기기는 복수의 프레임의 음성 데이터를 수신한 후, 또한 먼저 미리 설정된 알고리즘에 따라 복수의 프레임의 음성 데이터를 여러 부분으로 분할하여, 순차적으로 당해 신경망 모델에 입력할 수 있으며, 여기서 미리 설정된 알고리즘은 실제 상황에 따라 보정될 수 있다.
채점의 정확도를 향상시키기 위해, 본 출원의 실시예에서, 전자 기기는 복수의 프레임의 음성 데이터를 수신한 후, 먼저 당해 복수의 프레임의 음성 데이터에 대해 전처리를 수행할 수 있는바, 예를 들어 인간의 발성 기관 자체 및 음성 데이터를 수집하는 기기로 인한 엘리어싱, 고차 고조파 왜곡, 고주파 등 요소가 음성 데이터 품질에 미치는 영향을 제거한다.
또한, 본 출원의 실시예에서, 신경망 모델이 복수의 프레임의 음성 데이터를 처리할 때 신청한 복수의 데이터 텐서는 임시적인 것일 수 있고, 계층과 계층 사이의 교환 데이터를 임시적으로 저장하는데 사용될 수 있으며, 당해 복수의 데이터 텐서는 공유 메모리를 공유할 수 있다.
설명해야 할 것은, 당해 실시예에서 설명된 복수의 데이터 텐서는 일정한 조건을 만족한 후 해제될 수 있고, 예를 들어, 일부 데이터 텐서는 입력으로서 특정 계층A(예를 들어, 신경망 모델의 특정 계층)에 의해 호출된 후, 다른 계층에 의해 더이상 호출될 수 없으며, 따라서 A계층이 계산된 후 당해 데이터 텐서는 해제될 수 있으므로 메모리의 사용량을 감소시킨다.
이밖에, 일부 신경망 구조에서, 대부분 데이터 텐서는 하나의 입력 계층A에만 연결되고, 다른 하나의 계층B의 유일한 출력으로 사용된다. 이러한 데이터 텐서의 메모리는 재사용될 수 있으므로, 메모리의 오버헤드를 감소시킨다.
본 출원의 실시예에서, 우선 복수의 프레임의 음성 데이터를 수신하고, 복수의 프레임의 음성 데이터를 신경망 모델에 입력하여, 신경망 모델을 통해 복수의 프레임의 음성 데이터를 채점함으로써, 메모리 오버헤드를 효과적으로 감소시키는 동시에 메모리 및 컴퓨팅의 균형을 보장할 수 있다.
또한, 본 출원의 일 실시예에서, 상기 메모리 할당 방법은 현재 음성 데이터의 프레임 수에 따라, 공유 메모리에 메모리 양을 할당하는 단계를 더 포함할 수 있다.
구체적으로, 전자 기기는 상기 복수의 프레임의 음성 데이터를 신경망 모델에 입력한 후, 당해 신경망 모델을 통해 현재 음성 데이터의 프레임 수에 따라, 공유 메모리에 메모리 양을 할당하여, 당해 신경망 모델이 복수의 프레임의 음성 데이터를 채점하는 과정에서 공유 메모리를 충분히 사용할 수 있도록 함으로써, 메모리 오버헤드를 더 감소시킨다.
또는, 전자 기기는 상기 복수의 프레임의 음성 데이터를 신경망 모델에 입력한 후, 현재 음성 데이터의 프레임 수에 따라, 직접 공유 메모리에 메모리 양을 할당하여, 당해 신경망 모델이 복수의 프레임의 음성 데이터를 채점하는 과정에서 공유 메모리를 충분히 사용할 수 있도록 한다.
상술한 실시예를 명확하게 설명하기 위해, 본 출원의 일 실시예에서, 현재 음성 데이터의 프레임 수에 따라, 공유 메모리에 메모리 양을 할당하는 단계는, 현재 음성 데이터가 첫 번째 프레임의 음성 데이터일 경우, 제1 할당 모드로 공유 메모리에 메모리 양을 할당하는 단계; 및 현재 음성 데이터가 첫 번째 프레임의 음성 데이터가 아닐 경우, 제2 할당 모드로 공유 메모리에 메모리 양을 할당하는 단계; 를 포함할 수 있다.
본 출원의 실시예에서, 첫 번째 프레임의 음성 데이터는 미리 설정된 시간 내의 프레임 음성 데이터일 수 있고, 여기서, 당해 미리 설정된 시간은 실제 상황에 따라 보정될 수 있으며, 예를 들어, 20 ms 또는 30 ms 내의 프레임 음성 데이터이고, 다시 말해서, 첫 번째 프레임의 음성 데이터는 제1 프레임의 음성 데이터를 의미하는 것이 아니라, 첫 번째 프레임의 음성 데이터는 복수의 프레임을 가진 음성 데이터일 수 있는바, 예를 들어, 20프레임의 음성 데이터이다.
구체적으로, 전자 기기는 상기 복수의 프레임의 음성 데이터를 신경망 모델에 입력한 후, 당해 신경망 모델을 통해 현재 음성 데이터가 첫 번째 프레임의 음성 데이터인지 여부를 먼저 판단할 수 있으며, 그럴 경우 제1 할당 모드로 공유 메모리에 메모리 양을 할당할 수 있고, 그렇지 않을 경우 제2 할당 모드로 공유 메모리에 메모리 양을 할당할 수 있다. 이로써, 단일 프레임의 할당 모드와 복수의 프레임의 할당 모드를 융합한 메모리 할당 방법은, 효율을 보장하는 동시에 메모리와 계산의 균형을 보장할 수 있다.
설명해야 할 것은, 당해 실시예에서 설명된 제1 할당 모드는 단일 프레임의 할당 모드 또는 복수의 프레임의 할당 모드일 수 있고, 당해 실시예에서 설명된 제2 할당 모드는 복수의 프레임의 할당 모드일 수 있으며, 여기서 일부 경우에 제1 할당 모드 및 제2 할당 모드는 동일할 수 있는바, 즉 모두 복수의 프레임의 할당 모드이고, 예를 들어 음성 데이터가 단지 첫 번째 프레임 모드를 사용하는 경우, 제1 할당 모드는 단일 프레임의 할당 모드일 수 있으며, 음성 데이터가 첫 번째 프레임 모드를 사용할 뿐만 아니라 복수의 프레임 모드를 더 사용하는 경우, 제1 할당 모드는 복수의 프레임의 할당 모드일 수 있고, 여기서 아무런 한정도 하지 않는다. 첫 번째 프레임 모드 및 복수의 프레임 모드는 실제 상황에 따라 보정될 수 있다.
상술한 실시예를 명확하게 설명하기 위해, 본 출원의 일 실시예에서, 도 2에 도시된 바와 같이, 제1 할당 모드로 공유 메모리에 메모리 양을 할당하는 단계는 하기와 같은 단계를 포함할 수 있다.
단계 201에서, 신경망 모델이 단일 프레임의 음성 데이터를 처리할 때 신청되는 복수의 데이터 텐서 각각이 차지하는 메모리 양을 획득한다.
설명해야 할 것은, 상기 실시예에서 설명된 데이터 텐서는 일반적으로 n,c,h,w 4개의 차원이 존재하며, 실제 사용에서, 단일 프레임은 h==1을 나타내고, n도 일반적으로 1이므로, 단일 프레임 메모리의 크기는 c * w로 계산할 수 있다.
단계 202에서, 각 데이터 텐서가 차지하는 메모리 양에 따라 복수의 데이터 텐서로부터 2개의 제1 타깃 데이터 텐서를 선택한다.
본 출원의 실시예에서, 2개의 제1 타깃 데이터 텐서는 복수의 데이터 텐서 중 단일 프레임의 메모리 오버헤드가 가장 큰 2개일 수 있다.
단계 203에서, 2개의 제1 타깃 데이터 텐서가 차지하는 메모리를 획득한다.
단계 204에서, 2개의 제1 타깃 데이터 텐서가 차지하는 메모리에 따라 공유 메모리에 메모리 양을 할당한다.
구체적으로, 전자 기기는 상기 복수의 프레임의 음성 데이터를 신경망 모델에 입력한 후, 당해 신경망 모델을 통해 현재 음성 데이터가 첫 번째 프레임의 음성 데이터인지 여부를 먼저 판단할 수 있으며, 그럴 경우 먼저 신경망 모델이 단일 프레임의 음성 데이터를 처리할 때 신청되는 복수의 데이터 텐서 각각이 차지하는 메모리 양을 획득하고, 각 데이터 텐서가 차지하는 메모리 양에 따라 단일 프레임의 메모리 오버헤드가 가장 큰 2개의 데이터 텐서(즉, 2개의 제1 타깃 데이터 텐서)의 메모리 크기를 계산할 수 있다. 다음, 전자 기기는 공유 메모리를 상기 2개의 데이터 텐서에 필요한 메모리 합(즉, 메모리1+메모리2)으로 설정할 수 있다. 여기서, 당해 실시예 중 2개의 데이터 텐서(즉, 2개의 제1 타깃 데이터 텐서)에 대해, 그 메모리를 공유 메모리의 첫 번째 주소 및 첫 번째 주소에 메모리1의 오프셋을 더한 것으로 각각 할당할 수 있다. 이로써, 신경망 모델(예를 들어, 채점 신경망 모델)이 매번 단일 프레임의 음성 데이터 중 일 프레임의 입력을 수신할 수 있도록 하며, 신경망 모델 중 각 계층을 순차적으로 스트리밍 계산함으로써, 공유 메모리를 유연하게 사용하여 메모리의 사용량을 감소시킬 수 있다.
본 출원의 실시예에서, 상기 데이터 텐서 중 h==1일 경우, 메모리는 최소화되지만, 신경망 모델 중 특정 계층의 신경망 파라미터가 지나치게 클 경우, 메모리가 여러 번 로딩되는 문제가 발생될 수 있다.
상기 문제를 해결하기 위해, 본 출원은 현재 음성 데이터가 첫 번째 프레임의 음성 데이터가 아닌 경우에, 복수의 프레임의 할당 모드로 공유 메모리에 메모리 양을 할당하며, 본 출원의 일 실시예에서, 도 3에 도시된 바와 같이, 제2 할당 모드로 공유 메모리에 메모리 양을 할당하는 단계는 하기와 같은 단계를 포함할 수 있다.
단계 301에서, 신경망 모델에 의해 매번 처리된 h프레임의 음성 데이터를 획득하되, h프레임의 음성 데이터는 복수의 프레임의 음성 데이터로부터 획득된다.
본 출원의 일 실시예에서, h는 6 또는 12일 수 있고, 설명해야 할 것은, 당해 실시예에서 설명된 h가 6인 경우, h프레임의 음성 데이터는 60 ms 내의 프레임 음성 데이터일 수 있고; 당해 실시예에서 설명된 h가 12인 경우, h프레임의 음성 데이터는 120 ms 내의 프레임 음성 데이터일 수 있다.
본 출원의 실시예에서, 실제 수요에 따라 h를 메모리 문제를 줄이기 위한 임계값으로 설정하거나, 음성 알고리즘 특성에 따라 채택된 값으로 설정할 수 있다. 일반적으로, 음성 인식에서는 음성 인식의 지연이 없이 매번 60 ms 또는 120 ms의 데이터를 처리할 수 있다. 이와 같이 h를 6 또는 12로 설정할 수 있다.
설명해야 할 것은, 제1 할당 모드로 공유 메모리에 메모리 양을 할당하는 상기 방법은 임시 메모리의 오버헤드를 크게 감소시켰으므로, h를 6 또는 12로 설정하더라도, 메모리의 증가는 제한되지만, 이때 메모리로 인한 효율 손실은 보완될 수 있으며, 오버헤드 계산은 일반 방법에 상당하거나, 더 우월하다(일반 방법으로 할당된 데이터 텐서도 유효 메모리가 아닐 수 있으므로 메모리가 인식되지 않아 계산 효율에 영향을 미칠 수 있음).
본 출원의 다른 실시예에서, 당해 실시예에서 설명된 h가 6인 경우, h프레임의 음성 데이터는 6프레임의 음성 데이터일 수 있고; 당해 실시예에서 설명된 h가 12인 경우, h프레임의 음성 데이터는 12프레임의 음성 데이터일 수 있다.
단계 302에서, 신경망 모델이 매번 h프레임의 음성 데이터를 처리할 때 신청되는 복수의 데이터 텐서 각각이 차지하는 메모리 양을 획득한다.
설명해야 할 것은, 당해 실시예에서 설명된 데이터 텐서는 일반적으로 n,c,h,w 4개의 차원이 존재하며, 실제 사용에서, h==6 또는 12인 경우, h프레임의 메모리의 크기는 h * c * w로 계산할 수 있다.
단계 303에서, 각 데이터 텐서가 차지하는 메모리 양에 따라 복수의 데이터 텐서로부터 2개의 제2 타깃 데이터 텐서를 선택한다.
단계 304에서, 2개의 제2 타깃 데이터 텐서가 차지하는 메모리를 획득한다.
단계 305에서, 2개의 제2 타깃 데이터 텐서가 차지하는 메모리에 따라 공유 메모리에 메모리 양을 할당한다.
구체적으로, 전자 기기는 상기 복수의 프레임의 음성 데이터를 신경망 모델에 입력한 후, 당해 신경망 모델을 통해 현재 음성 데이터가 첫 번째 프레임의 음성 데이터인지 여부를 먼저 판단할 수 있으며, 그렇지 않을 경우 신경망 모델이 매번 처리하는 복수의 프레임의 음성 데이터 중 h프레임의 음성 데이터를 먼저 획득할 수 있고, 신경망 모델이 매번 h프레임의 음성 데이터를 처리할 때 신청되는 복수의 데이터 텐서 각각이 차지하는 메모리 양을 획득한다. 다음, 각 데이터 텐서가 차지하는 메모리 양에 따라, h프레임의 메모리 오버헤드가 가장 큰 2개의 데이터 텐서(즉, 2개의 제2 타깃 데이터 텐서)의 메모리 크기를 계산한다. 다음, 전자 기기는 공유 메모리를 상기 2개의 데이터 텐서에 필요한 메모리 합으로 설정할 수 있다. 이로써, 메모리로 인한 효율 손실은 보완될 수 있으며, 오버헤드 계산은 일반 방법에 상당하거나, 더 우월함으로, 메모리와 계산의 균형을 보장한다.
본 출원의 실시예에서, 신경망 모델의 신경망에는 종종 콘볼루션 레이어가 구현되는데, 즉 첫 번째 입력된 프레임 수는 콘볼루션 레이어의 구성 양에 따라 설계된 것이다. 예를 들어, 3x3 콘볼루션 커널의 경우, 채워지지 않은 경우, 두 프레임의 지연이 있을 수 있다. 이러한 콘볼루션 레이어가 추가될 때마다, 입력된 h는 2씩 증가되며, 딥 콘볼루션 네트워크의 경우, 첫 번째 프레임 입력은 20 ms 또는 30 ms일 수 있고, 전체 문장에 대한 채점에서 h는 300-1000(3S ~ 10S)일 수 있다.
이 값이 6 또는 12로 나눌 수 없을 경우 채점 구조에 혼란을 야기한다. 이때 본 출원의 실시예에 따른 메모리 할당 방법은 이 문제를 효과적으로 해결할 수 있으며, 메모리를 할당하는 경우, 여전히 h==6 또는 12의 메모리 크기로 할당하고, 첫 번째 프레임을 계산할 때 h==1의 모드로 계산하며, 첫 번째 프레임 이후, 매번 6프레임 또는 12 프레임을 입력하여 계산한다. 신경망 모델에서는 이 모드가 자동으로 설정된다. 신경망 모델 초기화 후 첫 번째 프레임 모드로 진입할 수 있으며, 첫 번째 프레임의 프레임 수의 계산되면 자동으로 복수의 프레임 모드로 전환된다.
이로써, 메모리 오버헤드를 효과적으로 감소시키는 동시에 메모리와 계산의 균형을 보장할 수 있다.
도 4는 본 출원의 실시예에 의해 제공되는 메모리 할당 장치의 개략적인 구조도이다.
본 출원의 실시예에 따른 메모리 할당 장치는 전자 기기에 구성될 수 있으며, 복수의 프레임의 음성 데이터를 수신하고, 복수의 프레임의 음성 데이터를 신경망 모델에 입력하되, 신경망 모델은 복수의 프레임의 음성 데이터를 처리할 때 복수의 데이터 텐서를 신청하고, 복수의 데이터 텐서는 공유 메모리를 공유하여, 메모리 오버헤드의 감소를 구현한다.
도 4에 도시된 바와 같이, 당해 메모리 할당 장치(400)는 수신 모듈(410) 및 입력 모듈(420)을 포함할 수 있다.
수신 모듈(410)은 복수의 프레임의 음성 데이터를 수신한다.
본 출원의 실시예에서, 전자 기기는 수신 모듈(410)을 통해 복수의 프레임의 음성 데이터를 수신할 수 있다. 설명해야 할 것은, 당해 실시예에서 설명된 복수의 프레임의 음성 데이터는 사운드 파일(예를 들어, WAV 포맷의 파일)에 임시로 저장되어, 수신 모듈(410)이 용이하게 수신(획득)하거나, 수신 모듈(410)이 마이크를 통해 사용자에 의해 입력된 음성 정보를 직접 수신하고, 당해 음성 정보를 복수의 프레임의 음성 데이터로 변환할 수 있도록 하며, 여기서 아무런 한정도 하지 않는다.
입력 모듈(420)은 복수의 프레임의 음성 데이터를 신경망 모델에 입력하되, 신경망 모델은 복수의 프레임의 음성 데이터를 처리할 때 복수의 데이터 텐서를 신청하고, 복수의 데이터 텐서는 공유 메모리를 공유한다.
설명해야 할 것은, 당해 실시예에서 설명된 신경망 모델은 호출 및 사용을 용이하게 하기 위해 사전에 트레이닝되어 전자 기기의 저장 공간에 미리 저장될 수 있고, 당해 저장 공간은 하드 디스크와 같은 엔티티 기반의 저장 공간에 제한되지 않고, 상기 저장 공간은 전자 기기에 연결되는 네트워크 하드 디스크의 저장 공간(클라우드 저장 공간)일 수도 있다. 여기서, 당해 신경망 모델은 복수의 프레임의 음성 데이터를 채점하기 위한 채점 신경망 모델일 수 있고, 당해 신경망 모델은 복수의 계층을 포함할 수 있다.
구체적으로, 수신 모듈(410)이 복수의 프레임의 음성 데이터를 수신한 후, 입력 모듈(420)은 먼저 자체의 저장 공간으로부터 신경망 모델을 호출하고, 그 다음 당해 복수의 프레임의 음성 데이터를 당해 신경망 모델에 입력함으로써, 당해 신경망 모델을 통해 복수의 프레임의 음성 데이터를 채점하여 당해 신경망 모델에 의해 출력된 채점 결과를 얻을 수 있다. 설명해야 할 것은, 수신 모듈(410)은 복수의 프레임의 음성 데이터를 수신한 후, 또한 먼저 미리 설정된 알고리즘에 따라 복수의 프레임의 음성 데이터를 여러 부분으로 분할하고, 순차적으로 당해 신경망 모델에 입력할 수 있으며, 여기서 미리 설정된 알고리즘은 실제 상황에 따라 보정될 수 있다.
채점의 정확도를 향상시키기 위해, 본 출원의 실시예에서, 수신 모듈(410)은 복수의 프레임의 음성 데이터를 수신한 후, 먼저 당해 복수의 프레임의 음성 데이터에 대해 전처리를 수행할 수 있는바, 예를 들어 인간의 발성 기관 자체 및 음성 데이터를 수집하는 기기로 인한 엘리어싱, 고차 고조파 왜곡, 고주파 등 요소가 음성 데이터 품질에 미치는 영향을 제거한다.
또한, 본 출원의 실시예에서, 신경망 모델이 복수의 프레임의 음성 데이터를 처리할 때 신청한 복수의 데이터 텐서는 임시적인 것일 수 있고, 계층과 계층 사이의 교환 데이터를 임시적으로 저장하는데 사용될 수 있으며, 당해 복수의 데이터 텐서는 공유 메모리를 공유할 수 있다.
설명해야 할 것은, 당해 실시예에서 설명된 복수의 데이터 텐서는 일정한 조건을 만족한 후 해제될 수 있고, 예를 들어, 일부 데이터 텐서는 입력으로서 특정 계층A(예를 들어, 신경망 모델의 특정 계층)에 의해 호출된 후, 다른 계층에 의해 더이상 호출될 수 없으며, 따라서 A계층이 계산된 후 당해 데이터 텐서는 해제될 수 있으므로 메모리의 사용량을 감소시킨다.
이밖에, 일부 신경망 구조에서, 대부분 데이터 텐서는 하나의 입력 계층A에만 연결되고, 다른 하나의 계층B의 유일한 출력으로 사용된다. 이러한 데이터 텐서의 메모리는 재사용될 수 있으므로, 메모리의 오버헤드를 감소시킨다.
본 출원의 실시예에서, 수신 모듈을 통해 복수의 프레임의 음성 데이터를 수신하고, 입력 모듈을 통해 복수의 프레임의 음성 데이터를 신경망 모델에 입력하되, 신경망 모델은 복수의 프레임의 음성 데이터를 처리할 때 복수의 데이터 텐서를 신청하고, 복수의 데이터 텐서는 공유 메모리를 공유한다. 이로써, 메모리 오버헤드를 효과적으로 감소시키는 동시에 메모리와 계산의 균형을 보장할 수 있다.
본 출원의 일 실시예에서, 도 4에 도시된 바와 같이, 당해 메모리 할당 장치(400)는 현재 음성 데이터의 프레임 수에 따라, 공유 메모리에 메모리 양을 할당하는 할당 모듈(430)을 더 포함할 수 있다.
본 출원의 일 실시예에서, 도 4에 도시된 바와 같이, 할당 모듈(430)은 제1 할당 유닛(431) 및 제2 할당 유닛(432)을 포함할 수 있다.
제1 할당 유닛(431)은 현재 음성 데이터가 첫 번째 프레임의 음성 데이터일 경우, 제1 할당 모드로 공유 메모리에 메모리 양을 할당한다.
제2 할당 유닛(432)은 현재 음성 데이터가 첫 번째 프레임의 음성 데이터가 아닐 경우, 제2 할당 모드로 공유 메모리에 메모리 양을 할당한다.
본 출원의 일 실시예에서, 도 4에 도시된 바와 같이, 제1 할당 유닛(431)은 구체적으로, 신경망 모델이 단일 프레임의 음성 데이터를 처리할 때 신청되는 복수의 데이터 텐서 각각이 차지하는 메모리 양을 획득하고; 각 데이터 텐서가 차지하는 메모리 양에 따라 복수의 데이터 텐서로부터 2개의 제1 타깃 데이터 텐서를 선택하며; 2개의 제1 타깃 데이터 텐서가 차지하는 메모리를 획득하고; 2개의 제1 타깃 데이터 텐서가 차지하는 메모리에 따라 공유 메모리에 메모리 양을 할당한다.
본 출원의 일 실시예에서, 도 4에 도시된 바와 같이, 제2 할당 유닛(432)은 구체적으로, 신경망 모델에 의해 매번 처리된 h프레임의 음성 데이터를 획득하되, h프레임의 음성 데이터는 복수의 프레임의 음성 데이터로부터 획득되고; 신경망 모델이 매번 h프레임의 음성 데이터를 처리할 때 신청되는 복수의 데이터 텐서 각각이 차지하는 메모리 양을 획득하며; 각 데이터 텐서가 차지하는 메모리 양에 따라 복수의 데이터 텐서로부터 2개의 제2 타깃 데이터 텐서를 선택하고; 2개의 제2 타깃 데이터 텐서가 차지하는 메모리를 획득하며; 2개의 제2 타깃 데이터 텐서가 차지하는 메모리에 따라 공유 메모리에 메모리 양을 할당한다.
본 출원의 일 실시예에서, h는 6 또는 12일 수 있다.
설명해야 할 것은, 전술한 메모리 할당 방법 실시예에 대한 해석 설명은 당해 실시예에 따른 메모리 할당 장치에도 적용되며, 여기서 더이상 반복하지 않는다.
본 출원의 실시예에 따른 메모리 할당 장치는, 수신 모듈을 통해 복수의 프레임의 음성 데이터를 수신하고, 입력 모듈을 통해 복수의 프레임의 음성 데이터를 신경망 모델에 입력하되, 신경망 모델은 복수의 프레임의 음성 데이터를 처리할 때 복수의 데이터 텐서를 신청하고, 복수의 데이터 텐서는 공유 메모리를 공유한다. 이로써, 메모리 오버헤드를 효과적으로 감소시키는 동시에 메모리와 계산의 균형을 보장할 수 있다.
본 출원의 실시예에 따르면, 본 출원은 전자 기기, 판독 가능 저장 매체 및 컴퓨터 프로그램을 더 제공한다.
도 5는 본 출원의 실시예를 수행할 수 있는 예시적인 전자 기기(500)의 예시적 블록도를 도시한다. 전자 기기는 랩톱 컴퓨터, 데스크톱 컴퓨터, 워크스테이션, 개인 정보 단말기, 서버, 블레이드 서버, 메인 프레임 컴퓨터, 및 다른 적합한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 의미한다. 전자 기기는 디지털 개인 비서, 셀룰러 폰, 스마트 폰, 웨어러블 기기 및 다른 유사한 컴퓨팅 장치와 같은 다양한 형태의 모바일 장치를 나타낼 수도 있다. 본 명세서에 개시된 컴포넌트, 이들의 연결 및 관계, 및 그 기능은 단지 예시에 불과하며, 본 명세서에 기술되거나 청구된 본 출원의 구현을 한정하도록 의도되지 않는다.
도 5에 도시된 바와 같이, 기기(500)는 읽기 전용 메모리(502, ROM)에 저장된 컴퓨터 프로그램 또는 저장 유닛(508)으로부터 랜덤 액세스 메모리(503, RAM)에 로딩된 컴퓨터 프로그램에 따라 다양한 적절한 동작 및 처리를 수행할 수 있는 컴퓨팅 유닛(801)을 포함한다. RAM(803)에서, 또한 기기(500)의 작업에 필요한 다양한 프로그램과 데이터를 저장할 수 있다. 컴퓨팅 유닛(501), ROM(502) 및 RAM (503)은 버스(504)를 통해 서로 연결된다. 입력/출력(I/O) 인터페이스(505)도 버스(504)에 연결된다.
키보드, 마우스 등과 같은 입력 유닛(506); 다양한 유형의 디스플레이, 스피커 등과 같은 출력 유닛(507); 자기 디스크, 광 디스크 등과 같은 저장 유닛(508); 및 네트워크 카드, 모뎀, 무선 통신 트랜시버 등과 같은 통신 유닛(509)을 포함하는 기기(500)의 복수의 컴포넌트는 I/O 인터페이스(505)에 연결된다. 통신 유닛(509)은 기기(500)가 인터넷과 같은 컴퓨터 네트워크 및/또는 다양한 통신 네트워크를 통해 다른 기기와 정보/데이터를 교환하도록 허용한다.
컴퓨팅 유닛(501)은 처리 및 컴퓨팅 기능을 갖는 다양한 범용 및/또는 전용 처리 컴포넌트일 수 있다. 컴퓨팅 유닛(501)의 일부 예시는 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 다양한 전용 인공지능(AI) 컴퓨팅 칩, 기계 학습 모델 알고리즘을 실행하는 다양한 컴퓨팅 유닛, 디지털 신호 프로세서(DSP), 및 임의의 적절한 프로세서, 컨트롤러, 마이크로 컨트롤러 등을 포함하지만 이에 한정되지 않는다. 컴퓨팅 유닛(501)은 메모리 할당 방법과 같이 상술한 다양한 방법 및 처리를 수행한다. 예를 들어, 일부 실시예에서, 메모리 할당 방법은 저장 유닛(508)과 같은 기계 판독 가능 매체에 유형적으로 포함되는 컴퓨터 소프트웨어 프로그램으로 구현될 수 있다. 일부 실시예에서, 컴퓨터 프로그램의 일부 또는 전부는 ROM(502) 및/또는 통신 유닛(509)을 통해 기기(500)에 로딩 및/또는 설치될 수 있다. 컴퓨터 프로그램이 RAM(503)에 로딩되어 컴퓨팅 유닛(501)에 의해 실행될 경우, 상술한 메모리 할당 방법의 하나 또는 복수의 단계를 수행할 수 있다. 선택적으로, 다른 실시예에서, 컴퓨팅 유닛(501)은 다른 임의의 적절한 방식(예를 들어, 펌웨어에 의함)을 통해 메모리 할당 방법을 수행하도록 구성될 수 있다.
본문에서 이상 서술된 시스템 및 기술의 다양한 실시형태는 디지털 전자 회로 시스템, 집적 회로 시스템, 필드 프로그래머블 게이트 어레이(FPGA), 전용 집적 회로(ASIC), 전용 표준 제품(ASSP), 시스텝 온 칩(SOC), 복합 프로그래머블 로직 디바이스(CPLD), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합에서 구현될 수 있다. 이러한 다양한 실시형태는 하나 또는 복수의 컴퓨터 프로그램에서 구현되는 것을 포함할 수 있고, 상기 하나 또는 복수의 컴퓨터 프로그램은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템에서 실행 및/또는 해석될 수 있으며, 상기 프로그래머블 프로세서는 전용 또는 범용 프로그래머블 프로세서일 수 있고, 저장 시스템, 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치로부터 데이터와 명령을 수신하며, 데이터와 명령을 당해 저장 시스템, 당해 적어도 하나의 입력 장치, 및 당해 적어도 하나의 출력 장치로 전송할 수 있다.
본 출원의 방법을 실시하기 위한 프로그램 코드는 하나 또는 복수의 프로그래밍 언어의 임의의 조합으로 작성될 수 있다. 이러한 프로그램 코드는 범용 컴퓨터, 전용 컴퓨터 또는 다른 프로그래머블 데이터 처리 장치의 프로세서 또는 컨트롤러에 제공되어, 프로그램 코드가 프로세서 또는 컨트롤러에 의해 실행될 경우 흐름도 및/또는 블록도에서 규정하는 기능/동작이 실시될 수 있도록 한다. 프로그램 코드는 완전히 기계에서 실행되거나, 부분적으로 기계에서 실행될 수 있으며, 독립형 소프트웨어 패키지로서 부분적으로 기계에서 실행되고 부분적으로 원격 기계에서 실행되거나, 완전히 원격 기계 또는 서버에서 실행될 수도 있다.
본 출원의 컨텍스트에서, 기계 판독 가능 매체는 명령 실행 시스템, 장치 또는 기기에 의해 사용되거나 명령 실행 시스템, 장치 또는 기기와 결합되어 사용되는 프로그램을 포함하거나 저장할 수 있는 유형의 매체일 수 있다. 기계 판독 가능 매체는 기계 판독 가능 신호 매체이거나 기계 판독 가능 저장 매체일 수 있다. 기계 판독 가능 매체는 전자적, 자기적, 광학적, 전자기적, 적외선, 또는 반도체 시스템, 장치 또는 기기, 또는 상술한 내용의 임의의 적절한 조합을 포함할 수 있지만 이에 한정되지 않는다. 기계 판독 가능 저장 매체의 더 구체적인 예시는 하나 또는 복수의 케이블을 기반으로 하는 전기적 연결, 휴대형 컴퓨터 디스크, 하드 디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거 가능한 프로그래머블 읽기 전용 메모리(EPROM 또는 플래쉬 메모리), 광섬유, 휴대용 컴팩트 읽기 전용 메모리(CD-ROM), 광학 저장 기기, 자기 저장 기기, 또는 상술한 내용의 임의의 적절한 조합을 포함한다.
사용자와의 인터랙션을 제공하기 위해, 컴퓨터에서 여기에 설명된 시스템 및 기술을 구현할 수 있고, 당해 컴퓨터는 사용자에게 정보를 표시하기 위한 디스플레이 장치(예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터)와 키보드 및 포인팅 장치(예를 들어, 마우스 또는 트랙볼)를 구비하며, 사용자는 당해 키보드 및 당해 포인팅 장치를 통해 입력을 컴퓨터에 제공할 수 있다. 다른 종류의 장치를 사용하여 사용자와의 인터랙션을 제공할 수도 있는데, 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 센싱 피드백(예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백)일 수 있고; 임의의 형태(음향 입력, 음성 입력 또는 촉각 입력을 포함함)를 통해 사용자로부터의 입력을 수신할 수 있다.
여기에 설명되는 시스템과 기술은 백엔드 컴포넌트를 포함하는 컴퓨팅 시스템(예를 들어, 데이터 서버로 사용됨), 또는 미들웨어 컴포넌트를 포함하는 컴퓨팅 시스템(예를 들어, 애플리케이션 서버), 또는 프론트 엔드 컴포넌트를 포함하는 컴퓨팅 시스템(예를 들어, 그래픽 유저 인터페이스 또는 인터넷 브라우저를 구비하는 사용자 컴퓨터이고, 사용자는 당해 그래픽 유저 인터페이스 또는 당해 웹 브라우저를 통해 여기에 설명되는 시스템 및 기술의 실시 형태와 인터랙션할 수 있음), 또는 이러한 백엔드 컴포넌트, 미들웨어 컴포넌트, 또는 프론트 엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷 및 블록 체인 네트워크가 포함된다.
컴퓨터 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터랙션한다. 해당 컴퓨터에서 실행되며 서로 클라이언트-서버 관계를 가지는 컴퓨터 프로그램을 통해 클라이언트와 서버의 관계를 생성한다. 서버는 클라우드 컴퓨팅 서버 또는 클라우드 호스트로도 지칭되는 클라우드 서버일 수 있고, 클라우드 컴퓨팅 서비스 시스템 중의 하나의 호스트 제품으로서, 기존의 물리적 호스트와 VPS 서비스("Virtual Private Server", 또는 "VPS"로 약칭)에서 존재하는 관리 상의 어려움이 크고, 업부 확장이 약한 결함을 해결한다. 서버는 분산형 시스템의 서버, 또는 블록 체인이 결합된 서버일 수도 있다.
상술한 다양한 형태의 프로세스를 사용하여 단계를 재정렬, 추가 또는 삭제할 수 있다는 것을 이해해야 한다. 예를 들어, 본 출원에 설명된 각 단계들은 병렬, 순차적 또는 상이한 순서로 수행될 수 있고, 본 출원에 개시된 기술적 수단이 원하는 결과를 달성할 수만 있으면, 별도로 한정하지 않는다.

Claims (15)

  1. 복수의 프레임의 음성 데이터를 수신하는 단계; 및,
    상기 복수의 프레임의 음성 데이터를 신경망 모델에 입력하는 단계; 를 포함하고,
    상기 신경망 모델은 상기 복수의 프레임의 음성 데이터를 처리할 때 복수의 데이터 텐서를 신청하고, 상기 복수의 데이터 텐서는 공유 메모리를 공유하는,
    것을 특징으로 하는 메모리 할당 방법.
  2. 제1항에 있어서,
    현재 음성 데이터의 프레임 수에 따라, 상기 공유 메모리에 메모리 양을 할당하는 단계를 더 포함하는,
    것을 특징으로 하는 메모리 할당 방법.
  3. 제2항에 있어서,
    상기 현재 음성 데이터의 프레임 수에 따라, 상기 공유 메모리에 메모리 양을 할당하는 단계는,
    상기 현재 음성 데이터가 첫 번째 프레임의 음성 데이터일 경우, 제1 할당 모드로 상기 공유 메모리에 메모리 양을 할당하는 단계; 및
    상기 현재 음성 데이터가 첫 번째 프레임의 음성 데이터가 아닐 경우, 제2 할당 모드로 상기 공유 메모리에 메모리 양을 할당하는 단계; 를 포함하는,
    것을 특징으로 하는 메모리 할당 방법.
  4. 제3항에 있어서,
    상기 제1 할당 모드로 상기 공유 메모리에 메모리 양을 할당하는 단계는,
    상기 신경망 모델이 단일 프레임의 음성 데이터를 처리할 때 신청되는 복수의 데이터 텐서 각각이 차지하는 메모리 양을 획득하는 단계;
    각 상기 데이터 텐서가 차지하는 메모리 양에 따라 상기 복수의 데이터 텐서로부터 2개의 제1 타깃 데이터 텐서를 선택하는 단계;
    상기 2개의 제1 타깃 데이터 텐서가 차지하는 메모리를 획득하는 단계; 및
    상기 2개의 제1 타깃 데이터 텐서가 차지하는 메모리에 따라 상기 공유 메모리에 메모리 양을 할당하는 단계; 를 포함하는,
    것을 특징으로 하는 메모리 할당 방법.
  5. 제3항에 있어서,
    상기 제2 할당 모드로 상기 공유 메모리에 메모리 양을 할당하는 단계는,
    상기 신경망 모델에 의해 매번 처리되는 h프레임의 음성 데이터를 획득하는 단계 - 상기 h프레임의 음성 데이터는 상기 복수의 프레임의 음성 데이터로부터 획득됨 - ;
    상기 신경망 모델이 매번 상기 h프레임의 음성 데이터를 처리할 때 신청되는 복수의 데이터 텐서 각각이 차지하는 메모리 양을 획득하는 단계;
    각 상기 데이터 텐서가 차지하는 메모리 양에 따라 상기 복수의 데이터 텐서로부터 2개의 제2 타깃 데이터 텐서를 선택하는 단계;
    상기 2개의 제2 타깃 데이터 텐서가 차지하는 메모리를 획득하는 단계; 및
    상기 2개의 제2 타깃 데이터 텐서가 차지하는 메모리에 따라 상기 공유 메모리에 메모리 양을 할당하는 단계; 를 포함하는,
    것을 특징으로 하는 메모리 할당 방법.
  6. 제5항에 있어서,
    상기 h는 6 또는 12인,
    것을 특징으로 하는 메모리 할당 방법.
  7. 복수의 프레임의 음성 데이터를 수신하는 수신 모듈; 및
    상기 복수의 프레임의 음성 데이터를 신경망 모델에 입력하는 입력 모듈; 을 포함하고,
    상기 신경망 모델은 상기 복수의 프레임의 음성 데이터를 처리할 때 복수의 데이터 텐서를 신청하고, 상기 복수의 데이터 텐서는 공유 메모리를 공유하는,
    것을 특징으로 하는 메모리 할당 장치.
  8. 제7항에 있어서,
    현재 음성 데이터의 프레임 수에 따라, 상기 공유 메모리에 메모리 양을 할당하는 할당 모듈을 더 포함하는,
    것을 특징으로 하는 메모리 할당 장치.
  9. 제8항에 있어서,
    상기 할당 모듈은,
    상기 현재 음성 데이터가 첫 번째 프레임의 음성 데이터일 경우, 제1 할당 모드로 상기 공유 메모리에 메모리 양을 할당하는 제1 할당 유닛; 및
    상기 현재 음성 데이터가 첫 번째 프레임의 음성 데이터가 아닐 경우, 제2 할당 모드로 상기 공유 메모리에 메모리 양을 할당하는 제2 할당 유닛; 을 포함하는,
    것을 특징으로 하는 메모리 할당 장치.
  10. 제9항에 있어서,
    상기 제1 할당 유닛은,
    상기 신경망 모델이 단일 프레임의 음성 데이터를 처리할 때 신청되는 복수의 데이터 텐서 각각이 차지하는 메모리 양을 획득하고;
    각 상기 데이터 텐서가 차지하는 메모리 양에 따라 상기 복수의 데이터 텐서로부터 2개의 제1 타깃 데이터 텐서를 선택하며;
    상기 2개의 제1 타깃 데이터 텐서가 차지하는 메모리를 획득하고;
    상기 2개의 제1 타깃 데이터 텐서가 차지하는 메모리에 따라 상기 공유 메모리에 메모리 양을 할당하는,
    것을 특징으로 하는 메모리 할당 장치.
  11. 제9항에 있어서,
    상기 제2 할당 유닛은,
    상기 신경망 모델에 의해 매번 처리되는 h프레임의 음성 데이터를 획득하되, 상기 h프레임의 음성 데이터는 상기 복수의 프레임의 음성 데이터로부터 획득되고;
    상기 신경망 모델이 매번 상기 h프레임의 음성 데이터를 처리할 때 신청되는 복수의 데이터 텐서 각각이 차지하는 메모리 양을 획득하며;
    각 상기 데이터 텐서가 차지하는 메모리 양에 따라 상기 복수의 데이터 텐서로부터 2개의 제2 타깃 데이터 텐서를 선택하고;
    상기 2개의 제2 타깃 데이터 텐서가 차지하는 메모리를 획득하며;
    상기 2개의 제2 타깃 데이터 텐서가 차지하는 메모리에 따라 상기 공유 메모리에 메모리 양을 할당하는,
    것을 특징으로 하는 메모리 할당 장치.
  12. 제11항에 있어서,
    상기 h는 6 또는 12인,
    것을 특징으로 하는 메모리 할당 장치.
  13. 전자 기기에 있어서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서와 통신 가능하게 연결되는 메모리; 를 포함하고,
    상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 제1항 내지 제6항 중 어느 한 항에 따른 메모리 할당 방법을 수행하도록 하는,
    것을 특징으로 하는 전자 기기.
  14. 컴퓨터 명령이 저장된 비일시적 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 컴퓨터 명령은 컴퓨터가 제1항 내지 제6항 중 어느 한 항에 따른 메모리 할당 방법을 수행하도록 하는,
    것을 특징으로 하는 비일시적 컴퓨터 판독 가능 저장 매체.
  15. 비일시적 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램은 프로세서에 의해 실행될 경우, 제1항 내지 제6항 중 어느 한 항에 따른 메모리 할당 방법을 구현하는,
    것을 특징으로 하는 비일시적 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램.
KR1020210165434A 2020-12-15 2021-11-26 메모리 할당 방법, 장치 및 전자 기기 KR20210151730A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011480605.7A CN112669852B (zh) 2020-12-15 2020-12-15 内存分配方法、装置及电子设备
CN202011480605.7 2020-12-15

Publications (1)

Publication Number Publication Date
KR20210151730A true KR20210151730A (ko) 2021-12-14

Family

ID=75406121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210165434A KR20210151730A (ko) 2020-12-15 2021-11-26 메모리 할당 방법, 장치 및 전자 기기

Country Status (4)

Country Link
US (1) US20220147441A1 (ko)
JP (1) JP7394818B2 (ko)
KR (1) KR20210151730A (ko)
CN (1) CN112669852B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115080240B (zh) * 2022-06-29 2023-10-10 美的集团(上海)有限公司 语音处理模型的部署方法、电子设备及存储介质
CN116700996B (zh) * 2023-08-04 2023-11-07 北京燧原智能科技有限公司 一种神经网络的内存分配方法、装置、设备及介质
CN117892769A (zh) * 2024-03-15 2024-04-16 之江实验室 神经网络训练方法、显存调度方法、系统、设备和产品

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009229921A (ja) * 2008-03-24 2009-10-08 Victor Co Of Japan Ltd 音響信号分析装置
US10319374B2 (en) * 2015-11-25 2019-06-11 Baidu USA, LLC Deployed end-to-end speech recognition
US10546575B2 (en) * 2016-12-14 2020-01-28 International Business Machines Corporation Using recurrent neural network for partitioning of audio data into segments that each correspond to a speech feature cluster identifier
US11562213B2 (en) * 2018-04-17 2023-01-24 Intel Corporation Methods and arrangements to manage memory in cascaded neural networks
CN112334876A (zh) * 2018-06-21 2021-02-05 谷歌有限责任公司 自动化计算机操作系统优化
EP3807874A1 (en) * 2018-07-13 2021-04-21 Google LLC End-to-end streaming keyword spotting
US10210860B1 (en) * 2018-07-27 2019-02-19 Deepgram, Inc. Augmented generalized deep learning with special vocabulary
CN110858162B (zh) * 2018-08-24 2022-09-23 华为技术有限公司 内存管理方法及装置、服务器
KR20220036950A (ko) * 2019-07-03 2022-03-23 후아시아 제너럴 프로세서 테크놀러지스 인크. 순수 함수 신경망 가속기 시스템 및 아키텍처
EP3994621A1 (en) * 2019-07-03 2022-05-11 Huaxia General Processor Technologies Inc. Instructions for operating accelerator circuit
CN111401538A (zh) * 2019-09-24 2020-07-10 上海寒武纪信息科技有限公司 一种数据处理方法、装置、计算机设备及存储介质
US11537436B2 (en) * 2019-10-02 2022-12-27 Qualcomm Incorporated Method of configuring a memory block allocation of a machine learning network
CN110704197B (zh) * 2019-10-17 2022-12-09 北京小米移动软件有限公司 处理内存访问开销的方法、装置及介质
US20210142154A1 (en) * 2019-11-11 2021-05-13 NextVPU (Shanghai) Co., Ltd. Memory pre-allocation for forward calculation in a neural network
CN111179913B (zh) * 2019-12-31 2022-10-21 深圳市瑞讯云技术有限公司 一种语音处理方法及装置
CN111341306B (zh) * 2020-02-14 2022-06-17 东南大学 基于语音特征复用的关键词唤醒cnn的存储和计算压缩方法
US20210358490A1 (en) * 2020-05-18 2021-11-18 Nvidia Corporation End of speech detection using one or more neural networks
CN111814971B (zh) * 2020-06-30 2022-08-05 杭州国芯科技股份有限公司 一种神经网络的内存分配方法
CN111798875A (zh) * 2020-07-21 2020-10-20 杭州芯声智能科技有限公司 一种基于三值量化压缩的vad实现方法

Also Published As

Publication number Publication date
CN112669852B (zh) 2023-01-31
CN112669852A (zh) 2021-04-16
JP2022028810A (ja) 2022-02-16
JP7394818B2 (ja) 2023-12-08
US20220147441A1 (en) 2022-05-12

Similar Documents

Publication Publication Date Title
CN112561078B (zh) 分布式的模型训练方法及相关装置
KR20210151730A (ko) 메모리 할당 방법, 장치 및 전자 기기
CN113361572B (zh) 图像处理模型的训练方法、装置、电子设备以及存储介质
US20240144570A1 (en) Method for generating drivable 3d character, electronic device and storage medium
US20230015313A1 (en) Translation method, classification model training method, device and storage medium
US20230206578A1 (en) Method for generating virtual character, electronic device and storage medium
US20220398834A1 (en) Method and apparatus for transfer learning
WO2023206889A1 (zh) 模型推理方法、装置、设备及存储介质
US11861498B2 (en) Method and apparatus for compressing neural network model
US20220343512A1 (en) Method and apparatus of processing image, electronic device, and storage medium
US20230162426A1 (en) Image Processing Method, Electronic Device, and Storage Medium
CN112764755B (zh) 代码转换方法、装置、设备以及存储介质
WO2023165058A1 (zh) 存储器模型的镜像存储实现方法、装置及存储介质
JP7352609B2 (ja) ニューラルネットワーク加速器のデータ処理方法、装置、機器及び記憶媒体
EP4020327A2 (en) Method and apparatus for training data processing model, electronic device and storage medium
US20220113943A1 (en) Method for multiply-add operations for neural network
CN115312042A (zh) 用于处理音频的方法、装置、设备以及存储介质
CN113033219A (zh) 模型训练方法、装置、电子设备及计算机可读存储介质
JP7343637B2 (ja) データ処理方法、装置、電子機器及び記憶媒体
US20240126610A1 (en) Apparatus and method of processing data, electronic device, and storage medium
CN113689867B (zh) 一种语音转换模型的训练方法、装置、电子设备及介质
US20230019202A1 (en) Method and electronic device for generating molecule set, and storage medium thereof
US20220301131A1 (en) Method and apparatus for generating sample image
US20230195839A1 (en) One-stage object detecting model training method, electrical device and storage medium
US20220222868A1 (en) Method for processing point cloud data, electronic device and storage medium