KR20220166241A - 데이터 처리 방법, 장치, 전자기기, 저장매체 및 프로그램 - Google Patents

데이터 처리 방법, 장치, 전자기기, 저장매체 및 프로그램 Download PDF

Info

Publication number
KR20220166241A
KR20220166241A KR1020220162525A KR20220162525A KR20220166241A KR 20220166241 A KR20220166241 A KR 20220166241A KR 1020220162525 A KR1020220162525 A KR 1020220162525A KR 20220162525 A KR20220162525 A KR 20220162525A KR 20220166241 A KR20220166241 A KR 20220166241A
Authority
KR
South Korea
Prior art keywords
operator
attribute information
target
performance evaluation
input data
Prior art date
Application number
KR1020220162525A
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 KR20220166241A publication Critical patent/KR20220166241A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2263Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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/04Architecture, e.g. interconnection topology
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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/0464Convolutional networks [CNN, ConvNet]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Neurology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Input From Keyboards Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 데이터 처리 방법, 장치 및 전자기기를 제공하는데, 이는 빅 데이터, 클라우드 컴퓨팅, 딥 러닝 등 인공지능 기술분야에 관한 것이다. 구체적인 구현방안은, 입력 데이터의 제1 속성 정보를 획득하고, 연산자와 대응하는 연산 기기의 제2 속성 정보를 획득하는 단계; 제1 속성 정보와 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 단계; 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 연산자를 생성하는 단계; 연산 기기가 연산자에 따라 입력 데이터를 연산하여 연산 결과를 획득하는 단계를 포함한다. 이로써, 상이한 입력 데이터와 연산 기기의 조합에 대해, 연산 기기의 연산 성능 및 입력 데이터의 연산 효율을 향상시키도록 최적의 연산자 구현 방식을 스케줄링할 수 있는데 상이한 연산자 구현 방식이 각각의 우세를 가지므로 각 연산자 구현 방식을 충분히 이용하여 최적의 입력 데이터에 대응하는 연산자를 생성할 수 있다.

Description

데이터 처리 방법, 장치, 전자기기, 저장매체 및 프로그램{ METHOD AND APPARATUS FOR PROCESSING DATA, ELECTRONIC DEVICE, STORAGE MEDIUM AND PROGRAM}
본 발명은 데이터 처리 기술분야에 관한 것으로, 더 구체적으로는 빅 데이터, 클라우드 컴퓨팅, 딥 러닝 등 인공지능 기술분야에 관한 것이다. 특히 데이터 처리 방법, 장치, 전자기기, 저장매체 및 프로그램에 관한 것이다.
딥 러닝 프레임워크는 딥 러닝 기술의 연구 개발을 위한 기초적인 소프트웨어 도구로서, 위로는 애플리케이션과 접속되고, 아래로는 하드웨어 기기와 접속되어 딥 러닝 태스크의 연구 개발 효율을 향상시킬 수 있다. 딥 러닝 프레임워크는 하드웨어의 차이를 차폐하여 응용 개발에 통일적인 인터페이스를 제공한다.
그러나, 딥 러닝 프레임워크에 포함되는 연산자는 수량이 매우 많은 바, 관련 기술에서는 낮은 비용과 하드웨어 성능을 충분히 향상시킬 수 있는 연산자 구현 방식이 존재하지 않는다. 따라서, 어떻게 정확하게 연산 결과를 획득하고 하드웨어 성능을 향상시키며, 비용을 절감할 것인가는 이미 시급히 해결해야 할 과제로 되었다.
본 발명은 데이터 처리 방법, 장치, 전자기기, 저장매체 및 프로그램을 제공한다.
본 발명의 한 측면에 따르면, 데이터 처리 방법을 제공하는데, 이는, 입력 데이터의 제1 속성 정보를 획득하고, 상기 입력 데이터에 대응하는 연산 기기의 제2 속성 정보를 획득하는 단계; 상기 제1 속성 정보와 상기 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 단계; 상기 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 상기 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 상기 연산자를 생성하는 단계; 상기 연산 기기가 상기 연산자에 따라 상기 입력 데이터를 연산하여 연산 결과를 획득하는 단계를 포함한다.
본 발명의 다른 측면에 따르면, 데이터 처리 장치를 제공하는데, 이는, 입력 데이터의 제1 속성 정보를 획득하고, 상기 입력 데이터 연산자와 대응하는 연산 기기의 제2 속성 정보를 획득하는 획득 모듈; 상기 제1 속성 정보와 상기 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 선택 모듈; 상기 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 상기 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 상기 연산자를 생성하는 생성 모듈; 상기 연산 기기가 상기 연산자에 따라 상기 입력 데이터를 연산하여 연산 결과를 획득하는 연산 모듈을 포함한다.
본 발명의 다른 측면에 따르면, 전자기기를 제공하는데, 상기 전자기기는, 적어도 하나의 프로세서; 및 상기 적어도 하나의 프로세서와 통신 가능하게 연결되는 메모리를 포함하며; 상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어 상기 적어도 하나의 프로세서로 하여금 본 발명의 한 측면에 따른 데이터 처리 방법을 수행하도록 한다.
본 발명의 다른 측면에 따르면, 컴퓨터 명령이 저장되어 있는 비일시적 컴퓨터 판독 가능 저장매체를 제공하는데, 상기 컴퓨터 명령은 상기 컴퓨터로 하여금 본 발명의 한 측면에 따른 데이터 처리 방법을 수행하도록 한다.
본 발명의 다른 측면에 따르면, 컴퓨터 판독 가능 저장 매체에 저장되어 있는 컴퓨터 프로그램을 제공하는데, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 본 발명의 한 측면에 따른 데이터 처리 방법의 단계를 구현한다.
본 명세서에서 설명한 내용은 본 발명의 실시예의 관건적이거나 중요한 특징을 표기하기 위한 것이 아니고 본 발명의 범위를 한정하기 위한 것도 아님을 이해해야 한다. 본 발명의 기타 특징은 아래의 명세서를 통해 보다 용이하게 이해할 수 있을 것이다.
도면은 본 해결수단을 더 잘 이해하기 위한 것으로 본 발명에 대한 한정이 되지 않는다. 여기서,
도 1은 본 발명의 제1 실시예에 따른 데이터 처리 방법의 흐름도이고;
도 2는 본 발명의 제2 실시예에 따른 데이터 처리 방법의 흐름도이며;
도 3은 본 발명의 제3 실시예에 따른 데이터 처리 방법의 흐름도이고;
도 4는 본 발명의 제4 실시예에 따른 데이터 처리 방법의 흐름도이며;
도 5는 본 발명의 제5 실시예에 따른 데이터 처리 방법의 흐름도이고;
도 6은 본 발명의 제6 실시예에 따른 데이터 처리 방법의 흐름도이며;
도 7은 본 발명의 제7 실시예에 따른 데이터 처리 방법의 흐름도이고;
도 8은 본 발명의 제8 실시예에 따른 데이터 처리 방법의 흐름도이며;
도 9는 본 발명의 제9 실시예에 따른 데이터 처리 방법의 흐름도이고;
도 10은 본 발명에 따른 데이터 처리 프레임워크의 모식도이며;
도 11은 본 발명에 따른 데이터 처리 방법의 응용 모식도에서의 하나이고;
도 12는 본 발명에 따른 데이터 처리 방법의 응용 모식도에서의 하나이며;
도 13은 본 발명에 따른 데이터 처리 방법의 응용 모식도에서의 하나이고;
도 14는 본 발명의 실시예에 따른 데이터 처리 방법을 구현하기 위한 데이터 처리 장치의 블록도이며;
도 15는 본 발명의 실시예에 따른 데이터 처리 방법을 구현하기 위한 전자기기의 블록도이다.
이하 도면과 결부하여 본 발명의 시범적인 실시예를 설명하되, 이해를 돕기 위해 여기에는 본 발명의 실시예의 여러 가지 세부 절차가 포함되고 이들은 단지 시범적인 것으로 이해되어야 한다. 따라서, 본 기술분야에서 통상의 지식을 가진 자들은 본 발명의 범위와 정신을 벗어나지 않는 전제하에 여기서 설명한 실시예에 대해 여러 가지 개변과 수정을 실행할 수 있다는 것을 알아야 한다. 마찬가지로, 뚜렷함과 간결함을 위하여 아래의 설명에서는 공지 기능과 구조에 대한 설명을 생략한다.
데이터 처리(Data Processing)는 데이터에 대한 수집, 저장, 검색, 가공, 변화 및 전송 등 처리를 포함하는 바, 대량적이고 무질서하며 이해가 어려운 데이터에서 일부 특정된 사용자에게 있어서 가치가 있고 의미가 있는 데이터를 추출 및 도출하는 것을 가리킨다.
빅 데이터(Big Data)는 대량 자료라고도 하는데, 관련된 데이터 양의 규모가 커서 주류 소프트웨어 도구에 의해 합리적인 시간 내에 기업 경영 책략에 보다 적극적인 목적을 달성하도록 하는 정보로 채택, 관리, 처리 및 정리될 수 없는 것을 가리킨다.
클라우드 컴퓨팅(Cloud Computing)은 분포형 컴퓨팅의 일종으로서, 네트워크 "클라우드"를 통해 거대한 데이터 컴퓨팅 처리 프로그램을 수많은 애플릿으로 분해한 다음, 여러 대의 서버로 조성된 시스템을 통해 이러한 애플릿을 처리 및 분석하여 결과를 얻어 사용자에게 되돌려주는 것을 가리킨다.
인공지능(Artificial Intelligence, 약칭 AI)은 사람의 지능을 시뮬레이션하고 연장하며 확장하는 이론, 방법, 기술 및 응용 시스템을 연구, 개발하는 한 가지 기술 과학이다. 현재, AI 기술은 자동화 정도가 높고, 정확도가 높으며, 비용이 낮은 장점을 가져 광범위하게 응용되고 있다.
딥 러닝(Deep Learning, 약칭 DL)은 기계 학습(Machine Learning, 약칭 ML) 분야에서의 하나의 새로운 연구방향으로서, 샘플 데이터의 내적인 규칙을 학습하고 계층을 나타내는 바, 이러한 학습 과정에서 획득한 정보는 문자, 이미지 및 소리 등 데이터의 해석에 큰 도움이 된다. 이의 최종 타깃은 기계로 하여금 사람처럼 분석 학습 능력을 가지고, 문자, 이미지 및 소리 등 데이터를 인식하도록 하는 것이다. 구체적인 연구 내용은, 주요하게 컨벌루션 연산에 기반한 신경망 시스템, 즉 컨벌루션 신경망을 포함하고; 다층 뉴런의 자체 코딩 신경망에 기반하여; 다층 자체코딩 신경망의 방식으로 사전 트레이닝을 실행하여, 감별 정보와 결부하여 신경망 가중치의 심층 신뢰 네트워크를 추가로 최적화한다. 딥 러닝은 검색 기술, 데이터 발굴, 기계 학습, 기계 번역, 자연언어 처리, 멀티미디어 학습, 음성, 추천과 개별화 기술, 및 기타 관련 분야에서 모두 많은 성과를 이루었다.
이하, 도면과 결부하여 본 발명의 실시예에 따른 데이터 처리 방법을 설명한다.
도 1은 본 발명의 제1 실시예에 따른 데이터 처리 방법의 흐름도이다. 설명해야 할 것은, 본 실시예의 데이터 처리 방법의 실행주체는 데이터 처리 장치이고, 데이터 처리 장치는 구체적으로 하드웨어 기기, 또는 하드웨어 기기에서의 소프트웨어 등 일 수 있다. 하드웨어 기기는 예를 들면 단말기기, 서버 등이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에서 제공하는 데이터 처리 방법은, 구체적인 방법이 아래 단계를 포함할 수 있다.
S101, 입력 데이터의 제1 속성 정보를 획득하고, 입력 데이터에 대응하는 연산 기기의 제2 속성 정보를 획득한다.
연산자란 하나의 함수 공간으로부터 함수 공간으로의 매핑을 가리킨다.
입력 데이터란 연산을 실행해야 하는 데이터를 말하는 바, 주요하게 텐서(Tensor)를 포함한다. 텐서는 데이터의 유형, 데이터의 모양, 데이터의 저장위치 등을 포함할 수 있다.
예를 들면, 데이터 유형은 float32, float64, int32, int64 등 유형의 데이터를 포함할 수 있고; 데이터의 모양은 빅 데이터, 스몰 데이터, 와이드 데이터, 딥 데이터 등을 포함할 수 있으며; 데이터의 저장위치는 그래픽 처리 유닛(Graphics Processing Unit, 약칭 GPU)의 메모리, 딥 컴퓨팅 유닛(Deep Computing Unit, 약칭 DCU)의 비디오 메모리 및 특정 용도 지향 집적 회로(Application Specific Integrated Circuit, 약칭 ASIC) 메모리를 포함할 수 있다.
더 나아가, 입력 데이터는 이미지, 오디오 주파수, 파일 등에서 유래될 수 있다. 입력 데이터에 대응하는 연산자는 하나 또는 다수 일 수 있다. 설명해야 할 것은, 입력 데이터에 대응하는 각 연산자는 모두 본 발명의 실시예에서 제공하는 방식을 사용하여 생성할 수 있다.
연산 기기는 입력 데이터를 연산하는 기기를 가리킨다. 예를 들면, 연산 기기는 GPU, CPU, 전용 인공 지능 칩, 예를 들면: 딥 컴퓨팅 유닛(DCU) 등을 포함할 수 있다.
설명해야 할 것은, 관련 기술에서, 연산자 구현 방식의 스케줄링규칙이 간단하여 하드웨어의 성능을 충분히 발휘할 수 없는 바, 한편으로는 연산자 구현 방식이 스케줄링할 때 입력 데이터의 모양과 유형을 고려하지 못하여 상이한 모양과 유형이 동일한 연산자 구현 방식을 사용하지만 상이한 연산자 구현 방식이 상이한 입력 데이터의 모양과 유형을 제공하고, 성능 표현이 상이하게 된다. 다른 한편으로는 연산자 구현 방식이 스케줄링할 때 연산자 기기의 구체적인 모델, 예를 들면 V100, A100 및 3090 등 상이한 그래픽카드 모델을 구별하지 않고, 상이한 연산자 구현 방식은 상이한 모델의 그래픽카드에서 구현되며, 성능이 상이할 수 있고; 연산 기기의 가속 라이브러리 버전을 고려하지 않았는 바, 예를 들면 동일한 연산자 구현 방식에서, 가속 라이브러리(cudnn)는 상이한 버전이며, 성능이 상이할 수 있다. 또 다른 한편으로는 연산자 구현 방식이 스케줄링할 때 연산 기기의 연산 환경을 고려하지 않았는 바, 예를 들면 동일한 GPU의 그래픽카드에서, 상이한 메인보드와 CPU의 성능이 상이할 수 있다.
이로써, 본 발명에서는, 연산자 구현 방식 스케줄링 규칙의 정보, 즉 입력 데이터의 제1 속성 정보와 연산 기기의 제2 속성 정보를 획득하여 연산자 구현 방식 스케줄링을 실행하여, 하드웨어의 성능을 충분히 발휘할 수 있다.
설명해야 할 것은, 데이터의 제1 속성 정보는 데이터의 모양, 데이터의 유형 등을 포함할 수 있다.
데이터의 모양은 빅, 스몰, 와이드, 딥 등을 포함할 수 있는 바, 즉 빅 데이터, 스몰 데이터, 와이드 데이터, 딥 데이터 등을 포함할 수 있다.
데이터의 유형은 부동 소수점 데이터, 고정 소수점 데이터 등을 포함할 수 있고, 부동 소수점 데이터 크기는 32비트, 64비트 일 수 있으며; 고정 소수점 데이터 크기는 32비트, 64비트 일 수 있다.
설명해야 할 것은, 연산 기기의 제2 속성 정보는 연산 기기의 모델, 연산 기기의 가속 라이브러리 버전, 연산 기기의 환경 등을 포함할 수 있다.
S102, 제1 속성 정보와 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택한다.
설명해야 할 것은, 후보 연산자 구현 방식은 두 가지 및 두 가지 이상의 연산자 구현 방식을 포함할 수 있는 바, 예를 들면, 연산자 조합 구현 방식, 연산자 컴파일러 구현 방식을 포함할 수 있다. 이는 단지 예시일 뿐, 기타 연산자 구현도 후보 연산자 구현으로 사용될 수 있다. 연산자 조합 구현 방식은 작은 연산자 조합을 이용하여 계산할 수 있으므로 비교적 간단하고 원활하다. 그러나 연산자 컴파일러 구현 방식은 연산자의 수량을 증가하지 않아도 되므로 구현 성능이 높다.
설명해야 할 것은, 본 발명에서는 후보 연산자 구현 방식을 사전 설정하는데, 후보 연산자 구현 방식은 연산자 조합 구현 방식 또는 연산자 컴파일러 구현 방식 일 수 있다.
연산자 조합 구현 방식이란 기타 더 작은 연산자를 사용하여 복잡한 연산자를 조합하는 것을 가리킨다.
연산자 컴파일러 구현 방식이란 마찬가지로 기타 더 작은 연산자를 사용하여 복잡한 연산자를 조합하지만 작은 연산자에 대해 튜닝을 실행하는 것을 가리킨다.
본 발명에서는, 제1 속성 정보와 제2 속성 정보에 따라 사용자의 수요 정보를 획득하고, 나아가 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택함으로써 연산자 조합 구현 방식과 연산자 컴파일러 구현 방식이 하나의 시스템에서 공존, 즉 연산자 라이브러리 내부에 동시에 연산자 조합 구현 방식과 연산자 컴파일러 구현 방식이 존재하여 서로 장점으로 단점을 보완할 수 있게 된다.
S103, 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 연산자를 생성한다.
연산자 라이브러리란 모든 연산자의 집합을 가리킨다. 연산자의 집합에서의 연산자는 복잡한 연산자를 포함할 수도 있고 하위 연산자를 포함할 수도 있는데, 여기서 하위 연산자는 복잡한 연산자를 형성할 수 있다. 연산자의 집합은 정규화 지수(softmax) 등을 포함할 수 있고; 하위 연산자는 지수(exponential, 약칭 exp), 합계(summation, 약칭 sum), 제법(divide) 등을 포함할 수 있다.
본 발명의 실시예에서는, 타깃 연산자 구현 방식을 획득한 후, 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 입력 데이터에 필요한 연산자(복잡한 연산자)를 결정하고, 나아가 연산자에 따라 하위 연산자를 획득함으로써 하위 연산자에 따라 연산자를 생성할 수 있다.
설명해야 할 것은, 연산자 조합 구현 방식에 대해, 하위 연산자를 조합함으로써 연산자를 생성할 수 있다.
설명해야 할 것은, 연산자 컴파일러 구현 방식에 대해, 연산자를 분해하고, 실행 코드를 자동으로 튜닝하여 생성함으로써 튜닝된 하위 연산자를 획득함으로써 연산자를 생성할 수 있다.
예를 들면, 연산자를 분해하고, 미리 설정한 튜닝 규칙 또는 튜닝 템플릿 등에 따라 튜닝하여 실행 코드를 생성함으로써 연산자를 생성할 수 있다.
설명해야 할 것은, 연산자의 입력 데이터의 제1 속성 정보, 즉 입력 데이터의 유형, 데이터의 모양 및/또는 연산 수요에 기반하여 입력 데이터에 대응하는 연산자가 포함할 수 있는 하위 연산자를 결정할 수 있다. 하위 연산자는 연산자 라이브러리에서의 연산자이다. 하나의 입력 데이터는 하나 또는 복수의 연산자와 대응할 수 있다.
S104, 연산 기기가 연산자에 따라 입력 데이터를 연산하여 연산 결과를 획득한다.
본 발명의 실시예에서는, 연산자를 획득한 후, 연산 기기에 로딩 또는 배분할 수 있고, 나아가 연산 기기가 연산자에 따라 입력 데이터를 연산하여 연산 결과를 획득할 수 있다. 이해할 수 있다 시피, 연산 기기는 연산자의 캐리어로서 입력 데이터를 연산자에 입력하여 관련 함수 연산을 실행하여, 하나의 연산 결과를 획득할 수 있다.
상술한 내용을 종합하면, 본 발명의 실시예의 데이터 처리 방법은, 입력 데이터의 제1 속성 정보를 획득하고, 입력 데이터에 대응하는 연산 기기의 제2 속성 정보를 획득하며, 제1 속성 정보와 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택한 다음, 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 연산자를 생성하고, 마지막으로, 연산 기기가 연산자에 따라 입력 데이터를 연산하여 연산 결과를 획득할 수 있다. 본 발명의 실시예에서는, 데이터의 제1 속성 정보와 연산 기기의 제2 속성 정보에 따라 연산자 구현 방식의 자동 스케줄링을 실행할 수 있는 바, 즉 상이한 입력 데이터와 연산 기기의 조합에 대해, 연산 기기의 연산 성능 및 입력 데이터의 연산 효율을 향상시키도록 최적의 연산자 구현 방식을 스케줄링할 수 있는데, 상이한 연산자 구현 방식이 각각의 우세를 가지므로 상술한 자동 스케줄링 책략을 통해 각 연산자 구현 방식을 충분히 이용하여 최적의 입력 데이터에 대응하는 연산자를 생성하고, 나아가 연산 기기의 하드웨어 성능을 충분히 발휘할 수 있다.
도 2는 본 발명의 제2 실시예에 따른 데이터 처리 방법의 흐름도이다. 도 2에 도시된 바와 같이, 상기 실시예의 기초로 하여, 본 발명의 실시예의 데이터 처리 방법은 구체적으로 아래 단계를 포함할 수 있다.
S201, 입력 데이터의 제1 속성 정보를 획득하고, 입력 데이터에 대응하는 연산 기기의 제2 속성 정보를 획득한다.
당해 단계S201는 본 발명에서의 각 실시예의 임의의 구현 방식을 사용하여 구현할 수 있는 바, 여기서 더 이상 설명하지 않는다.
S202, 제1 속성 정보와 제2 속성 정보에 따라 후보 연산자 구현 방식에 대해 성능 평가를 실행하여, 대응하는 성능 평가 결과를 획득한다.
선택적으로, 제1 속성 정보와 제2 속성 정보를 성능 평가 모델에 입력하여 대응하는 평가 결과를 출력할 수 있다.
설명해야 할 것은, 본 발명에서 제1 속성 정보와 제2 속성 정보에 따라 후보 연산자 구현 방식에 성능 평가를 실행하는 구체적인 방식을 한정하지 않는 바, 실제 상황에 따라 선택할 수 있다.
S203, 성능 평가 결과에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택한다.
설명해야 할 것은, 후보 연산자 구현 방식과 성능 평가 결과는 일일이 대응되고, 성능 평가 결과에는 예를 들면 연산 요소 시간이 제일 적고, 연산할 때 리소스 점용이 적은 등 복수의 성능 지수가 포함될 수 있다. 따라서, 성능 평가 결과를 획득한 후, 복수의 성능 지수에서의 하나 또는 다수에 기반하여 후보 연산자 구현 방식에서 하나의 타깃 연산자 구현 방식을 선택할 수 있다. 예를 들면, 만약 소요 시간이 제일 짧은 연산자 구현 방식을 선택하고자 하면 각각의 소요 시간 지수를 비교하여 그 중에서 소요 시간이 제일 짧은 성능 평가 결과를 결정하고, 당해 소요 시간이 제일 짧은 성능 평가 결과에 대응하는 후보 연산자 구현 방식을 타깃 연산자 구현 방식으로 결정할 수 있다.
S204, 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 연산자를 생성한다.
S205, 연산 기기가 연산자에 따라 입력 데이터를 연산하여 연산 결과를 획득한다.
단계 S204~단계 S205는 본 발명에서의 각 실시예의 임의의 구현 방식을 사용하여 구현할 수 있는 바, 여기서 더 이상 설명하지 않는다.
상술한 내용을 종합하면, 본 발명의 실시예의 데이터 처리 방법은, 제1 속성 정보와 제2 속성 정보에 따라 후보 연산자 구현 방식에 대해 성능 평가를 실행하여, 대응하는 성능 평가 결과를 획득하고, 성능 평가 결과에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택할 수 있으므로 상이한 성능 평가 결과에 대해 이와 대응하는 타깃 연산자 구현 방식을 선택할 수 있어 하드웨어 도킹을 실행할 때 연산자 개발의 작업량을 감소시키는 동시에 연산자 구현 방식에 자동 스케줄링을 실행하여 연산자 연산 결과의 효율을 더 향상시킬 수 있다.
하나의 가능한 구현 방식으로서, 도 3에 도시된 바와 같이, 상기 실시예의 기초로 하여, 제1 속성 정보와 제2 속성 정보에 따라 후보 연산자 구현 방식에 대해 성능 평가를 실행하여, 대응하는 성능 평가 결과를 획득하는 구체적인 과정은 아래 단계를 포함한다.
S301, 연산자의 후보 연산자 구현 방식에 대응하는 과거 성능 평가 결과를 획득한다.
설명해야 할 것은, 후보 연산자 구현 방식에 대응하는 과거 성능 평가 결과는 바로 연산자 조합 구현 방식에 대응하는 과거 성능 평가 결과 또는 연산자 컴파일러 구현 방식에 대응하는 과거 성능 평가 결과이다.
설명해야 할 것은, 연산자, 입력 데이터 및 고정된 소프트웨어 하드웨어 환경을 획득한 후, 연산자 라이브러리 후단의 연산자 조합 구현 방식 또는 연산자 컴파일러 구현 방식을 각각 수행하여 후보 연산자 구현 방식에 대응하는 과거 성능 평가 결과를 각각 획득할 수 있다.
과거 성능 평가 결과는 후보 구현 방식에 대응하는 복수의 지수 및 지수 평가 결과를 포함한다.
예를 들면, 과거 성능 평가 결과가 포함하는 지수는 시간 지수, 전력 손실지수 및 비디오 메모리 지수 등 일 수 있고; 과거 성능 평가 결과가 포함하는 지수 평가 결과는 소요 시간 길이, 전력 손실 크기 및 비디오 메모리 점용 크기 등 일 수 있다.
설명해야 할 것은, 본 발명에서는 연산자의 후보 연산자 구현 방식에 대응하는 과거 성능 평가 결과를 획득하는 구체적인 방식을 한정하지 않는 바, 실제 상황에 따라 선택할 수 있다.
선택적으로, 조회 캐시 또는 조회 서버를 통해 과거 성능 평가 결과를 획득할 수 있다.
선택적으로, 이론적 추정 또는 성능 평가 모델 예측을 통해 과거 성능 평가 결과를 획득할 수 있다.
S302, 제1 속성 정보와 제2 속성 정보에 따라 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 성능 평가 결과로 사용한다.
설명해야 할 것은, 과거 성능 평가 결과는 제1 속성 정보 및 제2 속성 정보와 일일이 대응되므로 제1 속성 정보와 제2 속성 정보에 따라 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 성능 평가 결과로 사용할 수 있다.
설명해야 할 것은, 본 발명에서는 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 성능 평가 결과로 하는 구체적인 방식을 한정하지 않는 바, 실제 상황에 따라 선택할 수 있다.
선택적으로, 사용자의 실제 수요에 따라 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 성능 평가 결과로 사용할 수 있다. 예를 들면, 만약 사용자의 수요가 소요되는 시간이 짧은 것이면 과거 성능 평가 결과에서 소요 시간이 제일 짧은 성능 평가 결과를 선택하여 성능 평가 결과로 사용할 수 있고; 또 예를 들면, 만약 사용자의 수요가 전력 손실이 작은 것이면 과거 성능 평가 결과에서 전력 손실이 제일 작은 성능 평가 결과를 선택하여 성능 평가 결과로 사용할 수 있다.
상술한 내용을 종합하면, 본 발명에서 제기한 데이터 처리 방법은, 연산자의 후보 연산자 구현 방식에 대응하는 과거 성능 평가 결과를 획득하고, 제1 속성 정보와 제2 속성 정보에 따라 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 성능 평가 결과로 사용할 수 있다. 이로써, 제1 속성 정보와 제2 속성 정보에 따라 성능 평가 결과를 선택할 수 있어 성능 평가 결과를 획득하는 정확성과 신뢰도를 향상시킨다.
더 나아가, 과거 성능 평가 결과를 획득한 후, 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 성능 평가 결과로 사용함으로써 성능 평가 결과를 획득할 수 있다.
하나의 가능한 구현 방식으로서, 도 4에 도시된 바와 같이, 상기 실시예의 기초로 하여, 구체적으로 아래 단계를 포함한다.
S401, 과거 성능 평가 결과에 따라 대응하는 과거 입력 데이터와 과거 운행기기를 획득한다.
설명해야 할 것은, 과거 성능 평가 결과에는 과거 입력 데이터와 과거 운행기기의 정보가 기록되고, 본 발명의 실시예에서는, 과거 성능 평가 결과의 기록 정보에 따라 당해 과거 성능 평가 결과에 대응하는 과거 입력 데이터와 과거 운행기기를 결정할 수 있다.
S402, 과거 성능 평가 결과에 포함되는 과거 입력 데이터의 제1 속성 정보와 입력 데이터의 제1 속성 정보, 및 과거 연산 기기의 제2 속성 정보와 연산 기기의 제2 속성 정보에 기반하여 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 성능 평가 결과로 사용한다.
본 발명의 실시예에서는, 성능 평가 결과를 획득하는 작업량을 저하시키기 위하여, 과거 성능 평가 결과에 포함되는 과거 입력 데이터의 제1 속성 정보와 입력 데이터의 제1 속성 정보, 및 과거 연산 기기의 제2 속성 정보와 연산 기기의 제2 속성 정보에 기반하여 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 성능 평가 결과로 사용할 수 있다.
하나의 가능한 구현 방식으로서,
과거 입력 데이터의 제1 속성 정보와 입력 데이터의 제1 속성 정보를 비교하여 현재 입력 데이터 속성 정보와 일치한 과거 입력 데이터의 존재 여부를 판정한다. 더 나아가, 과거 연산 기기의 제2 속성 정보와 연산 기기의 제2 속성 정보를 비교하여 현재 연산 기기 속성 정보와 일치한 과거 연산 기기의 존재 여부를 판정한다.
본 발명의 실시예에서는, 과거 성능 평가 결과에서, 입력 데이터의 제1 속성 정보와 일치한 동시에 연산 기기의 제2 속성 정보와 일치한 타깃 성능 평가 결과를 선택하여 성능 평가 결과로 사용해야 한다.
설명해야 할 것은, 과거 입력 데이터의 제1 속성 정보와 현재 입력 데이터의 제1 속성 정보가 일치하고, 과거 연산 기기의 제2 속성 정보와 현재 연산 기기의 제2 속성 정보가 일치할 경우, 유사한 연산 기기를 사용하여 유사한 입력 데이터를 처리하였음을 설명하며, 당해 과거 성능 평가 결과를 직접 성능 평가 결과로 사용할 수 있다.
더 나아가, 타깃 성능 평가 결과를 결정한 후, 당해 타깃 성능 평가 결과에 대응하는 후보 연산자 구현 방식, 당해 타깃 성능 평가 결과에 대응하는 후보 연산자 구현 방식을 결정하고, 타깃 연산자 구현 방식으로 결정할 수 있다.
예를 들면, 만약 연산자A의 과거 입력 데이터의 제1 속성 정보가 a1이고, 과거 연산 기기의 제2 속성 정보가 a2이며, 과거 평가 결과가 a3이고, 연산자B의 제1 속성 정보가 a1과 일치하며, 제2 속성 정보가 a2와 일치하면 연산자B의 성능 평가 결과는 a3이다. 예를 들면, 성능 평가 결과a3에 대응하는 후보 연산자 구현 방식이 연산자 조합 구현 방식이면 a3이 사용하는 연산자 조합 구현 방식을 직접 타깃 연산자 구현 방식으로 결정할 수 있다. 선택적으로, 과거 성능 평가 결과에 타깃 성능 평가 결과가 포함되지 않는 것에 응답하여, 즉 현재 입력 데이터의 제1 속성 정보와 일치한 과거 입력 데이터가 존재하지 않거나, 및/또는 현재 연산 기기의 제2 속성 정보와 일치한 과거 연산 기기가 존재하지 않으면 제1 속성 정보, 제2 속성 정보 및 입력 데이터에 필요한 연산자에 따라 후보 연산자 구현 방식의 손실 정보를 획득하고, 손실 정보에 기반하여 후보 연산자 구현 방식의 성능 평가 결과를 생성한다.
선택적으로, 성능 평가 모델을 미리 구축하고, 성능 평가 모델을 트레이닝하여 제1 속성 정보, 제2 속성 정보 및 입력 데이터에 필요한 연산자를 성능 평가 모델에 입력하고, 후보 연산자 구현 방식의 성능 평가 결과를 출력할 수 있다.
더 나아가, 후보 연산자 구현 방식의 성능 평가 결과를 생성한 후, 성능 평가 결과에 기반하여 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 출력해야 한다.
출력한 성능 평가 결과에 대응하는 과거 성능 평가 결과가 존재하지 않으므로, 본 발명의 실시예에서는, 성능 평가 결과를 획득한 후, 타깃 연산자 구현 방식의 성능 평가 결과를 결정할 수 있고, 현재 입력 데이터의 제1 속성 정보, 현재 연산 기기의 제2 속성 정보와 바인딩하여 하나의 새로운 과거 성능 평가 결과로 저장함으로써 데이터 베이스를 업데이트함으로써 데이터 베이스의 완전성을 향상시키고, 연산자 구현 방식의 스케줄링 효율을 향상시킬 수 있다.
상술한 내용을 종합하면, 본 발명의 실시예의 데이터 처리 방법은 여러 가지 방식에 기반하여 성능 평가 결과를 획득할 수 있는데, 선택적으로, 과거 성능 평가 결과에 포함되는 과거 입력 데이터의 제1 속성 정보와 제1 속성 정보가 일치하고, 과거 연산 기기의 제2 속성 정보와 제2 속성 정보가 일치할 경우, 직접 성능 평가 결과를 획득할 수 있으며; 선택적으로, 과거 성능 평가 결과에 타깃 성능 평가 결과가 포함되지 않을 경우, 후보 연산자 구현 방식을 이용하여 손실 정보를 획득하고, 손실 정보에 기반하여 후보 연산자 구현 방식의 성능 평가 결과를 생성하며, 성능 평가 결과를 하나의 새로운 과거 성능 평가 결과로서 저장할 수 있다. 이로써, 본 발명은 여러 가지 방식에 기반하여 성능 평가 결과를 획득할 수 있어 성능 평가 결과를 획득하는 정확성과 신뢰도를 향상시키고, 나아가 성능 평가 결과에 기반하여 대응하는 연산자 구현 방식을 선택하며, 나아가 연산자를 개발할 때의 작업량을 감소시킬 수 있다.
하나의 가능한 구현 방식으로서, 도 5에 도시된 바와 같이, 상기 실시예의 기초로 하여, 성능 평가 결과에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 구체적은 과정은 아래 단계를 포함한다.
S501, 타깃 연산자 구현 방식을 선택하기 위한 타깃 성능 지수를 결정한다.
설명해야 할 것은, 타깃 성능 지수는 전력 손실, 비디오 메모리 점용, 소요 시간에서의 적어도 하나일 수 있다. 데이터의 연산 수요에 따라 복수의 성능 지수에서 타깃 성능 지수를 결정할 수 있다.
S502, 타깃 성능 지수와 성능 평가 결과에 기반하여 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택한다.
본 발명의 실시예에서는, 성능 평가 결과가 하나 또는 복수의 성능 지수의 평가 결과를 포함하고, 타깃 성능 지수를 획득한 후, 성능 평가 결과에서의 타깃 성능 지수의 지수 평가 결과를 결정할 수 있으며, 타깃 성능 지수의 지수 평가 결과에 기반하여 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 바, 예를 들면, 타깃 성능 지수가 소요 시간이면 지수 평가 결과에서 소요 시간이 제일 작은 성능 평가 결과에 대응하는 후보 연산자 구현 방식을 선택하여 타깃 연산자 구현 방식으로 사용할 수 있다. 또 예를 들면, 타깃 성능 지수가 비디오 메모리 점용이면 비디오 메모리 점용이 제일 낮은 성능 평가 결과에 대응하는 후보 연산자 구현 방식을 선택하여 타깃 연산자 구현 방식으로 사용할 수 있다. 예를 들어 A후보 연산자 구현 방식과 B후보 연산자 구현 방식에서, B후보 연산자 구현 방식의 성능 평가 결과에 타깃 성능 지수가 포함되지 않고, A후보 연산자 구현 방식의 성능 평가 결과에 타깃 성능 지수가 포함되면, A후보 연산자 구현 방식을 직접 선택하여 타깃 연산자 구현 방식으로 사용할 수 있다.
하나의 가능한 구현 방식으로서, 도 6에 도시된 바와 같이, 상기 실시예의 기초로 하여, 타깃 성능 지수와 성능 평가 결과에 기반하여 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 구체적인 과정은 아래 단계를 포함한다.
S601, 성능 선호 선택 책략을 획득하고, 성능 선호 선택 책략에 따라 타깃 성능 지수를 결정한다.
설명해야 할 것은, 성능 선호 선택 책략이란 연산 수요에 따라 미리 결정한 타깃 연산자 구현 방식을 결정하는 책략을 가리킨다.
더 나아가, 성능 선호 선택 책략을 획득한 후, 성능 선호 선택 책략에 따라 성능 평가 결과를 선택하는 하나 또는 복수의 타깃 성능 지수를 결정할 수 있다.
S602, 성능 평가 결과에서 타깃 성능 지수와 매칭되는 지수 평가 결과를 선택한다.
본 발명의 실시예에서는, 성능 평가 결과가 하나 또는 복수의 성능 지수의 결과를 포함하는 바, 예를 들면, 전력 손실, 비디오 메모리 점용, 소요 시간에서의 하나 또는 다수를 포함할 수 있다. 타깃 성능 지수를 획득한 후, 성능 평가 결과에서 타깃 성능 지수와 매칭되는 지수 평가 결과를 결정할 수 있다.
예를 들면, 획득한 타깃 지수가 전력 손실일 경우 성능 평가 결과에서 전력 손실지수의 평가 결과를 선택할 수 있다.
S603, 지수 평가 결과에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택한다.
본 발명의 실시예에서, 지수 평가 결과를 획득한 후, 지수 평가 결과에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택할 수 있다.
예를 들면, 성능 선호 책략이 전력 손실일 경우 연산자 조합 구현 방식의 전력 손실이 연산자 컴파일러 구현 방식보다 낮을 경우, 연산자 조합 구현 방식의 소요 시간이 연산자 컴파일러 구현 방식보다 높더라도 연산자 조합 구현 방식을 타깃 구현 방식으로 사용한다.
상술한 내용을 종합하면, 본 발명의 실시예의 데이터 처리 방법은, 성능 선호 선택 책략을 획득하고, 성능 선호 선택 책략에 따라 타깃 성능 지수를 결정하며, 성능 평가 결과에서 타깃 성능 지수와 매칭되는 지수 평가 결과를 선택한 다음, 지수 평가 결과에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택할 수 있다. 이로써, 연산 수요에 따라 미리 성능 선호 선택 책략을 획득하고, 지수 평가 결과에 따라 타깃 연산자 구현 방식을 선택하며, 연산자 구현 방식을 통일적으로 스케줄링하여 연산자 구현 과정이 전력 손실이 더 낮거나 또는 소요 시간이 더 적거나 또는 리소스 점용이 더 적은 등 장점을 가지도록 할 수 있다.
하나의 가능한 구현 방식으로서, 도 7에 도시된 바와 같이, 상기 실시예의 기초로 하여, 입력 데이터에 필요한 연산자에 포함되는 하위 연산자에 기반하여 연산자를 생성하는 구체적인 과정은 아래 단계를 포함한다.
이하, 타깃 연산자 구현 방식이 연산자 조합 구현 방식과 연산자 컴파일러 구현 방식인 것에 대해 해석 설명한다.
타깃 연산자 구현 방식이 연산자 조합 구현 방식인 것에 대해 설명한다.
S701, 타깃 연산자 구현 방식이 연산자 조합 구현 방식인 것에 응답하여, 입력 데이터의 제1 속성 정보에 따라 필요한 연산자에 포함되는 적어도 하나의 제1 하위 연산자와 제1 하위 연산자 사이의 조합 순서를 획득한다.
설명해야 할 것은, 연산자 조합 구현 방식은 일정한 조합 순서에 따라 하위 연산자를 조합하여 복잡한 연산자를 획득하는 것이다.
상이한 입력 데이터의 속성 정보는 흔히 상이하고, 상이한 속성 정보는 입력 데이터의 운행 수요를 반영할 수 있으며, 나아가 입력 데이터에 대응하는 연산자를 결정할 수 있다. 본 발명의 실시예에서는, 입력 데이터의 제1 속성 정보에 기반하여 입력 데이터의 연산 수요를 결정하고, 연산 수요에 기반하여 입력 데이터의 연산자를 결정할 수 있으며, 연산자를 획득한 후, 연산자 조합 구현 방식에 기반하여 당해 연산자가 포함하는 제1 하위 연산자, 및 제1 하위 연산자 사이의 조합 순서를 결정할 수 있다.
예를 들면, 연산자A에 대해, 획득한 제1 하위 연산자가 하위 연산자1, 하위 연산자2, 하위 연산자3, 하위 연산자4, 하위 연산자5이고, 획득한 제1 하위 연산자 사이의 조합 순서는 하위 연산자4, 하위 연산자5, 하위 연산자2, 하위 연산자3, 하위 연산자1이다.
S702, 조합 순서에 기반하여 제1 하위 연산자를 입력 데이터에 대응하는 연산자로 순서 조합한다.
본 발명의 실시예에서, 타깃 연산자 구현 방식이 연산자 조합 구현 방식이면 제1 하위 연산자의 조합 순서에 따라 제1 하위 연산자에 대해 순서 조합을 실행하여 입력 데이터에 대응하는 연산자를 획득할 수 있다.
상술한 내용을 종합하면, 본 발명의 실시예의 데이터 처리 방법은, 타깃 연산자 구현 방식이 연산자 조합 구현 방식인 것에 응답하여, 입력 데이터의 제1 속성 정보에 따라 연산자에 포함되는 적어도 하나의 제1 하위 연산자와 제1 하위 연산자 사이의 조합 순서를 획득하고, 조합 순서에 기반하여 제1 하위 연산자를 입력 데이터에 대응하는 연산자로 순서 조합한다. 이로써, 본 발명은 하위 연산자를 이용하여 입력 데이터에 대응하는 연산자로 순서 조합하여 하드웨어 도킹 작업량 레벨을 감소시킬 수 있다.
입력 데이터에 대응하는 연산자를 획득한 후, 연산 기기가 연산자에 따라 입력 데이터를 연산할 경우, 조합 순서에 따라 연산자에 포함되는 제1 하위 연산자를 실행해야 하는 바, 즉 실행 순서는 하위 연산자4-하위 연산자5-하위 연산자2-하위 연산자3-하위 연산자1이고, 최종적으로 연산 결과를 출력한다.
타깃 연산자 구현 방식이 연산자 컴파일러 구현 방식인 것에 대해 설명한다.
S801, 타깃 연산자 구현 방식이 연산자 컴파일러 구현 방식인 것에 응답하여, 입력 데이터의 제1 속성 정보에 따라 필요한 연산자와 연산자에 포함되는 적어도 하나의 제2 하위 연산자 및 제2 하위 연산자의 컴파일 순서를 획득한다.
설명해야 할 것은, 연산자 컴파일러 구현 방식은 일정한 컴파일 순서에 따라 하위 연산자에 대해 컴파일을 실행하여 복잡한 연산자를 획득하는 것이다.
상이한 입력 데이터의 속성 정보는 흔히 상이하고, 상이한 속성 정보는 입력 데이터의 운행 수요를 반영할 수 있으며, 나아가 입력 데이터에 대응하는 연산자를 결정할 수 있다. 본 발명의 실시예에서는, 입력 데이터의 제1 속성 정보에 기반하여 입력 데이터의 연산 수요를 결정할 수 있고, 연산 수요에 기반하여 입력 데이터의 연산자를 결정할 수 있으며, 연산자를 획득한 후, 연산자 컴파일러 구현 방식에 기반하여 당해 연산자가 포함하는 제2 하위 연산자, 및 제2 하위 연산자 사이의 조합 순서를 결정할 수 있다.
예를 들면, 연산자B에 대해, 획득한 제2 하위 연산자는 하위 연산자6, 하위 연산자7, 하위 연산자8, 하위 연산자9, 하위 연산자10이고, 획득한 제2 하위 연산자 사이의 컴파일 순서는 하위 연산자9, 하위 연산자10, 하위 연산자7, 하위 연산자6, 하위 연산자8이다.
S802, 모든 제2 하위 연산자에 대해 튜닝 처리를 실행하여 튜닝된 타깃 제2 하위 연산자를 획득한다.
하나의 가능한 구현 방식으로서, 타깃 튜닝 책략을 획득하되, 타깃 튜닝 책략에는 제2 하위 연산자의 융합 책략이 포함되고, 더 나아가, 타깃 튜닝 책략에 따라 모든 제2 하위 연산자에 대해 튜닝 처리를 실행할 수 있다.
선택적으로, 제1 속성 정보에 따라 입력 데이터의 데이터 모양을 결정하고, 데이터 모양에 따라 대응하는 타깃 튜닝 책략을 획득할 수 있다.
본 발명에서는 제1 속성 정보에 따라 입력 데이터의 데이터 모양을 결정하는 구체적인 방식을 한정하지 않는 바, 실제 상황에 따라 선택할 수 있다.
선택적으로, 입력 데이터 input1에 대해, 입력 데이터 input1과 제1 속성 정보 사이의 매핑 관계를 조회하여 입력 데이터의 모양을 결정할 수 있다.
본 발명의 실시예에서는, 데이터 모양을 획득한 후, 대응하는 타깃 튜닝 책략을 획득할 수 있다. 예를 들면, 연산자를 컴파일하여 하나의 전체 기기가 실행 가능한 코드로 최적화할 수 있다.
더 나아가, 타깃 튜닝 책략을 획득한 후, 모든 제2 하위 연산자에 대해 튜닝 처리를 실행할 수 있다.
설명해야 할 것은, 본 발명에서는 모든 제2 하위 연산자에 대해 튜닝 처리를 실행하는 구체적인 과정을 한정하지 않는 바, 실제 상황에 따라 선택할 수 있다.
선택적으로, 자동 또는 수동으로 모든 제2 하위 연산자에 대해 튜닝 처리를 실행할 수 있는 바, 즉 미리 설정한 튜닝 규칙 또는 튜닝 템플릿에 따라 모든 제2 연산자에 대해 튜닝 처리를 실행하여 튜닝된 타깃 제2 하위 연산자를 획득할 수 있다.
선택적으로, 타깃 튜닝 책략에는 제2 하위 연산자에 대한 융합 책략이 포함될 수 있고, 모든 제2 하위 연산자에 대해 연산자 융합을 실행할 수 있으며, 더 나아가, 대응하는 타깃 튜닝 책략을 획득한 후, 타깃 튜닝 책략에 따라 모든 제2 하위 연산자에 대해 연산자 융합을 실행하여 융합 하위 연산자를 획득할 수 있다.
더 나아가, 융합된 융합 하위 연산자에 대해 연산자 그루핑 및 연산자 스케줄링을 실행하여 타깃 제2 하위 연산자를 획득한다.
설명해야 할 것은, 융합된 제2 연산자를 획득한 후, 제2 연산자와 대응하는 입력 데이터의 모양 및 연산 기기에 따라 그루핑 및 연산자 스케줄링을 실행하여, 타깃 제2 하위 연산자를 획득할 수 있다.
S803, 타깃 제2 하위 연산자 사이의 컴파일 순서에 기반하여 타깃 제2 하위 연산자에 대해 순서 컴파일을 실행하여, 입력 데이터에 대응하는 연산자를 생성한다.
상술한 내용을 종합하면, 본 발명의 실시예의 데이터 처리 방법은, 성능 선호 선택 책략에 따라 연산자 조합 구현 방식 또는 연산자 컴파일러 구현 방식을 선택하고, 연산자 조합 구현 방식과 연산자 컴파일러 구현 방식에 따라 연산 기기가 연산자에 따라 입력 데이터를 연산하며, 이로써 타깃 제2 하위 연산자 사이의 컴파일 순서에 기반하여 타깃 제2 하위 연산자에 대해 순서 컴파일을 실행하여, 입력 데이터에 대응하는 연산자를 생성하여 연산자 작동 기기가 명령을 실행할 때의 오버헤드를 방지할 수 있다.
더 나아가, 연산자를 획득한 후, 연산 기기가 연산자에 따라 입력 데이터를 연산하여 연산 결과를 획득할 수 있다.
하나의 가능한 구현 방식으로서, 도 9에 도시된 바와 같이, 상기 실시예의 기초로 하여, 연산 기기가 연산자에 따라 입력 데이터를 연산하여 연산 결과를 획득하는 구체적인 과정은 아래 단계를 포함한다.
S901, 입력 데이터의 연산자에 기반하여 입력 데이터에 대응하는 심층 신경망의 연산자 집합을 생성한다.
심층 신경망(Deep Neural Networks, 약칭 DNN)이란 기계 학습(Machine Learning, 약칭 ML) 분야에서의 한 가지 기술을 가리킨다.
설명해야 할 것은, 데이터 처리 태스크를 수신한 후, 데이터 처리 태스크에서 입력 데이터를 추출할 수 있는데, 데이터 처리 태스크의 다양성으로 인하여 입력 데이터도 다양성을 가지며, 마찬가지로 입력 데이터에 대응하는 연산자도 다양성을 가지므로 입력 데이터의 연산자에 기반하여 입력 데이터에 대응하는 심층 신경망의 연산자 집합을 생성할 수 있다.
S902, 연산자 집합을 연산 기기에 배분하여 심층 신경망을 구축하고, 심층 신경망에 의해 입력 데이터를 연산하여 연산 결과를 획득한다.
본 발명의 실시예에서는, 입력 데이터에 대응하는 심층 신경망의 연산자 집합을 생성한 후, 연산자 집합을 연산 기기에 배분하여 심층 신경망을 구축할 수 있다.
예를 들면, 입력 데이터는 이미지 데이터일 수 있고, 로컬 컨벌루션-정규화-비선형화 네트워크(Conv-IN-Relu)를 구축할 수 있으며; 입력 데이터는 오디오 주파수 데이터일 수 있고, 웨이블릿 신경망(Wavelet Neural Network, 약칭 WNN)을 구축할 수 있으며; 입력 데이터는 텍스트 데이터일 수 있고, 컨벌루션 순환 신경망(Convolutional Recurrent Neural Network, 약칭 CRNN)을 구축할 수 있다.
더 나아가, 심층 신경망을 구축한 후, 심층 신경망에 의해 입력 데이터를 연산하여 연산 결과를 획득할 수 있다. 상이한 심층 신경망은 입력 데이터를 연산하여 상이한 연산 결과를 획득할 수 있다. 예를 들면, 입력 데이터가 이미지 데이터일 경우, 구축한 심층 신경망은 타깃 감지, 이미지 분할을 위한 신경망일 수 있고, 상응하게, 연산 결과는 출력한 타깃 감지 프레임, 이미지 분할 결과, 감지된 타깃 유형 등일 수 있다. 또 예를 들면, 입력 데이터는 오디오 주파수 데이터이고, 구축한 심층 신경망은 말하는 사람 유형 인식, 오디오 주파수 인식 등을 위한 신경망일 수 있으며, 상응하게, 연산 결과는 출력한 말하는 사람의 유형, 오디오 주파수와 대응하는 텍스트 등일 수 있다. 또 예를 들면, 입력 데이터는 텍스트 데이터일 수 있고, 구축한 심층 신경망은 텍스트 추출 네트워크, 텍스트 생성 네트워크 등일 수 있으며, 상응하게, 연산 결과는 출력하여 추출한 엔티티 정보, 입력 데이터에 기반하여 생성한 문장 등일 수 있다.
동시에, 연산 과정에서의 고효율성 및 정확성을 향상시키기 위하여 연산 과정을 모니터링하는데, 연산 과정에 이상이 발생할 경우, 연산을 정지하고 이상 로그를 생성할 수 있다. 이상 로그는 연산자를 다시 스케줄링할 수 있다.
선택적으로, 연산 과정에 이상이 발생할 경우, 연산 기기의 제2 속성 정보에 기반하여 새로운 제1 연산 기기를 스케줄링하며, 새로운 제1 연산 기기가 연산자에 따라 입력 데이터를 연산하여 연산 결과를 획득할 수 있다.
선택적으로, 연산 과정에 이상이 발생할 경우, 입력 데이터의 제1 속성 정보에 기반하여 새로운 제2 연산 기기를 스케줄링하며, 제2 연산 기기의 제2 속성 정보를 획득하고, 제1 속성 정보와 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 단계 및 후속 단계로 리턴하여 수행할 수 있다.
상술한 내용을 종합하면, 본 발명의 실시예의 데이터 처리 방법은, 입력 데이터의 연산자에 기반하여 입력 데이터에 대응하는 심층 신경망의 연산자 집합을 생성하고, 연산자 집합을 연산 기기에 배분하여 심층 신경망을 구축하며, 심층 신경망에 의해 입력 데이터를 연산하여 연산 결과를 획득하고 연산 과정의 이상을 모니터링하고, 연산 과정에 이상이 발생할 경우, 새로운 제1 연산 기기가 연산자에 따라 입력 데이터를 연산하여 연산 결과를 획득할 수도 있고, 입력 데이터의 제1 속성 정보에 기반하여 새로운 제2 연산 기기를 스케줄링할 수도 있다. 이로써, 연산 기기에 심층 신경망을 구축하여 입력 데이터를 연산함으로써 연산 결과를 획득할 수 있어 입력 데이터 연산 과정에서의 고효율성과 정확성을 향상시킬 수 있다.
이하 본 발명에서 제기한 데이터 처리의 프레임워크에 대해 해석 설명한다.
도 10에 도시된 바와 같이, 본 발명의 데이터 처리 프레임워크에는 데이터 처리 장치가 포함되고, 당해 데이터 처리 장치는 상기 실시예에서의 데이터 처리 방법을 수행할 수 있는 바, 즉 입력 데이터의 제1 속성 정보와 연산 기기의 제2 속성 정보에 따라 연산자 구현 방식 라이브러리에서 한 가지 타깃 연산자 구현 방식을 스케줄링하고, 연산자 구현 방식 라이브러리에는 적어도 연산자 조합 구현 방식 및 연산자 컴파일러 구현 방식이 포함되며, 입력 데이터에 대응하는 임의의 한 연산자에 대해 스케줄링한 타깃 연산자 구현 방식은 연산자 조합 구현 방식 및 연산자 컴파일러 구현 방식에서의 하나이다. 입력 데이터에 대응하는 연산자는 복수의 하위 연산자를 포함하고, 연산자 라이브러리에서 연산자와 대응하는 하위 연산자를 선택한 다음, 타깃 연산자 구현 방식으로 하위 연산자를 처리하여 입력 데이터에 대응하는 연산자를 형성해야 한다. 더 나아가, 연산자 구현 방식을 획득한 후, 연산자 구현 방식을 연산 기기에 로딩하여 연산 기기가 연산자에 따라 입력 데이터를 연산할 수 있다.
이하, 본 발명에서 제기한 데이터 처리 방법의 과정에 대해 해석 설명한다.
도 11에 도시된 바와 같이, 입력 데이터가 input1일 경우, 연산 기기의 가속 라이브러리 버전은 CUDNN이고, input1에 대응하는 연산자는 완전 연결 계층(Fully Cnection, FC) 및 정규화(softmax) 연산자를 포함하며, 로컬 또는 원격에 기반하여 성능 테스트 결과를 획득할 수 있고, 성능 테스트 결과가 선택적이면 타깃 연산자 구현 방식에 직접 스케줄링한 다음, FC 연산자와 softmax 연산자를 생성하고, 연산 기기가 당해 두 개의 연산자에 따라 input1에 대해 연산 결과output1을 출력할 수 있다.
도 12에 도시된 바와 같이, 입력 데이터가 input2이고, input2의 데이터 모양이 input1의 데이터 모양과 상이하면 연산자 구현 방식을 다시 스케줄링해야 하는 바, 연산 기기의 가속 라이브러리 버전은 CUDA이고, input2와 대응하는 연산자는 FC 연산자와 softmax 연산자를 포함하며, 로컬 또는 원격에 기반하여 성능 테스트 결과를 획득할 수 있고, 성능 테스트 결과가 선택적이면 연산 기기에 의해 직접 연산 결과output2를 출력할 수 있다.
도 13에 도시된 바와 같이, 입력 데이터가 input3이고, input3의 데이터 모양이 input1의 데이터 모양과 동일하면 연산 기기의 가속 라이브러리 버전을 CUDA, input3에 대응하는 연산자를 FC 연산자 및 softmax 연산자로 선택하고, 로컬 또는 원격에 기반하여 성능 테스트 결과를 획득할 수 있으며, 성능 테스트 결과가 선택적이면 input1과 동일한 연산자 구현 방식을 직접 획득하고, 연산 기기에 의해 직접 연산 결과output3을 출력할 수 있다.
도 14는 본 발명에 따라 제기한 데이터 처리 장치(1400)이고, 데이터 처리 장치는 획득 모듈(1401), 선택 모듈(1402), 생성 모듈(1403) 및 연산 모듈(1404)을 포함한다. 여기서,
획득 모듈(1401)은, 연산자와 대응하는 입력 데이터의 제1 속성 정보를 획득하고, 상기 입력 데이터에 대응하는 연산 기기의 제2 속성 정보를 획득하며;
선택 모듈(1402)은, 상기 제1 속성 정보와 상기 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하고;
생성 모듈(1403)은, 상기 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 상기 연산자를 생성하며;
연산 모듈(1404)은, 상기 연산 기기가 상기 연산자에 따라 상기 입력 데이터를 연산하여 연산 결과를 획득한다.
더 나아가, 선택 모듈(1402)은,
상기 제1 속성 정보와 상기 제2 속성 정보에 따라 상기 후보 연산자 구현 방식에 대해 성능 평가를 실행하여, 대응하는 성능 평가 결과를 획득하고;
상기 성능 평가 결과에 따라 상기 후보 연산자 구현 방식에서 상기 타깃 연산자 구현 방식을 선택하는데 더 사용된다.
더 나아가, 선택 모듈(1402)은,
상기 연산자의 상기 후보 연산자 구현 방식에 대응하는 과거 성능 평가 결과를 획득하고;
상기 제1 속성 정보와 상기 제2 속성 정보에 따라 상기 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 상기 성능 평가 결과로 하는데 더 사용된다.
더 나아가, 선택 모듈(1402)은,
상기 과거 성능 평가 결과에 따라 대응하는 과거 입력 데이터와 과거 운행기기를 획득하며;
상기 과거 성능 평가 결과에서의 상기 과거 입력 데이터의 제1 속성 정보와 상기 입력 데이터의 제1 속성 정보, 및 상기 과거 연산 기기의 제2 속성 정보와 상기 연산 기기의 제2 속성 정보에 기반하여 상기 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 상기 성능 평가 결과로 하는데 더 사용된다.
더 나아가, 선택 모듈(1402)은,
상기 과거 입력 데이터의 제1 속성 정보와 상기 입력 데이터의 제1 속성 정보를 비교하고;
상기 과거 연산 기기의 제2 속성 정보와 상기 연산 기기의 제2 속성 정보를 비교하며;
상기 과거 성능 평가 결과에서, 상기 입력 데이터의 제1 속성 정보와 일치한 동시에 상기 연산 기기의 제2 속성 정보와 일치한 타깃 성능 평가 결과를 선택하여 상기 성능 평가 결과로 하는데 더 사용된다.
더 나아가, 선택 모듈(1402)은,
상기 성능 평가 결과에 대응하는 후보 연산자 구현 방식을 상기 타깃 연산자 구현 방식으로 결정하는데 더 사용된다.
더 나아가, 선택 모듈(1402)은,
상기 타깃 연산자 구현 방식에 대응하는 성능 평가 결과를 상기 제1 속성 정보, 상기 제2 속성 정보와 바인딩하여, 하나의 새로운 과거 성능 평가 결과로서 저장하는데 더 사용된다.
더 나아가, 선택 모듈(1402)은,
성능 선호 선택 책략을 획득하고, 상기 성능 선호 선택 책략에 따라 타깃 지수를 결정하며;
상기 성능 평가 결과에서 상기 타깃 성능 지수와 매칭되는 지수 평가 결과를 선택하고;
상기 지수 평가 결과에 따라 상기 후보 연산자 구현 방식에서 상기 타깃 연산자 구현 방식을 선택하는데 더 사용된다.
더 나아가, 생성 모듈(1403)은,
상기 타깃 연산자 구현 방식이 연산자 조합 구현 방식인 것에 응답하여, 상기 입력 데이터의 제1 속성 정보에 따라 필요한 연산자와 상기 연산자에 포함되는 적어도 하나의 제1 하위 연산자 및 상기 제1 하위 연산자 사이의 조합 순서를 획득하고;
상기 조합 순서에 기반하여 상기 제1 하위 연산자를 상기 연산자로 순서 조합하는데 더 사용된다.
더 나아가, 생성 모듈(1403)은,
상기 타깃 연산자 구현 방식이 연산자 컴파일러 구현 방식인 것에 응답하여, 상기 입력 데이터의 제1 속성 정보에 따라 필요한 연산자와 상기 연산자에 포함되는 적어도 하나의 제2 하위 연산자 및 상기 제2 하위 연산자의 컴파일 순서를 획득하고;
모든 상기 제2 하위 연산자에 대해 튜닝 처리를 실행하여 튜닝된 타깃 제2 하위 연산자를 획득하고;
상기 컴파일 순서에 기반하여 상기 타깃 제2 하위 연산자에 대해 순서 컴파일을 실행하여, 상기 연산자를 생성하는데 더 사용된다.
더 나아가, 생성 모듈(1403)은,
타깃 튜닝 책략을 획득하고, 상기 타깃 튜닝 책략에 따라 모든 상기 제2 하위 연산자에 대해 연산자 융합을 실행하여, 융합 하위 연산자를 획득하고;
상기 융합 하위 연산자에 대해 연산자 그루핑 및 연산자 스케줄링을 실행하여 상기 타깃 제2 하위 연산자를 획득하는데 더 사용된다.
더 나아가, 생성 모듈(1403)은,
상기 제1 속성 정보에 따라 상기 입력 데이터의 데이터 모양을 결정하고;
상기 데이터 모양에 따라 대응하는 상기 타깃 튜닝 책략을 획득하는데 더 사용된다.
더 나아가, 연산 모듈(1404)은,
상기 입력 데이터의 상기 연산자에 기반하여 상기 입력 데이터에 대응하는 심층 신경망의 연산자 집합을 생성하고;
상기 연산자 집합을 상기 연산 기기에 배분하여 상기 심층 신경망을 구축하고, 상기 심층 신경망에 의해 상기 입력 데이터를 연산하여 상기 연산 결과를 획득하는데 더 사용된다.
더 나아가, 연산 모듈(1404)은,
상기 연산 과정을 모니터링하고, 상기 연산 과정 이상에 응답하여, 연산을 정지하고 이상 로그를 생성하는데 더 사용된다.
더 나아가, 연산 모듈(1404)은,
상기 연산 기기의 제2 속성 정보에 기반하여 새로운 제1 연산 기기를 스케줄링하며, 상기 새로운 제1 연산 기기가 상기 연산자에 따라 상기 입력 데이터를 연산하여 연산 결과를 획득하는데 더 사용된다.
더 나아가, 연산 모듈(1404)은,
상기 입력 데이터의 제1 속성 정보에 기반하여 새로운 제2 연산 기기를 스케줄링하며, 상기 제2 연산 기기의 제2 속성 정보를 획득하고, 상기 제1 속성 정보와 상기 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 단계 및 후속 단계로 리턴하여 수행하는데 더 사용된다.
더 나아가, 획득 모듈(1401)은,
데이터 처리 태스크를 수신하고, 상기 데이터 처리 태스크에서 상기 입력 데이터를 추출하는데 더 사용되되, 상기 입력 데이터는 이미지 데이터, 오디오 주파수 데이터, 텍스트 데이터 중의 한 종류의 데이터이다.
상술한 내용을 종합하면, 본 발명의 실시예의 데이터 처리 장치는, 입력 데이터의 제1 속성 정보를 획득하고, 입력 데이터에 대응하는 연산 기기의 제2 속성 정보를 획득하며, 제1 속성 정보와 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택한 다음, 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 연산자를 생성하고, 마지막으로, 연산 기기가 연산자에 따라 입력 데이터를 연산하여 연산 결과를 획득할 수 있다. 본 발명의 실시예에서는, 데이터의 제1 속성 정보와 연산 기기의 제2 속성 정보에 따라 연산자 구현 방식의 자동 스케줄링을 실행하여, 각 연산자 구현 방식을 충분히 이용하여 하드웨어의 성능을 충분히 발휘할 수 있다.
본 발명의 기술적 해결수단에서, 관련된 사용자 개인 정보의 수집, 저장, 사용, 가공, 전송, 제공 및 개시 등 처리는 모두 관련 법률 법규의 규정에 부합되고, 공서양속에 위배되지 않는다.
본 발명의 실시예에 따르면, 본 발명은 전자기기, 판독 가능 저장매체 및 컴퓨터 프로그램을 더 제공한다.
도 15는 본 발명의 실시예에 따른 예시적인 전자기기(1300)를 구현하기 위한 모식적인 블록도를 도시한다. 전자기기는 랩톱 컴퓨터, 데스크톱 컴퓨터, 워크 벤치, 개인용 정보 단말기, 서버, 블레이드 서버, 메인 프레임 컴퓨터 및 다른 적합한 컴퓨터 등 다양한 형태의 디지털 컴퓨터를 가리킨다. 전자기기는 또한 개인용 정보 단말기, 셀룰러 폰, 스마트 폰, 웨어러블 기기 및 기타 유사한 컴퓨팅 장치와 같은 다양한 형태의 모바일 장치를 나타낼 수 있다. 본 명세서에 도시된 부재, 이들의 연결과 관계 및 이들의 기능은 단지 예시에 불과하며, 본 명세서에 기술되거나 및/또는 청구된 본 발명의 구현을 한정하도록 의도되지 않는다.
도 15에 도시된 바와 같이, 전자기기(1500)는 계산 유닛(1501)을 포함할 수 있는데, 이는 읽기 전용 메모리(ROM)(1502)에 저장된 컴퓨터 프로그램 또는 저장 유닛(1508)으로부터 랜덤 액세스 메모리(RAM)(1503)에 로딩된 컴퓨터 프로그램에 따라 여러 가지 적당한 동작과 처리를 수행할 수 있다. RAM(1503)에는 기기(1500)의 동작에 필요한 여러 가지 프로그램과 데이터가 더 저장될 수 있다. 계산 유닛(1501), ROM (1502) 및 RAM (1503)은 버스(1504)를 통해 서로 연결된다. 입력/출력(I/O) 인터페이스(1505)도 버스(1504)에 연결된다.
기기(1500)에서의 복수의 부품은 I/O인터페이스(1505)에 연결되는 바, 키 보드, 마우스 등과 같은 입력 유닛(1506); 여러 가지 유형의 디스플레이, 스피커 등과 같은 출력 유닛(1507); 자기 디스크, 시디 롬 등과 같은 저장 유닛(1508); 및 네트워크 카드, 모뎀, 무선 통신 트랜시버와 같은 통신 유닛(1509)을 포함한다. 통신 유닛(1509)은 기기(1500)로 하여금 인터넷과 같은 컴퓨터 네트워크 및/또는 여러 가지 전신 네트워크를 통해 기타 기기와 정보/데이터를 교환하도록 허용한다.
계산 유닛(1501)은 처리 및 컴퓨팅 능력을 가지는 여러 가지 범용 및/또는 전용 처리 어셈블리 일 수 있다. 계산 유닛(1501)의 일부 예시는 중앙 처리 유닛(CPU), 그래픽스 처리 유닛(GPU), 여러 가지 전용 인공 지능(AI) 컴퓨팅 칩, 여러 가지 기계 학습 모델 알고리즘을 운행하는 계산 유닛, 디지털 신호 프로세서(DSP) 및 임의의 적당한 프로세서, 제어기, 마이크로 제어기 등을 포함하나 이에 한정되지 않는다. 계산 유닛(1501)은 상기에서 설명한 각 방법과 처리, 예를 들면 도 1 내지 도 13에 도시된 데이터 처리 방법을 수행한다. 예를 들면, 일부 실시예에서, 데이터 처리 방법은 컴퓨터 소프트웨어 프로그램으로 구현될 수 있고, 이는 저장 유닛(1508)과 같은 기계 판독 가능 매체에 유형적으로 포함될 수 있다. 일부 실시예에서, 컴퓨터 프로그램의 일부 또는 전부는 ROM(1502) 및/또는 통신 유닛(1509)을 거쳐 기기(1500)에 로딩 및/또는 장착될 수 있다. 컴퓨터 프로그램이 RAM(1503)에 로딩되어 계산 유닛(1501)에 의해 실행될 경우, 상기 내용에서 설명한 데이터 처리 방법에서의 하나 또는 복수의 단계를 수행할 수 있다. 대안적으로, 기타 실시예에서, 계산 유닛(1501)은 기타 임의의 적당한 방식(예를 들면, 펌웨어)에 의해 데이터 처리 방법을 수행하도록 구성될 수 있다.
본 명세서에서 설명한 시스템과 기술적인 내용의 여러 가지 실시형태는 디지털 전자회로 시스템, 집적 회로 시스템, 필드 프로그램 가능 게이트 어레이(FPGA), 전용 집적 회로(ASIC), 특정 용도 표준 제품(ASSP), 시스템 온 칩 시스템(SOC), 복합 프로그래머블 논리 소자(CPLD), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합에서 구현될 수 있다. 이러한 여러 가지 실시형태는, 하나 또는 복수의 컴퓨터 프로그램에서 실시되되, 상기 하나 또는 복수의 컴퓨터 프로그램은 적어도 하나의 프로그램 가능 프로세서의 프로그램 가능 시스템에서 실행 및/또는 해석될 수 있고, 상기 프로그램 가능 프로세서는 전용 또는 범용 프로그램 가능 프로세서로서, 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치로부터 데이터와 명령을 수신할 수 있고, 데이터와 명령을 상기 저장 시스템, 상기 적어도 하나의 입력 장치 및 상기 적어도 하나의 출력 장치에 전송하는 방식을 포함할 수 있다.
본 발명의 방법을 실시하기 위한 프로그램 코드는 하나 또는 복수의 프로그래밍 언어의 임의의 조합을 이용하여 프로그래밍 할 수 있다. 이러한 프로그램 코드는 범용 컴퓨터, 전용 컴퓨터 또는 기타 프로그래밍 가능 데이터 처리 장치의 프로세서 또는 제어기에 제공되어 프로그램 코드로 하여금 프로세서 또는 제어기에 의해 실행될 때 흐름도 및/또는 블록도에서 규정한 기능/동작이 실시되도록 할 수 있다. 프로그램 코드는 완전히 기계에서 실행될 수도 있고 일부가 기계에서 실행될 수도 있으며, 독립적인 소프트웨어 패키지로서 일부가 기계에서 실행되는 동시에 일부가 원격 기계에서 실행되거나 또는 전부가 원격 기계 또는 서버에서 실행될 수 있다.
본 발명의 앞뒤 문장에서, 기계 판독 가능 매체는 유형적인 매체일 수 있는 바, 이는 명령 실행 시스템, 장치 또는 기기에 제공되어 사용하거나 또는 명령 실행 시스템, 장치 또는 기기와 결합하여 사용하는 프로그램을 포함하거나 저장할 수 있다. 기계 판독 가능 매체는 기계 판독 가능 신호 매체 또는 기계 판독 가능 저장매체 일 수 있다. 기계 판독 가능 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 기기 또는 상기 내용물의 임의의 적합한 조합일 수 있다. 기계 판독 가능 저장매체의 더 구체적인 예는 하나 또는 복수의 라인의 전기 연결, 휴대용 컴퓨터 디스크, 하드 디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거 및 프로그램 가능 읽기 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 콤팩트 디스크 읽기 전용 메모리(CD-ROM), 광학 저장 기기, 자기 저장 기기 또는 상기 내용물의 임의의 적합한 조합을 포함한다.
사용자와의 인터랙티브를 제공하기 위해, 여기에 설명된 시스템 및 기술을 컴퓨터에서 구현할 수 있는데, 상기 컴퓨터는 사용자에게 정보를 표시하기 위한 디스플레이 장치(예를 들면, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터)와 키보드 및 포인팅 장치(예를 들면, 마우스 또는 트랙 볼)를 구비하고, 사용자는 상기 키보드 및 상기 포인팅 장치를 통해 정보를 입력하여 컴퓨터에 제공할 수 있다. 다른 종류의 장치를 사용하여 사용자와의 인터랙티브를 제공할 수도 있는 바, 예를 들면, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백(예를 들면, 시각적 피드백, 청각 피드백 또는 촉각 피드백) 일 수 있고, 임의의 형태(소리 입력, 음성 입력 또는 촉각 입력 포함)로 사용자에 의해 입력된 정보를 수신할 수 있다.
여기서 설명한 시스템 및 기술은 백그라운드 부재를 포함하는 컴퓨팅 시스템(예를 들면, 데이터 서버로 사용됨) 또는 미들웨어 부재를 포함하는 컴퓨팅 시스템(예를 들면, 애플리케이션 서버로 사용됨) 또는 프론트 엔드 부재를 포함하는 컴퓨팅 시스템(예를 들면, 그래픽 사용자 인터페이스 또는 웹 브라우저를 가지는 사용자 컴퓨터로서, 사용자는 당해 그래픽 사용자 인터페이스 또는 당해 웹 브라우저를 통해 여기에서 설명한 시스템 및 기술의 실시형태와 인터랙티브 할 수 있음) 또는 이러한 백그라운드 부재, 미들웨어 부재 또는 프론트 엔드 부재의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들면, 통신 네트워크)을 통해 시스템의 부재를 서로 연결할 수 있다. 통신 네트워크의 예로는 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷 및 블록체인 네트워크를 포함할 수 있다.
컴퓨터 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터랙티브 한다. 상응한 컴퓨터에서 운행되고 서로 클라이언트-서버 관계를 가지는 컴퓨터 프로그램을 통해 클라이언트와 서버 간의 관계를 발생한다. 서버는 클라우드 서버일 수도 있고 분포형 시스템의 서버일 수도 있거나 또는 블록체인을 결합한 서버일 수도 있다.
본 발명의 실시예에 따르면, 본 발명은컴퓨터 판독 가능 저장 매체에 저장되어 있는 컴퓨터 프로그램을 더 제공하는데, 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 본 발명에 따른 실시예에 도시된 데이터 처리 방법의 단계를 구현한다.
이해해야 할 것은, 이상에서 설명한 여러 가지 형태의 과정을 다시 정렬시키고 증가 또는 삭제하는 단계를 사용할 수 있다. 예를 들면, 본 발명에서 기재한 각 단계는 동시에 수행할 수도 있고 순차적으로 수행할 수도 있으며 상이한 순서로 수행할 수도 있는 바, 본 발명에서 개시한 기술적 해결수단에서 기대하는 결과를 실현할 수만 있다면 본 내용은 이에 대해 한정하지 않는다.
상기 구체적인 실시형태는 본 발명의 보호범위를 한정하지 않는다. 본 기술분야에서 통상의 지식을 가진 자들은 설계 요구와 기타 요소에 따라 여러 가지 수정, 조합, 하위 조합과 대체를 실행할 수 있다는 것을 이해할 수 있다. 본 발명의 정신과 원칙 내에서 실행한 그 어떤 수정, 균등한 대체와 개선은 모두 본 발명의 보호범위 내에 포함된다.

Claims (41)

  1. 데이터 처리 방법에 있어서,
    입력 데이터의 제1 속성 정보를 획득하고, 상기 입력 데이터에 대응하는 연산 기기의 제2 속성 정보를 획득하는 단계;
    상기 제1 속성 정보와 상기 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 단계;
    상기 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 상기 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 상기 연산자를 생성하는 단계; 및
    상기 연산 기기가 상기 연산자에 따라 상기 입력 데이터를 연산하여 연산 결과를 획득하는 단계;를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  2. 제1항에 있어서,
    상기 제1 속성 정보와 상기 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 단계는,
    상기 제1 속성 정보와 상기 제2 속성 정보에 따라 상기 후보 연산자 구현 방식에 대해 성능 평가를 실행하여, 대응하는 성능 평가 결과를 획득하는 단계; 및
    상기 성능 평가 결과에 따라 상기 후보 연산자 구현 방식에서 상기 타깃 연산자 구현 방식을 선택하는 단계;를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  3. 제2항에 있어서,
    상기 제1 속성 정보와 상기 제2 속성 정보에 따라 상기 후보 연산자 구현 방식에 대해 성능 평가를 실행하여, 대응하는 성능 평가 결과를 획득하는 단계는,
    상기 연산자의 상기 후보 연산자 구현 방식에 대응하는 과거 성능 평가 결과를 획득하는 단계; 및
    상기 제1 속성 정보와 상기 제2 속성 정보에 따라 상기 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 상기 성능 평가 결과로 하는 단계;를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  4. 제2항에 있어서,
    상기 제1 속성 정보와 상기 제2 속성 정보에 따라 상기 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 상기 성능 평가 결과로 하는 단계는,
    상기 과거 성능 평가 결과에 따라 대응하는 과거 입력 데이터와 과거 운행기기를 획득하는 단계; 및
    상기 과거 성능 평가 결과에서의 상기 과거 입력 데이터의 제1 속성 정보와 상기 입력 데이터의 제1 속성 정보, 및 상기 과거 연산 기기의 제2 속성 정보와 상기 연산 기기의 제2 속성 정보에 기반하여 상기 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 상기 성능 평가 결과로 하는 단계;를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  5. 제4항에 있어서,
    상기 과거 성능 평가 결과에서의 상기 과거 입력 데이터의 제1 속성 정보와 상기 입력 데이터의 제1 속성 정보, 및 상기 과거 연산 기기의 제2 속성 정보와 상기 연산 기기의 제2 속성 정보에 기반하여 상기 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 상기 성능 평가 결과로 하는 단계는,
    상기 과거 입력 데이터의 제1 속성 정보와 상기 입력 데이터의 제1 속성 정보를 비교하는 단계;
    상기 과거 연산 기기의 제2 속성 정보와 상기 연산 기기의 제2 속성 정보를 비교하는 단계;
    상기 과거 성능 평가 결과에서, 상기 입력 데이터의 제1 속성 정보와 일치한 동시에 상기 연산 기기의 제2 속성 정보와 일치한 타깃 성능 평가 결과를 선택하여 상기 성능 평가 결과로 하는 단계;를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  6. 제4항에 있어서,
    상기 성능 평가 결과에 따라 상기 후보 연산자 구현 방식에서 상기 타깃 연산자 구현 방식을 선택하는 단계는,
    상기 성능 평가 결과에 대응하는 후보 연산자 구현 방식을 상기 타깃 연산자 구현 방식으로 결정하는 단계를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  7. 제5항에 있어서,
    상기 제1 속성 정보와 상기 제2 속성 정보에 따라 상기 후보 연산자 구현 방식에 대해 성능 평가를 실행하여, 대응하는 성능 평가 결과를 획득하는 단계는,
    상기 과거 성능 평가 결과에 상기 타깃 성능 평가 결과가 포함되지 않는 것에 응답하여, 상기 제1 속성 정보, 상기 제2 속성 정보 및 상기 연산자에 따라 상기 후보 연산자 구현 방식의 손실 정보를 획득하고, 상기 손실 정보에 기반하여 상기 후보 연산자 구현 방식의 성능 평가 결과를 생성하는 단계를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  8. 제7항에 있어서,
    상기 손실 정보에 기반하여 상기 후보 연산자 구현 방식의 성능 평가 결과를 생성한 후에,
    상기 타깃 연산자 구현 방식에 대응하는 성능 평가 결과를 상기 제1 속성 정보, 상기 제2 속성 정보와 바인딩하여, 하나의 새로운 과거 성능 평가 결과로서 저장하는 단계를 더 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  9. 제7항에 있어서,
    상기 성능 평가 결과에는 복수의 성능 지수가 포함되고, 상기 성능 평가 결과에 따라 상기 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 단계는,
    상기 타깃 연산자 구현 방식을 선택하기 위한 타깃 성능 지수를 결정하는 단계; 및
    상기 타깃 성능 지수와 상기 성능 평가 결과에 기반하여 상기 후보 연산자 구현 방식에서 상기 타깃 연산자 구현 방식을 선택하는 단계;를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  10. 제9항에 있어서,
    상기 타깃 성능 지수와 상기 성능 평가 결과에 기반하여 상기 후보 연산자 구현 방식에서 상기 타깃 연산자 구현 방식을 선택하는 단계는,
    성능 선호 선택 책략을 획득하고, 상기 성능 선호 선택 책략에 따라 타깃 성능 지수를 결정하는 단계;
    상기 성능 평가 결과에서 상기 타깃 성능 지수의 지수 평가 결과를 획득하는 단계; 및
    상기 지수 평가 결과에 따라 상기 후보 연산자 구현 방식에서 상기 타깃 연산자 구현 방식을 선택하는 단계;를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  11. 제1항에 있어서,
    상기 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 상기 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 상기 연산자를 생성하는 단계는,
    상기 타깃 연산자 구현 방식이 연산자 조합 구현 방식인 것에 응답하여, 상기 입력 데이터의 제1 속성 정보에 따라 필요한 연산자와 상기 연산자에 포함되는 적어도 하나의 제1 하위 연산자 및 상기 제1 하위 연산자 사이의 조합 순서를 획득하는 단계; 및
    상기 조합 순서에 기반하여 상기 제1 하위 연산자를 상기 연산자로 순서 조합하는 단계;를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  12. 제1항에 있어서,
    상기 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 상기 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 상기 연산자를 생성하는 단계는,
    상기 타깃 연산자 구현 방식이 연산자 컴파일러 구현 방식인 것에 응답하여, 상기 입력 데이터의 제1 속성 정보에 따라 필요한 연산자와 상기 연산자에 포함되는 적어도 하나의 제2 하위 연산자 및 상기 제2 하위 연산자의 컴파일 순서를 획득하는 단계;
    모든 상기 제2 하위 연산자에 대해 튜닝 처리를 실행하여 튜닝된 타깃 제2 하위 연산자를 획득하는 단계; 및
    상기 컴파일 순서에 기반하여 상기 타깃 제2 하위 연산자에 대해 순서 컴파일을 실행하여, 상기 연산자를 생성하는 단계;를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  13. 제12항에 있어서,
    모든 상기 제2 하위 연산자에 대해 튜닝 처리를 실행하여 튜닝된 타깃 제2 하위 연산자를 획득하는 단계는,
    타깃 튜닝 책략을 획득하고, 상기 타깃 튜닝 책략에 따라 모든 상기 제2 하위 연산자에 대해 연산자 융합을 실행하여, 융합 하위 연산자를 획득하는 단계;
    상기 융합 하위 연산자에 대해 연산자 그루핑 및 연산자 스케줄링을 실행하여 상기 타깃 제2 하위 연산자를 획득하는 단계를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  14. 제13항에 있어서,
    상기 타깃 튜닝 책략을 획득하는 단계는,
    상기 제1 속성 정보에 따라 상기 입력 데이터의 데이터 모양을 결정하는 단계;
    상기 데이터 모양에 따라 대응하는 상기 타깃 튜닝 책략을 획득하는 단계;를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  15. 제1항에 있어서,
    상기 연산 기기가 상기 연산자에 따라 상기 입력 데이터를 연산하여 연산 결과를 획득하는 단계는,
    상기 입력 데이터의 상기 연산자에 기반하여 상기 입력 데이터에 대응하는 심층 신경망의 연산자 집합을 생성하는 단계; 및
    상기 연산자 집합을 상기 연산 기기에 배분하여 상기 심층 신경망을 구축하고, 상기 심층 신경망에 의해 상기 입력 데이터를 연산하여 상기 연산 결과를 획득하는 단계;를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  16. 제1항에 있어서,
    상기 연산 기기가 상기 연산자에 따라 상기 입력 데이터를 연산하여 연산 결과를 획득하는 단계는,
    상기 연산 과정을 모니터링하고, 상기 연산 과정 이상에 응답하여, 연산을 정지하고 이상 로그를 생성하는 단계를 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  17. 제16항에 있어서,
    상기 방법은,
    상기 연산자 연산 과정 이상에 응답하여, 상기 연산 기기의 제2 속성 정보에 기반하여 새로운 제1 연산 기기를 스케줄링하며, 상기 새로운 제1 연산 기기가 상기 연산자에 따라 상기 입력 데이터를 연산하여 연산 결과를 획득하는 단계를 더 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  18. 제16항에 있어서,
    상기 방법은,
    상기 연산자 연산 과정 이상에 응답하여, 상기 입력 데이터의 제1 속성 정보에 기반하여 새로운 제2 연산 기기를 스케줄링하며, 상기 제2 연산 기기의 제2 속성 정보를 획득하고, 상기 제1 속성 정보와 상기 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 단계 및 후속 단계로 리턴하여 수행하는 단계를 더 포함하는,
    것을 특징으로 하는 데이터 처리 방법.
  19. 제1항에 있어서,
    입력 데이터의 제1 속성 정보를 획득하기 전에,
    데이터 처리 태스크를 수신하고, 상기 데이터 처리 태스크에서 상기 입력 데이터를 추출하는 단계를 더 포함하고, 상기 입력 데이터는 이미지 데이터, 오디오 주파수 데이터, 텍스트 데이터 중의 한 종류의 데이터인,
    것을 특징으로 하는 데이터 처리 방법.
  20. 데이터 처리 장치에 있어서,
    입력 데이터의 제1 속성 정보를 획득하고, 상기 입력 데이터에 대응하는 연산 기기의 제2 속성 정보를 획득하는 획득 모듈;
    상기 제1 속성 정보와 상기 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 선택 모듈;
    상기 타깃 연산자 구현 방식에 기반하여 연산자 라이브러리에서 입력 데이터에 필요한 연산자가 포함하는 하위 연산자를 결정하여, 상기 연산자를 생성하는 생성 모듈; 및
    상기 연산 기기가 상기 연산자에 따라 상기 입력 데이터를 연산하여 연산 결과를 획득하는 연산 모듈을 포함하는,
    것을 특징으로 하는 데이터 처리 장치.
  21. 제20항에 있어서,
    상기 선택 모듈은,
    상기 제1 속성 정보와 상기 제2 속성 정보에 따라 상기 후보 연산자 구현 방식에 대해 성능 평가를 실행하여, 대응하는 성능 평가 결과를 획득하고;
    상기 성능 평가 결과에 따라 상기 후보 연산자 구현 방식에서 상기 타깃 연산자 구현 방식을 선택하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  22. 제21항에 있어서,
    상기 선택 모듈은,
    상기 연산자의 상기 후보 연산자 구현 방식에 대응하는 과거 성능 평가 결과를 획득하고;
    상기 제1 속성 정보와 상기 제2 속성 정보에 따라 상기 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 상기 성능 평가 결과로 하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  23. 제21항에 있어서,
    상기 선택 모듈은,
    상기 과거 성능 평가 결과에 따라 대응하는 과거 입력 데이터와 과거 운행기기를 획득하고;
    상기 과거 성능 평가 결과에서의 상기 과거 입력 데이터의 제1 속성 정보와 상기 입력 데이터의 제1 속성 정보, 및 상기 과거 연산 기기의 제2 속성 정보와 상기 연산 기기의 제2 속성 정보에 기반하여 상기 과거 성능 평가 결과에서 타깃 성능 평가 결과를 선택하여 상기 성능 평가 결과로 하는데 더 사용되는,

    것을 특징으로 하는 데이터 처리 장치.
  24. 제23항에 있어서,
    상기 선택 모듈은,
    상기 과거 입력 데이터의 제1 속성 정보와 상기 입력 데이터의 제1 속성 정보를 비교하고;
    상기 과거 연산 기기의 제2 속성 정보와 상기 연산 기기의 제2 속성 정보를 비교하며;
    상기 과거 성능 평가 결과에서, 상기 입력 데이터의 제1 속성 정보와 일치한 동시에 상기 연산 기기의 제2 속성 정보와 일치한 타깃 성능 평가 결과를 선택하여 상기 성능 평가 결과로 하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  25. 제23항 또는 제24항에 있어서,
    상기 선택 모듈은,
    상기 성능 평가 결과에 대응하는 후보 연산자 구현 방식을 상기 타깃 연산자 구현 방식으로 결정하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  26. 제24항에 있어서,
    상기 선택 모듈은,
    상기 과거 성능 평가 결과에 타깃 성능 평가 결과가 포함되지 않는 것에 응답하여, 상기 제1 속성 정보, 상기 제2 속성 정보 및 상기 연산자에 따라 상기 후보 연산자 구현 방식의 손실 정보를 획득하고, 상기 손실 정보에 기반하여 상기 후보 연산자 구현 방식의 성능 평가 결과를 생성하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  27. 제26항에 있어서,
    상기 선택 모듈은,
    상기 타깃 연산자 구현 방식에 대응하는 성능 평가 결과를 상기 제1 속성 정보, 상기 제2 속성 정보와 바인딩하여, 하나의 새로운 과거 성능 평가 결과로서 저장하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  28. 제26항에 있어서,
    상기 선택 모듈은,
    상기 타깃 연산자 구현 방식을 선택하기 위한 타깃 성능 지수를 결정하고;
    상기 타깃 성능 지수와 상기 성능 평가 결과에 기반하여 상기 후보 연산자 구현 방식에서 상기 타깃 연산자 구현 방식을 선택하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  29. 제28항에 있어서,
    상기 선택 모듈은,
    성능 선호 선택 책략을 획득하고, 상기 성능 선호 선택 책략에 따라 타깃 지수를 결정하며;
    상기 성능 평가 결과에서 상기 타깃 성능 지수와 매칭되는 지수 평가 결과를 선택하고;
    상기 지수 평가 결과에 따라 상기 후보 연산자 구현 방식에서 상기 타깃 연산자 구현 방식을 선택하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  30. 제20항 내지 제22항 중 어느 한 항에 있어서,
    상기 생성 모듈은,
    상기 타깃 연산자 구현 방식이 연산자 조합 구현 방식인 것에 응답하여, 상기 입력 데이터의 제1 속성 정보에 따라 필요한 연산자와 상기 연산자에 포함되는 적어도 하나의 제1 하위 연산자 및 상기 제1 하위 연산자 사이의 조합 순서를 획득하고;
    상기 조합 순서에 기반하여 상기 제1 하위 연산자를 상기 연산자로 순서 조합하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  31. 제20항 내지 제22항 중 어느 한 항에 있어서,
    상기 생성 모듈은,
    상기 타깃 연산자 구현 방식이 연산자 컴파일러 구현 방식인 것에 응답하여, 상기 입력 데이터의 제1 속성 정보에 따라 필요한 연산자와 상기 연산자에 포함되는 적어도 하나의 제2 하위 연산자 및 상기 제2 하위 연산자의 컴파일 순서를 획득하고;
    모든 상기 제2 하위 연산자에 대해 튜닝 처리를 실행하여 튜닝된 타깃 제2 하위 연산자를 획득하고;
    상기 컴파일 순서에 기반하여 상기 타깃 제2 하위 연산자에 대해 순서 컴파일을 실행하여, 상기 연산자를 생성하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  32. 제31항에 있어서,
    상기 생성 모듈은,
    타깃 튜닝 책략을 획득하고, 상기 타깃 튜닝 책략에 따라 모든 상기 제2 하위 연산자에 대해 연산자 융합을 실행하여, 융합 하위 연산자를 획득하고;
    상기 융합 하위 연산자에 대해 연산자 그루핑 및 연산자 스케줄링을 실행하여 상기 타깃 제2 하위 연산자를 획득하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  33. 제32항에 있어서,
    상기 생성 모듈은,
    상기 제1 속성 정보에 따라 상기 입력 데이터의 데이터 모양을 결정하고;
    상기 데이터 모양에 따라 대응하는 상기 타깃 튜닝 책략을 획득하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  34. 제20항에 있어서,
    상기 연산 모듈은,
    상기 입력 데이터의 상기 연산자에 기반하여 상기 입력 데이터에 대응하는 심층 신경망의 연산자 집합을 생성하고;
    상기 연산자 집합을 상기 연산 기기에 배분하여 상기 심층 신경망을 구축하고, 상기 심층 신경망에 의해 상기 입력 데이터를 연산하여 상기 연산 결과를 획득하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  35. 제20항에 있어서,
    상기 연산 모듈은,
    상기 연산 과정을 모니터링하고, 상기 연산 과정 이상에 응답하여, 연산을 정지하고 이상 로그를 생성하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  36. 제35항에 있어서,
    상기 연산 모듈은,
    상기 연산 기기의 제2 속성 정보에 기반하여 새로운 제1 연산 기기를 스케줄링하며, 상기 새로운 제1 연산 기기가 상기 연산자에 따라 상기 입력 데이터를 연산하여 연산 결과를 획득하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  37. 제35항에 있어서,
    상기 연산 모듈은,
    상기 입력 데이터의 제1 속성 정보에 기반하여 새로운 제2 연산 기기를 스케줄링하며, 상기 제2 연산 기기의 제2 속성 정보를 획득하고, 상기 제1 속성 정보와 상기 제2 속성 정보에 따라 후보 연산자 구현 방식에서 타깃 연산자 구현 방식을 선택하는 단계 및 후속 단계로 리턴하여 수행하는데 더 사용되는,
    것을 특징으로 하는 데이터 처리 장치.
  38. 제20항에 있어서,
    상기 획득 모듈은,
    데이터 처리 태스크를 수신하고, 상기 데이터 처리 태스크에서 상기 입력 데이터를 추출하는데 더 사용되되, 상기 입력 데이터는 이미지 데이터, 오디오 주파수 데이터, 텍스트 데이터 중의 한 종류의 데이터인,
    것을 특징으로 하는 데이터 처리 장치.
  39. 전자기기에 있어서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서와 통신 가능하게 연결되는 메모리를 포함하고,
    상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되어 있고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제19항 중 어느 한 항에 따른 방법을 수행하도록 하는,
    것을 특징으로 하는 전자기기.
  40. 컴퓨터 명령이 저장되어 있는 비일시적 컴퓨터 판독 가능 저장매체에 있어서,
    상기 컴퓨터 명령은 컴퓨터로 하여금 제1항 내지 제19항 중 어느 한 항에 따른 방법을 수행하도록 하는,
    것을 특징으로 하는 비일시적 컴퓨터 판독 가능 저장매체.
  41. 컴퓨터 판독 가능 저장 매체에 저장되어 있는 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 제1항 내지 제19항 중 어느 한 항에 따른 방법을 구현하는,
    것을 특징으로 하는 컴퓨터 프로그램.
KR1020220162525A 2021-12-31 2022-11-29 데이터 처리 방법, 장치, 전자기기, 저장매체 및 프로그램 KR20220166241A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111659099.2 2021-12-31
CN202111659099.2A CN114492737B (zh) 2021-12-31 2021-12-31 数据处理方法、装置及电子设备、存储介质及程序产品

Publications (1)

Publication Number Publication Date
KR20220166241A true KR20220166241A (ko) 2022-12-16

Family

ID=81497195

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220162525A KR20220166241A (ko) 2021-12-31 2022-11-29 데이터 처리 방법, 장치, 전자기기, 저장매체 및 프로그램

Country Status (4)

Country Link
EP (1) EP4113390A3 (ko)
JP (1) JP2023036773A (ko)
KR (1) KR20220166241A (ko)
CN (1) CN114492737B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115145965B (zh) * 2022-09-01 2022-11-22 浙江大华技术股份有限公司 数据流的生成方法、电子设备及计算机可读存储介质
CN116483482B (zh) * 2023-05-19 2024-03-01 北京百度网讯科技有限公司 深度学习任务处理方法、系统、装置、设备及介质

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558056B2 (en) * 2013-07-28 2017-01-31 OpsClarity Inc. Organizing network performance metrics into historical anomaly dependency data
CN105787619A (zh) * 2014-12-25 2016-07-20 阿里巴巴集团控股有限公司 一种数据处理方法、装置及系统
CN108764487B (zh) * 2018-05-29 2022-07-08 北京百度网讯科技有限公司 用于生成模型的方法和装置、用于识别信息的方法和装置
CN110766147B (zh) * 2018-07-25 2022-10-11 赛灵思公司 神经网络编译器架构及编译方法
CN110968404B (zh) * 2018-09-30 2023-04-28 阿里巴巴集团控股有限公司 一种设备数据处理方法及装置
CN110210605B (zh) * 2019-05-31 2023-04-07 Oppo广东移动通信有限公司 硬件算子匹配方法及相关产品
CN110458294B (zh) * 2019-08-19 2022-02-25 Oppo广东移动通信有限公司 模型运行方法、装置、终端及存储介质
CN110689121A (zh) * 2019-09-24 2020-01-14 上海寒武纪信息科技有限公司 一种用多核处理器实现神经网络模型拆分方法及相关产品
CN111210005B (zh) * 2019-12-31 2023-07-18 Oppo广东移动通信有限公司 设备运行方法、装置、存储介质及电子设备
CN113128678A (zh) * 2020-01-15 2021-07-16 华为技术有限公司 神经网络的自适应搜索方法及装置
CN111340237B (zh) * 2020-03-05 2024-04-26 腾讯科技(深圳)有限公司 数据处理和模型运行方法、装置和计算机设备
CN111783952B (zh) * 2020-06-30 2023-07-14 北京百度网讯科技有限公司 配置方法、装置、系统、电子设备以及存储介质
CN111899149A (zh) * 2020-07-09 2020-11-06 浙江大华技术股份有限公司 基于算子融合的图像处理方法和装置、存储介质
CN111782402A (zh) * 2020-07-17 2020-10-16 Oppo广东移动通信有限公司 数据处理方法、装置以及电子设备
CN112200310B (zh) * 2020-08-28 2023-11-24 星宸科技股份有限公司 智能处理器、数据处理方法及存储介质
CN112084210A (zh) * 2020-09-28 2020-12-15 中国建设银行股份有限公司 数据处理方法、装置、电子设备及存储介质
CN112069204A (zh) * 2020-09-30 2020-12-11 北京百度网讯科技有限公司 用于算子服务的处理方法、装置、智能工作站和电子设备
CN112269723B (zh) * 2020-10-16 2023-01-10 苏州浪潮智能科技有限公司 存储设备的性能分析方法、装置及可读存储介质
CN112270413B (zh) * 2020-10-22 2024-02-27 北京百度网讯科技有限公司 算子合并方法、装置、电子设备及存储介质
CN112328378B (zh) * 2020-11-05 2023-03-24 南京星环智能科技有限公司 任务调度方法、计算机设备及存储介质
CN112560985B (zh) * 2020-12-25 2024-01-12 北京百度网讯科技有限公司 神经网络的搜索方法、装置及电子设备
CN112799642B (zh) * 2021-01-18 2022-04-05 北京百度网讯科技有限公司 用于处理数据的方法、装置、设备以及存储介质
CN113159091B (zh) * 2021-01-20 2023-06-20 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质
CN112948079B (zh) * 2021-02-18 2022-06-28 北京百度网讯科技有限公司 任务调度方法、装置、设备和计算机存储介质
CN113065639B (zh) * 2021-03-08 2023-06-13 深圳云天励飞技术股份有限公司 算子融合方法、系统、设备及存储介质
CN112860534B (zh) * 2021-03-17 2022-10-25 上海壁仞智能科技有限公司 硬件架构性能评估和性能优化方法及装置
CN113128702A (zh) * 2021-04-15 2021-07-16 杭州电子科技大学 一种基于强化学习的神经网络自适应分布式并行训练方法
CN113312175A (zh) * 2021-04-27 2021-08-27 北京迈格威科技有限公司 一种算子确定、运行方法及装置
CN113031966B (zh) * 2021-05-20 2021-09-21 之江实验室 一种智能选择编译加速库的深度学习编译优化方法
CN113378093A (zh) * 2021-06-25 2021-09-10 北京百度网讯科技有限公司 资源发布策略的确定方法、装置、电子设备及存储介质
CN113703741B (zh) * 2021-10-29 2022-02-22 深圳思谋信息科技有限公司 神经网络编译器配置方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
EP4113390A3 (en) 2023-05-03
US20230115163A1 (en) 2023-04-13
CN114492737B (zh) 2022-12-09
EP4113390A2 (en) 2023-01-04
CN114492737A (zh) 2022-05-13
JP2023036773A (ja) 2023-03-14

Similar Documents

Publication Publication Date Title
US11455473B2 (en) Vector representation based on context
CN106919655B (zh) 一种答案提供方法和装置
US11915123B2 (en) Fusing multimodal data using recurrent neural networks
KR20220166241A (ko) 데이터 처리 방법, 장치, 전자기기, 저장매체 및 프로그램
CN111814951B (zh) 调试深度神经网络
KR20200098378A (ko) 설명 정보 확정 방법, 장치, 전자 기기 및 컴퓨터 저장 매체
CN112699991A (zh) 用于加速神经网络训练的信息处理的方法、电子设备和计算机可读介质
US20140208296A1 (en) API Usage Pattern Mining
US11861469B2 (en) Code generation for Auto-AI
CN110543571A (zh) 用于水利信息化的知识图谱构建方法以及装置
CN115335821B (zh) 卸载统计收集
US20200349226A1 (en) Dictionary Expansion Using Neural Language Models
EP3912099A1 (en) Compound model scaling for neural networks
JP7408741B2 (ja) マルチタスクのデプロイ方法、装置、電子機器及び記憶媒体
CN114357105A (zh) 地理预训练模型的预训练方法及模型微调方法
JP2024507902A (ja) 情報検索方法、装置、電子機器および記憶媒体
US11651159B2 (en) Semi-supervised system to mine document corpus on industry specific taxonomies
US20200110834A1 (en) Dynamic Linguistic Assessment and Measurement
WO2024040844A1 (zh) 模型调试方法、装置、电子设备及存储介质
CN114897183A (zh) 问题数据处理方法、深度学习模型的训练方法和装置
US20220122038A1 (en) Process Version Control for Business Process Management
US11734602B2 (en) Methods and systems for automated feature generation utilizing formula semantification
US11983086B2 (en) Method for processing data, and electronic device, storage medium and program product
CN113962549A (zh) 一种基于电网运行知识的业务流程编排方法及系统
CN114385829A (zh) 知识图谱创建方法、装置、设备以及存储介质