KR20210142784A - 데이터 처리방법 및 관련제품 - Google Patents

데이터 처리방법 및 관련제품 Download PDF

Info

Publication number
KR20210142784A
KR20210142784A KR1020197037882A KR20197037882A KR20210142784A KR 20210142784 A KR20210142784 A KR 20210142784A KR 1020197037882 A KR1020197037882 A KR 1020197037882A KR 20197037882 A KR20197037882 A KR 20197037882A KR 20210142784 A KR20210142784 A KR 20210142784A
Authority
KR
South Korea
Prior art keywords
artificial intelligence
processor
cloud
learning task
execution result
Prior art date
Application number
KR1020197037882A
Other languages
English (en)
Other versions
KR102544522B1 (ko
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 KR20210142784A publication Critical patent/KR20210142784A/ko
Application granted granted Critical
Publication of KR102544522B1 publication Critical patent/KR102544522B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural 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/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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 출원의 실시예는 데이터 처리방법 및 관련제품을 개시한다. 당해 데이터 처리방법은 상기 범용 프로세서가 엔드 측의 인공지능 프로세서의 설비정보에 따라 바이너리 명령을 생성하고, 상기 바이너리 명령에 따라 인공지능 학습 태스크를 생성하는 것; 상기 범용 프로세서가 상기 인공지능 학습 태스크를 클라우드 측의 인공지능 프로세서에 송신하여 실행시키는 것; 상기 범용 프로세서가 상기 인공지능 학습 태스크에 대응하는 실행결과를 수신하는 것; 상기 범용 프로세서가 상기 실행결과에 따라 오프라인 실행 파일을 확정하는 것을 포함하며, 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족하면 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 생성된다. 본 출원에 따르면 사전에 인공지능 알고리즘 모델과 인공지능 프로세서 사이의 디버깅 작업을 실현할 수 있다.

Description

데이터 처리방법 및 관련제품{DATA PROCESSING METHOD AND RELATED PRODUCTS}
[관련출원의 상호참조]
본 출원은 파리 조약에 따라 2019년 4월 18일 중국 국가지식산권국에 제출한 중국 특허출원번호가 201910315962.9이고 발명의 명칭이 "일종 데이터 처리방법 및 관련제품"인 우선권 및 2019년 5월 23일에 중국 국가지식산권국에 제출한 중국 특허출원번호가 201910436801.5이고 발명의 명칭이 "일종 데이터 처리방법 및 관련제품"인 우선권을 주장한다.
본 출원은 인공지능 프로세서 기술분야에 관련되며, 특히 데이터 처리방법 및 관련제품에 관한 것이다.
종래기술에서 인공지능 프로세서가 성공적으로 테이프 아웃 될 때 알고리즘 애플리케이션 개발자는 대응하는 버전의 인공지능 프로세서(하드웨어 실체)에서 개발하고 테스트할 수 있다.
상술한 설명으로부터 이해할 수 있는 바와 같이, 종래기술에서 인공지능 프로세서가 테이프 아웃항 후에 라야 개발한 인공지능 알고리즘이 대응하는 버전의 인공지능 프로세서에서 실행한 기능결과 및 성능결과를 알 수 있다. 그리고 엔드 측의 인공지능 프로세서가 테이프 아웃되지 않아도 알고리즘 애플리케이션 개발자가 인공지능 알고리즘 모델과 인공지능 프로세서 사이의 디버깅 작업을 실현할 수 있는 방법은 해결해야 할 시급한 문제로 되고 있다.
본 출원의 실시예는 인공지능 프로세서의 테이프 아웃 여부에 관계없이 인공지능 알고리즘 모델과 인공지능 프로세서 사이의 디버깅 작업을 사전에 실현할 수 있는 데이터 처리방법 및 관련제품을 제공하는 것을 목적으로 하고 있다.
상술한 목적을 달성하기 위해 본 출원은 클라우드 측의 인공지능 프로세서에 적용되는 데이터 처리방법을 제안하는 바,
엔드 측의 인공지능 프로세서의 설비정보에 의해 생성되는 바이너리 명령에 따라 확정되는 인공지능 학습 태스크를 수신하는 것, 및
상기 인공지능 학습 태스크를 수행하여 실행결과를 생성하는 것을 포함한다.
상술한 목적을 달성하기 위해 본 출원은 엔드 측의 인공지능 프로세서의 설비정보에 의해 생성되는 바이너리 명령에 따라 확정되는 인공지능 학습 태스크를 수신하기 위한 수신모듈과, 상기 인공지능 학습 태스크를 수행하여 실행결과를 생성하기 위한 수행모듈을 포함하는 인공지능 프로세서를 제안한다.
본 발명의 기술적 효과는 다음과 같다. 즉 본 발명이 소프트웨어 개발 플랫폼을 제공하며, 사용자는 당해 소프트웨어 개발 플랫폼에서 알고리즘과 인공지능 프로세서 사이의 기능, 성능, 정확도의 디버깅을 완성할 수 있고, 디버깅 완료 후에 생성된 오프라인 실행 파일은 호환성이 있는 아키텍처 위의 다양한 SoC 칩에 배포할 수 있으며, 사용자가 하드웨어 실체를 입수하지 않아도 사전에 알고리즘과 인공지능 프로세서 사이의 기능, 성능, 정확도를 디버깅할 수 있고, 제품의 개발주기가 크게 단축된다는 장점이 있다. 또한, SoC 칩마다 개별적으로 개발하거나 또는 일련의 개발환경에 적응시킬 필요가 없다.
이하, 본 발명의 실시예의 기술방안을 보다 명확하게 설명하기 위해 실시예의 도면에 대해 간단히 설명하지만, 다음에 설명되는 도면이 본 발명의 일부 실시예에 불과하며 본 발명에 대한 제한이 아닌 것은 분명할 것이다.
도1은 본 기술방안에 따른 아키텍처의 모식도이고,
도2는 인공지능 프로세서의 소프트웨어 스택의 구조모식도이고,
도3은 본 기술방안에 따른 애플리케이션 시나리오의 제1모식도이고,
도4는 본 기술방안에 따른 애플리케이션 시나리오의 제2모식도이고,
도5는 본 출원이 제안하는 데이터 처리방법의 제1흐름도이고,
도6은 인공지능 학습 라이브러리에 의해 지원되는 다양한 유형의 기본 연산자의 모식도이고,
도7은 본 출원이 제안하는 데이터 처리방법의 제2흐름도이고,
도8은 본 출원이 제안하는 데이터 처리방법의 제3흐름도이고,
도9는 본 출원이 제안하는 데이터 처리방법의 제4흐름도이고,
도10은 본 출원이 제안하는 데이터 처리장치의 기능 블록도이고,
도11은 본 출원이 제안하는 인공지능 프로세서의 제1기능 블록도이고,
도12는 본 출원이 제안하는 인공지능 프로세서의 제2기능 블록도이고,
도13은 본 출원이 제안하는 데이터 처리 시스템의 구조모식도이다.
이하, 본 발명의 실시예의 기술방안에 대해 도면을 참조하면서 명확하고 완전하게 설명한다. 도면에 도시되고 이하의 설명에서 상세히 서술한 비 제한적으로 예시한 실시예를 참조하여 더 전면적으로 본 발명이 개시한 예시적인 실시예 및 그들의 다양한 특징과 유리한 세부사항을 설명한다. 그리고 도면에 도시된 특징들은 반드시 일정한 비율로 그려진 것이 아니라는 점에 유의해야 한다. 본 발명은 본 개시의 예시적인 실시예를 모호하게 하지 않기 위해 공개된 재료, 구성요소 및 프로세스 기술의 설명을 생략하고 있다. 주어진 예들은 본 발명의 실시예들의 구현의 이해를 용이하게 하고 당해 발명이 속하는 분야에서 통상의 지식을 가진 자가 실시예를 실시할 수 있게 하기 위한 것일 뿐이다. 이와 같이 이들 예는 본 발명의 실시예의 범위를 한정하는 것으로 이해되지 않아야 한다.
다르게 정의되지 않는 한, 본 발명에서 사용된 기술용어 또는 과학적 용어는 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 이해되는 일반적인 의미로 이해 될 것이다. 본 발명에서 사용된 "제1", "제2" 및 유사한 용어들은 임의의 순서, 수량 또는 중요도를 나타내는 것이 아니라 상이한 구성요소를 구별하기 위해서만 사용된다. 또한, 본 발명의 각 실시예에서 동일하거나 유사한 참조부호는 동일하거나 유사한 부재를 나타낸다.
기술적 해결책의 보다 나은 이해를 돕기 위해 이하에서 본 출원의 실시예에 관련된 기술적 용어들을 먼저 설명한다.
테이프 아웃(Tape-Out): 집적회로 설계분야에서 테이프 아웃은 시험 생산, 즉 미리 설정된 기능을 충족하는 집적회로를 설계한 후 테스트용으로 먼서 몇개 또는 수십개를 생산하고, 테스트 수요가 충족되면 현재 테스트 수요를 충족하는 집적회로의 구조에 따라 대량 생산을 진행한다.
인공지능 프로세서의 소프트웨어 스택: 도2를 참조하면, 당해 소프트웨어 스택 구조(20)는 인공지능 애플리케이션(200), 인공지능 프레임 워크(202), 인공지능 학습 라이브러리(204), 인공지능 런타임 라이브러리(206) 및 드라이버(208)를 포함한다. 따라서 이에 대해 자세히 설명한다.
인공지능 애플리케이션(200)은 상이한 애플리케이션 시나리오에 대응하여 상응한 인공지능 알고리즘 모델을 제공한다. 당해 알고리즘 모델은 인공지능 프레임 워크(202)의 프로그래밍 인터페이스에 의해 직적 분석될 수 있으며, 가능한 구현 중 하나에서 인공지능 학습 라이브러리(204)를 통해 인공지능 알고리즘 모델을 바이너리 명령으로 변환하고, 인공지능 런타임 라이브러리(206)를 호출하여 바이너리 명령을 인공지능 학습 태스크로 변환하며, 당해 인공지능 학습 태스크를 태스크 큐에 배치하고 드라이버(208)에 의해 태스크 큐 중 인공지능 학습 태스크를 스케줄링하여 밑바닥의 인공지능 프로세서가 수행하게 한다. 다른 하나의 가능한 구현에서 인공지능 런타임 라이브러리(206)를 직접 호출하여 이전에 이미 경화하여 생성된 오프라인 실행 파일을 실행하여 소프트웨어 아키텍처의 중간 오버 헤드를 감소시키고 실행효율을 향상한다.
바이너리 명령: 밑바닥의 인공지능 프로세서가 인식할 수 있는 정보이다.
인공지능 프로세서: 특정 응용 프로세서라고도 하며, 특정 애플리케이션 또는 도메인을 위한 프로세서이다. 예를 들어: 디스플레이 코어, 비주얼 프로세서, 디스플레이 칩으로도 알려진 그래픽 프로세서(Graphics Processing Unit, GPU)는 일종의 개인용 컴퓨터, 워크 스테이션, 게임 콘솔 및 일부 모바일 장치(태블릿, 스마트 폰 등)에서 전문적으로 이미지 연산작업을 수행하는 특정 응용 프로세서이다. 또 예를 들면, 신경망 프로세서(Neural Processing Unit, NPU)는 인공지능 분야의 애플리케이션에서 행렬 곱셈 연산을 위한 특정 응용 프로세서로서, "데이터 드라이버 병렬 컴퓨팅"의 아키텍처를 채용하며, 특히 비디오, 이미지 유형의 대규모 멀티미디어 데이터를 처리하는 데 탁월하다.
재구성이 가능한 아키텍처: 어느 인공지능 프로세서가 재사용 가능한 하드웨어 리소스를 활용할 수 있는 경우, 각기 다른 애플리케이션 수요에 맞는 아키텍처를 제공하기 위해 각 특정 애플리케이션 수요에 따라 자체의 아키텍처를 유연하게 변경할 수 있다면 이 인공지능 프로세서를 재구성 가능한 컴퓨팅 시스템이라고 하며 아키텍처를 재구성 가능한 아키텍처라고 한다.
전용 프로그래밍 언어: 특정 하드웨어를 기반으로 개발한 고급 프로그래밍 언어이다. 예를 들어 Cuda C.
이하 첨부된 도면을 참조하여 본 발명의 실시예에 의해 제공되는 데이터 처리방법 및 관련제품의 구체적인 실시태양을 상세히 설명하기로 한다.
종래기술에서 알고리즘 애플리케이션의 개발자는 해당 버전 하드웨어 실체에서만 인공지능 알고리즘 모델과 인공지능 프로세서 사이의 적응 및 디버깅 작업을 완료할 수 있다. 또한, 종래기술의 구현은 테이프 아웃되지 않은 칩과 알고리즘 사이의 디버깅 프로세스를 실현할 수 없으며, 알고리즘 모델과 칩 사이의 적응작업을 완료하기 위해 특별한 시간이 필요하다는 것을 이해할 수 있다. 따라서 제품 출시 기한이 지연될 것이며 시간 문제로 인해 시장을 점유할 시회를 놓치기 쉽다.
이를 기반으로 본 출원은 테이프 아웃 여부에 관계없이 엔드 측의 인공지능 프로세서의 설비정보에 따라 클라우드 측에서 적합한 인공지능 프로세서를 매칭시켜 엔드 측의 인공지능 프로세서를 시뮬레이션하는 기술방안을 제안한다. 본 기술방안의 소프트웨어 개발 플랫폼이 사용자에게 제공하는 알고리즘 모델은 일련의 처리를 통해 대응하는 인공지능 학습 태스크를 얻으며, 당해 인공지능 학습 태스크는 클라우드 측의 인공지능 프로세서에 의해 실행되어 실행결과를 얻는다. 실행결과에 따라 소프트웨어 개발 플랫폼에서 인공지능 학습 태스크를 조정한다. 본 기술방안인 경우 인공지능 알고리즘 모델의 조정 여부에 관계없이 인공지능 학습 라이브러리를 최적화 및/또는 엔드 측의 인공지능 프로세서의 설비정보를 조정하는 것을 통해 인공지능 학습 태스크를 조정하는 목적을 달성할 수 있고, 엔드 측의 인공지능 프로세서와 인공지능 알고리즘 모델 사이의 적응을 실현할 수 있다.
도1을 참조하면, 본 기술방안의 시스템 아키텍처를 도시하고 있다. 도1에 도시된 바와 같이, 당해 시스템 아키텍처는 클라우드 측 설비(101), 소프트웨어 개발 플랫폼(102), 및 엔드 측 설비(103)를 포함한다.
구체적 실현에서 소프트웨어 개발 플랫폼(102)은 일련의 도구를 제공한다. 그 도구는 애플리케이션 개발, 성능 튜닝(tuning), 기능 디버깅 등을 포함한다. 그 중, 애플리케이션 개발도구는 인공지능 학습 라이브러리, 인공지능 런타임 라이브러리, 컴파일러(compiler) 및 특정 영역(비디오 분석 등)의 소프트웨어 개발도구를 포함한다. 기능 디버깅 도구는 프로그래밍 프레임 워크, 인공지능 학습 라이브러리 등 다양한 수준의 디버깅 수요를 충족할 수 있다. 성능 튜닝 도구는 성능분석도구 및 시스템 모니터링 도구 등을 포함한다. 컴파일러는 C++ 언어의 전통적인 컴파일러를 포함할 수 있고, C 언어와 유사한 언어를 기반으로 하는 기계학습 컴파일러, 또는 다른 고급 언어 또는 특별히 설계된 도메인 전용 프로그래밍 언어(Domain Specific Language)의 기계학습 컴파일러를 포함할 수도 있다. 바람직하게는, 당해 소프트웨어 개발 플랫폼은 클라우드 측 설비(101)의 프로세서에서 실행할 수 있으며, 호스트(host)의 컴퓨터 장치의 프로세서에서 실행할 수 있다. 당해 호스트의 컴퓨터 장치는 범용 프로세서(CPU 등) 및 디스플레이 등을 포함할 수 있으며, 여기에서 구체적으로 한정하지 않는다. 또한 바람직하게는, 전술한 소프트웨어 개발 플랫폼은 클라이언트 형태로 호스트의 컴퓨터 장치 또는 클라우드 장치에서 실행할 수 있으며, 본 출원의 실시예에서는 구체적으로 제한하지 않는다. 도3에 도시된 바와 같이, 본 기술방안의 애플리케이션 시나리오 중 하나를 모식적으로 나타내고 있다. 사용자가 데스크톱 컴퓨터의 소프트웨어 개발 플랫폼에 로그인하고 소프트웨어 개발 플랫폼에서 알고리즘 모델에 대응하는 인공지능 학습 태스크를 생성하며, 인공지능 학습 태스크가 클라우드 측의 인공지능 프로세서에서 실행된 결과에 근거하여 인공지능 학습 태스크를 조정한다. 도4에 도시된 바와 같이, 본 기술방안의 애플리케이션 시나리오 중 다른 하나를 모식적으로 나타내고 있다. 클라우드 장치(101)에는 인공지능 소프트웨어 개발 클라이언트가 설치되어 있다. 구체적으로, 클라우드 측 설비는 완전한 컴퓨터 시스템으로서 범용 프로세서와 적어도 하나의 인공지능 프로세서를 포함할 수 있다. 예를 들어, 인공지능 프로세서는 8개의 클러스터(cluster)를 포함하며, 각 클러스터에는 4개의 인공지능 프로세서 코어가 포함될 수 있다. 실제로, 소프트웨어 개발 플랫폼(102)은 사용자 레코드를 유지 및 보호하며, 당해 사용자 레코드는 데이터 블록 등 도구를 통해 저장되고, 레코드 내용은 사용자 개인정보(계정정보 등), 사용자에 의해 요구되는 서비스 정보를 포함한다. 그 중, 서비스 정보는 디버깅 수요, 엔드 측의 인공지능 프로세서의 설비정보를 포함하지만 이에 한정되지 않는다. 당해 디버깅 수요는 기능 디버깅 및 성능 디버깅을 포함하지만 이에 한정되지 않는다. 설비정보는 하드웨어 아키텍처 정보 및 실행환경 파라미터를 포함하지만 이에 한정되지 않는다. 실행환경 파라미터는 엔드 측의 인공지능 프로세서의 실행 메인 주파수, 오프 칩 메모리부터 엔드 측의 인공지능 프로세서 사이의 액세스 대역폭, 온칩 스토리지 크기, 엔드 측의 인공지능 프로세서의 코어 수, 및 엔드 측의 인공지능 프로세서의 연산장치 유형을 포함하지만 이에 한정되지 않는다.
구체적 실현에서 클라우드 측 설비(101)에는 인공지능 프로세서가 설치되어 있으며, 당해 인공지능 프로세서는 클라우드 측의 인공지능 프로세서라고 칭한다. 클라우드 측의 인공지능 프로세서는 인공지능 프로세서 칩, 필드 프로그래머블 게이트 어레이, 시뮬레이터를 포함하지만 이들에 한정되지 않는다. 인공지능 프로세서 칩은 재구성형 칩일 수도 있고, 비 재구성형 칩일 수도 있다. 클라우드 측 설비(101)는 서버 보드 또는 서버 보드 클러스터일 수도 있다.
구체적 실현에서 엔드 측 설비(103)에는 인공지능 프로세서가 설치되어 있으며, 당해 인공지능 프로세서는 엔드 측의 인공지능 프로세서라고 칭한다. 엔드 측 설비는 예를 들어 태불릿 컴퓨터, 휴대폰과 같은 단말 장치일 수 있다. 엔드 측 설비는 예를 들어 카메라와 같은 에지 장치일 수도 있다. 본 출원의 실시예에서 엔드 측 설비(103)가 테이프 아웃 않된 상태의 설비일 수도 있고, 이미 테이프 아웃된 설비일 수도 있다.
본 기술방안의 작동원리는 소프트웨어 개발 플랫폼(102)에서 드라이버가 엔드 측의 인공지능 프로세서의 설비정보에 근거하여 클라우드 측 설비(101)에서 엔드 측 설비(103)와 적응되는 인공지능 프로세서를 필터링한다. 필터링된 클라우드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보는 대응하는 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 호환되고, 클라우드 측의 인공지능 프로세서의 명령어 세트는 대응하는 엔드 측의 인공지능 프로세서의 명령어 세트호와 호환된다. 여기에서 클라우드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보가 대응하는 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 호환된다는 것은 클라우드 측의 인공지능 프로세서의 컴퓨팅 능력이 엔드 측의 인공지능 프로세서의 컴퓨팅 능력보다 크거나 같은 것을 포함한다.
소프트웨어 개발 플랫폼(102)에서 엔드 측의 인공지능 프로세서의 설비정보에 근거하여 인공지능 학습 라이브러리의 컴파일 된 인터페이스에 대응되는 소프트웨어 파라미터를 설정하고, 프로그래밍 프레임 워크에 의해 알고리즘 모델을 얻으며, 이미 설정된 인공지능 학습 라이브러리의 컴파일 된 인터페이스를 호출하여 컴파일하며 대응하는 엔드 측의 인공지능 프로세서의 바이너리 명령을 획득한다. 당해 바이너리 명령은 런타임 라이브러리의 처리에 의해 인공지능 학습 태스크를 생성한다. 인공지능 학습 태스크를 태스크 큐에 배치하여 최종적으로 드라이버에 의해 태스크 큐 중 인공지능 학습 태스크를 스케줄링하여 클라우드 측의 인공지능 프로세서가 수행하게 한다.
클라우드 측의 인공지능 프로세서가 수행하는 인공지능 학습 태스크에 근거하여 실행결과를 소프트웨어 개발 플랫폼(102)에 피드백한다. 바람직하게는, 소프트웨어 개발 플랫폼(102)은 실행결과를 표시할 수 있다. 실행결과에 따라 소프트웨어 개발 플랫폼(102)은 사용자의 조작명령을 수신하고, 소프트웨어 개발 플랫폼(102)은 조작명령에 따라 3가지 방법 중 적어도 한가지 방법을 수행하여 바이너리 명령을 조정한다. 이 3가지 방법은 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보를 조정하는 것, 상기 엔드 측의 인공지능 프로세서의 실행환경 파라미터를 조정하는 것, 및 인공지능 학습 태스크를 최적화하는 것으로 나뉜다. 조정 후의 바이너리 명령을 대응하는 인공지능 학습 태스크로 변환하고 태스크 큐에 배치하며, 드라이버에 의해 태스크 큐 중 인공지능 학습 태스크를 스케줄링하여 클라우드 측의 인공지능 프로세서가 피드백한 실행결과가 기대치와 일치할 때까지 클라우드 측의 인공지능 프로세서가 수행하게 한다.
본 기술방안에서 엔드 측의 인공지능 프로세서의 설비정보와 인공지능 학습 라이브러리의 컴파일 된 인터페이스의 소프트웨어 파라미터는 서로 대응되며, 당해 소프트웨어 파라미터는 보다 많은 정보, 예를 들어 램 크기(Ram size), 캐시(Cache) 크기, Cache를 통해 캐싱할지 여부 등을 포함한다. 이러한 정보는 바이너리 명령을 생성할 때 할당된 동작 도메인과 관련이 있으므로 인공지능 알고리즘 모델이 변경되지 않은 상황에서 엔드 측의 인공지능 프로세서의 설비정보를 변경하면 바이너리 명령을 조정하여 인공지능 학습 태스크를 조정할 수 있다. 엔드 측의 인공지능 프로세서의 테이프 아웃에 관계없이 엔드 측의 인공지능 프로세서의 설비정보에 근거하여 클라우드 측 설비(101)에서 적응해 낸 클라우드 측의 인공지능 프로세서는 엔드 측의 인공지능 프로세서를 시뮬레이션하여 클라우드 측의 인공지능 프로세서에서 대응하는 인공지능 학습 태스크를 수행할 수 있다. 실행결과에 따라 당해 소프트웨어 개발 플랫폼에서 알고리즘 모델과 인공지능 프로세서 사이의 기능, 성능, 정확도의 디버깅을 완성하며, 디버깅 완료 후에 생성된 오프라인 실행 파일은 호환 가능한 아키텍처 위의 다양한 엔드 측의 SoC칩에 배포할 수 있으며, 사용자가 하드웨어 실체를 입수하지 않아도 사전에 알고리즘 모델과 인공지능 프로세서 사이의 기능, 성능, 정확도를 디버깅할 수 있고, 제품의 개발주기를 크게 단축시킬 수 있다는 장점이 있다. 또한, 각 엔드 측의 SoC 칩마다 개별적으로 개발하거나 또는 일련의 개발환경에 적응시킬 필요가 없다.
또한, 본 기술방안에서 클라우드 측의 인공지능 프로세서의 설비정보에 대응하는 현재 실행환경 파라미터는 그의 실제 실행환경 파라미터와 같을 수 있으며, 또한 그희 실제 실행 파라미터와 다를 수도 있다. 특정 인공지능 학습 태스크에 대한 클라우드 측의 인공지능 프로세서의 수행결과에 따라 엔드 측의 인공지능 프로세서의 설비정보가 예상 조건에 해당하는지 여부를 확정한다. 엔드 측의 인공지능 프로세서의 설비정보가 예상 조건에 해당하지 않으면 진일보로 엔드 측의 인공지능 프로세서의 설비정보를 당해 엔드 측의 인공지능 프로세서의 설비정보가 예상 조건에 해당할 때까지 조정한다. 따라서, 본 기술방안인 경우, 엔드 측의 인공지능 프로세서의 아키텍처는 설계 단계에서 애플리케이션에 근거하여 엔드 측의 SoC 칩 설계 사양을 평가할 수도 있다.
전술한 설명에 근거하여 도5에 도시된 바와 같이, 본 출원이 제안하는 한 가지 데이터 처리방법의 흐름도를 나타내고 있다. 상기 방법은 범용 프로세서에 적용되며, 도1의 소프트웨어 개발 플랫폼에 대응된다. 상술한 바와 같이, 당해 범용 프로세서는 클라우드 측 설비(101)의 범용 프로세서일 수도 있고, 호스트(host)의 컴퓨터 장치의 범용 프로세서일 수도 있다. 당해 데이터 처리방법은 다음과 같은 단계를 포함한다.
단계(501): 상기 범용 프로세서가 엔드 측의 인공지능 프로세서의 설비정보에 따라 바이너리 명령을 생성하고, 상기 바이너리 명령에 따라 인공지능 학습 태스크를 생성한다.
본 기술방안에서 다양한 프로그래밍 프레임 워크, 예를 들어 구글 텐서 플로우 그래프 인공지능 학습시스템 TensorFlow, 딥 러닝 프레임 워크Caffe, Caffe2, MXNet등이 소프트웨어 개발 플랫폼(102)에 통합된다. Caffe를 예로 들어 Caffe의 핵심모듈에는 Blobs, Layers 및 Nets 이 세 가지가 있다. 그 중 Blobs는 데이터 저장, 데이터 인터랙티비티 및 처리를 하기 위한 것이며, Blobs를 통해 통일적으로 데이터 메모리의 인터페이스를 제조한다. Layers는 신경망의 핵심으로서 많은 계층구조를 정의하였으며 Blobs를 입출력으로 간주하고 있다. Nets는 일련의 Layers의 집합이고 이러한 계층구조는 연결되어 네트워크 맵을 형성한다.
본 단계에서 엔드 측의 인공지능 프로세서의 설비정보에 근거하여 인공지능 학습 라이브러리의 컴파일 된 인터페이스에 대응되는 소프트웨어 파라미터를 설정하고, 프로그래밍 프레임 워크에 의해 획득한 알고리즘 모델과 결합하여 이미 설정된 인공지능 학습 라이브러리의 컴파일 된 인터페이스를 호출하여 컴파일하며, 대응하는 엔드 측의 인공지능 프로세서의 바이너리 명령을 획득한다. 당해 바이너리 명령은 런타임 라이브러리의 처리에 의해 인공지능 학습 태스크를 생성한다. 인공지능 학습 태스크를 태스크 큐에 배치하여 최종적으로 드라이버에 의해 태스크 큐 중 인공지능 학습 태스크를 스케줄링하여 클라우드 측의 인공지능 프로세서가 수행하게 한다.
실제 응용에서 인공지능 학습 라이브러리는 인공지능 프로세서에서 다양한 인공지능 학습 알고리즘을 가속화하는 데 사용된다. 여기에서 인공지능 학습 알고리즘은 예를 들어 컨볼 루션 신경망 알고리즘, 순환 신경망 알고리즘 등 딥 러닝 알고리즘을 포함하지만 이들에 한정되지 않는다. 구체적으로 인공지능 학습 라이브러리는 주로 다음과 같은 특서을 포함한다.
(1)여러 유형의 기본 연산자를 지원
구체적 실현에서 기본 연산자의 조합을 통해 다양한 기계학습 알고리즘을 실현하여 범용성, 유연성, 확장성의 수요를 충족할 수 있다.
구체적으로 여기에 관련된 여러 유형의 기본 연산자는 일반적인 신경망 연산자(1), 행렬, 벡터, 및 스칼라 연산자(2), 순환 신경망 연산자(3)를 포함할 수 있다. 도6을 참조하면, 본 출원 실시예가 제공하는 인공지능 학습 라이브러리가 지원하는 여러 유형의 기본 연산자의 모식도를 나타내고 있으며, 도6에 도시된 바와 같이, 인공지능 학습 라이브러리가 지원하는 여러 유형의 기본 연산자는 일반적인 신경망 연산자(1)를 포함하고, 당해 신경망 연산자(1)는 컨볼 루션/디컨볼 루션 연산자(11), 풀링 연산자(12), 활성화 연산자(13), 로컬 응답 정규화LRN(LRN, Local Response Normalization)/배치 정규화 연산자(14), 분류기(Softmax) 연산자(15), 완전 연결 연산자(16)를 포함한다. 그 중 활성화 연산자(13)는 ReLU, Sigmoid, Tanh 및 보간에 의해 구현될 수 있는 다른 연산자를 포함할 수 있지만 이들에 한정되지 않는다. 행렬, 벡터, 및 스칼라 연산자(2)는 행렬 곱셈 연산자(21), 텐서 가감 연산자(22), 텐서 논리 연산 연산자(23), 텐서(Tensor) 변환 연산자(24), ROIPooling 연산자(25), Proposal 연산자(26)를 포함한다. 그 중 Tensor 변환 연산자(24)는 크롭(Crop), 텐서 리모델링 Reshape, 텐서 분할 슬라이스(Slice), 텐서 스플라이스 Concat 등을 포함할 수 있지만 이들에 한정되지 않는다. 순환 신경망 연산자(3)는 장기 단기 메모리 네트워크 LSTM(LSTM, Long Short-Term Memory) 연산자(31), 기본 순환 신경망 RNN(Recurrent Neural Network, RNN), 순환 신경망 RNN 연산자(32), SVDF 연산자(33)를 포함한다. 실제 응용에서 사용자는 자신의 수요에 따라 자유롭게 인공지능 학습 라이브러리에 새로운 연산자를 추가하거나 서로 다른 버전의 인공지능 학습 라이브러리를 변경할 수도 있으며, 여기에서는 자세히 설명하지 않고 인공지능 학습 태스크를 디버깅할 때 소프트웨어 개발 플랫폼에서 어떻게 인공지능 학습 라이브러리를 기반으로 인공지능 학습 태스크를 최적화하는지 자세히 설명한다.
(2)기본 연산자의 융합 지원
구체적 실현에서 융합된 연산자는 컴파일 기간에 메모리 다중화, 액세스 최적화, 명령 파이프 라인, 데이터 유형 최적화(예를 들어, 적용 가능한 서로 다른 데이터 유형에 대한 선택) 등 컴파일 최적화 수단을 채택함으로써 융합 연산자의 전반적 성능을 크게 향상한다.
(3)오프라인 실행 파일 생성 지원
여기에서 생성된 오프라인 실행 파일은 인공지능 알고리즘 모델에서 각 컴퓨팅 노드의 네트워크 가중치 및 명령과 같은 필요한 네트워크 구조정보를 포함할 수 있으며, 명령은 당해 컴퓨팅 노드가 어떤 커퓨팅 기능을 수행하는 데 사용하는지 나타낼 수 있다. 구체적으로 명령은 인공지능 학습모델에서 각 컴퓨팅 노드의 컴퓨팅 속성 및 각 컴퓨팅 노드 사이의 연결관계와 같은 정보를 포함할 수 있다.
구체적 실현에서 오프라인 실행 파일은 인공지능 학습 라이브러리에서 이탈하고 인공지능 런타임 라이브러리를 기반으로 개별적으로 실행할 수 있다. 실제 응용에서 오프라인 실행 파일이 상위 소프트웨어 스택과 분리되어 오프라인 실행 파일의 수행이 더 나은 성능과 범용성을 갖도록 한다.
단계(502): 상기 범용 프로세서가 상기 인공지능 학습 태스크를 송신한다.
본 기술방안인 경우, 엔드 측의 인공지능 프로세서의 설비정보에 근거하여 클라우드 측 설비(101)에서 적응해 낸 클라우드 측의 인공지능 프로세서는 엔드 측의 인공지능 프로세서를 시뮬레이션할 수 있다. 따라서, 소프트웨어 개발 플랫폼(102)에서 생성된 인공지능 학습 태스크는 클라우드 측의 인공지능 프로세서에 송신되어 실행하게 된다.
단계(503): 상기 범용 프로세서가 상기 인공지능 학습 태스크에 대응하는 실행결과를 수신한다.
클라우드 측의 인공지능 프로세서가 인공지능 학습 태스크를 수행할 때 실행결과를 생성하며, 그 실행결과는 소프트웨어 개발 플랫폼(102)에 피드백되어 표시된다. 본 기술방안인 경우, 실행결과는 상기 인공지능 학습 태스크의 클라우드 측의 인공지능 프로세서에서의 실행시간이 예상되는 요구 사항에 해당하는지 여부, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보가 예상되는 요구 사항에 해당하는지 여부, 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 하나 이상의 정보를 포함할 수 있지만 이에 한정되지 않는다. 본 기술방안에서 클라우드 측의 인공지능 처리 시스템은 범용 프로세서 및 클라우드 측의 인공지능 프로세서를 포함한다. 상기 인공지능 학습 태스크를 수행할 때, 상기 인공지능 학습 태스크를 수행할 때 클라우드 측의 인공지능 프로세서를 점용하는 로드 정보뿐만 아니라 수행과정에서 메모리를 점용한 정보 및 범용 프로세서의 점용율 등을 알아야 한다. 실행결과에 로드 정보를 포함시키는 이유는 범용 프로세서에서 하나의 인공지능 학습 태스크가 필요로 하는 리소스가 너무 많으면 엔드 측 설비에서 실행될 때 효과가 나쁘거나 실행되지 않을 수 있기 때문이다.
단계(504): 상기 범용 프로세서가 상기 실행결과에 따라 오프라인 실행 파일을 확정한다. 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족하면 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 생성된다.
오프라인 실행 파일에 오프라인 실행 파일 버전정보, 인공지능 프로세서 버전정보, 바이너리 명령, 상수 테이블, 입/출력 데이터 크기, 데이터 레이아웃 설명정보 및 파라미터 정보가 포함된다는 것이 이해도어야 한다. 구체적으로, 오프라인 실행 파일의 버전정보는 오프라인 실행 파일의 서로 다른 버전을 표징한다. 인공지능 프로세서 버전정보는 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보를 지칭한다. 예를 들어, 칩 아키텍처 버전번호를 통해 하드웨어 아키텍처 정보를 나타낼 수 있고, 또한 기능 설명을 통해 아키텍처 정보를 나타낼 수도 있다. 데이터 레이아웃 설명정보는 하드웨어 특성에 기초하여 입/출력 데이터 레이아웃 및 유형 등을 전처리하는 것을 의미한다. 상수 테이블, 입/출력 데이터 크기 및 파라미터 정보는 개발한 인공지능 알고리즘 모델에 의해 확정된다. 그 중 파라미터 정보는 인공지능 알고리즘 모델에서의 가중치 데이터일 수 있다. 상수 테이블에는 바이너리 명령 연산을 수행하는 데 사용해야 하는 데이터가 저장된다.
엔드 측의 인공지능 프로세서의 설비정보는 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보 및 실행환경 파라미터를 포함한다. 상기 실행환경 파라미터는 상기 엔드 측의 인공지능 프로세서의 실행 메인 주파수, 오프 칩 메모리부터 엔드 측의 인공지능 프로세서 사이의 액세스 대역폭, 온칩 스토리지 크기, 엔드 측의 인공지능 프로세서의 코어 수 및 엔드 측의 인공지능 프로세서의 연산장치의 유형 중 적어도 하나를 포함한다.
본 기술방안에서 상기 실행결과가 미리 설정된 요구 사항을 충족하면 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성한다. 상기 실행결과가 미리 설정된 요구 사항을 충족하지 않으면 기능 디버깅 도구 및/또는 성능 튜닝 도구를 통해 실행결과가 상기 미리 설정된 요구 사항을 충족할 때까지 다음과 같은 프로세스 중 적어도 하나의 최적화 방법을 수행하고, 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성한다. 상기 최적화 방법은 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보를 조정하는 것, 상기 엔드 측의 인공지능 프로세서의 실행환경 파라미터를 조정하는 것, 및 인공지능 학습 태스크를 최적화하는 것을 포함한다.
구체적으로, 클라우드 측의 인공지능 프로세서가 피드백한 실행결과가 미리 설정된 요구 사항에 해당하면, 현재 수행되는 인공지능 학습 태스크에 대응하는 바이너리 명령은 오프라인 방식을 통해 오프라인 실행 파일로 경화된다.
클라우드 측의 인공지능 프로세서가 피드백한 실행결과가 미리 설정된 요구 사항에 해당하지 않으면, 인공지능 학습 태스크의 디버깅은 두 가지 애플리케이션 시나리오로 나뉜다. 첫 버째 애플리케이션 시나리오로서 칩 설계 단계에서 애플리케이션을 기반으로 본 기술방안을 이용하여 칩 설계 사양을 평가한다. 이 경우 칩의 하드웨어 아키텍처 정보와 실행환경 파라미터는 모두 변경할 수 있다. 그러면 소프트웨어 개발 플랫폼에서의 수행은 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보를 조정하는 것, 상기 엔드 측의 인공지능 프로세서의 실행환경 파라미터를 조정하는 것, 및 인공지능 학습 태스크를 최적화하는 이 세 가지 최적화 방법 중 적어도 한 가지 최적화 방법을 포함하며, 모두 해당 인공지능 학습 태스크에 대응하는 바이너리 명령을 조정할 수 있다. 매회 조정한 후, 드라이버에 의해 태스크 큐 중 조정 후의 인공지능 학습 태스크를 스케줄링하고, 대응하는 클라우드 측의 인공지능 프로세서를 수행시켜 새로운 실행결과를 획득한다. 새로운 실행결과가 여전히 기대치에 해당하지 않으면 사용자는 실행결과가 기대치에 해당할 때까지 전술한 단계를 반복할 수 있다. 최종적으로 디버깅하여 획득한 바이너리 명령은 오프라인 방식을 통해 오프라인 실행 파일로 경화된다.
두 번째 애플리케이션 시나리오로서 엔드 측의 인공지능 프로세서의 테이프 아웃에 관계없이 사용자는 소프트웨어 개발 플랫폼을 기반으로 설계 및 개발을 시작할 수 있으며, 엔드 측의 인공지능 프로세서와 인공지능 알고리즘 모델 사이의 적응을 실현할 수 있다. 이런 경우, 실제로는 다른 아키텍처 버전의 칩 사용 권한을 다시 구매하지 않으면 칩의 하드웨어 아키텍처 정보가 쉽게 변경되지 않는다. 칩의 하드웨어 아키텍처 정보가 변경되지 않는다고 가정하면, 소프트웨어 개발 플랫폼에서의 수행은 현재 하드웨어 아키텍처 정보에 대응하는 칩이 지원하는 실행환경 파라미터 범위 내에 실행환경 파라미터를 조정하는 것, 및 인공지능 학습 태스크를 최적화하는 이 두 가지 최적화 방법 중 적어도 한 가지 최적화 방법을 포함하며, 모두 모두 해당 인공지능 학습 태스크에 대응하는 바이너리 명령을 조정할 수 있다. 매회 조정한 후, 드라이버에 의해 태스크 큐 중 조정 후의 인공지능 학습 태스크를 스케줄링하고, 대응하는 클라우드 측의 인공지능 프로세서를 수행시켜 새로운 실행결과를 획득한다. 새로운 실행결과가 여전히 기대치에 해당하지 않으면 사용자는 실행결과가 기대치에 해당할 때까지 전술한 단계를 반복할 수 있다. 최종적으로 디버깅하여 획득한 바이너리 명령은 오프라인 방식을 통해 오프라인 실행 파일로 경화된다.
관건적인 것은, 오프라인 실행 파일을 클라우드 측의 인공지능 프로세서에서 실행할 수 있을 뿐만 아니라, 엔드 측의 인공지능 프로세서에서도 실행할 수 있게 하고, 인공지능 학습 태스크가 클라우드 측의 인공지능 프로세서에서 수행될 때 생성되는 실행결과와 엔드 측의 인공지능 프로세서에서 수행할 때 생성되는 실행결과가 완전히 일치하거나 특정 허용 오차 범위 내에 있게 하기 위해, 본 기술방안에서 엔드 측의 인공지능 프로세서의 설비정보에 근거하여 클라우드 측의 인공지능 프로세서의 집합에서 대응하는 엔드 측의 인공지능 프로세서를 시뮬레이션할 수 있는 클라우드 측의 인공지능 프로세서를 필터링해 내며, 필터링해 낸 클라우드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보는 대응하는 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 호환되고, 클라우드 측의 인공지능 프로세서의 명령어 세트는 대응하는 엔드 측의 인공지능 프로세서의 명령어 세트와 호환되므로 오프라인 실행 파일의 원활한 마이그레이션을 실현할 수 있다.
본 기술방안에서 소프트웨어 개발 플랫폼(102)에 상이한 유형의 엔드 측의 인공지능 프로세서의 설비정보를 미리 저장할 수 있다. 실제 수요에 따라 미리 저장한 설비정보에서 목표정보를 선택하고, 목표정보에 따라 클라우드 측 설비(101)에서 엔드 측의 인공지능 프로세서를 시뮬레이션할 클라우드 측의 인공지능 프로세서를 확정한다. 본 기술방안인 경우 다른 하나의 가능한 방안은 실제 수요에 따라 설비정보가 조정될 때마다 사용자가 소프트웨어 개발 플랫폼(102)에 상이한 설비정보를 설정하고, 소프트웨어 개발 플랫폼(102)은 엔드 측의 인공지능 프로세서의 설비정보를 수신하며, 현재 수신한 엔드 측의 인공지능 프로세서의 설비정보에 따라 클라우드 측 설비(101)에서 클라우드 측의 인공지능 프로세서를 선택하여 엔드 측의 인공지능 프로세서의 인공지능 프로세서를 시뮬레이션한다. 전술한 엔드 측의 인공지능 프로세서의 설비정보를 획득하는 방식은 철저한 것이 아니라 단지 예시적인 부분일 뿐이라 점에 유의해야 한다. 본 분야의 기술자라면 본 출원 기술방안의 본질을 이해하였으면 본 출원 기술방안에 기초하여 다른 변형 또는 변환을 이룰 수 있다. 예를 들어, 엔드 측 설비(103)에서 요구정보를 소프트웨어 개발 플랫폼(102)에 송신하고, 소프트웨어 개발 플랫폼(102)이 요구정보를 분석하여 엔드 측의 인공지능 프로세서의 설비정보를 획득한다. 그러나 실현된 기능 및 달성한 기술효과가 본 출원과 유사하면 모두 본 출원의 보호범위에 속해야 한다.
실제 응용에서 클라우드 측 설비(101)에서 클라우드 측의 인공지능 프로세서를 선택하여 엔드 측의 인공지능 프로세서를 시뮬레이션할 때, 현재 활성화된 엔드 측 설비정보를 드라이버에 써놓고, 드라이버에서의 설비정보에 따라 클라우드 측의 인공지능 프로세서를 적응시킨다. 클라우드 측의 인공지능 프로세서의 적응과정은 다음과 같다.
엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보에 따라 클라우드 측의 인공지능 프로세서를 필터링하며, 필터링된 클라우드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보는 대응하는 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 호환되며, 클라우드 측의 인공지능 프로세서의 명령어 세트는 대응하는 엔드 측의 인공지능 프로세서의 명령어 세트와 호환된다.
또한, 엔드 측의 인공지능 프로세서의 실행환경 파라미터에 따라 필터링해 낸 클라우드 측의 인공지능 프로세서에 대해 주파수 변조 및 대역 조정을 수행한다.
또한, 인공지능 학습 태스크를 최적화하는 것은 다음과 같은 네 가지 방법을 포함할 수 있다. 첫 번째 방법으로서 사용자는 소프트웨어 개발 플랫폼에서 프로그래밍 언어를 기반으로 파일의 동적 링크 라이브러리에의 컴파일을 실현하여 프레임 워크에서 당해 동적 링크 라이브러리를 호출할 수 있다.
두 번째 방법으로서 사용자는 소프트웨어 개발 플랫폼에서 프로그래밍 언어를 기반으로 새로운 연산자를 개발하고, 호스트가 소유하고 있는 인공지능 학습 라이브러리와 결합하여 새로운 오프라인 실행 파일을 얻는다. 예를 들어 proposal 연산자를 예로 한다. PluginOp 연산자로 Faster-R-Cnn 중의 Proposal 연산자를 대체하고 전용 프로그래밍 언어로 작성한 proposal_kernel. mlu 연산자를 호출하면 Cambricon-Caffe 프레임 워크의 Proposal 연산자는 PluginOp를 통해 전용 프로그래밍 언어로 실현되는 ProposalKernel로 대체된다. 따라서 전용 프로그래밍 언어와 종래의 인공지능 학습 라이브러리를 관련되도록 하며, 인공지능 학습 라이브러리의 각종 특성 및 온라인, 오프라인, 계층 별, 융합 등 실행모드를 지원한다.
첫 번째 방법과 두 번째 방법으로부터 프레임 워크에서 이미 많은 계층과 연산자가 지원되어 있어 일반 모델은 모두 클라우드의 서버 보드에 넣고 실행될 수 있음을 알 수 있다. 그러나 알고리즘은 업데이트가 빠르게 바뀌며 개인 또는 조직도 일부 사용자 지정 연산자와 알고리즘을 누적할 수 있다. 한편으로는 사용자 지정 알고리즘을 노출하지 않으려 하고, 다른 편으로는 기본 라이브러리를 통해 실제 애플리케이션을 직접 지원하는 효율성은 수요를 충족할 수 없기 때문에 전용 프로그래밍 언어를 제공하여 이전 개발모드의 유연성 문제를 해결할 수 있도록 개발자의 독립적 알고리즘 개발을 도운다.
세 번째 방법으로서 사용자는 소프트웨어 개발 플랫폼에서 현재 호스트가 소유하고 있는 인공지능 학습 라이브러리의 버전에서 하나를 선택하고, 대응하는 인공지능 런타임 라이브러리에 매칭시키며, 현재 호스트가 소유하고 있는 인공지능 학습 라이브러리가 수요를 충족할 수 없는 경우 소프트웨어 개발 플랫폼을 통해 요구를 송신하여 호스트 인공지능 학습 라이브러리의 버전을 업그레이드하는 목적을 달성할 수 있다. 소프트웨어 개발 플랫폼의 운영자는 요구에 따라 소프트웨어 개발 플랫폼에 해당한 새 버전의 인공지능 학습 라이브러리 및 대응하는 인공지능 런타임 라이브러리를 제공하며, 사용자는 소프트웨어 개발 플랫폼에서 최신 버전의 인공지능 학습 라이브러리 및 대응하는 인공지능 런타임 라이브러리를 채택하고, 최신 버전의 인공지능 학습 라이브러리를 기반으로 디버깅된 바이너리 명령을 획득한다.
네 번째 방법으로서 사용자는 인공지능 알고리즘 모델을 조정하는 것을 통해 인공지능 학습 태스크를 최적화하는 목적을 달성할 수 있다.
실제 응용에서 상술한 네 가지 인공지능 학습 태스크를 최적화하는 방법에서 적어도 한 가지 방법을 채용하면 인공지능 학습 태스크를 최적화하는 목적을 달성할 수 있다. 인공지능 알고리즘 모델의 조정 여부에 관계없이 인공지능 학습 라이브러리를 최적화 및/또는 엔드 측의 인공지능 프로세서의 설비정보를 조정하여 인공지능 학습 태스크를 조정하는 목적을 달성할 수 있고, 엔드 측의 인공지능 프로세서와 인공지능 알고리즘 모델 사이의 적응을 실현할 수 있다.
도5에 도시된 방안은 소프트웨어 개발 플랫폼을 제공하고 있으며, 사용자는 당해 소프트웨어 개발 플랫폼에서 알고리즘과 인공지능 프로세서 사이의 기능, 성능, 정확도의 디버깅을 완성할 수 있고, 디버깅 완료 후에 생성된 오프라인 실행 파일은 호환성이 있는 아키텍처 위의 다양한 엔드 측의 SoC 칩에 배포할 수 있으며, 사용자가 하드웨어 실체를 입수하지 않아도 사전에 알고리즘과 인공지능 프로세서 사이의 기능, 성능, 정확도를 디버깅할 수 있고, 제품의 개발주기가 크게 단축된다는 장점이 있다. 또한, 각 엔드 측의 SoC 칩마다 개별적으로 개발하거나 또는 일련의 개발환경에 적응시킬 필요가 없다.
도7에 도시된 바와 같이, 본 출원이 제공하는 데이터 처리방법의 다른 한 가지 흐름도이다. 상기 방법은 클라우드 측의 인공지능 프로세서에 적용되며, 다음과 같은 단계를 포함한다.
단계(701): 엔드 측의 인공지능 프로세서의 설비정보에 의해 생성되는 바이너리 명령에 따라 확정되는 인공지능 학습 태스크를 수신한다.
단계(702): 상기 인공지능 학습 태스크를 수행하여 실행결과를 생성한다.
본 단계에서 상기 실행결과는 상기 인공지능 학습 태스크의 클라우드 측의 인공지능 프로세서에서의 실행시간이 예상되는 요구 사항에 해당하는지 여부, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보가 예상되는 요구 사항에 해당하는지 여부, 및 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 하나 이상의 정보를 포함할 수 있지만 이에 한정되지 않는다.
또한, 도5에 도시된 모든 관련 기술방안의 내용은 모두 도7에 도시된 기술방안에 적용되며, 여기에서 다시 상세히 설명하지 않는다.
또한, 클라우드 측 설비(101)인 경우 한 가지 애플리케이션 시나리오로서 클라우드 측의 인공지능 프로세서의 집합에서 가능한 한 엔드 측의 인공지능 프로세서의 모든 버전의 하드웨어 아키텍처 정보를 포함해야 하는 것을 이해해야 한다. 예를 들어 사이즈는 하드웨어 아키텍처 정보의 버전과 대응되며, 엔드 측의 인공지능 프로세서의 사이즈로는 A, B, C 등이 있다. 클라우드 측의 인공지능 프로세서의 집합에는 모두 사이즈가 A인 인공지능 프로세서, 사이즈가 B인 인공지능 프로세서, 사이즈가 C인 인공지능 프로세서를 포함되어 있다. 다른 한 가지 애플리케이션 시나리오로서 클라우드 측의 인공지능 프로세서의 집합에서 인공지능 프로세서의 하드웨어 아키텍처는 고사양 기능, 중사양 기능 또는 저사양 기능을 실현할 수 있다. 예를 들어 서로 다른 애플리케이션 시나리오 및 실제수요에 따라 인공지능 프로세서의 일부 기능을 차단하여 저사양 기능의 인공지능 프로세서 또는 중사양 기능의 인공지능 프로세서로 변환하여 서로 다른 사용자의 수요를 충족시킨다. 이 경우, 본 기술방안에서의 소프트웨어 개발 플랫폼(102)은 바이너리 명령을 생성할 때 엔드 측의 인공지능 프로세서의 설비정보에 기초하고, 또한 드라이버를 통해 필터링해 낸 클라우드 측의 인공지능 프로세서가 지원하는 서로 다른 실행환경 파라미터를 변경함으로써 고사양 버전의 인공지능 프로세서 중의 일부 기능이 차폐되게 하며, 구현된 기능만이 대응하는 엔드 측의 인공지능 프로세서의 기능과 서로 적응된다. 따라서, 고사양 버전의 인공지능 프로세서의 실행환경 파라미터의 값 범위는 엔드 측의 인공지능 프로세서가 지원하는 모든 실행환경 파라미터를 포함한다. 예를 들어 클라우드 측의 인공지능 프로세서의 온칩 메모리의 크기는 100M이고, 엔드 측의 인공지능 프로세서의 온칩 메모리의 크기는 100M보다 작은 값일 수 있다.
또한, 시분할 다중화의 방법을 이용하고, 가상 머신 기술을 통해 사용자가 클라우드 측 설비(101)의 인공지능 프로세서의 리소스를 사용하는 시간대에 근거하여 클라우드 측 설비(101)의 인공지능 프로세서를 합리적으로 할당하면 리소스를 상이한 시간대의 인공지능 학습 태스크에 할당하여 배포해야 할 클라우드 측의 인공지능 프로세서의 개발환경 수를 줄일 수 있다.
또한, 클라우드 측 설비(101)의 인공지능 프로세서의 집합에는 반드시 모두가 칩 실체일 필요가 없으며 FPGA일 수 있다. 현대 IC 설계 검증의 주류 기술을 참조하면 하드웨어 기술 언어(Verilog 또는 VHDL)로 완성된 회로설계는 간단한 종합 및 레이아웃을 통해 신속하게 FPGA에 프로그래밍할 수 있다. 본 기술방안인 경우 클라우드 측의 인공지능 프로세서에 적응하는 칩 실체가 존재하지 않으면 FPGA를 사용하여 사용자에게 서비스를 제공할 수 있다. 엔드 측의 인공지능 프로세서의 설비정보에 따라 수요에 해당한 FPGA를 필터링해 내며, 당해 FPGA는 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 대응하는 미러 파일을 갖는다. 수요에 해당한 FPGA가 존재하지 않으면 소프트웨어 개발 플랫폼(102)은 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보에 대응하는 미러 파일을 유휴 FPGA에 구울 수 있고, 당해 FPGA는 소프트웨어 개발 플랫폼에 의해 송신된 인공지능 학습 태스크를 수행한다.
클라우드 측의 인공지능 프로세서인 경우 보다 세립도(fine-grained)인 리소스 할당을 제공할 수 있다. 예를 들어 사용자A가 소프트웨어 개발 플랫폼(102)에서 M개의 코어(core)를 기초로 엔드 측의 인공지능 프로세서를 구성하여 인공지능 학습 태스크를 생성하고, 적응된 클라우드 측의 인공지능 프로세서가 갖는 코어(core) 총수가 N이며, N개의 코어(core) 중 P개의 코어(core)가 이미 사용자B가 시작한 인공지능 학습 태스크에서 사용된다.
Figure pat00001
이 만족되고, 사용자A에 대응하는 엔드 측의 인공지능 프로세서의 설비정보가 반드시 사용자B에 대응하는 엔드 측의 인공지능 프로세서의 설비정보와 같으면, 소프트웨어 개발 플랫폼(102) 중 인공지능 런타임 라이브러리는 서로 다른 사용자가 시작한 인공지능 학습 태스크를 서로 다른 코어에 할당하며, 각 코어에서 서로 다른 인공지능 학습 태스크를 수행하여 클라우드 측의 인공지능 프로세서의 리소스에 대한 보다 세립도의 할당을 달성할 수 있다.
또한, 클라우드 측의 인공지능 프로세서인 경우, 통상의 아키텍처의 재구성이 불 가능한 인공지능 프로세서일 수도 있고, 아키텍처의 재구성이 가능한 인공지능 프로세서일 수도 있다. 아키텍처의 재구성이 가능한 인공지능 프로세서인 경우, 드라이버 중의 설비정보를 이용하여 재구성형 칩 내부의 환경 실행 파라미터를 조정하고, 소프트웨어 개발 플랫폼(102)에 의해 송신된 인공지능 학습 태스크에 따라 재구성형 칩 내부의 대응하는 기능모듈을 호출한다. 즉, 실제 응용에 따라 재구성형 칩 내부의 기능모듈을 조정하여 엔드 측의 인공지능 프로세서를 재구성 후의 칩으로 대체할 수 있다.
상술한 클라우드 측의 인공지능 프로세서에 관한 설명에 기초하여, 본 기술방안인 경우 소프트웨어 개발 플랫폼(102)이 일정한 시간 내의 각 시간대에서 서로 다른 하드웨어 아키텍처 정보를 사용하는 클라우드 측의 인공지능 프로세서의 사용자 수를 통계하여, 사용자 수요를 충족시킬 수 있는 최소값V를 추정하여 얻으며, 당해 숫자V는 클라우드 측의 인공지능 프로세서의 배치 수의 최소값이다. 이를 기초로 결함허용이나 사용자 수의 급격한 증가를 방지하기 위해 적은 수 W개 여분의 인공지능 프로세서를 추가하면(V+W)가 클라우드 측 설비(101)에 배치해야 할 인공지능 프로세서의 수이다. 동시에, 소프트웨어 개발 플랫폼(102)은 정기적으로 사용자 수의 변화를 통계하며, 클라우드 측 설비(101)에 배포하는 인공지능 프로세서의 수를 변화시켜 사용자의 수요를 충족시키고 클라우드 측의 오버 헤드를 감소시킨다.
요약하면, 상술한 설명으로부터 실시간 배포 방법을 채택하고 소프트웨어 개발 플랫폼에 의해 송신된 인공지능 학습 태스크에 따라 클라우드 측 설비(101)에 배포하는 인공지능 프로세서의 리소스를 동적으로 조정하여 사용자가 감지하지 못하는 상황에서 시분할 다중화 방법을 이용하며, 사용자가 클라우드 측 설비(101)의 인공지능 프로세서의 리소스를 사용하는 시간대에 따라 상이한 개발환경을 배치함으로써 동일 클라우드 측의 인공지능 프로세서 리소스를 서로 다른 시간대의 인공지능 학습 태스크에 할당하여 배포해야 할 클라우드 측의 인공지능 프로세서의 개발환경 수를 줄일 수 있다는 것을 알 수 있다.
도8에 도시된 바와 같이, 본 출원이 제안하는 또 다른 한 가지 데이터 처리방법의 흐름도이다. 상기 방법은 엔드 측의 인공지능 프로세서에 적용되며, 다음과 같은 단계를 포함한다.
단계(801): 오프라인 실행 파일을 판독한다. 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족할 때 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 확정된다.
또한, 도5, 도7에 도시된 모든 관련 기술방안의 내용은 모두 도8에 도시된 기술방안에 적용되며, 여기에서 다시 상세히 설명하지 않는다.
엔드 측의 인공지능 프로세서가 생성한 인공지능 학습 태스크에 대하여, 소프트웨어 개발 플랫폼(102)에서 클라우드 측의 인공지능 프로세서가 피드백한 실행결과에 따라 인공지능 학습 태스크를 최적화 및 디버깅하며, 실행결과가 예상되는 요구 사항에 달하면 디버깅 후의 인공지능 학습 태스크의 바이너리 명령은 경화처리에 의해 오프라인 실행 파일로 변환하며, 이전의 디버깅 및 성능 결과의 경화를 달성한다. 나중에, 오프라인의 애플리케이션 프로그램을 작성하여 프로그래밍 프레임 워크를 벗어나 실제 애플리케이션 시나리오에서의 정확도 정상을 확보하면 엔드 측 설비(103)에 크로스 컴파일하여 현장 배포할 수 있다.
도9에 도시된 바와 같이, 본 출원이 제안하는 또 다른 한 가지 데이터 처리의 흐름도이다. 상기 시스템은 범용 프로세서와 클라우드 측의 인공지능 프로세서를 포함하며, 다음과 같은 단계를 포함한다.
단계(a): 상기 범용 프로세서가 엔드 측의 인공지능 프로세서의 설비정보에 따라 바이너리 명령을 생성하고, 상기 바이너리 명령에 따라 인공지능 학습 태스크를 생성하며, 상기 인공지능 학습 태스크를 클라우드 측의 인공지능 프로세서에 송신하여 실행한다.
단계(b): 상기 클라우드 측의 인공지능 프로세서가 인공지능 학습 태스크를 수신하고, 상기 인공지능 학습 태스크를 수행하여 실행결과를 생성한다.
단계(c): 상기 범용 프로세서가 상기 인공지능 학습 태스크에 대응하는 실행결과를 수신하고, 상기 실행결과에 따라 오프라인 실행 파일을 확정한다. 그 중 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족하면 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 생성된다.
또한, 도5, 도7에 도시된 모든 관련 기술방안의 내용은 모두 도9에 도시된 기술방안에 적용되며, 여기에서 다시 상세히 설명하지 않는다.
도10에 도시된 바와 같이, 데이터 처리장치의 한 기능 블록도이다. 상기 장치는 메모리 및 범용 프로세서를 포함하며, 상기 메모리에는 상기 범용 프로세서에 의해 실행 가능한 컴퓨터 프로그램이 저장되어 있고, 상기 범용 프로세서가 상기 컴퓨터 프로그램을 수행할 때 실현하는 데이터 처리 흐름은,
엔드 측의 인공지능 프로세서의 설비정보에 따라 바이너리 명령을 생성하고, 상기 바이너리 명령에 따라 인공지능 학습 태스크를 생성하는 것;
상기 인공지능 학습 태스크를 클라우드 측의 인공지능 프로세서에 송신하여 실행시키는 것;
상기 인공지능 학습 태스크에 대응하는 실행결과를 수신하는 것; 및
상기 실행결과에 따라 오프라인 실행 파일을 확정하는 것을 포함한다. 그 중, 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족하면 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 생성된다.
바람직하게는, 상기 설비정보는 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 실행환경 파라미터를 포함한다.
바람직하게는, 상기 실행환경 파라미터는 상기 엔드 측의 인공지능 프로세서의 실행 메인 주파수, 오프 칩 메모리부터 엔드 측의 인공지능 프로세서 사이의 액세스 대역폭, 온칩 스토리지 크기, 엔드 측의 인공지능 프로세서의 코어 수, 엔드 측의 인공지능 프로세서 중 연산장치의 유형 중 적어도 하나를 포함한다.
바람직하게는, 상기 범용 프로세서가 상기 컴퓨터 프로그램을 수행할 때 실현하는 데이터 처리 흐름은 상기 엔드 측의 인공지능 프로세서의 설비정보를 수신하는 것을 더 포함한다.
바람직하게는, 상기 범용 프로세서가 상기 컴퓨터 프로그램을 수행할 때 실현하는 데이터 처리 흐름은 설비정보를 드라이버에 써놓고 상기 드라이버 중 설비정보에 따라 클라우드 측의 인공지능 프로세서에 적응시키기는 것을 더 포함한다.
바람직하게는, 상기 범용 프로세서가 상기 실행결과에 따라 상기 오프라인 실행 파일을 확정하는 겨우, 상기 컴퓨터 프로그램을 수행하여 실현하는 데이터 처리 흐름은, 상기 실행결과가 미리 설정된 요구 사항을 충족하면 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성하는 것을 포함한다.
바람직하게는, 상기 범용 프로세서가 상기 실행결과에 따라 상기 오프라인 실행 파일을 확정하는 경우, 상기 컴퓨터 프로그램을 수행할 때 실현하는 데이터 처리 흐름은,
상기 실행결과가 미리 설정된 요구 사항을 충족하지 않으면 실행결과가 상기 미리 설정된 요구 사항을 충족할 때까지 다음과 같은 프로세스 중 적어도 하나의 최적화 방법을 수행하고, 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성하는 것을 더 포함하며, 상기 최적화 방법은,
상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보를 조정하는 것,
상기 엔드 측의 인공지능 프로세서의 실행환경 파라미터를 조정하는 것, 또는
인공지능 학습 태스크를 최적화하는 것을 포함한다.
바람직하게는, 상기 범용 프로세서가 인공지능 학습 태스크를 최적화할 때 실현하는 데이터 처리 흐름은 전용 프로그래밍 언어에 따라 인공지능 학습 태스크를 최적화하는 것을 포함한다.
바람직하게는, 상기 범용 프로세서가 인공지능 학습 태스크를 최적화할 때 실현하는 데이터 처리 흐름은 인공지능 학습 라이브러리의 버전을 업데이트하는 것을 통해 인공지능 학습 태스크를 최적화하는 것을 더 포함한다.
바람직하게는, 상기 범용 프로세서가 인공지능 학습 태스크를 최적화할 때 실현하는 데이터 처리 흐름은 인공지능 알고리즘 모델을 조정하는 것을 더 포함한다.
바람직하게는, 상기 실행결과는 상기 인공지능 학습 태스크의 클라우드 측의 인공지능 프로세서에서의 실행시간이 예상되는 요구 사항에 해당하는지 여부, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보가 예상되는 요구 사항에 해당하는지 여부, 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 적어도 하나의 정보를 포함할 수 있지만 이에 한정되지 않는다.
상기 메모리와 범용 프로세서가 실현하는 구체적 기능은 본 명세서에서의 전술한 실시태양과 비교하여 설명할 수 있으며, 또한 전술한 실시태양의 기술효과를 달성할 수 있어, 여기에서는 다시 설명하지 않는다.
본 실시태양에서 상기 메모리는 정보를 저장하기 위한 물리적 장치를 포함할 수 있다. 이런 장치는 일반적으로 정보를 디지털화한 후 다시 전기, 자기 또는 광학과 같은 방법을 이용한 매체에 저장할 수 있다. 본 실시태양에 기재된 메모리는 전기 에너지를 이용하여 정보를 저장하는 RAM, ROM 등과 같은 장치; 자기 에너지를 이용하여 정보를 저장하는 하드 디스크, 플로피 디스크, 자기 테이프, 자기 코어 메모리, 자기 버블 메모리, U 디스크와 같은 장치; 및 광학적으로 정보를 저장하는 CD 또는 DVD와 같은 장치를 포함할 수도 있다. 물론 양자 메모리, 그래 핀 메모리 등과 같은 다른 방식의 메모리도 있다.
도11에 도시된 바와 같이, 인공지능 프로세서의 한 기능 블록도이다. 당해 인공지능 프로세서는 엔드 측의 인공지능 프로세서의 설비정보에 의해 생성되는 바이너리 명령에 따라 확정되는 인공지능 학습 태스크를 수신하기 위한 수신모듈(1101), 및 상기 인공지능 학습 태스크를 수행하여 실행결과를 생성하기 위한 수행모듈(1102)을 포함한다.
바람직하게는, 상기 수행모듈이 생성하는 실행결과는 상기 인공지능 학습 태스크의 상기 클라우드 측의 인공지능 프로세서에서의 실행시간이 예상되는 요구 사항에 해당하는지 여부, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보가 예상되는 요구 사항에 해당하는지 여부, 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 하나 이상의 정보를 포함할 수 있지만, 이에 한정되지 않는다.
바람직하게는, 상기 클라우드 측의 인공지능 프로세서는 인공지능 프로세서 하드웨어 실체, 필드 프로그래머블 게이트 어레이, 시뮬레이터 중 적어도 하나를 포함한다.
바람직하게는, 상기 인공지능 프로세서는 아키텍처의 재구성이 가능한 인공지능 프로세서이다.
도12에 도시된 바와 같이, 인공지능 프로세서의 다른 하나의 기능 블록도이다.
당해 인공지능 프로세서는 오프라인 실행 파일을 획득하기 위한 획득모듈(1201)을 포함한다. 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족할 때 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 확정된다.
바람직하게는, 요구정보를 송신하기 위한 송신모듈을 더 포함하며, 상기 요구정보는 상기 엔드 측의 인공지능 프로세서의 설비정보를 포함한다.
바람직하게는, 상기 설비정보는 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 실행환경 파라미터를 포함한다.
바람직하게는, 상기 실행환경 파라미터는 상기 엔드 측의 인공지능 프로세서의 실행 메인 주파수, 오프 칩 메모리부터 엔드 측의 인공지능 프로세서 사이의 액세스 대역폭, 온칩 스토리지 크기, 엔드 측의 인공지능 프로세서의 코어 수, 엔드 측의 인공지능 프로세서의 연산장치의 유형 중 적어도 하나를 포함한다.
도13에 도시된 바와 같이, 데이터 처리 시스템을 나타내고 있다. 당해 시스템은 범용 프로세서(1310)와 클라우드 측의 인공지능 프로세서(1320)를 포함한다. 또한, 본 실시예에서 범용 프로세서(1310) 및 클라우드 측의 인공지능 프로세서(1320)의 구체적 구현에 대해서는 전술한 설명을 참조하고, 더 이상의 세부 사항은 여기에 제공되지 않음을 이해해야 한다.
본 실시예에서 본 출원의 실시예는 판독 가능한 저장 매체도 제공하는 바, 그 매체에는 컴퓨터 프로그램이 저장되고, 컴퓨터 프로그램을 수행하는 흐름이 전술한 도5, 도7, 도8, 및 도9에 도시된 데이터 처리방법을 구현한다.
이상에서 알 수 있는 바와 같이, 본 출원의 실시예는 데이터 처리방법 및 관련제품을 제공하며, 인공지능 프로세서의 테이프 아웃 여부에 관계없이, 본 기술방안은 사전에 인공지능 알고리즘 모델과 인공지능 프로세서 사이의 디버깅 작업을 실현할 수 있다.
본 발명이 속하는 기술분야에서 통상의 지식을 가진자라면 순수한 컴퓨터 판독 가능한 프로그램 코드 방식으로 클라이언트 및 서버에서 본 기술방안을 구현하는 것 외에도, 클라이언트 및 서버에서 로직 게이트, 스위치, 특정 용도용 집적회로, 프로그래머블 로직 컨트롤러와 임베디드 마이크로 컨트롤러 등의 형태로 기술방안의 단계를 완전히 실현할 수 있음을 이해할 수 있다. 따라서, 이러한 클라이언트 및 서버는 하드웨어 구성요소로 간주될 수 있고, 그에 포함된 각종 기능을 실현하기 위한 장치도 하드웨어 구성요소 내의 구조로 간주될 수도 있다. 또는, 각종 기능을 실현하기 위한 장치를 방법을 실현하는 소프트웨어 모듈로 간주할 수도 있고 하드웨어 구성요소 내의 구조로 간주할 수도 있다.
상기 실시태양에 대한 설명으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진자는 본 출원이 소프트웨어 및 필요한 범용 하드웨어 플렛폼에 의해 실현될 수 있음을 명백히 이해할 수 있을 것이다. 이러한 이해에 기초하여, 본 출원의 기술방안은 실질적으로 종래기술에 기여하는 부분은 소프트웨어 제품의 형태로 구현할 수 있으며, 당해 컴퓨터 소프트웨어 제품은 ROM/RAM, 자기 디스크, 광 디스크 등과 같은 저장 매체에 저장할 수 있고, 저장 매체에는 컴퓨터 장치(개인용 컴퓨터, 서버, 또는 네트워크 장치 등일 수 있음)로 하여금 본 출원 각 실시예 또는 실시예의 일부 부분에 기재된 방법을 수행하게 하기 위한 복수의 명령을 포함한다.
본 명세서에서의 각 실시예는 점진적으로 설명되며, 각 실시예 사이에서 동일하거나 유사한 부분은 서로 참조될 수 있다. 각 실시예는 기타 실시예와의 차이점에 초점을 두고 있다. 특히 클라이언트 및 서버의 실시예인 경우, 모두 전술한 방법의 실시예의 설명을 참조하여 비교하면서 설명할 수 있다.
본 출원은 일반적으로 컴퓨터에 의해 수행되는 컴퓨터 수행 가능한 명령을 프로그램 모듈과 같이 설명한다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 실현하는 루틴, 프로그램, 객체, 구성요소, 데이터 구조 등을 포함한다. 또한 분산 컴퓨팅 환경에서 본 출원을 실시할 수 있으며, 이러한 분산 컴퓨팅 환경에서 통신 네트워크를 통해 연결되는 원격 처리장치에 의해 태스크를 수행할 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 저장장치를 포함하여 호스트 및 원격 컴퓨터 저장 매체에 위치할 수 있다.
본 출원은 실시예를 통해 설명되었지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진자라면 본 출원의 사상을 벗어나지 않고 본 출원에 많은 변형 및 변경을 가져 올 수 있고, 본 출원의 사상을 벗어나지 않는 한 이러한 변형 및 변경이 첨부한 특허 청구범위에 포함됨을 이해할 수 있다.
또한, 이하의 조목에 의해 상술한 내용이 더 잘 이해 될 것이다.
A1. 범용 프로세서 및 클라우드 측의 인공지능 프로세서를 포함하는 데이터 시스템에 적용되는 데이터 처리방법에 있어서,
상기 범용 프로세서가 엔드 측의 인공지능 프로세서의 설비정보에 따라 바이너리 명령을 생성하고, 상기 바이너리 명령에 따라 인공지능 학습 태스크를 생성하며, 상기 인공지능 학습 태스크를 클라우드 측의 인공지능 프로세서에 송신하여 실행시키고;
상기 클라우드 측의 인공지능 프로세서가 인공지능 학습 태스크를 수신하고, 상기 인공지능 학습 태스크를 수행하여 실행결과를 생성하며;
상기 범용 프로세서가 상기 인공지능 학습 태스크에 대응하는 실행결과를 수신하고, 상기 실행결과에 따라 오프라인 실행 파일을 확정하며, 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족하면 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 생성된다.
A2. 상기 A1에 따른 상기 방법에서, 상기 설비정보는 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 실행환경 파라미터를 포함한다.
A3. 상기A2에 따른 상기 방법에서, 상기 실행환경 파라미터는 상기 엔드 측의 인공지능 프로세서의 실행 메인 주파수, 오프 칩 메모리부터 엔드 측의 인공지능 프로세서 사이의 액세스 대역폭, 온칩 스토리지 크기, 엔드 측의 인공지능 프로세서의 코어 수, 엔드 측의 인공지능 프로세서의 연산장치의 유형 중 적어도 하나를 포함한다.
A4. 상기 A1에 따른 상기 방법에서, 상기 범용 프로세서가 상기 엔드 측의 인공지능 프로세서의 설비정보를 수신는 것을 더 포함한다.
A5. 상기 A4에 따른 상기의 방법에서, 상기 범용 프로세서가 설비정보를 드라이버에 써놓고, 상기 드라이버 중 설비정보에 따라 클라우드 측의 인공지능 프로세서에 적응시키기는 것을 더 포함한다.
A6. 상기 A1에 따른 상기 방법에서, 상기 실행결과에 따라 상기 오프라인 실행 파일을 확정하는 것은, 상기 실행결과가 미리 설정된 요구 사항을 충족하면 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성하는 것을 포함한다.
A7. 상기 A1에 따른 상기 방법에서, 상기 실행결과에 따라 상기 오프라인 실행 파일을 확정하는 것은,
상기 실행결과가 미리 설정된 요구 사항을 충족하지 않으면 실행결과가 상기 미리 설정된 요구 사항을 충족할 때까지 다음과 같은 프로세스 중 적어도 하나의 최적화 방법을 수행하고, 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성하는 것을 더 포함하며, 상기 최적화 방법은,
상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보를 조정하는 것,
상기 엔드 측의 인공지능 프로세서의 실행환경 파라미터를 조정하는 것, 또는
인공지능 학습 태스크를 최적화하는 것을 포함한다.
A8. 상기 A7에 따른 상기의 방법에서, 상기 인공지능 학습 태스크를 최적화하는 단계는 전용 프로그래밍 언어에 따라 인공지능 학습 태스크를 최적화하는 것을 포함한다.
A9. 상기 A7 또는 A8에 따른 상기 방법에서, 상기 인공지능 학습 태스크를 최적화하는 단계는 인공지능 학습 라이브러리의 버전을 업데이트하는 것을 통해 인공지능 학습 태스크를 최적화하는 것을 더 포함한다.
A10. 상기 A7-A9 중 어느 한 항에 따른 상기 방법에서, 상기 인공지능 학습 태스크를 최적화하는 단계는 인공지능 알고리즘 모델을 조정하는 것을 더 포함한다.
A11. 상기 A1-A10중 어느 한 항에 따른 상기 방법에서, 상기 실행결과는 상기 인공지능 학습 태스크의 클라우드 측의 인공지능 프로세서에서의 실행시간이 예상되는 요구 사항에 해당하는지 여부, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보가 예상되는 요구 사항에 해당하는지 여부, 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 적어도 하나를 포함한다.
A12. 상기 A1에 따른 상기 방법에서, 상기 클라우드 측의 인공지능 프로세서는 인공지능 프로세서 하드웨어 실체, 필드 프로그래머블 게이트 어레이, 시뮬레이터 중 적어도 하나를 포함한다.
A13. 상기 A12에 따른 상기 방법에서, 상기 인공지능 프로세서 하드웨어 실체는 아키텍처의 재구성이 가능한 인공지능 프로세서이다.
B14. 메모리, 범용 프로세서, 및 클라우드 측의 인공지능 프로세서를 포함하고, 상기 메모리에는 상기 범용 프로세서 및/또는 상기 클라우드 측의 인공지능 프로세서에 의해 실행 가능한 컴퓨터 프로그램이 저장되어 있는 데이터 처리장치에 있어서,
상기 범용 프로세서는 엔드 측의 인공지능 프로세서의 설비정보를 기반으로 바이너리 명령을 생성하고, 상기 바이너리 명령에 따라 인공지능 학습 태스크를 생성하며, 상기 인공지능 학습 태스크를 클라우드 측의 인공지능 프로세서에 송신하여 실행시키기 위한 것이고,
상기 클라우드 측의 인공지능 프로세서는 인공지능 학습 태스크를 수신하고 상기 인공지능 학습 태스크를 수행하여 실행결과를 생성하기 위한 것이며,
상기 범용 프로세서는 상기 인공지능 학습 태스크에 대응하는 실행결과를 수신하고, 상기 실행결과에 따라 오프라인 실행 파일을 확정하기 위한 것이기도 하며, 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족하면 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 생성된다.
B15. 상기 B14에 따른 상기 장치에서, 상기 설비정보는 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 실행환경 파라미터를 포함한다.
B16. 상기 B15에 따른 상기 장치에서, 상기 실행환경 파라미터는 상기 엔드 측의 인공지능 프로세서의 실행 메인 주파수, 오프 칩 메모리부터 엔드 측의 인공지능 프로세서 사이의 액세스 대역폭, 온칩 스토리지 크기, 엔드 측의 인공지능 프로세서의 코어 수, 엔드 측의 인공지능 프로세서의 연산장치의 유형 중 적어도 하나를 포함한다.
B17. 상기 B14에 따른 상기 장치에서, 상기 범용 프로세서 상기 엔드 측의 인공지능 프로세서의 설비정보를 수신하는 데에도 사용된다.
B18. 상기 B17에 따른 상기 장치에서, 상기 범용 프로세서 설비정보를 드라이버에 써놓고, 상기 드라이버 중 설비정보에 따라 클라우드 측의 인공지능 프로세서에 적응시키기는 데에도 사용된다.
B19. 상기 B14에 따른 상기 장치에서, 상기 범용 프로세서는 상기 실행결과에 따라 상기 오프라인 실행 파일을 확정하는 데에도 사용되며,
상기 실행결과가 미리 설정된 요구 사항을 충족하면, 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성한다.
B20. 상기 B14에 따른 상기 장치에서, 상기 범용 프로세서 상기 실행결과에 따라 상기 오프라인 실행 파일을 확정하는 데에도 사용되고,
상기 실행결과가 미리 설정된 요구 사항을 충족하지 않으면 실행결과가 상기 미리 설정된 요구 사항을 충족할 때까지 다음과 같은 프로세스 중 적어도 하나의 최적화 방법을 수행하고, 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성하며, 상기 최적화 방법은,
상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보를 조정하는 것,
상기 엔드 측의 인공지능 프로세서의 실행환경 파라미터를 조정하는 것, 또는
인공지능 학습 태스크를 최적화하는 것을 포함한다.
B21. 상기 B20에 따른 상기 장치에서, 상기 인공지능 학습 태스크를 최적화하는 단계는 전용 프로그래밍 언어에 따라 인공지능 학습 태스크를 최적화하는 것을 포함한다.
B22. 상기 B20 또는 B21에 따른 상기 장치에서, 상기 인공지능 학습 태스크를 최적화하는 단계는 인공지능 학습 라이브러리의 버전을 업데이트하는 것을 통해 인공지능 학습 태스크를 최적화하는 것을 더 포함한다.
B23. 상기 B20-B22 중 어느 한 항에 따른 상기 장치에서, 상기 인공지능 학습 태스크를 최적화하는 단계는 인공지능 알고리즘 모델을 조정하는 것을 더 포함한다.
B24. 상기 B14-B23 중 어느 한 항에 따른 상기 장치에서, 상기 실행결과는 상기 인공지능 학습 태스크의 클라우드 측의 인공지능 프로세서에서의 실행시간, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보, 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 적어도 하나를 포함한다.
B25. 상기 B14에 따른 상기 장치에서, 상기 클라우드 측의 인공지능 프로세서는 인공지능 프로세서 하드웨어 실체, 필드 프로그래머블 게이트 어레이, 시뮬레이터 중 적어도 하나를 포함한다.
B26. 상기 B25에 따른 상기 장치에서, 상기 인공지능 프로세서 하드웨어 실체는 아키텍처의 재구성이 가능한 인공지능 프로세서이다.
C1. 범용 프로세서에 적용되는 데이터 처리방법에 있어서,
상기 범용 프로세서가 엔드 측의 인공지능 프로세서의 설비정보에 따라 바이너리 명령을 생성하고, 상기 바이너리 명령에 따라 인공지능 학습 태스크를 생성하는 것;
상기 범용 프로세서가 상기 인공지능 학습 태스크를 클라우드 측의 인공지능 프로세서에 송신하여 실행시키는 것;
상기 범용 프로세서가 상기 인공지능 학습 태스크에 대응하는 실행결과를 수신하는 것; 및
상기 범용 프로세서가 상기 실행결과에 따라 오프라인 실행 파일을 확정하는 것을 포함하고, 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족하면 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 생성된다.
C2. 상기 C1에 따른 상기 방법에서, 상기 설비정보는 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 실행환경 파라미터를 포함한다.
C3. 상기 C2에 따른 상기 방법에서, 상기 실행환경 파라미터는 상기 엔드 측의 인공지능 프로세서의 실행 메인 주파수, 오프 칩 메모리부터 엔드 측의 인공지능 프로세서 사이의 액세스 대역폭, 온칩 스토리지 크기, 엔드 측의 인공지능 프로세서의 코어 수, 엔드 측의 인공지능 프로세서의 연산장치의 유형 중 적어도 하나를 포함한다.
C4. 상기 C1에 따른 상기 방법에서, 상기 범용 프로세서가 상기 엔드 측의 인공지능 프로세서의 설비정보를 수신하는 것을 더 포함한다.
C5. 상기 C4에 따른 상기 방법에서, 상기 범용 프로세서가 설비정보를 드라이버에 써놓고, 상기 드라이버 중 설비정보에 따라 클라우드 측의 인공지능 프로세서에 적응시키기는 것을 더 포함한다.
C6. 상기 C1에 따른 상기 방법에서, 상기 실행결과에 따라 상기 오프라인 실행 파일을 확정하는 것은, 상기 실행결과가 미리 설정된 요구 사항을 충족하면 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성하는 것을 포함한다.
C7. 상기 C1에 따른 상기 방법에서, 상기 실행결과에 따라 상기 오프라인 실행 파일을 확정하는 것은,
상기 실행결과가 미리 설정된 요구 사항을 충족하지 않으면 실행결과가 상기 미리 설정된 요구 사항을 충족할 때까지 다음과 같은 프로세스 중 적어도 하나의 최적화 방법을 수행하고, 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성하는 것을 더 포함하며, 상기 최적화 방법은,
상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보를 조정하는 것,
상기 엔드 측의 인공지능 프로세서의 실행환경 파라미터를 조정하는 것, 또는
인공지능 학습 태스크를 최적화하는 것을 포함한다.
C8. 상기 C7에 따른 상기 방법에서, 상기 인공지능 학습 태스크를 최적화하는 단계는 전용 프로그래밍 언어에 따라 인공지능 학습 태스크를 최적화하는 것을 포함한다.
C9. 상기 C7 또는 C8에 따른 상기 방법에서, 상기 인공지능 학습 태스크를 최적화하는 단계는 인공지능 학습 라이브러리의 버전을 업데이트하는 것을 통해 인공지능 학습 태스크를 최적화하는 것을 더 포함한다.
C10. 상기 C7-C9 중 어느 한 항에 따른 상기 방법에서, 상기 인공지능 학습 태스크를 최적화하는 단계는 인공지능 알고리즘 모델을 조정하는 것을 더 포함한다.
C11. 상기 C1-C10 중 어느 한 항에 따른 상기 방법에서, 상기 실행결과는 상기 인공지능 학습 태스크의 클라우드 측의 인공지능 프로세서에서의 실행시간, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보, 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 적어도 하나를 포함한다.
D12. 메모리 및 범용 프로세서를 포함한 데이터 처리장치에 있어서, 상기 메모리에는 상기 범용 프로세서에 의해 실행 가능한 컴퓨터 프로그램이 저장되어 있고, 상기 범용 프로세서가 상기 컴퓨터 프로그램을 수행할 때 실현하는 데이터 처리 흐름은,
엔드 측의 인공지능 프로세서의 설비정보에 따라 바이너리 명령을 생성하고, 상기 바이너리 명령에 따라 인공지능 학습 태스크를 생성하는 것;
상기 인공지능 학습 태스크를 클라우드 측의 인공지능 프로세서에 송신하여 실행시키는 것;
상기 인공지능 학습 태스크에 대응하는 실행결과를 수신하는 것; 및
상기 실행결과에 따라 오프라인 실행 파일을 확정하는 것을 포함하며, 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족하면 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 생성된다.
D13. 상기 D12에 따른 상기 장치에서, 상기 설비정보는 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 실행환경 파라미터를 포함한다.
D14. 상기 D13에 따른 상기 장치에서, 상기 실행환경 파라미터는 상기 엔드 측의 인공지능 프로세서의 실행 메인 주파수, 오프 칩 메모리부터 엔드 측의 인공지능 프로세서 사이의 액세스 대역폭, 온칩 스토리지 크기, 엔드 측의 인공지능 프로세서의 코어 수, 엔드 측의 인공지능 프로세서 중 연산장치의 유형 중 적어도 하나를 포함한다.
D15. 상기 D12에 따른 상기 장치에서, 상기 범용 프로세서가 상기 컴퓨터 프로그램을 수행할 때 실현하는 데이터 처리 흐름은 상기 엔드 측의 인공지능 프로세서의 설비정보를 수신하는 것을 더 포함한다.
D16. 상기 D12 또는 D15에 따른 상기 장치에서, 상기 범용 프로세서가 상기 컴퓨터 프로그램을 수행할 때 실현하는 데이터 처리 흐름은 설비정보를 드라이버에 써놓고, 상기 드라이버 중 설비정보에 따라 클라우드 측의 인공지능 프로세서에 적응시키기는 것을 더 포함한다.
D17. 상기 D12에 따른 상기 장치에서, 상기 범용 프로세서가 상기 실행결과에 따라 상기 오프라인 실행 파일을 확정하는 경우, 상기 컴퓨터 프로그램을 수행할 때 실현하는 데이터 처리 흐름은 상기 실행결과가 미리 설정된 요구 사항을 충족하면 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성하는 것을 포함한다.
D18. 상기 D12에 따른 상기 장치에서, 상기 범용 프로세서가 상기 실행결과에 따라 상기 오프라인 실행 파일을 확정하는 겨우, 상기 컴퓨터 프로그램을 수행하여 실현하는 데이터 처리 흐름은,
상기 실행결과가 미리 설정된 요구 사항을 충족하지 않으면 실행결과가 상기 미리 설정된 요구 사항을 충족할 때까지 다음과 같은 프로세스 중 적어도 하나의 최적화 방법을 수행하고, 상기 미리 설정된 요구 사항을 충족하는 바이너리 명령에 따라 대응하는 오프라인 실행 파일을 생성하는 것을 더 포함하며, 상기 최적화 방법은,
상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보를 조정하는 것,
상기 엔드 측의 인공지능 프로세서의 실행환경 파라미터를 조정하는 것, 또는
인공지능 학습 태스크를 최적화하는 것을 포함한다.
D19. 상기 D18에 따른 상기 장치에서, 상기 범용 프로세서가 인공지능 학습 태스크를 최적화할 때 실현하는 데이터 처리 흐름은 전용 프로그래밍 언어에 따라 인공지능 학습 태스크를 최적화하는 것을 더 포함한다.
D20. 상기 D18 또는 D19에 따른 상기 장치에서, 상기 범용 프로세서가 인공지능 학습 태스크를 최적화할 때 실현하는 데이터 처리 흐름은 인공지능 학습 라이브러리의 버전을 업데이트하는 것을 통해 인공지능 학습 태스크를 최적화하는 것을 더 포함한다.
D21. 상기 D18-D20 중 어느 한 항에 따른 상기 장치에서, 상기 범용 프로세서가 인공지능 학습 태스크를 최적화할 때 실현하는 데이터 처리 흐름은 인공지능 알고리즘 모델을 조정하는 것을 더 포함한다.
D22. 상기 D12-D21 중 어느 한 항에 따른 상기 장치에서, 상기 실행결과는 상기 인공지능 학습 태스크의 클라우드 측의 인공지능 프로세서에서의 실행시간이 예상되는 요구 사항에 해당하는지 여부, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보가 예상되는 요구 사항에 해당하는지 여부, 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 적어도 하나를 포함한다.
E23. 클라우드 측의 인공지능 프로세서에 적용되는 데이터 처리방법에 있어서,
엔드 측의 인공지능 프로세서의 설비정보에 의해 생성되는 바이너리 명령에 따라 확정되는 인공지능 학습 태스크를 수신하는 것; 및
상기 인공지능 학습 태스크를 수행하여 실행결과를 생성하는 것을 포함한다.
E24. 상기 E23에 따른 상기 방법에서, 상기 실행결과는 상기 인공지능 학습 태스크의 클라우드 측의 인공지능 프로세서에서의 실행시간이 예상되는 요구 사항에 해당하는지 여부, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보가 예상되는 요구 사항에 해당하는지 여부, 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 적어도 하나를 포함한다.
E25. 상기 E23에 따른 상기 방법에서, 상기 클라우드 측의 인공지능 프로세서는 인공지능 프로세서 하드웨어 실체, 필드 프로그래머블 게이트 어레이, 시뮬레이터 중 적어도 하나를 포함한다.
E26. 상기 E25에 따른 상기 방법에서, 상기 클라우드 측의 인공지능 프로세서 하드웨어 실체는 아키텍처의 재구성이 가능한 인공지능 프로세서이다.
F27. 인공지능 프로세서에 있어서,
엔드 측의 인공지능 프로세서의 설비정보에 의해 생성되는 바이너리 명령에 따라 확정되는 인공지능 학습 태스크를 수신하기 위한 수신모듈; 및
상기 인공지능 학습 태스크를 수행하여 실행결과를 생성하기 위한 수행모듈을 포함한다.
F28. 상기 F27에 따른 상기 인공지능 프로세서에서, 상기 수행모듈생성의 실행결과는 상기 인공지능 학습 태스크의 상기 클라우드 측의 인공지능 프로세서에서의 실행시간, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보, 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 적어도 하나를 포함한다.
F29. 상기 F27에 따른 상기 인공지능 프로세서에서, 상기 클라우드 측의 인공지능 프로세서는 인공지능 프로세서 하드웨어 실체, 필드 프로그래머블 게이트 어레이, 시뮬레이터 중 적어도 하나를 포함한다.
F30. 상기 F29에 따른 상기 인공지능 프로세서에서, 상기 클라우드 측의 인공지능 프로세서 하드웨어 실체는 아키텍처의 재구성이 가능한 인공지능 프로세서이다.
G31. 엔드 측의 인공지능 프로세서에 적용되는 데이터 처리방법에 있어서,
오프라인 실행 파일을 획득하는 것을 포함하며, 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족하면 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 생성된다.
G32. 상기 G31에 따른 상기 방법에서, 요구정보를 송신하는 것을 더 포함하며, 상기 요구정보는 상기 엔드 측의 인공지능 프로세서의 설비정보를 포함한다.
G33. 상기 G31에 따른 상기 방법에서, 상기 설비정보는 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 실행환경 파라미터를 포함한다.
G34. 상기 G33에 따른 상기 방법에서, 상기 실행환경 파라미터는 상기 엔드 측의 인공지능 프로세서의 실행 메인 주파수, 오프 칩 메모리부터 엔드 측의 인공지능 프로세서 사이의 액세스 대역폭, 온칩 스토리지 크기, 엔드 측의 인공지능 프로세서의 코어 수, 엔드 측의 인공지능 프로세서 중 연산장치의 유형 중 적어도 하나를 포함한다.
H35. 인공지능 프로세서에 있어서,
오프라인 실행 파일을 획득하기 위한 획득모듈을 포함하며, 상기 오프라인 실행 파일은 실행결과가 미리 설정된 요구 사항을 충족하면 대응하는 상기 엔드 측의 인공지능 프로세서의 설비정보와 바이너리 명령에 의해 생성된다.
H36. 상기 H35에 따른 상기 인공지능 프로세서에서, 요구정보를 송신하기 위한 송신모듈을 더 포함하며, 상기 요구정보는 상기 엔드 측의 인공지능 프로세서의 설비정보를 포함한다.
H37. 상기 H36에 따른 상기 인공지능 프로세서에서, 상기 설비정보는 상기 엔드 측의 인공지능 프로세서의 하드웨어 아키텍처 정보와 실행환경 파라미터를 포함한다.
H38. 상기 H37에 따른 상기 인공지능 프로세서에서, 상기 실행환경 파라미터는 상기 엔드 측의 인공지능 프로세서의 실행 메인 주파수, 오프 칩 메모리부터 엔드 측의 인공지능 프로세서 사이의 액세스 대역폭, 온칩 스토리지 크기, 엔드 측의 인공지능 프로세서의 코어 수, 엔드 측의 인공지능 프로세서 중 연산장치의 유형 중 적어도 하나를 포함한다.

Claims (8)

  1. 클라우드 측의 인공지능 프로세서에 적용되는 데이터 처리방법에 있어서,
    엔드 측의 인공지능 프로세서의 설비정보에 의해 생성되는 바이너리 명령에 따라 확정되는 인공지능 학습 태스크를 수신하는 것, 및
    상기 인공지능 학습 태스크를 수행하여 실행결과를 생성하는 것을 포함하는 것을 특징으로 하는 데이터 처리방법.
  2. 제1 항에 있어서,
    상기 실행결과는 상기 인공지능 학습 태스크의 클라우드 측의 인공지능 프로세서에서의 실행시간, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보, 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 처리방법.
  3. 제1 항에 있어서,
    상기 클라우드 측의 인공지능 프로세서는 인공지능 프로세서 하드웨어 실체, 필드 프로그래머블 게이트 어레이, 시뮬레이터 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 처리방법.
  4. 제3 항에 있어서,
    상기 클라우드 측의 인공지능 프로세서 하드웨어 실체는 아키텍처의 재구성이 가능한 인공지능 프로세서인 것을 특징으로 하는 데이터 처리방법.
  5. 엔드 측의 인공지능 프로세서의 설비정보에 의해 생성되는 바이너리 명령에 따라 확정되는 인공지능 학습 태스크를 수신하기 위한 수신모듈과,
    상기 인공지능 학습 태스크를 수행하여 실행결과를 생성하기 위한 수행모듈을 포함하는 것을 특징으로 하는 인공지능 프로세서.
  6. 제5 항에 있어서,
    상기 수행모듈이 생성하는 실행결과는 상기 인공지능 학습 태스크의 상기 클라우드 측의 인공지능 프로세서에서의 실행시간, 상기 인공지능 학습 태스크의 수행시 클라우드 측의 인공지능 처리 시스템을 점용하는 로드 정보, 인공지능 학습 태스크를 수행한 결과가 예상되는 요구 사항에 해당하는지 여부 중 적어도 하나를 포함하는 것을 특징으로 하는 인공지능 프로세서.
  7. 제5 항에 있어서,
    상기 클라우드 측의 인공지능 프로세서는 인공지능 프로세서 하드웨어 실체, 필드 프로그래머블 게이트 어레이, 시뮬레이터 중 적어도 하나를 포함하는 것을 특징으로 하는 인공지능 프로세서.
  8. 제7 항에 있어서,
    상기 클라우드 측의 인공지능 프로세서 하드웨어 실체는 아키텍처의 재구성이 가능한 인공지능 프로세서인 것을 특징으로 하는 인공지능 프로세서.
KR1020197037882A 2019-04-18 2019-07-19 데이터 처리방법 및 관련제품 KR102544522B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
CN201910315962.9 2019-04-18
CN201910315962 2019-04-18
CN201910436801.5A CN111831543A (zh) 2019-04-18 2019-05-23 一种数据处理方法及相关产品
CN201910436801.5 2019-05-23
KR1020197037680A KR102323378B1 (ko) 2019-04-18 2019-07-19 데이터 처리방법 및 관련제품
PCT/CN2019/096859 WO2020211205A1 (zh) 2019-04-18 2019-07-19 一种数据处理方法及相关产品

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197037680A Division KR102323378B1 (ko) 2019-04-18 2019-07-19 데이터 처리방법 및 관련제품

Publications (2)

Publication Number Publication Date
KR20210142784A true KR20210142784A (ko) 2021-11-26
KR102544522B1 KR102544522B1 (ko) 2023-06-15

Family

ID=70878367

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020197037886A KR102430739B1 (ko) 2019-04-18 2019-07-19 데이터 처리방법 및 관련제품
KR1020197037882A KR102544522B1 (ko) 2019-04-18 2019-07-19 데이터 처리방법 및 관련제품
KR1020197037680A KR102323378B1 (ko) 2019-04-18 2019-07-19 데이터 처리방법 및 관련제품
KR1020197037891A KR102501992B1 (ko) 2019-04-18 2019-07-19 데이터 처리방법 및 관련제품

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197037886A KR102430739B1 (ko) 2019-04-18 2019-07-19 데이터 처리방법 및 관련제품

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020197037680A KR102323378B1 (ko) 2019-04-18 2019-07-19 데이터 처리방법 및 관련제품
KR1020197037891A KR102501992B1 (ko) 2019-04-18 2019-07-19 데이터 처리방법 및 관련제품

Country Status (8)

Country Link
US (1) US11762690B2 (ko)
EP (4) EP3754495B1 (ko)
JP (4) JP7044808B2 (ko)
KR (4) KR102430739B1 (ko)
CN (6) CN111832737B (ko)
AU (4) AU2019283890B2 (ko)
CA (1) CA3065651A1 (ko)
WO (1) WO2020211205A1 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
KR102354720B1 (ko) 2018-02-13 2022-01-21 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 계산 장치 및 방법
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US20200159532A1 (en) 2018-02-13 2020-05-21 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN110162162B (zh) 2018-02-14 2023-08-18 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
EP3624020A4 (en) 2018-05-18 2021-05-05 Shanghai Cambricon Information Technology Co., Ltd CALCULATION PROCEDURES AND RELATED PRODUCTS
KR102470893B1 (ko) 2018-06-27 2022-11-25 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 온 칩 코드의 브레이크 포인트에 의한 디버그 방법, 온 칩 프로세서 및 브레이크 포인트에 의한 칩 디버그 시스템
EP3640810A4 (en) 2018-08-28 2021-05-05 Cambricon Technologies Corporation Limited DATA PRE-PROCESSING PROCESS AND APPARATUS, COMPUTER DEVICE AND STORAGE MEDIA
US11703939B2 (en) 2018-09-28 2023-07-18 Shanghai Cambricon Information Technology Co., Ltd Signal processing device and related products
CN111383638A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN111694617B (zh) * 2018-12-29 2023-05-02 中科寒武纪科技股份有限公司 网络离线模型的处理方法、人工智能处理装置及相关产品
CN111832737B (zh) 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US20200334522A1 (en) 2019-04-18 2020-10-22 Cambricon Technologies Corporation Limited Data processing method and related products
CN112085193B (zh) 2019-06-12 2024-03-29 上海寒武纪信息科技有限公司 一种神经网络的量化参数确定方法及相关产品
US11676028B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
CN110727633A (zh) * 2019-09-17 2020-01-24 广东高云半导体科技股份有限公司 基于SoC FPGA的边缘人工智能计算系统构架
CN113867797A (zh) * 2020-06-30 2021-12-31 上海寒武纪信息科技有限公司 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN111860650A (zh) * 2020-07-21 2020-10-30 苏州浪潮智能科技有限公司 一种基于tvm的并行卷积融合的方法和设备
CN116134446A (zh) * 2020-07-28 2023-05-16 嘉楠明芯(北京)科技有限公司 神经网络模型的多算子运算方法以及装置
CN113159290B (zh) * 2021-04-26 2022-08-09 青岛本原微电子有限公司 一种神经网络模型网络推理的优化方法
CN114936631B (zh) * 2021-04-26 2023-06-09 华为技术有限公司 一种模型处理方法及装置
CN113190351B (zh) * 2021-05-06 2022-06-21 天津大学 一种面向分布式深度学习训练任务的高效资源分配系统
CN113435126B (zh) * 2021-07-07 2024-02-02 魏天骐 知识分享处理方法、智能机器人设备、知识分享系统、任务学习系统
US11977475B1 (en) * 2021-08-06 2024-05-07 Marvell Asia Pte Ltd Method and apparatus for compiler and low-level instruction validation of machine learning operations on hardware
US20230053820A1 (en) * 2021-08-19 2023-02-23 Red Hat, Inc. Generating a build process for building software in a target environment
CN114490116B (zh) * 2021-12-27 2023-03-24 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质
CN114172908B (zh) * 2022-02-10 2022-08-05 浙江大学 一种端云协同处理方法及设备
CN117061505A (zh) * 2022-05-05 2023-11-14 中国移动通信集团广东有限公司 移动视频ai平台及视频流处理方法
CN116501594B (zh) * 2023-06-27 2023-09-08 上海燧原科技有限公司 系统建模评估方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017138220A1 (ja) * 2016-02-12 2017-08-17 ソニー株式会社 情報処理方法および情報処理装置
US20170357910A1 (en) * 2016-06-10 2017-12-14 Apple Inc. System for iteratively training an artificial intelligence using cloud-based metrics
US20180136912A1 (en) * 2016-11-17 2018-05-17 The Mathworks, Inc. Systems and methods for automatically generating code for deep learning systems
US20180293517A1 (en) * 2016-01-27 2018-10-11 Bonsai Al, Inc. Artificial intelligence engine for mixing and enhancing features from one or more trained pre-existing machine-learning models

Family Cites Families (212)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0375860A (ja) 1989-08-18 1991-03-29 Hitachi Ltd パーソナライズド端末
US5052043A (en) 1990-05-07 1991-09-24 Eastman Kodak Company Neural network with back propagation controlled through an output confidence measure
US6144977A (en) 1995-07-10 2000-11-07 Motorola, Inc. Circuit and method of converting a floating point number to a programmable fixed point number
JPH0934698A (ja) * 1995-07-20 1997-02-07 Hitachi Ltd ソフトウェア生成方法及び開発支援方法
GB9602701D0 (en) 1996-02-09 1996-04-10 Canon Kk Image manipulation
US6167155A (en) 1997-07-28 2000-12-26 Physical Optics Corporation Method of isomorphic singular manifold projection and still/video imagery compression
US6223144B1 (en) * 1998-03-24 2001-04-24 Advanced Technology Materials, Inc. Method and apparatus for evaluating software programs for semiconductor circuits
AU3484100A (en) 1999-02-05 2000-08-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor andmethod for the same
US7242414B1 (en) 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
JP2000293371A (ja) 1999-04-09 2000-10-20 Hitachi Ltd マイクロプログラム制御方法及び装置
US6671796B1 (en) 2000-02-25 2003-12-30 Sun Microsystems, Inc. Converting an arbitrary fixed point value to a floating point value
US6931639B1 (en) 2000-08-24 2005-08-16 International Business Machines Corporation Method for implementing a variable-partitioned queue for simultaneous multithreaded processors
US7153348B2 (en) 2000-09-07 2006-12-26 Nippon Steel Corporation Hexavalent chromium-free surface-treating agent for Sn or Al-based coated steel sheet, and surface treated steel sheet
US20020138714A1 (en) 2001-03-22 2002-09-26 Sun Microsystems, Inc. Scoreboard for scheduling of instructions in a microprocessor that provides out of order execution
CN1270273C (zh) 2001-04-19 2006-08-16 艾利森电话股份有限公司 自适应存储器分配
US20030167460A1 (en) 2002-02-26 2003-09-04 Desai Vipul Anil Processor instruction set simulation power estimation method
US7236995B2 (en) 2002-12-27 2007-06-26 Arm Limited Data processing apparatus and method for converting a number between fixed-point and floating-point representations
DE10316381A1 (de) 2003-04-10 2004-10-28 Bayer Technology Services Gmbh Verfahren zum Training von neuronalen Netzen
JP4202244B2 (ja) 2003-12-22 2008-12-24 Necエレクトロニクス株式会社 Vliw型dsp,及びその動作方法
US20060161375A1 (en) 2004-12-30 2006-07-20 Allen Duberstein Optimizing processing speed based on measured temperatures
US7721128B2 (en) 2005-11-29 2010-05-18 International Business Machines Corporation Implementation of thermal throttling logic
CN1851668A (zh) 2006-06-01 2006-10-25 北京天碁科技有限公司 片上系统芯片、片上系统芯片的跟踪调试系统及方法
DE102006059156B4 (de) 2006-12-14 2008-11-06 Advanced Micro Devices, Inc., Sunnyvale Verfahren zum Testen eines integrierten Schaltkreischips mit zumindest zwei Schaltungskernen sowie integrierter Schaltkreischip und Testsystem
US20110060587A1 (en) 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
US8560591B2 (en) 2007-04-25 2013-10-15 International Business Machines Corporation Detection of potential need to use a larger data format in performing floating point operations
US8190664B2 (en) 2007-04-26 2012-05-29 International Business Machines Corporation Employing a mask field of an instruction to encode a sign of a result of the instruction
US8051117B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data
US8051118B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
JP5184824B2 (ja) 2007-06-15 2013-04-17 キヤノン株式会社 演算処理装置及び方法
JP2009110353A (ja) 2007-10-31 2009-05-21 Hitachi Ltd マイクロコントローラ及び制御システム
US7904287B2 (en) 2007-11-13 2011-03-08 International Business Machines Corporation Method and system for real-time prediction of power usage for a change to another performance state
JP4998794B2 (ja) 2007-11-29 2012-08-15 Nkワークス株式会社 画像補正方法と画像補正装置
US20100073068A1 (en) 2008-09-22 2010-03-25 Hanwoo Cho Functional block level thermal control
CN101572829B (zh) 2009-06-10 2011-02-02 中国联合网络通信集团有限公司 Iptv视频质量监测方法、装置和系统
EP2336882A1 (en) * 2009-12-18 2011-06-22 Telefonaktiebolaget L M Ericsson (PUBL) Technique for run-time provision of executable code using off-device services
CN102667717A (zh) * 2009-12-21 2012-09-12 诺基亚公司 用于编译的方法、装置和系统
CN102985673B (zh) 2010-04-21 2015-06-17 丰田自动车株式会社 内燃机的控制装置
JP2011253374A (ja) 2010-06-02 2011-12-15 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
US8452463B2 (en) 2010-06-04 2013-05-28 Apple Inc. Adjusting the thermal behavior of a computing system using indirect information about ambient temperature
US8694572B2 (en) 2010-07-06 2014-04-08 Silminds, Llc, Egypt Decimal floating-point fused multiply-add unit
US8924455B1 (en) 2011-02-25 2014-12-30 Xilinx, Inc. Multiplication of matrices using systolic arrays
CN102761509B (zh) 2011-04-27 2016-01-06 联芯科技有限公司 Ofdm系统的接收系统及降低接收系统内存的方法
CN103534664B (zh) 2011-05-12 2016-08-31 苹果公司 存在感测
CN102789413B (zh) 2011-05-23 2016-02-17 同济大学 一种并行程序的调试系统及方法
US8594982B2 (en) * 2011-06-09 2013-11-26 Pulsar Informatics, Inc. Systems and methods for distributed calculation of fatigue-risk prediction and optimization
CN102404673B (zh) 2011-11-24 2013-12-18 苏州上声电子有限公司 数字化扬声器系统通道均衡与声场控制方法和装置
CN103152673B (zh) 2011-12-07 2015-07-08 中国科学院声学研究所 基于四元码动态失配整形的数字扬声器驱动方法和装置
CN102684701B (zh) 2012-04-27 2014-07-09 苏州上声电子有限公司 基于编码转换的数字扬声器驱动方法和装置
DE102012009502A1 (de) 2012-05-14 2013-11-14 Kisters Ag Verfahren zum Trainieren eines künstlichen neuronalen Netzes
US9417891B2 (en) * 2012-06-11 2016-08-16 Vmware, Inc. Unified storage/VDI provisioning methodology
JP6051629B2 (ja) * 2012-07-09 2016-12-27 富士通株式会社 電力見積支援プログラム、電力見積支援装置および電力見積支援方法
US9063731B2 (en) 2012-08-27 2015-06-23 Samsung Electronics Co., Ltd. Ultra low power apparatus and method to wake up a main processor
CN102903089B (zh) 2012-09-07 2014-12-17 山东大学 一种Linux环境下生成遥感图像快视图的方法
US9412366B2 (en) 2012-09-18 2016-08-09 Adobe Systems Incorporated Natural language image spatial and tonal localization
CN102981854A (zh) 2012-11-16 2013-03-20 天津市天祥世联网络科技有限公司 基于浮点数运算内联函数库的神经网络优化方法
US20150369963A1 (en) 2012-11-22 2015-12-24 Keio University Acrylic copolymer, optical film, polarizing plate and liquid crystal display device
US9851977B2 (en) 2012-12-06 2017-12-26 Kalray Apparatus and method for combining thread warps with compatible execution masks for simultaneous execution and increased lane utilization
US9720732B1 (en) 2013-02-11 2017-08-01 Amazon Technologies, Inc. Parameter selection for optimization of task execution based on execution history for prior tasks
JP2014170295A (ja) 2013-03-01 2014-09-18 Honda Motor Co Ltd 物体認識システム及び物体認識方法
US20190138372A1 (en) 2013-04-29 2019-05-09 Moogsoft, Inc. System for managing an instructure with security
CN103268272B (zh) * 2013-05-07 2014-07-23 中国人民解放军国防科学技术大学 基于场景的处理器系统级验证完备性度量方法
JP5963957B2 (ja) * 2013-06-12 2016-08-03 三菱電機株式会社 開発環境システム、開発環境装置、開発環境提供方法及びプログラム
JP2015011363A (ja) * 2013-06-26 2015-01-19 株式会社リコー 協調検証装置及び協調検証方法
JP6184891B2 (ja) 2014-03-12 2017-08-23 東芝メモリ株式会社 情報処理装置、半導体チップ、情報処理方法およびプログラム
WO2015179632A1 (en) * 2014-05-22 2015-11-26 Scheffler Lee J Methods and systems for neural and cognitive processing
US9507405B2 (en) 2014-06-18 2016-11-29 Oracle International Corporation System and method for managing power in a chip multiprocessor using a proportional feedback mechanism
US9575537B2 (en) 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
US10282100B2 (en) 2014-08-19 2019-05-07 Samsung Electronics Co., Ltd. Data management scheme in virtualized hyperscale environments
GB2524126B (en) 2014-08-28 2016-07-27 Imagination Tech Ltd Combining paths
US9916130B2 (en) 2014-11-03 2018-03-13 Arm Limited Apparatus and method for vector processing
FR3030077B1 (fr) 2014-12-10 2016-12-02 Arnault Ioualalen Procede d'ajustement de la precision d'un programme d'ordinateur manipulant au moins un nombre a virgule.
EP3035204B1 (en) 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
US20170061279A1 (en) 2015-01-14 2017-03-02 Intel Corporation Updating an artificial neural network using flexible fixed point representation
US20160328645A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US10083395B2 (en) 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
CN104899641B (zh) 2015-05-25 2018-07-13 杭州朗和科技有限公司 深度神经网络学习方法、处理器和深度神经网络学习系统
CN115100017A (zh) 2015-06-10 2022-09-23 无比视视觉技术有限公司 用于处理图像的图像处理器和方法
CN106250981B (zh) 2015-06-10 2022-04-01 三星电子株式会社 减少存储器访问和网络内带宽消耗的脉冲神经网络
CN104978303B (zh) 2015-06-19 2019-06-04 上海兆芯集成电路有限公司 单芯片整合的传感器集线器和多传感器管理方法
CN106469291A (zh) 2015-08-19 2017-03-01 中兴通讯股份有限公司 图像处理方法及终端
CN106528489A (zh) * 2015-09-14 2017-03-22 上海羽视澄蓝信息科技有限公司 基于云计算的车辆检测机器学习系统
US10031765B2 (en) 2015-09-24 2018-07-24 Intel Corporation Instruction and logic for programmable fabric hierarchy and cache
WO2017055609A1 (en) 2015-09-30 2017-04-06 Piksel, Inc Improved video stream delivery via adaptive quality enhancement using error correction models
US11061672B2 (en) 2015-10-02 2021-07-13 Via Alliance Semiconductor Co., Ltd. Chained split execution of fused compound arithmetic operations
CN106570559A (zh) 2015-10-09 2017-04-19 阿里巴巴集团控股有限公司 一种基于神经网络的数据处理方法和装置
US9930248B2 (en) 2015-11-17 2018-03-27 Eman Bayani Digital image capturing device system and method
CN106814639A (zh) 2015-11-27 2017-06-09 富泰华工业(深圳)有限公司 语音控制系统及方法
CN105893419A (zh) 2015-11-30 2016-08-24 乐视致新电子科技(天津)有限公司 一种多媒体照片生成方法、装置、设备及手机
US10699186B2 (en) 2015-12-02 2020-06-30 Google Llc Determining orders of execution of a neural network
CN105550222B (zh) 2015-12-07 2019-04-05 中国电子科技网络信息安全有限公司 一种基于分布式存储的图像服务系统及方法
CN105653790B (zh) 2015-12-29 2019-03-29 东南大学—无锡集成电路技术研究所 一种基于人工神经网络的乱序处理器Cache访存性能评估方法
CN110135581B (zh) 2016-01-20 2020-11-06 中科寒武纪科技股份有限公司 用于执行人工神经网络反向运算的装置和方法
CN106997236B (zh) 2016-01-25 2018-07-13 亮风台(上海)信息科技有限公司 基于多模态输入进行交互的方法和设备
US10497089B2 (en) 2016-01-29 2019-12-03 Fotonation Limited Convolutional neural network
US10103714B2 (en) 2016-03-01 2018-10-16 Qualcomm Incorporated Adjust voltage for thermal mitigation
JP2017156511A (ja) 2016-03-01 2017-09-07 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US10019779B2 (en) 2016-03-08 2018-07-10 Amazon Technologies, Inc. Browsing interface for item counterparts having different scales and lengths
US10552119B2 (en) 2016-04-29 2020-02-04 Intel Corporation Dynamic management of numerical representation in a distributed matrix processor architecture
CN109934331B (zh) 2016-04-29 2020-06-19 中科寒武纪科技股份有限公司 用于执行人工神经网络正向运算的装置和方法
US10187568B1 (en) 2016-05-02 2019-01-22 Bao Tran Video smart phone
US11055063B2 (en) 2016-05-02 2021-07-06 Marvell Asia Pte, Ltd. Systems and methods for deep learning processor
CN105978611B (zh) 2016-05-12 2019-09-17 京信通信系统(中国)有限公司 一种频域信号压缩方法及装置
AU2016203619A1 (en) 2016-05-31 2017-12-14 Canon Kabushiki Kaisha Layer-based operations scheduling to optimise memory for CNN applications
EP3252949B1 (en) 2016-06-01 2020-03-18 Intel IP Corporation Methods and devices for predistortion of signals
US11328206B2 (en) * 2016-06-16 2022-05-10 SRI Inlernational Systems and methods for optimizing operations of computing devices using deep neural networks
CN107545889B (zh) 2016-06-23 2020-10-23 华为终端有限公司 适用于模式识别的模型的优化方法、装置及终端设备
CN106156310A (zh) 2016-06-30 2016-11-23 努比亚技术有限公司 一种图片处理装置和方法
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers
US20190265955A1 (en) * 2016-07-21 2019-08-29 Ramot At Tel-Aviv University Ltd. Method and system for comparing sequences
DE102016214786A1 (de) 2016-08-09 2018-02-15 Fujitsu Limited Anwendungsprofiling-Jobmanagement-System, -Programm und -Verfahren
CN107688855B (zh) 2016-08-12 2021-04-13 赛灵思公司 针对于复杂神经网络的分层量化方法与装置
US20180046903A1 (en) 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Deep processing unit (dpu) for implementing an artificial neural network (ann)
CN106354568A (zh) 2016-08-23 2017-01-25 京信通信技术(广州)有限公司 一种不同进程间的通信方法及通信装置
CN107797913A (zh) 2016-09-07 2018-03-13 大陆汽车电子(连云港)有限公司 一种实时系统的软件分析系统与方法
US11907760B2 (en) 2016-09-23 2024-02-20 Apple Inc. Systems and methods of memory allocation for neural networks
CN106650922B (zh) * 2016-09-29 2019-05-03 清华大学 硬件神经网络转换方法、计算装置、软硬件协作系统
US20180096243A1 (en) 2016-09-30 2018-04-05 General Electric Company Deep learning for data driven feature representation and anomaly detection
WO2018071546A1 (en) 2016-10-11 2018-04-19 The Research Foundation For The State University Of New York System, method, and accelerator to process convolutional neural network layers
CN106485316B (zh) 2016-10-31 2019-04-02 北京百度网讯科技有限公司 神经网络模型压缩方法以及装置
CN106502626A (zh) 2016-11-03 2017-03-15 北京百度网讯科技有限公司 数据处理方法和装置
US10877547B2 (en) 2016-11-18 2020-12-29 Ati Technologies Ulc Application profiling for power-performance management
US10216479B2 (en) 2016-12-06 2019-02-26 Arm Limited Apparatus and method for performing arithmetic operations to accumulate floating-point numbers
US10997492B2 (en) 2017-01-20 2021-05-04 Nvidia Corporation Automated methods for conversions to a lower precision data format
CN106951587A (zh) 2017-02-15 2017-07-14 芯启源(南京)半导体科技有限公司 Fpga调试系统及方法
CN106951962B (zh) 2017-03-22 2020-09-01 南京地平线机器人技术有限公司 用于神经网络的复合运算单元、方法和电子设备
CN108664266B (zh) 2017-04-01 2022-04-15 深圳森若科技有限公司 一种便携式人工智能装置及其配置方法
US10402932B2 (en) 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
US10332302B2 (en) 2017-04-17 2019-06-25 Intel Corporation Scatter gather engine
CN108734288B (zh) 2017-04-21 2021-01-29 上海寒武纪信息科技有限公司 一种运算方法及装置
CN107025629B (zh) 2017-04-27 2021-03-26 维沃移动通信有限公司 一种图像处理方法及移动终端
US11592817B2 (en) 2017-04-28 2023-02-28 Intel Corporation Storage management for machine learning at autonomous machines
US11842280B2 (en) 2017-05-05 2023-12-12 Nvidia Corporation Loss-scaling for deep neural network training with reduced precision
US10019668B1 (en) 2017-05-19 2018-07-10 Google Llc Scheduling neural network processing
CN109146069B (zh) 2017-06-16 2020-10-13 上海寒武纪信息科技有限公司 运算装置、运算方法和芯片
CN109478251B (zh) 2017-05-23 2021-01-05 安徽寒武纪信息科技有限公司 处理方法及加速装置
US11144828B2 (en) 2017-06-09 2021-10-12 Htc Corporation Training task optimization system, training task optimization method and non-transitory computer readable medium for operating the same
US10944902B2 (en) 2017-06-20 2021-03-09 Adobe Inc. Digital image generation using capture support data
US20200097799A1 (en) 2017-06-30 2020-03-26 Intel Corporation Heterogeneous multiplier
EP3660739A1 (en) 2017-07-05 2020-06-03 Shanghai Cambricon Information Technology Co., Ltd Data processing apparatus and method
CN107451654B (zh) 2017-07-05 2021-05-18 深圳市自行科技有限公司 卷积神经网络的加速运算方法、服务器及存储介质
CN107578014B (zh) 2017-09-06 2020-11-03 上海寒武纪信息科技有限公司 信息处理装置及方法
US10427306B1 (en) 2017-07-06 2019-10-01 X Development Llc Multimodal object identification
CN109284130B (zh) 2017-07-20 2021-03-23 上海寒武纪信息科技有限公司 神经网络运算装置及方法
CN107451658B (zh) 2017-07-24 2020-12-15 杭州菲数科技有限公司 浮点运算定点化方法及系统
CN107688849B (zh) 2017-07-28 2021-04-13 赛灵思电子科技(北京)有限公司 一种动态策略定点化训练方法及装置
US11481218B2 (en) 2017-08-02 2022-10-25 Intel Corporation System and method enabling one-hot neural networks on a machine learning compute platform
EP3652681A4 (en) 2017-08-08 2020-07-29 Samsung Electronics Co., Ltd. PROCESS AND APPARATUS FOR DETERMINING MEMORY REQUIREMENTS IN A NETWORK
US20190050710A1 (en) 2017-08-14 2019-02-14 Midea Group Co., Ltd. Adaptive bit-width reduction for neural networks
CN107577008A (zh) * 2017-09-01 2018-01-12 昆山龙腾光电有限公司 显示装置及显示装置的制作方法
CN107644254A (zh) 2017-09-09 2018-01-30 复旦大学 一种卷积神经网络权重参数量化训练方法及系统
CN107577608A (zh) * 2017-09-26 2018-01-12 上海市信息网络有限公司 带有随机uid的处理器芯片仿真器
US10223114B1 (en) 2017-09-29 2019-03-05 Intel Corporation Fixed point to floating point conversion
US10224954B1 (en) 2017-09-29 2019-03-05 Intel Corporation Floating point to fixed point conversion
US11450319B2 (en) 2017-09-29 2022-09-20 Cambricon (Xi'an) Semiconductor Co., Ltd. Image processing apparatus and method
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
JP6810283B2 (ja) 2017-09-29 2021-01-06 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co.,Ltd. 画像処理装置及び方法
US10438118B2 (en) * 2017-10-09 2019-10-08 Accenture Global Solutions Limited Verification by metamorphic testing of applications that utilize artificial intelligence
JP6540770B2 (ja) 2017-10-17 2019-07-10 富士通株式会社 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法
US10360214B2 (en) 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US10410121B2 (en) 2017-10-25 2019-09-10 SparkCognition, Inc. Adjusting automated neural network generation based on evaluation of candidate neural networks
US20210061028A1 (en) 2017-10-26 2021-03-04 Applied Mechatronic Products Apparatus and method for vehicular monitoring, analysis, and control
CN107942240B (zh) * 2017-11-15 2020-03-31 深圳市紫光同创电子有限公司 Fpga芯片中dsp模块的功能测试方法及装置
US10783634B2 (en) * 2017-11-22 2020-09-22 General Electric Company Systems and methods to deliver point of care alerts for radiological findings
CN108023952B (zh) * 2017-12-04 2020-08-18 西安电子科技大学 一种基于云雾结合的模块化物联网应用快速构建平台
US10803379B2 (en) 2017-12-12 2020-10-13 Amazon Technologies, Inc. Multi-memory on-chip computational network
CN108009126B (zh) * 2017-12-15 2021-02-09 安徽寒武纪信息科技有限公司 一种计算方法及相关产品
CN108053028B (zh) 2017-12-21 2021-09-14 深圳励飞科技有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
US11636327B2 (en) 2017-12-29 2023-04-25 Intel Corporation Machine learning sparse computation mechanism for arbitrary neural networks, arithmetic compute microarchitecture, and sparsity for training mechanism
US11373088B2 (en) 2017-12-30 2022-06-28 Intel Corporation Machine learning accelerator mechanism
CN109496319A (zh) * 2018-01-15 2019-03-19 深圳鲲云信息科技有限公司 人工智能处理装置硬件优化方法、系统、存储介质、终端
CN108052934A (zh) * 2018-01-29 2018-05-18 安徽云塔电子科技有限公司 一种智能传感器系统架构及其实现方法、装置
US20190251429A1 (en) 2018-02-12 2019-08-15 Kneron, Inc. Convolution operation device and method of scaling convolution input for convolution neural network
US20200159532A1 (en) 2018-02-13 2020-05-21 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11106598B2 (en) 2018-02-13 2021-08-31 Shanghai Cambricon Information Technology Co., Ltd. Computing device and method
CN110162162B (zh) 2018-02-14 2023-08-18 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
JP7056225B2 (ja) 2018-02-26 2022-04-19 富士通株式会社 演算処理装置、情報処理装置、情報処理方法、およびプログラム
US10628275B2 (en) 2018-03-07 2020-04-21 Nxp B.V. Runtime software-based self-test with mutual inter-core checking
US11475306B2 (en) 2018-03-22 2022-10-18 Amazon Technologies, Inc. Processing for multiple input data sets
CN108510067B (zh) 2018-04-11 2021-11-09 西安电子科技大学 基于工程化实现的卷积神经网络量化方法
US11562213B2 (en) 2018-04-17 2023-01-24 Intel Corporation Methods and arrangements to manage memory in cascaded neural networks
CN108712630A (zh) 2018-04-19 2018-10-26 安凯(广州)微电子技术有限公司 一种基于深度学习的互联网摄像系统及其实现方法
EP3624020A4 (en) 2018-05-18 2021-05-05 Shanghai Cambricon Information Technology Co., Ltd CALCULATION PROCEDURES AND RELATED PRODUCTS
CN108717570A (zh) 2018-05-23 2018-10-30 电子科技大学 一种脉冲神经网络参数量化方法
CN110554500B (zh) 2018-05-31 2022-09-16 中强光电股份有限公司 头戴式显示装置
US10360304B1 (en) * 2018-06-04 2019-07-23 Imageous, Inc. Natural language processing interface-enabled building conditions control system
CN109062540B (zh) 2018-06-06 2022-11-25 北京理工大学 一种基于cordic算法的可重构浮点运算装置
CN109063820A (zh) 2018-06-07 2018-12-21 中国科学技术大学 利用时频联合长时循环神经网络的数据处理方法
CN110728364A (zh) 2018-07-17 2020-01-24 上海寒武纪信息科技有限公司 一种运算装置和运算方法
KR102470893B1 (ko) 2018-06-27 2022-11-25 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 온 칩 코드의 브레이크 포인트에 의한 디버그 방법, 온 칩 프로세서 및 브레이크 포인트에 의한 칩 디버그 시스템
CN109214281A (zh) 2018-07-30 2019-01-15 苏州神指微电子有限公司 一种用于ai芯片人脸识别的cnn硬件加速装置
CN109492241B (zh) * 2018-08-10 2020-03-10 中科寒武纪科技股份有限公司 转换方法、装置、计算机设备和存储介质
CN109343857B (zh) * 2018-08-22 2023-07-21 中国平安人寿保险股份有限公司 线上部署机器学习模型的方法、设备和存储介质
EP3640810A4 (en) 2018-08-28 2021-05-05 Cambricon Technologies Corporation Limited DATA PRE-PROCESSING PROCESS AND APPARATUS, COMPUTER DEVICE AND STORAGE MEDIA
US11468338B2 (en) * 2018-09-11 2022-10-11 Apple Inc. Compiling models for dedicated hardware
CN109344065B (zh) * 2018-09-27 2022-06-21 迈普通信技术股份有限公司 远程调试方法、调试服务器及目标机
US11703939B2 (en) 2018-09-28 2023-07-18 Shanghai Cambricon Information Technology Co., Ltd Signal processing device and related products
CN109408500B (zh) * 2018-11-06 2020-11-17 北京深度奇点科技有限公司 人工智能运行平台
CN109450705B (zh) * 2018-12-11 2020-12-01 电子科技大学 一种基于fpga的面向映射的片上网络验证方法及系统
CN109685202B (zh) 2018-12-17 2023-03-21 腾讯科技(深圳)有限公司 数据处理方法及装置、存储介质和电子装置
CN111383638A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN109902745A (zh) 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN109993296B (zh) 2019-04-01 2020-12-29 安徽寒武纪信息科技有限公司 量化实现方法及相关产品
CN110059733A (zh) 2019-04-01 2019-07-26 苏州科达科技股份有限公司 卷积神经网络的优化及快速目标检测方法、装置
US20200334522A1 (en) 2019-04-18 2020-10-22 Cambricon Technologies Corporation Limited Data processing method and related products
CN111832737B (zh) 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US11676028B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
WO2021036908A1 (zh) 2019-08-23 2021-03-04 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
US20210374510A1 (en) 2019-08-23 2021-12-02 Anhui Cambricon Information Technology Co., Ltd. Data processing method, device, computer equipment and storage medium
US20210264270A1 (en) 2019-08-23 2021-08-26 Anhui Cambricon Information Technology Co., Ltd. Data processing method, device, computer equipment and storage medium
WO2021036905A1 (zh) 2019-08-27 2021-03-04 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN110780845B (zh) 2019-10-17 2021-11-30 浙江大学 一种用于量化卷积神经网络的可配置近似乘法器及其实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180293517A1 (en) * 2016-01-27 2018-10-11 Bonsai Al, Inc. Artificial intelligence engine for mixing and enhancing features from one or more trained pre-existing machine-learning models
WO2017138220A1 (ja) * 2016-02-12 2017-08-17 ソニー株式会社 情報処理方法および情報処理装置
US20170357910A1 (en) * 2016-06-10 2017-12-14 Apple Inc. System for iteratively training an artificial intelligence using cloud-based metrics
US20180136912A1 (en) * 2016-11-17 2018-05-17 The Mathworks, Inc. Systems and methods for automatically generating code for deep learning systems

Also Published As

Publication number Publication date
AU2019284002B2 (en) 2021-12-23
CN111832738A (zh) 2020-10-27
WO2020211205A1 (zh) 2020-10-22
CN111831543A (zh) 2020-10-27
EP3754495B1 (en) 2024-04-10
AU2019284002A1 (en) 2020-11-05
EP3754495A8 (en) 2021-06-30
AU2019284011A1 (en) 2020-11-05
KR20200122985A (ko) 2020-10-28
US11762690B2 (en) 2023-09-19
AU2019284012A1 (en) 2020-11-05
JP2021182176A (ja) 2021-11-25
AU2019284012B2 (en) 2021-11-25
CN111626430A (zh) 2020-09-04
US20210334137A1 (en) 2021-10-28
EP3754497A8 (en) 2021-06-30
EP3751475A4 (en) 2021-03-17
CN111242321B (zh) 2023-09-26
JP2021121879A (ja) 2021-08-26
KR102544522B1 (ko) 2023-06-15
JP2021521500A (ja) 2021-08-26
EP3751475A1 (en) 2020-12-16
AU2019284011B2 (en) 2021-08-12
CN111626430B (zh) 2023-09-26
KR102323378B1 (ko) 2021-11-05
EP3754496A8 (en) 2021-06-30
CN111242321A (zh) 2020-06-05
JP7106513B2 (ja) 2022-07-26
EP3754495A1 (en) 2020-12-23
EP3754496A1 (en) 2020-12-23
CN111832737B (zh) 2024-01-09
JP2021165867A (ja) 2021-10-14
JP7044808B2 (ja) 2022-03-30
KR102430739B1 (ko) 2022-08-08
CA3065651A1 (en) 2020-10-18
AU2019283890B2 (en) 2021-08-12
CN111832739A (zh) 2020-10-27
JP7045357B2 (ja) 2022-03-31
CN111832737A (zh) 2020-10-27
JP6937357B2 (ja) 2021-09-22
AU2019283890A1 (en) 2020-11-05
EP3754496B1 (en) 2024-04-10
CN111832738B (zh) 2024-01-09
KR20210142786A (ko) 2021-11-26
CN111832739B (zh) 2024-01-09
KR102501992B1 (ko) 2023-02-20
EP3754497A1 (en) 2020-12-23
KR20210142785A (ko) 2021-11-26

Similar Documents

Publication Publication Date Title
KR102323378B1 (ko) 데이터 처리방법 및 관련제품
US11847554B2 (en) Data processing method and related products
US20220092439A1 (en) Decoupled architecture for artificial intelligence model management

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant