KR102333845B1 - Method, apparatus, device and storage medium for generating chip-based computing functions - Google Patents

Method, apparatus, device and storage medium for generating chip-based computing functions Download PDF

Info

Publication number
KR102333845B1
KR102333845B1 KR1020200003572A KR20200003572A KR102333845B1 KR 102333845 B1 KR102333845 B1 KR 102333845B1 KR 1020200003572 A KR1020200003572 A KR 1020200003572A KR 20200003572 A KR20200003572 A KR 20200003572A KR 102333845 B1 KR102333845 B1 KR 102333845B1
Authority
KR
South Korea
Prior art keywords
computing function
function template
candidate
target
value
Prior art date
Application number
KR1020200003572A
Other languages
Korean (ko)
Other versions
KR20210001871A (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 KR20210001871A publication Critical patent/KR20210001871A/en
Application granted granted Critical
Publication of KR102333845B1 publication Critical patent/KR102333845B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • 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/337Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • 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
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/02System on chip [SoC] design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/08Intellectual property [IP] blocks or IP cores
    • 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
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 실시예에 따르면, 칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 저장 매체를 제공한다. 상기 칩 기반의 컴퓨팅 기능 생성 방법은, 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값을 획득하는 단계; 입력 파라미터 값에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 단계 - 후보 컴퓨팅 기능 템플릿은 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 구성 가능한 파라미터는 적어도 하나의 후보 값을 가짐 - ; 및 칩 기반의 컴퓨팅 기능을 구현하기 위해, 입력 파라미터 값 및 후보 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 후보 값에 따라 타겟 컴퓨팅 기능 템플릿 및 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계를 포함한다. 상기 방법은 칩의 설계가 상이한 애플리케이션 시나리오/연산 규모에 동적으로 적응 가능하고, 구성 가능한 파라미터의 동적 구성을 구현할 수 있으므로 컴퓨팅 기능 템플릿을 수동으로 구현하는 난이도를 크게 단순화하고 칩 설계 특히는 칩 소프트웨어 개발 효율성을 향상시킨다.According to an embodiment of the present invention, a method, an apparatus, a device, and a storage medium for generating a chip-based computing function are provided. The method for generating a computing function based on a chip includes: obtaining an input parameter value related to a computing function supported by the chip; determining at least one candidate computing function template corresponding to the computing function based on the input parameter value, wherein the candidate computing function template has a configurable parameter related to execution performance of the candidate computing function template, wherein the configurable parameter includes at least one with candidate values - ; and determining the target computing function template and target values of the configurable parameters of the target computing function template according to the input parameter values and the candidate values of the configurable parameters of the candidate computing function templates to implement the chip-based computing function. do. The above method greatly simplifies the difficulty of manually implementing the computing function template, since the design of the chip is dynamically adaptable to different application scenarios/computation scale, and can implement dynamic configuration of configurable parameters, and chip design, especially chip software development improve efficiency;

Description

칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 저장 매체{METHOD, APPARATUS, DEVICE AND STORAGE MEDIUM FOR GENERATING CHIP-BASED COMPUTING FUNCTIONS}METHODS, APPARATUS, DEVICE AND STORAGE MEDIUM FOR GENERATING CHIP-BASED COMPUTING FUNCTIONS

본 발명의 실시예는 주로 칩 분야에 관한 것으로, 보다 구체적으로는, 칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체에 관한 것이다.Embodiments of the present invention mainly relate to the field of chips, and more particularly, to a method, apparatus, apparatus, and computer-readable storage medium for generating a chip-based computing function.

최근, 딥 러닝 기술을 비롯한 인공 지능(Artificial Intelligence, AI)은 이미 다양한 분야(예를 들어, 음성 처리, 이미지 처리, 자연어 처리, 비디오 처리, 자동 제어 등)에서 널리 사용되고 있는 바, 사람들의 생활 방식에 큰 영향을 미치고 있으며 인공 지능 기술이 보다 발전함에 따라 인공 지능 수준에 대한 사람들의 기대는 갈수록 높아지고 있다. 인공 지능 수준은 주로 딥 러닝의 발전에 의존하는데, 딥 러닝 기술은 컴퓨팅 기능에 대한 요구가 매우 높으나 기존의 프로세서는 성능, 비용 및 전력 등 각 방면의 제한으로 인해 딥 러닝 요구를 만족시키기 어렵다. 따라서 딥 러닝 기술의 요구를 만족시키기 위해 예를 들어 그래픽 처리 장치(GPU, graphics processing unit), 응용 주문형 직접회로(ASIC) 등 소프트웨어와 하드웨어가 긴밀히 결합된 고성능 AI 칩의 설계는 현재 해결해야 할 주요 과제이다.Recently, artificial intelligence (AI), including deep learning technology, has already been widely used in various fields (eg, speech processing, image processing, natural language processing, video processing, automatic control, etc.), and people's lifestyles With the advancement of artificial intelligence technology, people's expectations for the level of artificial intelligence are increasing. The level of artificial intelligence mainly depends on the development of deep learning, and deep learning technology has very high demands on computing functions, but existing processors are difficult to satisfy the needs of deep learning due to limitations in performance, cost and power, etc. Therefore, to meet the needs of deep learning technology, the design of high-performance AI chips in which software and hardware are tightly coupled, such as graphics processing units (GPUs) and application specific integrated circuits (ASICs), for example, is a major issue to be solved at present. It is a task.

본 발명의 예시적인 실시예에 따르면, 칩 기반의 컴퓨팅 기능 생성 해결수단을 제공한다. According to an exemplary embodiment of the present invention, a chip-based computing function generation solution is provided.

본 발명의 제1 양태는, 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값을 획득하는 단계; 입력 파라미터 값에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 단계 - 후보 컴퓨팅 기능 템플릿은 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 구성 가능한 파라미터는 적어도 하나의 후보 값을 가짐 - ; 및 칩 기반의 컴퓨팅 기능을 구현하기 위해, 입력 파라미터 값 및 후보 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 후보 값에 따라 타겟 컴퓨팅 기능 템플릿 및 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법을 제공한다. A first aspect of the present invention provides a method comprising: obtaining an input parameter value related to a computing function supported by a chip; determining at least one candidate computing function template corresponding to the computing function based on the input parameter value, wherein the candidate computing function template has a configurable parameter related to execution performance of the candidate computing function template, wherein the configurable parameter includes at least one with candidate values - ; and determining the target computing function template and target values of the configurable parameters of the target computing function template according to the input parameter values and the candidate values of the configurable parameters of the candidate computing function templates to implement the chip-based computing function. A method for generating a chip-based computing function is provided.

본 발명의 제1 양태는, 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값을 획득하는 입력 파라미터 값 획득 모듈; 입력 파라미터 값에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 후보 컴퓨팅 기능 템플릿 확정 모듈 - 후보 컴퓨팅 기능 템플릿은 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 구성 가능한 파라미터는 적어도 하나의 후보 값을 가짐 - ; 및 칩 기반의 컴퓨팅 기능을 구현하기 위해, 입력 파라미터 값 및 후보 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 후보 값에 따라 타겟 컴퓨팅 기능 템플릿 및 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 기반의 컴퓨팅 기능 생성 장치를 제공한다.A first aspect of the present invention provides an input parameter value obtaining module for obtaining an input parameter value related to a computing function supported by a chip; A candidate computing function template determining module configured to determine at least one candidate computing function template corresponding to the computing function based on the input parameter value, wherein the candidate computing function template has configurable parameters related to execution performance of the candidate computing function template and is configurable The parameter has at least one candidate value - ; and a target computing function to determine a target computing function template and a target value of the configurable parameter of the target computing function template according to the input parameter value and the candidate value of the configurable parameter of the candidate computing function template to implement the chip-based computing function Provided is an apparatus for generating a chip-based computing function including a template determination module.

본 발명의 제3 양태는, 하나 또는 복수의 프로세서; 및 하나 또는 복수의 프로그램이 저장된 저장 장치를 포함하고, 하나 또는 복수의 프로그램이 하나 또는 복수의 프로세서에 의해 실행될 경우, 하나 또는 복수의 프로세서가 본 발명의 제1 양태에 따른 칩 기반의 컴퓨팅 기능 생성 방법을 구현하도록 하는 전자 기기를 제공한다. A third aspect of the present invention includes: one or a plurality of processors; and a storage device in which one or a plurality of programs are stored, wherein when the one or a plurality of programs are executed by one or a plurality of processors, the one or plurality of processors generates a chip-based computing function according to the first aspect of the present invention An electronic device for implementing a method is provided.

본 발명의 제4 양태는, 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체를 제공하고, 상기 컴퓨터 프로그램은 프로세서에 의해 실행될 경우 본 발명의 제1 양태에 따른 칩 기반의 컴퓨팅 기능 생성 방법을 구현한다. A fourth aspect of the present invention provides a computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the method for generating a chip-based computing function according to the first aspect of the present invention.

발명의 내용 부분에서 설명된 내용은 본 발명의 실시예의 핵심 또는 중요한 특징 및 본 발명의 범위를 한정하지 않음을 이해해야 한다. 본 발명의 다른 특징은 아래의 설명을 통해 보다 쉽게 이해될 것이다.It should be understood that the content described in the content section of the present invention does not limit the key or important features of the embodiments of the present invention and the scope of the present invention. Other features of the present invention will be more readily understood from the following description.

첨부된 도면을 결부하고 이하 상세한 설명을 참조하여 본 발명의 다양한 실시예의 전술한 설명 및 다른 특징, 이점 및 양태는 보다 명백해질 것이다. 도면에서, 동일하거나 유사한 도면 표기는 동일하거나 유사한 요소를 나타낸다.
도 1은 본 발명의 다양한 실시예에 따른 칩 기반의 컴퓨팅 기능 생성 해결수단의 예시적 환경의 모식도를 도시한다.
도 2는 본 발명의 일부 예시적인 실시예에 따른 칩 기반의 컴퓨팅 기능 생성 방법의 흐름도를 도시한다.
도 3은 본 발명의 실시예에 따른 칩 기반의 컴퓨팅 기능 생성 장치의 예시적 블록도를 도시한다.
도 4는 본 발명의 다양한 실시예를 실시할 수 있는 컴퓨팅 기기의 블록도를 도시한다.
The foregoing description and other features, advantages and aspects of various embodiments of the present invention will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. In the drawings, the same or similar drawing designations refer to the same or similar elements.
1 shows a schematic diagram of an exemplary environment of a chip-based computing function generation solution according to various embodiments of the present invention.
2 shows a flowchart of a method for generating a chip-based computing function according to some exemplary embodiments of the present invention.
3 shows an exemplary block diagram of an apparatus for generating a chip-based computing function according to an embodiment of the present invention.
4 illustrates a block diagram of a computing device that may implement various embodiments of the present invention.

아래에 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세하게 설명한다. 비록 도면에는 본 발명의 일부 실시예가 도시되어 있으나 본 발명은 다양한 형태로 구현될 수 있음을 이해해야 하고, 여기서 설명된 실시예에 한정되는 것으로 해석되어서는 안되며, 반대로 이러한 실시예는 본 발명을 보다 분명하고 완전하게 이해시키기 위해 제공된다. 본 발명의 도면 및 실시예는 단지 예시로서 작용되며, 본 발명의 보호 범위를 한정하려는 것이 아님을 이해해야 한다.An embodiment of the present invention will be described in more detail with reference to the accompanying drawings below. Although some embodiments of the present invention are shown in the drawings, it should be understood that the present invention may be embodied in various forms, and should not be construed as being limited to the embodiments described herein. and provided for complete understanding. It should be understood that the drawings and embodiments of the present invention serve as examples only, and are not intended to limit the protection scope of the present invention.

본 발명의 실시예의 설명 과정에서, 용어 "포함하다” 및 이와 유사한 용어는 "포함하나 한정되지 않음”과 같은 개방적인 포함으로 이해되어야 한다. 용어 "기반”은 "적어도 부분적으로 기반”으로 이해되어야 한다. 용어 "일 실시예” 또는 "상기 실시예”는 "적어도 일 실시예”로 이해되어야 한다. 용어 "제1", "제2" 등은 상이하거나 동일한 객체를 지칭할 수 있다. 아래 설명은 다른 명시적 및 암시적 정의를 더 포함할 수 있다. In the course of describing the embodiments of the present invention, the term "comprises" and similar terms should be understood as open-ended inclusions such as "including but not limited to". The term “based” is to be understood as “at least partially based”. The terms “one embodiment” or “the embodiment” should be understood as “at least one embodiment.” The terms “first”, “second”, etc. may refer to different or the same object. It may further include explicit and implicit definitions.

본 명세서에서 사용되는 바와 같이, 용어 "칩"은 기존 또는 미래에 개발될 소프트웨어 또는 하드웨어 기술을 통해 소정의 기능을 구현할 수 있는 캐리어를 의미한다. 일부 애플리케이션 시나리오에서, 이는 "웨이퍼 블록”, "웨이퍼”, "베어 칩”, "집적 회로”, "모놀리식 소자”, "반도체 소자”, "마이크로 전자 소자” 등을 포함하나 이에 한정되지는 않는다.As used herein, the term "chip" refers to a carrier capable of implementing a predetermined function through software or hardware technology to be developed in the past or in the future. In some application scenarios, this includes, but is not limited to, “wafer blocks”, “wafers”, “bare chips”, “integrated circuits”, “monolithic devices”, “semiconductor devices”, “microelectronic devices”, etc. does not

본 명세서에서 사용되는 바와 같이, 용어 "연산자"는 기존 또는 미래에 개발될 소프트웨어 또는 하드웨어 기술에 의해 구현될 수 있는 기본 연산 알고리즘 또는 기능을 구현하는 칩 내의 유닛을 의미한다. 연산자를 통해 컨볼루션, 다양한 값 연산, 다양한 벡터 연산, 다양한 매트릭스 연산, 다양한 문자 연산 등 칩에서의 다양한 기본 연산을 구현할 수 있다.As used herein, the term “operator” refers to a unit in a chip that implements a basic arithmetic algorithm or function that may be implemented by existing or to be developed software or hardware technology. Various basic operations on the chip such as convolution, various value operations, various vector operations, various matrix operations, and various character operations can be implemented through operators.

본 명세서에서 사용되는 바와 같이, 본 명세서에서 사용되는 용어 "컴퓨팅 기능"은 칩에서 임의의 컴퓨닝/연산/알고리즘을 구현하는 논리 유닛을 지칭하며, 이는 개별적인 연산자 또는 복수의 연산자에 의해 구현될 수 있고, 복수의 연산자 간에는 사전 설정되었거나 동적으로 지정된 논리적 관계를 통해 결합될 수 있다.As used herein, the term “computing function” as used herein refers to a logical unit that implements any computation/operation/algorithm in a chip, which may be implemented by an individual operator or a plurality of operators. and a plurality of operators may be combined through a preset or dynamically designated logical relationship.

위에서 언급한 바와 같이, 딥 러닝 기술에 대한 고성능 칩을 제공하는 것은 현재 해결해야 할 확정적인 문제이다. 기존의 딥 러닝 사용자는 주로 tensorflow, caffe, mxnet, pytorch, paddlepaddle 등과 같은 딥 러닝 프레임을 사용하되, AI 칩을 딥 러닝 분야에 적용하려면 반드시 프레임에 통합되어야 하는데, 그 핵심 작업 중 하나는 프레임에서 다양한 연산자(operator)를 구현하고 컨볼루션, 다양한 값 연산, 다양한 벡터 연산, 다양한 행렬 연산, 다양한 문자 연산 등과 같은 연산자를 통해 칩에서의 기본 연산을 구현하는 동시에 별도의 연산자 또는 연산자에 의해 결합된 칩의 하나 또는 복수의 컴퓨팅 기능을 구현하는 것이다. 칩의 다양한 컴퓨팅 기능의 실행 성능은 AI 칩의 성능을 직접 확정한다.As mentioned above, providing a high-performance chip for deep learning technology is currently a definitive problem to be solved. Existing deep learning users mainly use deep learning frames such as tensorflow, caffe, mxnet, pytorch, paddlepaddle, etc., but to apply AI chips to the deep learning field, they must be integrated into the frame. It implements the operator and implements the basic operations on the chip through operators such as convolution, various value operations, various vector operations, various matrix operations, various character operations, etc. Implementation of one or more computing functions. The execution performance of various computing functions of the chip directly determines the performance of the AI chip.

주요 AI 칩 제조업체는 각자의 프레임에 기반하여 예를 들어 nvidia GPU, google TPU, BAI du Kunlun 칩 등과 같은 대응된 AI 칩을 개발하였다. 이러한 AI 칩은 각자의 명령어 세트를 구비하고 예를 들어 CUDA, OPENCL 등 자체 프로그래밍 프레임을 구비하며 프로그래밍 언어(예를 들어, C / C ++, C #, Python 등)로 프로그래밍할 수 있다.Major AI chip manufacturers have developed corresponding AI chips, such as nvidia GPUs, google TPUs, BAI du Kunlun chips, etc., based on their respective frames. These AI chips have their own instruction sets, have their own programming frames, such as CUDA, OPENCL, for example, and can be programmed in a programming language (eg, C / C ++, C #, Python, etc.).

프로그래밍 방식을 통해 AI 칩의 각 연산자 또는 본 발명의 상기 컴퓨팅 기능을 구현할 수 있으나, 바닥층 칩 프레임은 예를 들어 블록 분할 방법, 다양한 저장 공간(예를 들어, 레지스터, 버퍼, 메모리, 공유 메모리 등)의 효율적인 사용, 프로그램 스케줄링(예를 들어, 스레드 스케줄링, 프로세서 스케줄링 등) 방법을 비롯한 많은 구성 가능한 파라미터를 구비한다. 많은 수의 파라미터를 합리적으로 구성하려면 개발자가 바닥층 칩 아키텍처에 매우 익숙해야 하나 비록 익숙할지라도 고성능 AI 칩을 구성하는데 필요한 개발 주기가 매우 길고 특히 AI 칩 소프트웨어 개발 효율성이 매우 낮다. 또한 애플리케이션 시나리오/연산 규모가 풍부하므로 특정 애플리케이션 시나리오/연산 규모를 위해 설계된 칩은 다른 연산 규모에서 최적의 성능을 구현하기가 어렵다.Each operator of the AI chip or the above computing function of the present invention can be implemented through a programming method, but the bottom layer chip frame is, for example, a block division method, various storage spaces (eg, registers, buffers, memory, shared memory, etc.) It has many configurable parameters including efficient use of , program scheduling (eg, thread scheduling, processor scheduling, etc.) In order to reasonably configure a large number of parameters, the developer must be very familiar with the bottom-layer chip architecture, but even if they are familiar, the development cycle required to construct a high-performance AI chip is very long, and the AI chip software development efficiency is particularly low. In addition, since the application scenario/computation scale is rich, it is difficult for a chip designed for a specific application scenario/computation scale to achieve optimal performance at different computational scales.

본 발명자는 칩 기반의 컴퓨팅 기능을 생성하는 가능한 해결수단은 일부 범용되는 연산자 라이브러리를 수동으로 구현하고 연산자에서 칩 바닥층 파라미터의 구성을 구현하는 것임에 유의하였다. 위에서 분석한 바와 같이, 이러한 해결수단을 통해 칩 기반의 컴퓨팅 기능을 생성하는 난이도는 매우 높으며 또한 효율성이 낮고, 다양한 애플리케이션 시나리오/연산 규모에 유연하게 적용할 수 없다. 다른 가능한 칩 설계 해결수단은, 고수준 언어로 프리미티브를 생성하는 동시에 수동 방식으로 인코딩하여 일부 최적화된 연산자 템플릿을 구현하는 것이다. 이러한 반자동의 칩 기반의 컴퓨팅 기능을 생성하는 해결수단은 칩 설계 과정 특히는 칩 소프트웨어 개발의 효율성을 향상시키나, 이러한 해결수단은 칩 프레임 바닥층의 하드웨어를 차단하여 칩의 성능이 미리 인코딩된 최적화된 연산자 템플릿에 의존하게 되어 고성능의 연산자를 구현하기 어렵다. 이 밖에, 발명자는 또한 완전 자동화된 해결수단을 통해 칩 기반의 컴퓨팅 기능을 생성할 수 있음에 유의하였다. 즉 다면체 컴파일 기술을 주로 사용하여 완전히 컴파일러에 의해 코드를 생성한다. 이러한 해결수단에서는 사용자는 알고리즘만 설명하고 컴파일러가 자동으로 코드를 생산한다. 이러한 해결수단은 칩 소프트웨어 개발의 높은 효율성을 구현하나 칩 프레임 바닥층의 하드웨어를 완전히 차단하므로 고성능 코드의 구현 가능성을 감소시킨다. The inventors have noted that a possible solution to creating a chip-based computing function is to manually implement some general-purpose operator library and implement the configuration of the chip bottom layer parameters in the operator. As analyzed above, the difficulty of generating a chip-based computing function through these solutions is very high, and the efficiency is low, and it cannot be flexibly applied to various application scenarios/computation scales. Another possible chip design solution is to create primitives in a high-level language while at the same time encoding them in a manual way to implement some optimized operator templates. The solution for generating such semi-automated chip-based computing functions improves the efficiency of the chip design process, especially the chip software development, but this solution blocks the hardware at the bottom layer of the chip frame, so that the performance of the chip is pre-encoded by the optimized operator. Because it relies on templates, it is difficult to implement high-performance operators. In addition, the inventor has also noted that chip-based computing functions can be created through a fully automated solution. In other words, polyhedral compilation technology is mainly used to generate the code completely by the compiler. In this solution, the user only describes the algorithm and the compiler automatically generates the code. This solution realizes high efficiency of chip software development, but completely blocks the hardware of the bottom layer of the chip frame, thereby reducing the possibility of implementing high-performance code.

본 발명의 실시예에 따르면, 칩 기반의 컴퓨팅 기능 생성 해결수단을 제안한다. 상기 해결수단에서, 각각의 칩에 의해 지원되는 컴퓨팅 기능은 적어도 하나의 후보 컴퓨팅 기능 템플릿에 대응되고, 상기 후보 컴퓨팅 기능 템플릿은 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 가지며, 구성 가능한 파라미터는 적어도 하나의 후보 값을 갖는다. 컴퓨팅 기능의 입력 파라미터 값을 획득한 후, 입력 파라미터 값에 따라 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하고, 입력 파라미터 값 및 후보 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 후보 값에 따라 타겟 컴퓨팅 기능 템플릿 및 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하며, 칩 기반의 컴퓨팅 기능을 생성할 수 있다. 이러한 방식을 통해, 컴퓨팅 기능 템플릿은 칩 내부의 구성 가능한 파라미터를 상위 호출자에게 제공하고, 상위 호출자가 입력된 파라미터 값에 따라 구성 가능한 파라미터의 값을 동적으로 구성함으로써, 칩 기반의 컴퓨팅 기능 생성시 상이한 애플리케이션 시나리오/연산 규모에 동적으로 적응할 수 있다. According to an embodiment of the present invention, a chip-based computing function generation solution is proposed. In the above solution, the computing function supported by each chip corresponds to at least one candidate computing function template, the candidate computing function template having a configurable parameter related to the execution performance of the candidate computing function template, the configurable parameter has at least one candidate value. After obtaining the input parameter value of the computing function, at least one candidate computing function template is determined according to the input parameter value, and according to the input parameter value and the candidate value of the configurable parameter of the candidate computing function template, the target computing function template and the target A target value of a configurable parameter of the computing function template may be determined, and a chip-based computing function may be generated. In this way, the computing function template provides the configurable parameters inside the chip to the upper caller, and the upper caller dynamically configures the values of the configurable parameters according to the input parameter values. Dynamically adaptable to application scenarios/computation scale.

나아가, 고성능 연산자 또는 본 발명의 상기 컴퓨팅 기능을 더욱 잘 구현하기 위해, 본 발명의 실시예에 따르면, 머신 러닝 방식을 사용하여 입력 파라미터 값 및 후보 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 후보 값에 따라 타겟 컴퓨팅 기능 템플릿 및 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정한다. 이러한 방식을 통해 구성 가능한 파라미터의 동적 구성을 구현하는 동시에 수동 방식으로 컴퓨팅 기능 템플릿을 구현하고 칩 바닥층 파라미터를 구성하는 난이도를 크게 감소시킨다. 이 밖에, 머신 러닝 방식을 통해 검색 범위가 매우 넓은 경우에도 칩 설계를 고효율적으로 완료할 수 있다.Further, in order to better implement the high-performance operator or the computing function of the present invention, according to an embodiment of the present invention, a target according to an input parameter value and a candidate value of a configurable parameter of a candidate computing function template using a machine learning method Determine target values of configurable parameters of the computing function template and the target computing function template. In this way, the dynamic configuration of configurable parameters is realized, while the difficulty of implementing the computing function template in a manual way and configuring the chip bottom layer parameters is greatly reduced. In addition, the machine learning method can efficiently complete the chip design even when the search range is very wide.

이 밖에, 후보 컴퓨팅 기능 템플릿의 실행 성능을 더욱 잘 추정하기 위해, 적시(just-in-time, JIT) 컴파일을 적용하여 테스트함으로써 실행 성능을 획득한다. 이러한 방식을 통해, 컴파일시 코드가 생성되는 것이 아니라 실행시 코드가 생성되므로 칩 설계 과정, 특히는 칩 소프트웨어 개발의 효율성을 향상시키는 동시에 고성능 칩 기반의 컴퓨팅 기능 생성을 보장한다. In addition, in order to better estimate the execution performance of the candidate computing function template, just-in-time (JIT) compilation is applied and tested to obtain execution performance. In this way, since code is generated at execution time rather than compilation time, the efficiency of the chip design process, especially chip software development, is improved, while the high-performance chip-based computing function generation is ensured.

이하, 도면을 참조하여 본 발명의 실시예를 구체적으로 설명한다. 본 발명은 단지 예시의 목적일 뿐 어떠한 방식으로든 본 발명을 한정하려는 것이 아님을 이해해야 한다. 본 발명의 일부 예시적인 실시예는 단일 기본 기능(즉 하나의 연산자의 기능)을 포함하는 컴퓨팅 기능을 예시로 하나, 본 발명의 컴퓨팅 기능은 복수의 연산자 기능을 구현하기 위한 복수의 연산자 조합을 포함할 수 있음을 이해해야 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. It is to be understood that the present invention is for illustrative purposes only and is not intended to limit the present invention in any way. Some exemplary embodiments of the present invention exemplify a computing function including a single basic function (ie, the function of one operator), while the computing function of the present invention includes a plurality of operator combinations for implementing the multiple operator functions. You have to understand that you can.

도 1은 본 발명의 다양한 실시예가 구현될 수 있는 예시적 환경(100)의 모식도를 도시한다. 상기 예시적 환경(100)에서, 컴퓨팅 기기(130)는 컴퓨팅 기능과 관련된 하나 또는 복수의 입력 파라미터 값(110-1, 110-2 내지 110-N)을 수신할 수 있다. 설명의 편의를 위해 복수의 입력 파라미터 값(110-1, 110-2 내지 110-N)은 입력 파라미터 값(110)으로 통칭될 수 있다. 일부 예시적인 실시예에서, 입력 파라미터 값(110)은 컴퓨팅 기능과 관련된 임의의 타입일 수 있다. 예를 들어, 벡터 곱셈에 대한 컴퓨팅 기능의 경우, 입력 파라미터 값(110)은 "100" 및 "100"과 같은 벡터 곱셈 실행을 설명하는 두개의 벡터의 길이 값일 수 있다. 일부 예시적인 실시예에서, 입력 파라미터 값(110)은 유선 통신 또는 무선 통신 방식으로 컴퓨팅 기기(130)에 전송될 수 있다. 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 또한 컴퓨팅 기기(130)에 커플링된 입력 기기(마우스, 키보드, 터치펜, 터치 스크린 등을 포함하나 이에 한정되지 않음)를 통해 사용자에 의해 입력된 입력 파라미터 값(110)을 수신할 수 있다. 1 depicts a schematic diagram of an exemplary environment 100 in which various embodiments of the present invention may be implemented. In the example environment 100 , the computing device 130 may receive one or more input parameter values 110 - 1 , 110 - 2 to 110 -N related to a computing function. For convenience of description, the plurality of input parameter values 110 - 1 , 110 - 2 to 110 -N may be collectively referred to as an input parameter value 110 . In some demonstrative embodiments, the input parameter value 110 may be of any type related to a computing function. For example, for a computing function for vector multiplication, the input parameter value 110 may be the length value of two vectors describing the vector multiplication implementation, such as "100" and "100". In some demonstrative embodiments, the input parameter value 110 may be transmitted to the computing device 130 through wired communication or wireless communication. In some demonstrative embodiments, computing device 130 may also be input by a user through an input device coupled to computing device 130 (including but not limited to a mouse, keyboard, touch pen, touch screen, etc.) may receive the input parameter value 110 .

도 1에 도시된 바와 같이, 컴퓨팅 기기(130)는 또한 컴퓨팅 기능에 대한 하나 또는 복수의 후보 컴퓨팅 기능 템플릿(120-1, 120-2 내지 120-M)을 획득할 수 있다. 설명의 편의를 위해, 복수의 후보 컴퓨팅 기능 템플릿(120-1, 120-2 내지 120-M)은 후보 컴퓨팅 기능 템플릿(120)으로 총칭될 수 있다.As shown in FIG. 1 , the computing device 130 may also obtain one or a plurality of candidate computing function templates 120 - 1 , 120 - 2 to 120 -M for the computing function. For convenience of description, the plurality of candidate computing function templates 120 - 1 , 120 - 2 to 120 -M may be collectively referred to as candidate computing function templates 120 .

일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 컴퓨팅 기기(130) 내에 위치한 후보 컴퓨팅 기능 템플릿 데이터베이스/메모리 또는 컴퓨팅 기기(130) 외부에 위치한 후보 컴퓨팅 기능 템플릿 데이터베이스/메모리로부터 컴퓨팅 기능의 후보 컴퓨팅 기능 템플릿(120)을 획득할 수 있다. 예를 들어, 벡터 곱셈에 대한 컴퓨팅 기능의 경우, 도 1에 도시된 후보 컴퓨팅 기능 템플릿(120-1)은 벡터 곱셈을 구현하는 컴퓨팅 기능 템플릿일 수 있고, 이의 구성 가능한 파라미터는 벡터 곱셈 실행시 세그먼트 크기일 수 있으며, 상기 세그먼트 크기의 후보 값은 [3, 4, 5]일 수 있고, 다른 후보 컴퓨팅 기능 템플릿(120-2)은 벡터 곱셈을 구현하는 다른 컴퓨팅 기능 템플릿일 수 있으며, 이의 구성 가능한 파라미터는 벡터 곱셈 실행시 호출된 프로세서 수일 수 있고, 상기 호출 가능한 프로세서 수의 후보 값은 [1, 2, 4]일 수 있다. In some demonstrative embodiments, computing device 130 is a candidate computing function of a computing function from a candidate computing function template database/memory located within computing device 130 or candidate computing function template database/memory located external to computing device 130 . A template 120 may be obtained. For example, in the case of a computing function for vector multiplication, the candidate computing function template 120 - 1 shown in FIG. 1 may be a computing function template implementing vector multiplication, and its configurable parameters are segments when executing vector multiplication. size, the candidate value of the segment size may be [3, 4, 5], and the other candidate computing function template 120-2 may be another computing function template implementing vector multiplication, and its configurable The parameter may be the number of processors called when executing vector multiplication, and a candidate value of the number of callable processors may be [1, 2, 4].

컴퓨팅 기기(130)는 수신된 입력 파라미터 값(110) 및 획득된 후보 컴퓨팅 기능 템플릿(120)에 기반하여 상기 입력 파라미터 값(110)에 대한 타겟 컴퓨팅 기능 템플릿(140) 및 상기 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값을 확정할 수 있다. 예를 들어, 도 1의 예시에서, 컴퓨팅 기기(130)는 본 발명의 칩 기반의 컴퓨팅 기능을 생성하는 해결수단을 이용하여 벡터 곱셈에 대한 컴퓨팅 기능의 경우에 입력 파라미터 값(110) "100, 100"의 이러한 특정된 애플리케이션 시나리오/연산 규모에 기반하여 타겟 컴퓨팅 기능 템플릿(140) 및 상기 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값을 확정한다. 예를 들어 후보 컴퓨팅 기능 템플릿(120-1)을 타겟 컴퓨팅 기능 템플릿(140)으로 확정하는 동시에, 벡터 곱셈 수행시 세그먼트 크기가 "4"임을 확정한다. 이러한 도시된 입력 파라미터 값, 후보 컴퓨팅 기능 템플릿, 구성 가능한 파라미터, 및 구성 가능한 파라미터의 후보 값은 예시로서 제공될 뿐, 입력 파라미터 값, 후보 컴퓨팅 기능 템플릿, 구성 가능한 파라미터, 및 구성 가능한 파라미터의 값은 실제 경우에 따라 변할 수 있음을 이해해야 한다. 본 발명의 범위는 이에 한정되지 않는다. Computing device 130, based on the received input parameter value 110 and the obtained candidate computing function template 120, the target computing function template 140 for the input parameter value 110 and the target computing function template ( 140) may determine the target value of the configurable parameter. For example, in the example of FIG. 1 , computing device 130 uses a solution generating chip-based computing function of the present invention to input parameter values 110 "100, in the case of a computing function for vector multiplication, Based on this specified application scenario/computation scale of 100", the target computing function template 140 and target values of configurable parameters corresponding to the target computing function template 140 are determined. For example, it is determined that the candidate computing function template 120 - 1 is the target computing function template 140 , and at the same time that the segment size is “4” when vector multiplication is performed. These illustrated input parameter values, candidate computing function templates, configurable parameters, and candidate values of configurable parameters are provided as examples only, and the values of input parameter values, candidate computing function templates, configurable parameters, and configurable parameters are It should be understood that this may vary from case to case. The scope of the present invention is not limited thereto.

이하, 도 2를 참조하여 본 발명에 따른 칩 기반의 컴퓨팅 기능 생성 과정을 보다 자세히 설명한다. 도 2는 본 발명의 일부 예시적인 실시예에 따른 칩 기반의 컴퓨팅 기능 생성 과정(200)의 흐름도를 도시하고, 과정(200)은 도 1의 컴퓨팅 기기(130)에 의해 구현될 수 있다. 논의의 용이성을 위해 도 1을 결부하여 과정(200)을 설명한다. Hereinafter, a process of generating a chip-based computing function according to the present invention will be described in more detail with reference to FIG. 2 . 2 is a flowchart of a chip-based computing function generation process 200 according to some exemplary embodiments of the present invention, and the process 200 may be implemented by the computing device 130 of FIG. 1 . For ease of discussion, the process 200 will be described with reference to FIG. 1 .

블록(210)에서, 컴퓨팅 기기(130)는 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값(110)을 획득한다. 구체적으로, 칩은 많은 컴퓨팅 기능을 지원할 수 있다. 본 발명의 비제한적이고 예시적인 실시예에서, 컴퓨팅 기능은 기본 연산(예를 들어, 컨볼루션, 다양한 값 연산, 다양한 문자 연산, 다양한 매트릭스 연산, 다양한 벡터 연산, 암호화, 디코딩 등)의 기초 컴퓨팅 기능을 구현한다. 상이한 컴퓨팅 기능에 따라, 입력 파라미터 값(110)은 하나이거나 복수 개일 수 있다. 이 밖에, 입력 파라미터 값(110)은 사용자 입력 방식 또는 스트립트/프로파일/명령 파일을 판독하는 방식을 포함하나 이에 한정되지 않는 임의의 방식으로 획득될 수 있다. At block 210 , the computing device 130 obtains an input parameter value 110 associated with a computing function supported by the chip. Specifically, a chip can support many computing functions. In a non-limiting exemplary embodiment of the present invention, the computing functions are the basic computing functions of basic operations (eg, convolution, various value operations, various character operations, various matrix operations, various vector operations, encryption, decoding, etc.). to implement According to different computing functions, the input parameter values 110 may be one or plural. In addition, the input parameter value 110 may be obtained in any manner including, but not limited to, a user input method or a method of reading a script/profile/command file.

본 발명의 일부 예시적인 실시예에서, 입력 파라미터 값(110)은 애플리케이션 시나리오/연산 규모와 연관될 수 있다. 구체적으로, 입력 파라미터 값(110)은 예를 들어, 매트릭스 연산을 구현하는 경우 입력 파라미터 값(110)은 매트릭스의 규모를 식별하고, 암호화 연산을 구현하는 경우 입력 파라미터 값(110)은 암호화 알고리즘의 암호화 길이를 식별하고, 벡터 연산을 구현하는 경우 입력 파라미터 값(110)은 벡터 길이를 식별할 수 있는 등 컴퓨팅 기능이 구현할 연산 규모를 식별할 수 있다. 상기 입력 파라미터 값(110)은 단지 예시로서 제공될 뿐 일부 다른 구현에서 입력 파라미터 값(110)의 값 및 타입 등은 변화될 수 있음을 이해해야 한다. 따라서 입력 파라미터 값(110)의 타입 및/또는 값 등은 본 발명의 상기 예시된 범위에 한정되어서는 안되며 입력 파라미터 값(110)은 컴퓨팅 기능의 애플리케이션 시나리오/연산 규모와 관련된 임의의 적합한 타입 및/또는 값일 수 있다. In some exemplary embodiments of the present invention, the input parameter value 110 may be associated with an application scenario/computation scale. Specifically, the input parameter value 110 is, for example, when implementing a matrix operation, the input parameter value 110 identifies the size of the matrix, and when implementing the encryption operation, the input parameter value 110 is the value of the encryption algorithm. When the encryption length is identified, and a vector operation is implemented, the input parameter value 110 may identify the vector length, etc., and may identify the operation scale to be implemented by the computing function. It should be understood that the input parameter value 110 is provided by way of example only and that the value and type of the input parameter value 110 may vary in some other implementations. Accordingly, the type and/or value of the input parameter value 110 should not be limited to the above illustrated scope of the present invention and the input parameter value 110 may be of any suitable type and/or related to the application scenario/computation scale of the computing function. or a value.

본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기능의 애플리케이션 시나리오/연산 규모와 관련된 입력 파라미터 값(110)은 컴퓨팅 기기(130)에 의해 획득되므로, 칩 기반의 컴퓨팅 기능 생성 방법이 다양한 애플리케이션 시나리오/연산 규모에 원활하게 적용될 수 있으며 또한 생성된 컴퓨팅 기능이 상기 특정된 애플리케이션 시나리오/연산 규모보다 더 적합하게 적용될 수 있다.In some exemplary embodiments of the present invention, the input parameter value 110 related to the application scenario/computation scale of the computing function is obtained by the computing device 130 , so that the chip-based computing function generating method can be used in various application scenarios/operations. It can be smoothly applied to scale and the generated computing function can be more suitably applied than the specified application scenario/computation scale.

블록(220)에서, 컴퓨팅 기기(130)는 블록(210)에서 획득된 입력 파라미터 값(110)에 기반하여 컴퓨팅 기능에 대응되는 후보 컴퓨팅 기능 템플릿(120)을 확정한다. 컴퓨팅 기기(130)는 확정된 후보 컴퓨팅 기능 템플릿(120)을 타겟 컴퓨팅 기능 템플릿(140)의 검색을 수행하는 검색 공간으로 사용할 수 있으며, 후보 컴퓨팅 기능 템플릿(120)은 하나이거나 복수 개일 수 있다. In block 220 , the computing device 130 determines the candidate computing function template 120 corresponding to the computing function based on the input parameter value 110 obtained in block 210 . The computing device 130 may use the determined candidate computing function template 120 as a search space for performing a search for the target computing function template 140 , and there may be one or a plurality of candidate computing function templates 120 .

본 발명의 일부 예시적인 실시예에서, 각각의 컴퓨팅 기능은 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)에 대응될 수 있고, 각각의 후보 컴퓨팅 기능 템플릿(120)은 후보 컴퓨팅 기능 템플릿(120)의 실행 성능과 관련된 적어도 하나의 구성 가능한 파라미터, 예를 들어, 분할 블록 크기, 세그먼트 크기, 스레드 수, 프로세서 수, 레지스터 정보, 메모리 정보, 프로세서 정보 등을 가질 수 있다. 각각의 구성 가능한 파라미터는 적어도 하나의 후보 값을 가질 수 있으며, 상이한 애플리케이션 시나리오/연산 규모에서, 구성 파라미터의 상이한 후보 값은 설계된 칩이 상이한 실행 성능을 구현하도록 할 수 있다. 이러한 구성 가능한 파라미터는 일반적으로 칩 기반의 컴퓨팅 기능을 생성하는 과정에서 컴퓨팅 기능의 내부 파라미터로 사용된다. In some demonstrative embodiments of the present invention, each computing function may correspond to at least one candidate computing function template 120 , and each candidate computing function template 120 is execution of the candidate computing function template 120 . It may have at least one configurable parameter related to performance, for example, partition block size, segment size, number of threads, number of processors, register information, memory information, processor information, and the like. Each configurable parameter may have at least one candidate value, and in different application scenarios/computation scales, different candidate values of the configuration parameters may cause a designed chip to implement different execution performance. These configurable parameters are generally used as internal parameters of the computing function in the process of creating a chip-based computing function.

본 발명의 일부 예시적인 실시예에서, 수동 인코딩 방식으로 상이한 컴퓨팅 기능 설계에 대해 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 구현하고, 수동 인코딩 방식으로 후보 컴퓨팅 기능 템플릿(120)을 구현하여 후보 컴퓨팅 기능 템플릿(120)의 실행 로직을 보다 정확하게 함으로써 후보 컴퓨팅 기능 템플릿(120)이 인입되어 보다 양호하게 칩 바닥층 프레임과 결합되도록 어느 정도 보장할 수 있다. 그러나 후보 컴퓨팅 기능 템플릿(120)의 구현은 본 발명에 도시된 수동 인코딩 방식으로 한정되지 않으며 다른 일부 예시적인 실시예에서, 후보 컴퓨팅 기능 템플릿(120)은 자동 또는 반자동 방식으로 구현될 수도 있음을 이해해야 한다. 이러한 자동 또는 반자동 방식으로 후보 컴퓨팅 기능 템플릿(120)을 구현하는 해결수단에서, 기존 최적화된 컴퓨팅 기능 템플릿 또는 타겟 컴퓨팅 기능 템플릿(140)/구성 가능한 파라미터의 이력 데이터/기록 등을 참조하거나 조합할 수 있다. In some exemplary embodiments of the present invention, at least one candidate computing function template 120 for different computing function designs is implemented in a passive encoding manner, and candidate computing function templates 120 are implemented in a passive encoding manner to perform candidate computing. By making the execution logic of the function template 120 more precise, it is possible to some degree to ensure that the candidate computing function template 120 is retracted and better coupled with the chip bottom layer frame. However, it should be understood that the implementation of the candidate computing function template 120 is not limited to the manual encoding scheme shown in the present invention, and in some other exemplary embodiments, the candidate computing function template 120 may be implemented in an automatic or semi-automatic manner. do. In the solution for implementing the candidate computing function template 120 in such an automatic or semi-automatic manner, the existing optimized computing function template or the target computing function template 140/historical data/record of the configurable parameters, etc. may be referenced or combined. have.

본 발명의 일부 예시적인 실시예에서, 후보 컴퓨팅 기능 템플릿(120)은 기계 지향적 프로그래밍 언어와 같은 저수준 프로그래밍 언어를 적용하여 구현된다. 추가적이거나 대안적으로, 본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)에 의해 수행되는 과정(200)은 기계 지향적 프로그래밍 언어와 같은 저수준 프로그래밍 언어를 적용하여 구현된다. In some exemplary embodiments of the present invention, the candidate computing function template 120 is implemented by applying a low-level programming language, such as a machine-oriented programming language. Additionally or alternatively, in some exemplary embodiments of the present invention, the process 200 performed by the computing device 130 is implemented by applying a low-level programming language, such as a machine-oriented programming language.

저수준 프로그래밍 언어는 고수준 프로그래밍 언어에 비해 바닥층 하드웨어와 더욱 잘 상호 작용함으로써 하드웨어의 성능을 더욱 잘 발휘하고 고성능 칩 컴퓨팅 기능의 구현을 보장하는데 유리하다. Compared to high-level programming languages, low-level programming languages are advantageous in better interacting with bottom-layer hardware, so as to better utilize the performance of hardware and ensure the implementation of high-performance chip computing functions.

본 발명의 일부 예시적인 실시예에서, 복수의 후보 템플릿(120)은 상이한 애플리케이션 시나리오/연산 규모와 연관된다. 예를 들어, 매트릭스 곱셈의 컴퓨팅 기능에 대해, 후보 컴퓨팅 기능 템플릿(120-1)은 애플리케이션 시나리오(1)(예를 들어, 곱해지는 매트릭스 규모가 50 * 50보다 작음)에서 양호한 실행 성능을 구현하고, 후보 컴퓨팅 기능 템플릿(120-2)은 애플리케이션 시나리오(2)(예를 들어, 곱해지는 매트릭스 규모가 100 * 100보다 큼)에서 양호한 실행 성능을 구현할 수 있다. 상이한 기능을 갖는 컴퓨팅 기능에 대해, 상이한 애플리케이션 시나리오/연산 규모에 대한 후보 컴퓨팅 기능 템플릿(120)을 설계 및 구현할 수 있고, 상이한 애플리케이션 시나리오/연산 규모에 대한 커스터마이징을 구현하도록 설계 및 구현될 수 있다. In some demonstrative embodiments of the present invention, the plurality of candidate templates 120 are associated with different application scenarios/computation scales. For example, for the computing function of matrix multiplication, the candidate computing function template 120-1 implements good execution performance in the application scenario 1 (eg, the multiplied matrix scale is less than 50 * 50), and , the candidate computing function template 120 - 2 may implement good execution performance in the application scenario 2 (eg, the multiplied matrix scale is greater than 100 * 100). For computing functions with different functions, candidate computing function templates 120 for different application scenarios/computation scales may be designed and implemented, and may be designed and implemented to implement customization for different application scenarios/computation scales.

본 발명의 일부 예시적인 실시예에서, 복수의 후보 컴퓨팅 기능 템플릿(120)이 갖는 구성 가능한 파라미터의 개수, 값은 임의적일 수 있고 또한 각각의 내부 처리 로직을 가질 수 있다. 각각의 후보 컴퓨팅 기능 템플릿(120)은 각각의 내부 설계에 따라 칩 내부의 복잡한, 구성 가능한 파라미터를 상위 호출자(예를 들어, 컴퓨팅 기기(130))에 제공하여 상위 호출자가 적어도 부분적으로 구성 가능한 파라미터에 기반하여 후보 템플릿(120)에 대해 검색, 구성 및 테스트 등을 수행할 수 있도록 한다. 이러한 방식을 통해, 칩 기반의 컴퓨팅 기능을 생성하는 유연성을 향상시키면서, 수동 방식으로 칩 내부 파라미터을 구성하여 칩 설계 과정, 특히는 칩 소프트웨어 개발의 난이도를 감소시키는 동시에 칩 구성 가능한 파라미터 구성의 합리성 및 정확성을 향상시킨다. In some exemplary embodiments of the present invention, the number and value of the configurable parameters of the plurality of candidate computing function templates 120 may be arbitrary and may each have internal processing logic. Each candidate computing function template 120 provides complex, configurable parameters inside the chip according to a respective internal design to an upper caller (eg, computing device 130 ), so that the upper caller (eg, computing device 130) at least partially configurable parameters Based on , search, configuration, and testing can be performed on the candidate template 120 . In this way, while improving the flexibility of creating chip-based computing functions, configuring the internal parameters of the chip in a manual way reduces the difficulty of the chip design process, especially the chip software development, while at the same time, the rationality and accuracy of configuring the chip configurable parameters to improve

본 발명의 일부 예시적인 실시예에서, 후보 컴퓨팅 기능 템플릿(120)은 또한 제약 조건을 갖는데, 제약 조건은 상기 후보 컴퓨팅 기능 템플릿(120)의 적용 범위를 한정한다. 본 발명의 일부 예시적인 실시예에서, 제약 조건은 입력 파라미터 값(110)과 연관될 수 있다. 예를 들어, 매트릭스 연산 수행시, 제약 조건은 매트릭스 규모가 50 * 50보다 작은 것일 수 있다. In some exemplary embodiments of the present invention, the candidate computing function template 120 also has a constraint, which constrains the scope of application of the candidate computing function template 120 . In some exemplary embodiments of the present invention, a constraint may be associated with an input parameter value 110 . For example, when performing a matrix operation, the constraint may be that the matrix size is smaller than 50 * 50.

추가적이거나 대안적으로, 본 발명의 일부 예시적인 실시예에서, 제약 조건은 또한 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 후보 값을 한정할 수 있다. 예를 들어, 매트릭스 연산을 수행하고 또한 구성 가능한 파라미터가 분할 블록 크기인 경우, 제약 조건은 분할 블록 크기의 값이 [2, 4, 6]인 것일 수 있다. Additionally or alternatively, in some demonstrative embodiments of the invention, the constraint may also define candidate values of the configurable parameters of the candidate computing function template 120 . For example, when a matrix operation is performed and a configurable parameter is a partition block size, the constraint may be that the value of the partition block size is [2, 4, 6].

추가적이거나 대안적으로, 본 발명의 일부 예시적인 실시예에서, 제약 조건은 동시에 입력 파라미터 값(110) 및 구성 가능한 파라미터과 연관될 수 있다. 예를 들어, 제약 조건은 입력 파라미터 값(110) 및 구성 가능한 파라미터 값을 입력한 함수로 한 연산 결과가 기설정된 조건을 만족시키는 등 제약 조건일 수 있다. Additionally or alternatively, in some exemplary embodiments of the present invention, a constraint may be associated with an input parameter value 110 and a configurable parameter at the same time. For example, the constraint may be a constraint such that a result of an operation in which the input parameter value 110 and configurable parameter values are input satisfies a preset condition.

본 발명에서 설명된 제약 조건에 대한 예시는 단지 예시적인 것일 뿐 제약 조건에 대한 한정이 아니며, 상이한 후보 컴퓨팅 기능 템플릿(120)의 구체적인 구현에 따라 제약 조건은 임의의 형태 또는 임의의 값일 수 있음을 이해해야 한다.The example of the constraint described in the present invention is merely exemplary and is not a limitation on the constraint, and that the constraint may be in any form or any value according to specific implementations of different candidate computing function templates 120 . have to understand

추가적이거나 대안적으로, 컴퓨팅 기기(130)는 입력 파라미터 값(110) 및 제약 조건에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 확정한다. 입력 파라미터 값(110) 및/또는 제약 조건은 모두 특정된 애플리케이션 시나리오/연산 규모를 어느 정도 반영할 수 있으므로, 입력 파라미터 값(110) 및 제약 조건에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 확정하면 검색할 후보 컴퓨팅 기능 템플릿(120)의 범위를 효과적으로 감소시키게 되어 칩 설계 과정, 특히는 칩 소프트웨어 개발의 효율성을 향상시킨다. Additionally or alternatively, the computing device 130 determines at least one candidate computing function template 120 corresponding to the computing function based on the input parameter value 110 and the constraint condition. Since both the input parameter value 110 and/or the constraint may reflect a specified application scenario/computation scale to some extent, based on the input parameter value 110 and the constraint, at least one candidate computing corresponding to the computing function When the function template 120 is determined, the range of candidate computing function templates 120 to be searched is effectively reduced, thereby improving the efficiency of the chip design process, in particular, the chip software development.

계속해서 도 2를 참조하면, 블록(230)에서, 컴퓨팅 기기(130)는 칩 기반의 상기 컴퓨팅 기능을 구현하기 위해, 입력 파라미터 값(110) 및 후보 컴퓨팅 기능 템플릿(120)(블록(220)에서 확정된 후보 템플릿(120)의 범위 내)의 구성 가능한 파라미터의 상이한 후보 값에 따라 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정한다. With continued reference to FIG. 2 , in block 230 , the computing device 130 provides input parameter values 110 and candidate computing function templates 120 (block 220 ) to implement the chip-based computing function. The target computing function template 140 and target values of the configurable parameters of the target computing function template 140 are determined according to different candidate values of the configurable parameters of the determined candidate template 120).

본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 머신 러닝 방식을 사용하여 입력 파라미터 값(110) 및 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 복수의 상이한 후보 값에 따라 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정한다. In some exemplary embodiments of the present invention, the computing device 130 uses a machine learning method to perform target computing according to the input parameter value 110 and a plurality of different candidate values of the configurable parameters of the candidate computing function template 120 . The function template 140 and the target computing function template 140 determine target values of configurable parameters.

본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 상기 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 상이한 후보 값에서의 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 추정하고, 추정된 실행 성능에 기반하여 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정한다. In some exemplary embodiments of the present invention, the computing device 130 estimates the execution performance of the candidate computing function template 120 at different candidate values of the configurable parameters of the candidate computing function template 120 , and the estimated Determine the target computing function template 140 and target values of configurable parameters of the target computing function template 140 based on the execution performance.

제한적이지 않은 설명적인 예시로서, 컴퓨팅 기기(130)는 하나의 초기 측정 세트를 생성하되, 초기 측정 세트는 입력 파라미터 값(110) 및/또는 블록(220)에서 확정된 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 값을 포함할 수 있다. 예를 들어, 두개의 벡터를 곱하는 경우를 예시로서, 입력 파라미터 값(110)은 벡터 길이에 대한 식별자, 예를 들어 (50, 50)일 수 있고, 길이가 50인 두개의 벡터 곱셈의 특정된 애플리케이션 시나리오를 식별 및 산출한다. 후보 컴퓨팅 기능 템플릿(120-1)의 구성 가능한 파라미터는 벡터 세그먼트 길이이고, 세그먼트 길이 후보 값은 [2, 3, 4]이며, 연산 벡터 길이가 100보다 작은 것을 제약 조건으로 하고; 후보 컴퓨팅 기능 템플릿(120-2)의 구성 가능한 파라미터는 벡터 세그먼트 길이 및 프로세서 개수이되, 여기서 세그먼트 길이의 후보 값은 [3, 4, 5]이고, 프로세서 개수의 후보 값은 [3, 4]이며, 연산 벡터 길이가 80보다 작은 것을 제약 조건으로 하면, 초기값은 [50, 50, 3, 3]일 수 있고, 길이가 50인 두개의 벡터 곱셈의 특정된 애플리케이션 시나리오를 식별 및 산출하며, 연산시 적용되는 세그먼트 길이 파라미터는 3이고, 사용되는 프로세서 수는 3이다. As a non-limiting illustrative example, computing device 130 generates one initial measurement set, wherein the initial measurement set includes input parameter values 110 and/or at least one candidate computing function template determined in block 220 . (120) configurable parameter values. For example, taking the case of multiplying two vectors as an example, the input parameter value 110 may be an identifier for a vector length, for example (50, 50), and specifying the multiplication of two vectors of length 50 Identify and calculate application scenarios. A configurable parameter of the candidate computing function template 120-1 is a vector segment length, a segment length candidate value is [2, 3, 4], and constraint that the operation vector length is less than 100; The configurable parameters of the candidate computing function template 120-2 are a vector segment length and a number of processors, wherein the candidate values of the segment length are [3, 4, 5], the candidate values of the number of processors are [3, 4], and , given that the operation vector length is less than 80 as a constraint, the initial value may be [50, 50, 3, 3], identifying and calculating the specified application scenario of multiplication of two vectors of length 50, the operation The segment length parameter applied at the time is 3, and the number of processors used is 3.

상기 초기 측정 세트값의 선택은 단지 예시적인 것일 뿐 초기 측정 세트값에서 구성 가능한 파라미터의 개수는 필요에 따라 조정할 수 있음을 이해해야 한다. 일부 예시적인 실시예에서, 이는 블록(220)에서 확정된 모든 후보 컴퓨팅 기능 템플릿(120)에 관련된 전체 구성 가능한 파라미터를 포함할 수 있고, 다른 일부 예시적인 실시예에서, 블록(220)에서 확정된 모든 후보 컴퓨팅 기능 템플릿(120)에 관련된 전체 구성 가능한 파라미터 중 일부만 포함할 수 있다. 유사하게, 초기 측정 세트의 값은 후보 컴퓨팅 기능 템플릿(120)에 따라 합리하게 설정될 수도 있으며 본 발명은 이에 대해 한정하지 않는다. 예를 들어, 후보 컴퓨팅 기능 템플릿(120)의 다른 예시로서, 벡터 길이가 각각 (1000, 1000), 즉 각각의 벡터가 1000개의 값을 포함하는 애플리케이션 시나리오의 경우, 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터는 가동된 컴퓨팅 코어의 개수(후보 값은 m이고, 여기서 m은 양의 정수임), 및 각각의 컴퓨팅 코어에 의해 산출된 값의 개수(후보 값은 n이고, 여기서 n은 양의 정수임)이며, 해당 제약 조건은 m * n ≤ 1000일 수 있다. It should be understood that the selection of the initial measurement set value is merely exemplary and the number of parameters configurable in the initial measurement set value may be adjusted as necessary. In some demonstrative embodiments, this may include full configurable parameters related to all candidate computing function templates 120 determined at block 220 , and in some other demonstrative embodiments, determined at block 220 . It may include only some of the overall configurable parameters associated with all candidate computing function templates 120 . Similarly, the value of the initial measurement set may be reasonably set according to the candidate computing function template 120, and the present invention is not limited thereto. For example, as another example of the candidate computing function template 120 , for an application scenario where the vector lengths are each (1000, 1000), that is, each vector contains 1000 values, the candidate computing function template 120 is The configurable parameters are the number of computing cores activated (where the candidate value is m, where m is a positive integer), and the number of values produced by each computing core (the candidate value is n, where n is a positive integer). ), and the constraint may be m * n ≤ 1000.

컴퓨팅 기기(130)는 초기 측정 세트에 따라 상기 초기 측정 세트에서의 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 추정한다. 구체적으로, 계속해서 상기 벡터 곱셈의 예시를 참조하면, 컴퓨팅 기기(130)는 초기 측정 세트 [50, 50, 3, 3]에서의 템플릿(120-1 및 120-2) 각각의 실행 성능을 추정한다. The computing device 130 estimates the execution performance of the at least one candidate computing function template 120 in the initial measurement set according to the initial measurement set. Specifically, with continuing reference to the example of vector multiplication, the computing device 130 estimates the performance of each of the templates 120-1 and 120-2 in the initial measurement set [50, 50, 3, 3]. do.

컴퓨팅 기기(130)는 머신 러닝 방식에 의해 다음 측정 파라미터 세트를 생성한다. 본 발명의 일부 예시적인 실시예에서, 다음 측정 파라미터 세트의 선택은 이전 측정 파라미터 세트의 측정 결과에 기반할 수 있다. 이 밖에, 다음 측정 파라미터 세트의 구성 가능한 파라미터 개수 및 값의 선택은 초기 측정 파라미터 세트와 일치하므로 간결성을 위해 여기서 더 이상 반복하지 않는다. 본 조작은 기존 또는 향후 개발될 임의의 머신 러닝 기술이 포함됨을 이해해야 한다. 머신 러닝 방식으로 다음 측정 파라미터 세트를 생성하여 다음 측정 파라미터 세트를 보다 합리적으로 선택함으로써 구성 가능한 파라미터의 모든 후보 값에 대응되는 검색 공간을 순회할 필요가 없게 되어 칩 기반의 컴퓨팅 기능 생성 방법의 효율성을 향상시킨다. The computing device 130 generates the next set of measurement parameters by a machine learning method. In some exemplary embodiments of the present invention, selection of a next measurement parameter set may be based on a measurement result of a previous measurement parameter set. In addition, the selection of the configurable number of parameters and values of the next set of measurement parameters is consistent with the initial set of measurement parameters and therefore is not repeated here further for the sake of brevity. It should be understood that this manipulation includes any existing or future development of machine learning techniques. By generating the next set of measurement parameters in a machine learning manner, more rational selection of the next set of measurement parameters eliminates the need to traverse the search space corresponding to all candidate values of configurable parameters, thereby increasing the efficiency of the method of generating chip-based computing functions. improve

검색이 종료되기 이전에, 다음 측정 파라미터 세트를 생성하고 생성된 측정 파라미터 세트에 대해 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 측정하는 단계를 반복적으로 수행한다. 측정된 실행 성능에 기반하여 타겟 컴퓨팅 기능 템플릿(140) 및 상기 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 값을 확정한다. 예를 들어, 측정 결과에 실행 성능이 가장 우수한 결과가 후보 컴퓨팅 기능 템플릿(120-1)이 세그먼트 길이가 3인 경우에 대응하는 것으로 나타나면, 컴퓨팅 기기(130)는 후보 컴퓨팅 기능 템플릿(120-1)을 타겟 템플릿으로 확정하고, 후보 컴퓨팅 기능 템플릿(120-1)의 구성 가능한 파라미터(즉 벡터 세그먼트 길이)의 후보 값 3을 타겟 값으로 확정한다. Before the search is terminated, the steps of generating the next measurement parameter set and measuring the execution performance of the candidate computing function template 120 with respect to the generated measurement parameter set are repeatedly performed. Based on the measured execution performance, the target computing function template 140 and values of configurable parameters corresponding to the target computing function template 140 are determined. For example, if the measurement result indicates that the result with the best execution performance corresponds to the case where the candidate computing function template 120 - 1 has a segment length of 3 , the computing device 130 sets the candidate computing function template 120 - 1 ) is determined as the target template, and the candidate value 3 of the configurable parameter (ie, vector segment length) of the candidate computing function template 120 - 1 is determined as the target value.

본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정시 동시에 후보 컴퓨팅 기능 템플릿의 제약 조건도 고려하는데 구체적으로는 하기와 같이 표현될 수 있다. 초기 측정 파라미터 세트 및 다음 측정 파라미터 세트를 확정하고, 초기 측정 파라미터 세트 및 다음 측정 파라미터 세트를 후보 컴퓨팅 기능 템플릿(120)에 적용할 경우, 후보 컴퓨팅 기능 템플릿(120)의 제약 조건을 고려한다. 상기 방식을 통해, 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값이 보다 효율적이고 정확하게 확정될 수 있다. In some exemplary embodiments of the present invention, the computing device 130 also determines the target computing function template 140 and target values of the configurable parameters of the target computing function template 140 at the same time as constraint conditions of the candidate computing function template Specifically, it can be expressed as follows. When the initial measurement parameter set and the next measurement parameter set are determined, and the initial measurement parameter set and the next measurement parameter set are applied to the candidate computing function template 120 , the constraint conditions of the candidate computing function template 120 are considered. In this way, the target computing function template 140 and the target values of the configurable parameters of the target computing function template 140 can be determined more efficiently and accurately.

상기 방식을 통해, 칩 내부의 구성 가능한 파라미터는 상위 호출자에게 제공되고, 이는 칩 소프트웨어 개발 과정에서 실행 성능의 테스트 결과에 따라 동적으로 구성될 수 있으므로 칩 내부의 구성 가능한 파라미터를 구성하는 난이도를 감소시키며 고성능 칩의 설계를 보장한다.Through the above method, the configurable parameters inside the chip are provided to the upper caller, which can be dynamically configured according to the test result of the execution performance during the chip software development process, thereby reducing the difficulty of configuring the configurable parameters inside the chip, It ensures the design of high-performance chips.

추가적으로, 본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 획득하기 위해 JIT 컴파일을 적용하여 테스트를 수행할 수 있다. 구체적으로, 컴퓨팅 기기(130)는 생성된 측정 파라미터를 후보 컴퓨팅 기능 템플릿(120)에 적용하여 JIT방식으로 최종 코드를 생성하고 후보 컴퓨팅 기능 템플릿(120)의 성능을 테스트한다. 이러한 방식을 통해, 컴파일시 코드가 생성되는 것이 아니라 실행시 코드가 생성되므로 칩 설계 과정, 특히는 칩 소프트웨어 개발의 효율성을 향상시키는 동시에 고성능 칩 기반의 컴퓨팅 기능 생성을 보장한다.Additionally, in some exemplary embodiments of the present invention, the computing device 130 may perform a test by applying JIT compilation to obtain the execution performance of the candidate computing function template 120 . Specifically, the computing device 130 applies the generated measurement parameter to the candidate computing function template 120 to generate a final code in a JIT method and tests the performance of the candidate computing function template 120 . In this way, since code is generated at execution time rather than compilation time, the efficiency of the chip design process, especially chip software development, is improved, while the high-performance chip-based computing function generation is ensured.

본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 칩 기반의 상기 컴퓨팅 기능을 구현하기 위해, 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정한다. 구체적으로, 컴퓨팅 기기(130)는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값에 대응되는 코드를 출력한다. In some exemplary embodiments of the present invention, the computing device 130 sets the target computing function template 140 and target values of configurable parameters of the target computing function template 140 to implement the chip-based computing function. confirm Specifically, the computing device 130 outputs the target computing function template 140 and codes corresponding to target values of the configurable parameters of the target computing function template 140 .

이 밖에, 칩 소프트웨어 개발 과정의 효율성을 보다 향상시키기 위해 다양한 방식으로 칩 소프트웨어 개발 과정을 제어할 수 있다. 본 발명의 일부 예시적인 실시예에서, 실행 성능 임계값을 설정하는 방식으로 칩 기반의 컴퓨팅 기능 생성 과정을 제어할 수 있다. 구체적으로, 타겟 컴퓨팅 기능 템플릿(140) 및 그 타겟 값을 확정하는 과정에서, 추정된 실행 성능이 실행 성능 임계값보다 우수할 경우, 상기 실행 성능에 대응되는 후보 컴퓨팅 기능 템플릿(120) 및 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 후보 값을 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값으로 확정한다. In addition, in order to further improve the efficiency of the chip software development process, the chip software development process may be controlled in various ways. In some exemplary embodiments of the present invention, the process of generating a chip-based computing function may be controlled by setting an execution performance threshold. Specifically, in the process of determining the target computing function template 140 and its target value, when the estimated execution performance is greater than the execution performance threshold, the candidate computing function template 120 and the candidate computing corresponding to the execution performance The candidate values of the configurable parameters of the function template 120 are determined as the target computing function template 140 and the target values of the configurable parameters of the target computing function template 140 .

실행 성능 임계값의 구성은 다양한 방식으로 구현될 수 있는데, 본 발명의 일부 예시적인 실시예에서, 실행 성능 임계값은 사용자에 의해 입력된 것일 수 있다. 다른 일부 예시적인 실시예에서, 실행 성능 임계값은 미리 구성된 디폴트 값일 수 있고 또한 미리 컴퓨팅 기기(130)에 저장될 수 있다. The configuration of the execution performance threshold may be implemented in various ways, and in some exemplary embodiments of the present invention, the execution performance threshold may be input by a user. In some other demonstrative embodiments, the execution performance threshold may be a preconfigured default value and may also be stored in the computing device 130 in advance.

추가적이거나 대안적으로, 본 발명의 일부 예시적인 실시예에서, 또한 칩 기반의 컴퓨팅 기능 생성 과정을 기설정된 시간대 내로 한정할 수 있다. 구체적으로, 기설정된 시간대 내에 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정한다. Additionally or alternatively, in some exemplary embodiments of the present invention, it is also possible to limit the process of generating a chip-based computing function within a preset time period. Specifically, the target computing function template 140 and target values of configurable parameters of the target computing function template 140 are determined within a preset time period.

기설정된 시간대는 다양한 방식으로 구성될 수 있다. 예를 들어, 사용자 입력 방식, 구체적으로는 사용자가 칩의 설계 시간과 관련된 시간대를 컴퓨팅 기기(130)에 전송하는 방식으로 구성될 수 있다.The preset time zone may be configured in various ways. For example, it may be configured in a user input method, specifically, a method in which a user transmits a time zone related to a design time of a chip to the computing device 130 .

추가적이거나 대안적으로, 기설정된 시간대는 입력 파라미터 값(110)에 의해 확정될 수도 있다. 예를 들어, 컴퓨팅 기기(130)는 상이한 애플리케이션 시나리오/연산 규모에 대해, 상이한 기설정된 시간대를 설정할 수 있다. 추가적이거나 대안적으로, 기설정된 시간대는 컴퓨팅 기기(130) 내에 기본적으로 구성될 수 있다. Additionally or alternatively, the preset time period may be determined by the input parameter value 110 . For example, the computing device 130 may set different preset time zones for different application scenarios/computation scales. Additionally or alternatively, the preset time zone may be configured by default in the computing device 130 .

상기 방식을 통해, 칩 기반의 컴퓨팅 기능 생성 과정의 유연한 제어를 구현할 수 있고 성능과 효율 간의 균형을 보다 양호하게 구현할 수 있다. Through the above method, it is possible to implement flexible control of the process of generating a chip-based computing function and to achieve a better balance between performance and efficiency.

추가적으로, 본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 값을 확정한 후, 입력 파라미터 값(110)과, 확정된, 입력 파라미터 값(110)에 대응되는 타겟 컴퓨팅 기능 템플릿(140) 및 상기 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값 사이의 대응 관계를 저장한다. Additionally, in some exemplary embodiments of the present invention, the computing device 130 determines the target computing function template 140 and the target value, and then sets the input parameter value 110 and the determined input parameter value 110 . and a corresponding relationship between a target computing function template 140 corresponding to , and a target value of a configurable parameter corresponding to the target computing function template 140 .

추가적으로, 본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 입력 파라미터 값(110)(블록(210)에 도시된 바와 같음)을 수신한 후, 이미 저장된 대응 관계에서 검색하여 입력 파라미터 값(110)에 대응되는 대응 관계가 이미 존재하는지 여부를 확정하고, 입력 파라미터 값(110)에 대응되는 대응 관계가 존재하는 것으로 확정된 경우, 상기 대응 관계에 기반하여 입력 파라미터 값(110)에 대응되는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값을 직접 확정하여 칩 기반의 상기 컴퓨팅 기능을 구현한다. Additionally, in some demonstrative embodiments of the present invention, computing device 130 receives input parameter value 110 (as shown in block 210 ), and then searches for the input parameter value in an already stored correspondence. It is determined whether a corresponding relationship corresponding to 110 already exists, and when it is determined that a corresponding relationship corresponding to the input parameter value 110 exists, it corresponds to the input parameter value 110 based on the corresponding relationship The chip-based computing function is implemented by directly determining the target computing function template 140 and target values of configurable parameters corresponding to the target computing function template 140 .

상기 방식을 통해, 생성된 칩 기반의 컴퓨팅 기능은 다양한 애플리케이션 시나리오/연산 규모에 동적으로 적용될 수 있으며, 이에 구성된 구성 가능한 파라미터는 추정된 실행 성능에 따라 확정된 것이므로 더욱 신뢰할 수 있고, 머신 러닝 방식을 사용하여 파라미터 세트를 선택 및 측정하며, 타겟 연산자 템플릿 및 타겟 값을 확정하므로 수동으로 파라미터를 구성하는 난이도를 감소시켜 효율적으로 칩 기반의 컴퓨팅 기능을 생성할 수 있다.Through the above method, the generated chip-based computing function can be dynamically applied to various application scenarios/computation scales, and the configurable parameters configured therein are determined according to the estimated execution performance, making it more reliable and machine learning method. It is used to select and measure parameter sets, and to determine target operator templates and target values, thereby reducing the difficulty of manually configuring parameters, enabling efficient generation of chip-based computing functions.

도 3은 본 발명의 실시예에 따른 칩 기반의 컴퓨팅 기능 생성 장치(300)의 블록도를 도시한다. 장치(300)는 도 1의 컴퓨팅 기기(130) 내에 포함되거나 컴퓨팅 기기(130)로서 구현될 수 있다. 도 3에 도시된 바와 같이, 장치(300)는 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값(110)을 획득하는 입력 파라미터 값 획득 모듈(310)을 포함한다. 장치(300)는 입력 파라미터 값(110)에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 확정하는 후보 컴퓨팅 기능 템플릿 확정 모듈(320)을 더 포함하되, 후보 컴퓨팅 기능 템플릿(120)은 후보 컴퓨팅 기능 템플릿(120)의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 구성 가능한 파라미터는 적어도 하나의 후보 값을 가질 수 있다. 나아가, 장치(300)는 칩 기반의 상기 컴퓨팅 기능을 구현하기 위해, 입력 파라미터 값(110) 및 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 상이한 후보 값에 따라 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정하는 타겟 컴퓨팅 기능 템플릿 확정 모듈(330)을 더 포함한다. 3 is a block diagram of an apparatus 300 for generating a chip-based computing function according to an embodiment of the present invention. Device 300 may be included in or implemented as computing device 130 of FIG. 1 . As shown in FIG. 3 , the device 300 includes an input parameter value obtaining module 310 that obtains an input parameter value 110 related to a computing function supported by the chip. The device 300 further includes a candidate computing function template determining module 320 configured to determine at least one candidate computing function template 120 corresponding to the computing function based on the input parameter value 110 , wherein the candidate computing function template 120 has a configurable parameter related to the execution performance of the candidate computing function template 120 , and the configurable parameter may have at least one candidate value. Furthermore, the device 300 is configured to implement the chip-based computing function, the target computing function template 140 and The method further includes a target computing function template determining module 330 configured to determine a target value of a configurable parameter of the target computing function template 140 .

본 발명의 일부 예시적인 실시예에서, 타겟 컴퓨팅 기능 템플릿 확정 모듈(330)은 머신 러닝 방식을 사용하여 입력 파라미터 값(110) 및 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 복수의 상이한 후보 값에 따라, 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정하는 머신 러닝 모듈을 포함한다. In some exemplary embodiments of the present invention, the target computing function template determining module 330 uses a machine learning method to configure the input parameter values 110 and a plurality of different candidate values of the configurable parameters of the candidate computing function templates 120 . according to the target computing function template 140 and the machine learning module for determining the target values of the configurable parameters of the target computing function template 140 .

본 발명의 일부 예시적인 실시예에서, 타겟 컴퓨팅 기능 템플릿 확정 모듈(330)은, 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 상이한 후보 값에서의 추정 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 추정하는 성능 추정 모듈; 및 추정된 실행 성능에 기반하여 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정하는 제2 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함한다.In some exemplary embodiments of the present invention, the target computing function template determining module 330 is configured to determine the execution performance of the estimated candidate computing function template 120 at different candidate values of configurable parameters of the candidate computing function template 120 . a performance estimation module for estimating; and a second target computing function template determining module configured to determine the target computing function template 140 and target values of the configurable parameters of the target computing function template 140 based on the estimated execution performance.

본 발명의 일부 예시적인 실시예에서, 제2 타겟 컴퓨팅 기능 템플릿 확정 모듈은, 추정된 실행 성능이 실행 성능 임계값보다 우수한지 여부를 확정하는 임계값 판단 모듈; 및 추정된 실행 성능이 실행 성능 임계값보다 우수한 것에 응답하여, 추정된 실행 성능에 대응되는 후보 컴퓨팅 기능 템플릿(120) 및 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 후보 값을 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값으로 확정하는 제3 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함한다.In some exemplary embodiments of the present invention, the second target computing function template determining module includes: a threshold value determining module, configured to determine whether the estimated execution performance is superior to an execution performance threshold; and in response to the estimated execution performance being superior to the execution performance threshold, the candidate computing function template 120 corresponding to the estimated execution performance and candidate values of the configurable parameters of the candidate computing function template 120 to the target computing function template (140) and a third target computing function template determining module for determining the target value of the configurable parameter of the target computing function template (140).

본 발명의 일부 예시적인 실시예에서, 실행 성능 임계값은 사용자에 의해 입력되거나 컴퓨팅 기기(130)에 미리 구성된 것이다. In some exemplary embodiments of the present invention, the execution performance threshold is entered by the user or preconfigured in the computing device 130 .

본 발명의 일부 예시적인 실시예에서, 성능 추정 모듈은, 입력 파라미터 값(110) 및 적어도 하나의 구성 가능한 파라미터의 적어도 하나의 후보 값을 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)에 적용하는 파라미터 적용 모듈; 및 적시 컴파일 방식을 통해 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)의 코드를 생성하고 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 추정하는 컴파일 모듈을 포함한다. In some demonstrative embodiments of the present invention, the performance estimation module is configured to apply a parameter application that applies the input parameter value 110 and at least one candidate value of the at least one configurable parameter to the at least one candidate computing function template 120 . module; and a compilation module that generates the code of the at least one candidate computing function template 120 through a just-in-time compilation method and estimates execution performance of the at least one candidate computing function template 120 .

본 발명의 일부 예시적인 실시예에서, 후보 컴퓨팅 기능 템플릿(120)은 입력 파라미터 값(110) 및/또는 후보 컴퓨팅 기능 템플릿(120)의 실행 성능과 관련된 구성 가능한 파라미터와 관련된 제약 조건을 더 구비하고; 후보 컴퓨팅 기능 템플릿 확정 모듈(320)은, 입력 파라미터 값(110) 및 제약 조건에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 확정하는 제1 후보 컴퓨팅 기능 템플릿 확정 모듈을 포함한다. In some exemplary embodiments of the present invention, the candidate computing function template 120 further includes constraints related to input parameter values 110 and/or configurable parameters related to the execution performance of the candidate computing function template 120 , ; The candidate computing function template determination module 320 includes a first candidate computing function template determination module configured to determine at least one candidate computing function template 120 corresponding to the computing function based on the input parameter value 110 and the constraint condition. include

본 발명의 일부 예시적인 실시예에서, 장치(300)는 입력 파라미터 값(110)과, 확정된, 입력 파라미터 값(110)에 대응되는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값 사이의 대응 관계를 저장하는 저장 모듈을 더 포함한다. In some exemplary embodiments of the present invention, the device 300 includes an input parameter value 110 , a target computing function template 140 corresponding to the determined, input parameter value 110 , and a target computing function template 140 . and a storage module for storing a correspondence relationship between target values of configurable parameters corresponding to .

본 발명의 일부 예시적인 실시예에서, 장치(300)는 입력 파라미터 값(110)에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 확정하기 이전에, 이미 저장된 대응 관계에 입력 파라미터 값(110)에 대응되는 대응 관계가 존재하는지 여부를 확정하는 대응 관계 판단 모듈; 및 입력 파라미터 값(110)에 대응되는 대응 관계가 존재하는 것으로 확정한 것에 응답하여, 대응 관계에 기반하여 입력 파라미터 값(110)에 대응되는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값을 확정하는 제4 타겟 컴퓨팅 기능 템플릿 확정 모듈을 더 포함한다. In some exemplary embodiments of the present invention, before determining the at least one candidate computing function template 120 corresponding to the computing function based on the input parameter value 110 , the device 300 may be configured to a correspondence determination module for determining whether a correspondence corresponding to the input parameter value 110 exists; and in response to determining that a corresponding relationship corresponding to the input parameter value 110 exists, the target computing function template 140 and the target computing function template 140 corresponding to the input parameter value 110 based on the correspondence relationship ), further comprising a fourth target computing function template determining module configured to determine a target value of a configurable parameter corresponding to .

본 발명의 일부 예시적인 실시예에서, 타겟 컴퓨팅 기능 템플릿 확정 모듈(330)은, 기설정된 시간대 내에 확정 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정하는 제5 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함한다. In some exemplary embodiments of the present invention, the target computing function template determining module 330 is configured to determine the target computing function template 140 and target values of configurable parameters of the target computing function template 140 within a preset time period. and a fifth target computing function template determining module.

본 발명의 일부 예시적인 실시예에서, 기설정된 시간대는, 사용자에 의해 입력된, 칩의 설계 시간과 관련된 시간대; 입력 파라미터 값(110); 및 컴퓨팅 기기(130)에 미리 구성된, 칩의 설계 시간과 관련된 시간대 중 적어도 하나에 기반하여 확정된다.In some exemplary embodiments of the present invention, the preset time zone includes: a time zone input by a user, related to the design time of the chip; input parameter value 110; And it is determined based on at least one of the time zone related to the design time of the chip, which is previously configured in the computing device 130 .

본 발명의 일부 예시적인 실시예에서, 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)은 기계 지향적 프로그래밍 언어를 통해 구현된다. In some demonstrative embodiments of the present invention, the at least one candidate computing function template 120 is implemented via a machine-oriented programming language.

본 발명의 일부 예시적인 실시예에서, 각각의 컴퓨팅 기능은 복수의 후보 컴퓨팅 기능 템플릿(120)에 대응되고, 복수의 후보 컴퓨팅 기능 템플릿(120)은 상이한 애플리케이션 시나리오에 대응된다. In some exemplary embodiments of the present invention, each computing function corresponds to a plurality of candidate computing function templates 120 , and the plurality of candidate computing function templates 120 correspond to different application scenarios.

본 발명의 일부 예시적인 실시예에서, 입력 파라미터 값(110)은 애플리케이션 시나리오와 연관된다. In some exemplary embodiments of the present invention, the input parameter value 110 is associated with an application scenario.

도 4는 본 발명의 실시예를 실행 가능한 예시적 기기(400)의 예시적인 블록도를 도시한다. 기기(400)는 도 1의 컴퓨팅 기기(130)를 구현할 수 있다. 도면에 도시된 바와 같이, 기기(400)는 판독 전용 메모리(ROM)(402)에 저장된 컴퓨터 프로그램 명령 또는 저장 유닛(408)으로부터 랜덤 액세스 메모리(RAM)(403)에 로딩된 컴퓨터 프로그램 명령에 따라, 다양한 적절한 동작 및 처리를 수행할 수 있는 컴퓨팅 유닛(401)을 포함한다. RAM(403)에는 기기(400) 작동에 필요한 다양한 프로그램과 데이터가 더 저장될 수 있다. 컴퓨팅 유닛(401), ROM(402) 및 RAM(403)은 버스(404)를 통해 서로 연결된다. 입력/출력(I/O) 인터페이스(405)도 버스(404)에 연결된다. 4 depicts an exemplary block diagram of an exemplary device 400 capable of implementing embodiments of the present invention. The device 400 may implement the computing device 130 of FIG. 1 . As shown in the figure, the device 400 responds to computer program instructions stored in a read-only memory (ROM) 402 or computer program instructions loaded from a storage unit 408 into a random access memory (RAM) 403 . , a computing unit 401 capable of performing various suitable operations and processing. The RAM 403 may further store various programs and data necessary for the operation of the device 400 . The computing unit 401 , the ROM 402 and the RAM 403 are connected to each other via a bus 404 . An input/output (I/O) interface 405 is also coupled to the bus 404 .

예를 들어 키보드, 마우스 등을 포함하는 입력 유닛(406); 예를 들어 다양한 타입의 디스플레이, 스피커 등을 포함하는 출력 유닛(407); 예를 들어 자기 디스크, 광 디스크 등을 포함하는 저장 유닛(408); 및 예를 들어 LAN 카드, 모뎀, 무선 통신 트랜시버 등을 포함하는 통신 유닛(409)을 포함하는 기기(400) 중의 복수의 부재는 I/O 인터페이스(405)에 연결된다. 통신 유닛(409)은 기기(400)가 인터넷과 같은 컴퓨터 네트워크 및/또는 다양한 전기 통신망에 의해 다른 기기와 정보/데이터를 교환할 수 있도록 허용한다. an input unit 406 including, for example, a keyboard, mouse, and the like; an output unit 407 including, for example, various types of displays, speakers, and the like; a storage unit 408 including, for example, a magnetic disk, an optical disk, or the like; and a communication unit 409 including, for example, a LAN card, a modem, a wireless communication transceiver, and the like. The communication unit 409 allows the device 400 to exchange information/data with other devices by means of a computer network such as the Internet and/or various telecommunication networks.

컴퓨팅 유닛(401)은 프로세싱 및 컴퓨팅 기능을 갖는 다양한 범용 및/또는 전용 프로세싱 컴포넌트일 수 있다. 컴퓨팅 유닛(401)의 일부 예시는 중앙 처리 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 다양한 전용 인공 지능(AI) 컴퓨팅 칩, 기계 학습 모델 알고리즘을 실행하는 다양한 컴퓨팅 유닛, 및 디지털 신호 프로세서(DSP) 및 임의의 적합한 프로세서, 컨트롤러, 마이크로 컨트롤러 등을 포함하나 이에 한정되지 않는다. 컴퓨팅 유닛(401)은 과정(200)과 같은 전술된 다양한 방법 및 프로세스를 수행한다. 예를 들어, 일부 예시적인 실시예에서, 과정(200)은 저장 유닛(408)과 같은 기계 판독 가능 매체에 유형적으로 구현되는 컴퓨터 소프트웨어 프로그램으로서 구현될 수 있다. 일부 예시적인 실시예에서, 컴퓨터 프로그램의 일부 또는 전부는 ROM(402) 및/또는 통신 유닛(409)을 통해 장치(400)에 로딩 및/또는 설치될 수 있다. 컴퓨터 프로그램이 RAM(403)에 로딩되고 컴퓨팅 유닛(401)에 의해 실행될 경우, 전술한 하나 이상의 과정(200)의 단계가 수행될 수 있다. 대안적으로, 다른 실시예들에서, 컴퓨팅 유닛(401)은 임의의 다른 적합한 수단(예를 들어, 펌웨어에 의해)에 의해 과정(200)을 수행하도록 구성될 수 있다.The computing unit 401 may be a variety of general-purpose and/or dedicated processing components having processing and computing capabilities. Some examples of computing unit 401 include a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units executing machine learning model algorithms, and a digital signal processor (DSP). ) and any suitable processor, controller, microcontroller, and the like. Computing unit 401 performs the various methods and processes described above, such as process 200 . For example, in some demonstrative embodiments, process 200 may be implemented as a computer software program tangibly embodied in a machine-readable medium, such as storage unit 408 . In some demonstrative embodiments, some or all of the computer program may be loaded and/or installed in the device 400 via the ROM 402 and/or the communication unit 409 . When the computer program is loaded into the RAM 403 and executed by the computing unit 401 , one or more steps of the process 200 described above may be performed. Alternatively, in other embodiments, computing unit 401 may be configured to perform process 200 by any other suitable means (eg, by firmware).

본문에서 이상 설명된 기능은 적어도 일부가 하나 또는 복수의 하드웨어 논리 부재에 의해 실행될 수 있다. 예를 들어, 비제한적으로, 사용 가능한 시범 유형의 하드웨어 논리 부재는 필드 프로그램 가능 게이트 어레이(FPGA), 전용 집적 회로(ASIC), 전용 표준 제품(ASSP), 시스템 온 칩의 시스템(SOC), 복합 프로그램 가능 논리 소자(CPLD) 등을 포함한다. At least some of the functions described above in the text may be executed by one or a plurality of hardware logic members. For example, but not limited to, demonstration types of hardware logic elements that may be used include field programmable gate arrays (FPGAs), dedicated integrated circuits (ASICs), dedicated standard products (ASSPs), systems on a chip (SOC), complex programmable logic devices (CPLDs); and the like.

본 발명의 방법을 구현하는 프로그램 코드는 하나 또는 복수의 프로그래밍 언어의 임의의 조합으로 편집할 수 있다. 이러한 프로그램 코드는 범용 컴퓨터, 전용 컴퓨터 또는 다른 프로그램 가능 데이터 처리 장치의 프로세서 또는 제어기에 제공될 수 있으며, 프로그램 코드는 프로세서 또는 제어기에 의해 실행될 경우, 흐름도 및/또는 블록도에 지정된 기능/작동이 구현되도록 할 수 있다. 프로그램 코드는 완전히 기계에서 실행되거나, 부분적으로 기계에서 실행되거나, 독립형 소프트웨어 패키지로서 기계에서 실행되며, 일부는 원격 기계에서 실행되거나 완전히 원격 기계 또는 서버에서 실행될 수 있다. The program code implementing the method of the present invention may be edited in any combination of one or more programming languages. Such program code may be provided on the processor or controller of a general purpose computer, dedicated computer, or other programmable data processing device, and the program code, when executed by the processor or controller, implements the functions/operations specified in the flowcharts and/or block diagrams. can make it happen The program code may run entirely on the machine, partially run on the machine, or run on the machine as a standalone software package, some of which may run on a remote machine or run entirely on a remote machine or server.

본 발명의 컨텍스트에서, 기계 판독 가능 매체는 명령 실행 시스템, 장치 또는 기기에 의해 또는 명령 실행 시스템, 장치 또는 기기와 결합하여 사용하기 위한 프로그램을 포함하거나 저장할 수있는 유형 매체일 수 있다. 기계 판독 가능 매체는 기계 판독 가능 신호 매체 또는 기계 판독 가능 저장 매체일 수 있다. 기계 판독 가능 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 기기, 또는 상기 내용의 임의의 적절한 조합을 포함할 수 있지만 이에 한정되지 않는다. 기계 판독 가능 저장 매체의 보다 구체적인 예는 하나 또는 복수의 와이어에 기반한 전기 연결, 휴대용 컴퓨터 디스크, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능 프로그램 가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, CD-ROM, 광학 저장 기기, 자기 저장 기기 또는 전술한 내용의 임의의 적절한 조합을 포함한다. In the context of the present invention, a machine-readable medium may be a tangible medium that can contain or store a program for use by or in combination with an instruction execution system, apparatus or apparatus. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media may include, but are not limited to, electronic, magnetic, optical, electromagnetic, infrared or semiconductor systems, devices or appliances, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include one or more wire-based electrical connections, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM). or flash memory), optical fiber, CD-ROM, optical storage device, magnetic storage device, or any suitable combination of the foregoing.

이 밖에, 특정 순서로 각 동작을 설명하였지만, 이는 이러한 동작들이 도시된 특정 순서 또는 순차적 순서로 수행되도록 요구되거나 모든 도시된 동작들이 예기한 결과에 달성하기 위해 수행되어야 함을 이해해야 한다. 일정한 환경에서, 다수의 미션 및 합병 처리는 유리할 수 있다. 마찬가지로, 전술한 설명에서 여러 개의 구체적인 구현 세부사항이 포함되어 있지만 이것이 본 발명의 범위를 한정하는 것으로 해석되어서는 안된다. 독립적인 실시예의 컨텍스트에서 설명된 특정된 특징은 단일 구현으로 조합되어 구현될 수 있다. 반대로, 단일 구현의 컨텍스트에서 설명된 다양한 특징은 또한 다수의 구현에서 독립적으로 또는 임의의 적절한 하위 조합으로 구현될 수도 있다.Additionally, although each operation has been described in a specific order, it should be understood that such operations may be required to be performed in the specific order or sequential order shown, or that all illustrated operations should be performed to achieve the desired results. In certain circumstances, handling multiple missions and mergers can be advantageous. Likewise, although several specific implementation details are included in the foregoing description, they should not be construed as limiting the scope of the invention. Certain features that are described in the context of independent embodiments may be implemented in combination into a single implementation. Conversely, various features that are described in the context of a single implementation may also be implemented in multiple implementations independently or in any suitable subcombination.

구조 특징 및/또는 방법 논리적 동작에 특정된 언어로 본 부제를 설명하였지만, 첨부된 청구범위에서 한정된 주제는 전술한 특정된 특징 또는 동작에 반드시 한정되는 것은 아님을 이해해야 한다. 반대로, 전술한 특정된 특징 및 동작은 단지 청구범위의 예시적 형태를 구현하기 위한 것이다.Although this subheading has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. To the contrary, the specific features and acts described above are for the purpose of implementing example forms of the claims only.

Claims (26)

컴퓨팅 기기에 의해 수행되는 칩 기반의 컴퓨팅 기능 생성 방법에 있어서,
상기 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값을 획득하는 단계;
상기 입력 파라미터 값에 기반하여, 상기 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 단계 - 상기 후보 컴퓨팅 기능 템플릿은 상기 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 상기 구성 가능한 파라미터는 적어도 하나의 후보 값을 가짐 - ; 및
칩 기반의 상기 컴퓨팅 기능을 구현하기 위해, 상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값에 따라, 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
A method for generating a chip-based computing function performed by a computing device, the method comprising:
obtaining input parameter values related to computing functions supported by the chip;
determining, based on the input parameter value, at least one candidate computing function template corresponding to the computing function, wherein the candidate computing function template has a configurable parameter related to execution performance of the candidate computing function template, wherein the configuration A possible parameter has at least one candidate value; and
To implement the chip-based computing function, according to the input parameter value and the candidate value of the configurable parameter of the candidate computing function template, a target computing function template and a target value of the configurable parameter of the target computing function template A method of generating a chip-based computing function comprising determining
제1항에 있어서,
상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값에 따라, 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계는,
머신 러닝 방식을 사용하여, 상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 복수의 상이한 상기 후보 값에 따라, 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
According to claim 1,
determining, according to the input parameter value and the candidate value of the configurable parameter of the candidate computing function template, a target computing function template and a target value of the configurable parameter of the target computing function template,
Using a machine learning method, according to the input parameter value and a plurality of different the candidate values of the configurable parameter of the candidate computing function template, the target computing function template and the configurable parameter of the target computing function template A method of generating a chip-based computing function, comprising determining a target value.
제1항에 있어서,
상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값에 따라, 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계는,
상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상이한 상기 후보 값에서의 상기 후보 컴퓨팅 기능 템플릿의 실행 성능을 추정하는 단계; 및
추정된 상기 실행 성능에 기반하여, 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
According to claim 1,
determining, according to the input parameter value and the candidate value of the configurable parameter of the candidate computing function template, a target computing function template and a target value of the configurable parameter of the target computing function template,
estimating execution performance of the candidate computing function template at different candidate values of the configurable parameter of the candidate computing function template; and
and determining the target computing function template and the target value of the configurable parameter of the target computing function template based on the estimated execution performance.
제3항에 있어서,
추정된 상기 실행 성능에 기반하여, 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 단계는,
상기 추정된 상기 실행 성능이 실행 성능 임계값보다 우수한지 여부를 확정하는 단계; 및
상기 추정된 상기 실행 성능이 실행 성능 임계값보다 우수한 것에 응답하여, 상기 추정된 상기 실행 성능에 대응되는 상기 후보 컴퓨팅 기능 템플릿 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값을 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값으로 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
4. The method of claim 3,
determining, based on the estimated execution performance, the target value of the target computing function template and the configurable parameter of the target computing function template,
determining whether the estimated execution performance is better than an execution performance threshold; and
In response to the estimated execution performance being superior to an execution performance threshold, the candidate computing function template corresponding to the estimated execution performance and the candidate value of the configurable parameter of the candidate computing function template are computed by the target computing function. and determining as the target value of the configurable parameter of a function template and the target computing function template.
제4항에 있어서,
상기 실행 성능 임계값은 사용자에 의해 입력되거나 칩 설계 장치에 미리 구성된 것인 칩 기반의 컴퓨팅 기능 생성 방법.
5. The method of claim 4,
wherein the execution performance threshold is input by a user or preconfigured in a chip design device.
제3항에 있어서,
상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상이한 상기 후보 값에서의 상기 후보 컴퓨팅 기능 템플릿의 실행 성능을 추정하는 단계는,
상기 입력 파라미터 값 및 적어도 하나의 상기 구성 가능한 파라미터의 적어도 하나의 상기 후보 값을 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿에 적용하는 단계; 및
적시 컴파일 방식을 통해 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿의 코드를 생성하고 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿의 상기 실행 성능을 추정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
4. The method of claim 3,
estimating the execution performance of the candidate computing function template at different candidate values of the configurable parameter of the candidate computing function template;
applying the input parameter value and at least one said candidate value of at least one said configurable parameter to said at least one candidate computing function template; and
and generating the code of the at least one candidate computing function template through a just-in-time compilation method and estimating the execution performance of the at least one candidate computing function template.
제1항에 있어서,
상기 후보 컴퓨팅 기능 템플릿은, 상기 입력 파라미터 값 및/또는 상기 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터와 관련된 제약 조건을 더 구비하고;
상기 컴퓨팅 기능에 대응되는 적어도 하나의 컴퓨팅 기능 템플릿을 확정하는 단계는,
상기 입력 파라미터 값 및 상기 제약 조건에 기반하여, 상기 컴퓨팅 기능에 대응되는 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
According to claim 1,
the candidate computing function template further comprises a constraint related to the input parameter value and/or a configurable parameter related to the execution performance of the candidate computing function template;
Determining at least one computing function template corresponding to the computing function includes:
and determining the at least one candidate computing function template corresponding to the computing function based on the input parameter value and the constraint condition.
제1항에 있어서,
상기 입력 파라미터 값과, 확정된, 상기 입력 파라미터 값에 대응되는 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿에 대응되는 상기 구성 가능한 파라미터의 상기 타겟 값 사이의 대응 관계를 확정하는 단계를 더 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
According to claim 1,
determining a correspondence relationship between the input parameter value and the determined target computing function template corresponding to the input parameter value and the target value of the configurable parameter corresponding to the target computing function template A method for generating chip-based computing capabilities.
제8항에 있어서,
상기 입력 파라미터 값에 기반하여, 상기 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 단계 이전에, 이미 저장된 상기 대응 관계에 상기 입력 파라미터 값에 대응되는 대응 관계가 존재하는지 여부를 확정하는 단계를 더 포함하고,
타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계는,
상기 입력 파라미터 값에 대응되는 대응 관계가 존재하는 것으로 확정된 것에 응답하여, 상기 대응 관계에 기반하여, 상기 입력 파라미터 값에 대응되는 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿에 대응되는 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
9. The method of claim 8,
Before determining the at least one candidate computing function template corresponding to the computing function based on the input parameter value, determining whether a correspondence corresponding to the input parameter value exists in the stored correspondence relationship further comprising the steps of
Determining a target computing function template and target values of configurable parameters of the target computing function template include:
In response to determining that the correspondence corresponding to the input parameter value exists, based on the correspondence, a target computing function template corresponding to the input parameter value and the configurable parameter corresponding to the target computing function template and determining the target value of
제1항에 있어서,
타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계는,
기설정된 시간대 내에 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
According to claim 1,
Determining a target computing function template and target values of configurable parameters of the target computing function template include:
and determining the target computing function template and the target value of the configurable parameter of the target computing function template within a preset time period.
제10항에 있어서,
상기 기설정된 시간대는,
사용자에 의해 입력된, 상기 칩의 설계 시간과 관련된 시간대;
상기 입력 파라미터 값; 및
칩 설계 장치에 미리 구성된, 상기 칩의 설계 시간과 관련된 시간대 중 적어도 하나에 기반하여 확정되는 칩 기반의 컴퓨팅 기능 생성 방법.
11. The method of claim 10,
The preset time period is,
a time zone input by the user, associated with the design time of the chip;
the input parameter value; and
A method for generating a chip-based computing function, which is determined based on at least one of a time zone related to a design time of the chip, which is preconfigured in a chip design device.
제1항에 있어서,
각각의 상기 컴퓨팅 기능은 복수의 상기 후보 컴퓨팅 기능 템플릿에 대응되고, 상기 복수의 후보 컴퓨팅 기능 템플릿은 상이한 애플리케이션 시나리오에 대응되며, 상기 입력 파라미터 값은 애플리케이션 시나리오와 연관된 칩 기반의 컴퓨팅 기능 생성 방법.
According to claim 1,
each of the computing functions corresponds to a plurality of the candidate computing function templates, the plurality of candidate computing function templates correspond to different application scenarios, and wherein the input parameter values are associated with the application scenarios.
칩 설계를 위한 장치에 있어서,
상기 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값을 획득하는 입력 파라미터 값 획득 모듈;
상기 입력 파라미터 값에 기반하여, 상기 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 후보 컴퓨팅 기능 템플릿 확정 모듈 - 상기 후보 컴퓨팅 기능 템플릿은 상기 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 상기 구성 가능한 파라미터는 적어도 하나의 후보 값을 가짐 - ; 및
칩 기반의 상기 컴퓨팅 기능을 구현하기 위해, 상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값에 따라, 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 설계를 위한 장치.
A device for designing a chip, comprising:
an input parameter value obtaining module for obtaining an input parameter value related to a computing function supported by the chip;
a candidate computing function template determining module configured to determine, based on the input parameter value, at least one candidate computing function template corresponding to the computing function, wherein the candidate computing function template is a configurable parameter related to execution performance of the candidate computing function template , wherein the configurable parameter has at least one candidate value; and
To implement the chip-based computing function, according to the input parameter value and the candidate value of the configurable parameter of the candidate computing function template, a target computing function template and a target value of the configurable parameter of the target computing function template An apparatus for designing a chip, comprising a target computing function template determining module for determining
제13항에 있어서,
상기 타겟 컴퓨팅 기능 템플릿 확정 모듈은,
머신 러닝 방식을 사용하여, 상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 복수의 상이한 상기 후보 값에 따라, 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 머신 러닝 모듈을 포함하는 칩 설계를 위한 장치.
14. The method of claim 13,
The target computing function template determination module,
Using a machine learning method, according to the input parameter value and a plurality of different the candidate values of the configurable parameter of the candidate computing function template, the target computing function template and the configurable parameter of the target computing function template Apparatus for designing a chip comprising a machine learning module for determining a target value.
제13항에 있어서,
상기 타겟 컴퓨팅 기능 템플릿 확정 모듈은,
상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상이한 상기 후보 값에서의 상기 후보 컴퓨팅 기능 템플릿의 실행 성능을 추정하는 성능 추정 모듈; 및
추정된 상기 실행 성능에 기반하여, 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 제2 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 설계를 위한 장치.
14. The method of claim 13,
The target computing function template determination module,
a performance estimation module for estimating execution performance of the candidate computing function template at different candidate values of the configurable parameter of the candidate computing function template; and
and a second target computing function template determining module configured to determine the target computing function template and the target value of the configurable parameter of the target computing function template based on the estimated execution performance.
제15항에 있어서,
제2 타겟 컴퓨팅 기능 템플릿 확정 모듈은,
상기 추정된 상기 실행 성능이 실행 성능 임계값보다 우수한지 여부를 확정하는 임계값 판단 모듈; 및
상기 추정된 상기 실행 성능이 실행 성능 임계값보다 우수한 것에 응답하여, 상기 추정된 상기 실행 성능에 대응되는 상기 후보 컴퓨팅 기능 템플릿 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값을 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값으로 확정하는 제3 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 설계를 위한 장치.
16. The method of claim 15,
The second target computing function template determination module,
a threshold value determination module for determining whether the estimated execution performance is superior to an execution performance threshold; and
In response to the estimated execution performance being better than an execution performance threshold, the candidate computing function template corresponding to the estimated execution performance and the candidate value of the configurable parameter of the candidate computing function template are computed by the target computing function. and a function template and a third target computing function template determining module configured to determine the target value of the configurable parameter of the target computing function template.
제16항에 있어서,
상기 실행 성능 임계값은 사용자에 의해 입력되거나 칩 설계 장치에 미리 구성된 것인 칩 설계를 위한 장치.
17. The method of claim 16,
and the execution performance threshold is inputted by a user or preconfigured in a chip design device.
제15항에 있어서,
상기 성능 추정 모듈은,
상기 입력 파라미터 값 및 적어도 하나의 상기 구성 가능한 파라미터의 적어도 하나의 상기 후보 값을 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿에 적용하는 파라미터 적용 모듈; 및
적시 컴파일 방식을 통해 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿의 코드를 생성하고 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿의 상기 실행 성능을 추정하는 컴파일 모듈을 포함하는 칩 설계를 위한 장치.
16. The method of claim 15,
The performance estimation module,
a parameter application module for applying the input parameter value and at least one said candidate value of at least one said configurable parameter to said at least one candidate computing function template; and
and a compilation module for generating the code of the at least one candidate computing function template through a just-in-time compilation method and estimating the execution performance of the at least one candidate computing function template.
제13항에 있어서,
상기 후보 컴퓨팅 기능 템플릿은, 상기 입력 파라미터 값 및/또는 상기 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터와 관련된 제약 조건을 더 구비하고;
상기 후보 컴퓨팅 기능 템플릿 확정 모듈은,
상기 입력 파라미터 값 및 상기 제약 조건에 기반하여, 상기 컴퓨팅 기능에 대응되는 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 제1 상기 후보 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 설계를 위한 장치.
14. The method of claim 13,
the candidate computing function template further comprises a constraint related to the input parameter value and/or a configurable parameter related to the execution performance of the candidate computing function template;
The candidate computing function template determining module comprises:
and a first candidate computing function template determining module configured to determine the at least one candidate computing function template corresponding to the computing function, based on the input parameter value and the constraint condition.
제13항에 있어서,
상기 입력 파라미터 값과, 확정된, 상기 입력 파라미터 값에 대응되는 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿에 대응되는 상기 구성 가능한 파라미터의 상기 타겟 값 사이의 대응 관계를 저장하는 저장 모듈을 더 포함하는 칩 설계를 위한 장치.
14. The method of claim 13,
a storage module for storing a correspondence relationship between the input parameter value and the determined target computing function template corresponding to the input parameter value and the target value of the configurable parameter corresponding to the target computing function template device for chip design.
제20항에 있어서,
상기 입력 파라미터 값에 기반하여, 상기 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하기 이전에, 이미 저장된 상기 대응 관계에 상기 입력 파라미터 값에 대응되는 대응 관계가 존재하는지 여부를 확정하는 대응 관계 판단 모듈; 및
상기 입력 파라미터 값에 대응되는 대응 관계가 존재하는 것으로 확정된 것에 응답하여, 상기 대응 관계에 기반하여, 상기 입력 파라미터 값에 대응되는 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿에 대응되는 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 제4 타겟 컴퓨팅 기능 템플릿 확정 모듈을 더 포함하는 칩 설계를 위한 장치.
21. The method of claim 20,
Before determining the at least one candidate computing function template corresponding to the computing function, based on the input parameter value, a correspondence for determining whether a correspondence corresponding to the input parameter value exists in the previously stored correspondence relationship relationship determination module; and
In response to determining that the correspondence corresponding to the input parameter value exists, based on the correspondence, a target computing function template corresponding to the input parameter value and the configurable parameter corresponding to the target computing function template The apparatus for designing a chip further comprising a fourth target computing function template determining module configured to determine the target value of .
제13항에 있어서,
타겟 컴퓨팅 기능 템플릿 확정 모듈은,
기설정된 시간대 내에 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 제5 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 설계를 위한 장치.
14. The method of claim 13,
The target computing function template determination module,
and a fifth target computing function template determining module configured to determine the target computing function template and the target value of the configurable parameter of the target computing function template within a preset time period.
제22항에 있어서,
상기 기설정된 시간대는,
사용자에 의해 입력된, 상기 칩의 설계 시간과 관련된 시간대;
상기 입력 파라미터 값; 및
칩 설계 장치에 미리 구성된, 상기 칩의 설계 시간과 관련된 시간대 중 적어도 하나에 기반하여 확정되는 칩 설계를 위한 장치.
23. The method of claim 22,
The preset time period is,
a time zone input by the user, associated with the design time of the chip;
the input parameter value; and
An apparatus for designing a chip, which is determined based on at least one of a time period related to a design time of the chip, which is preconfigured in the apparatus for designing a chip.
제13항에 있어서,
각각의 상기 컴퓨팅 기능은 복수의 상기 후보 컴퓨팅 기능 템플릿에 대응되고, 상기 복수의 후보 컴퓨팅 기능 템플릿은 상이한 애플리케이션 시나리오에 대응되며, 상기 입력 파라미터 값은 애플리케이션 시나리오와 연관된 칩 설계를 위한 장치.
14. The method of claim 13,
each of the computing functions corresponds to a plurality of the candidate computing function templates, the plurality of candidate computing function templates correspond to different application scenarios, and wherein the input parameter values are associated with an application scenario.
하나 또는 복수의 프로세서; 및
하나 또는 복수의 프로그램을 저장하는 메모리를 포함하는 전자 기기에 있어서,
상기 하나 또는 복수의 프로그램이 상기 하나 또는 복수의 프로세서에 의해 실행될 경우, 상기 전자 기기가 제1항 내지 제12항 중 어느 한 항에 따른 칩 기반의 컴퓨팅 기능 생성 방법을 구현하도록 하는 전자 기기.
one or more processors; and
An electronic device comprising a memory for storing one or a plurality of programs,
An electronic device that enables the electronic device to implement the method for generating a chip-based computing function according to any one of claims 1 to 12 when the one or more programs are executed by the one or the plurality of processors.
컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체에 있어서,
상기 프로그램이 프로세서에 의해 실행될 경우 제1항 내지 제12항 중 어느 한 항에 따른 칩 기반의 컴퓨팅 기능 생성 방법을 구현하는 컴퓨터 판독 가능 저장 매체.
In a computer-readable storage medium storing a computer program,
A computer-readable storage medium for implementing the method for generating a chip-based computing function according to any one of claims 1 to 12 when the program is executed by a processor.
KR1020200003572A 2019-06-26 2020-01-10 Method, apparatus, device and storage medium for generating chip-based computing functions KR102333845B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910559200.3 2019-06-26
CN201910559200.3A CN112148391A (en) 2019-06-26 2019-06-26 Method, apparatus, device and storage medium for generating chip-based computing function

Publications (2)

Publication Number Publication Date
KR20210001871A KR20210001871A (en) 2021-01-06
KR102333845B1 true KR102333845B1 (en) 2021-12-06

Family

ID=68841033

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200003572A KR102333845B1 (en) 2019-06-26 2020-01-10 Method, apparatus, device and storage medium for generating chip-based computing functions

Country Status (5)

Country Link
US (1) US11507348B2 (en)
EP (1) EP3757760A1 (en)
JP (1) JP6952138B2 (en)
KR (1) KR102333845B1 (en)
CN (1) CN112148391A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023129491A1 (en) * 2021-12-31 2023-07-06 Ascenium, Inc. Compute element processing using control word templates

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342346B (en) * 2021-05-18 2022-03-25 北京百度网讯科技有限公司 Operator registration method, device, equipment and storage medium of deep learning framework
CN113419207B (en) * 2021-08-24 2021-11-05 湖南省计量检测研究院 Measurement chip anomaly detection and diagnosis system based on Internet of things
CN113705017B (en) * 2021-09-08 2022-09-16 清华大学无锡应用技术研究院 Chip design method, device, chip, electronic equipment and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100122242A1 (en) * 2008-11-07 2010-05-13 Jiva Azeem S Optimistic Selection of Best Performing Generated Code of Multiple ISA Systems

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US6768515B1 (en) * 1999-03-05 2004-07-27 Clarity Technologies, Inc. Two architectures for integrated realization of sensing and processing in a single device
US6871341B1 (en) * 2000-03-24 2005-03-22 Intel Corporation Adaptive scheduling of function cells in dynamic reconfigurable logic
US6594724B1 (en) * 2000-03-30 2003-07-15 Hitachi Global Storage Technologies Netherlands B.V. Enhanced DASD with smaller supplementary DASD
US7437335B2 (en) * 2004-12-07 2008-10-14 Eric Baum Method and system for constructing cognitive programs
US8725667B2 (en) * 2008-03-08 2014-05-13 Tokyo Electron Limited Method and system for detection of tool performance degradation and mismatch
US8621301B2 (en) 2009-03-04 2013-12-31 Alcatel Lucent Method and apparatus for virtual in-circuit emulation
US8879663B1 (en) * 2012-06-26 2014-11-04 L-3 Communications Corp. Adaptive filtering for canceling distortion in radio frequency signals
US10198248B2 (en) 2012-07-11 2019-02-05 Intel Corporation Parallel processing of a single data buffer
US10769122B2 (en) 2014-03-13 2020-09-08 Ab Initio Technology Llc Specifying and applying logical validation rules to data
US10488865B2 (en) * 2014-12-16 2019-11-26 Al Incorporated Methods and systems for robotic surface coverage
CN106156857B (en) * 2015-03-31 2019-06-28 日本电气株式会社 The method and apparatus of the data initialization of variation reasoning
US10733350B1 (en) * 2015-12-30 2020-08-04 Sharat C Prasad On-chip and system-area multi-processor interconnection networks in advanced processes for maximizing performance minimizing cost and energy
JP6583097B2 (en) * 2016-03-31 2019-10-02 株式会社デンソーウェーブ Parameter adjustment device
US20190220778A1 (en) * 2016-10-04 2019-07-18 Mitsubishi Electric Corporation Information processing apparatus, information processing method, and computer readable medium
US10477271B1 (en) * 2016-10-12 2019-11-12 Opine Inc. System and method for generating real-time, event and user-based responses and analytics
GB2568776B (en) * 2017-08-11 2020-10-28 Google Llc Neural network accelerator with parameters resident on chip
US20190138901A1 (en) * 2017-11-06 2019-05-09 The Royal Institution For The Advancement Of Learning/Mcgill University Techniques for designing artificial neural networks
US10756982B2 (en) * 2018-05-17 2020-08-25 Microsoft Technology Licensing, Llc Machine learning microservice architecture design tools and methods
CN109359732B (en) * 2018-09-30 2020-06-09 阿里巴巴集团控股有限公司 Chip and data processing method based on chip

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100122242A1 (en) * 2008-11-07 2010-05-13 Jiva Azeem S Optimistic Selection of Best Performing Generated Code of Multiple ISA Systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023129491A1 (en) * 2021-12-31 2023-07-06 Ascenium, Inc. Compute element processing using control word templates

Also Published As

Publication number Publication date
EP3757760A1 (en) 2020-12-30
JP6952138B2 (en) 2021-10-20
CN112148391A (en) 2020-12-29
US11507348B2 (en) 2022-11-22
JP2021005357A (en) 2021-01-14
US20200409662A1 (en) 2020-12-31
KR20210001871A (en) 2021-01-06

Similar Documents

Publication Publication Date Title
KR102333845B1 (en) Method, apparatus, device and storage medium for generating chip-based computing functions
US10664310B2 (en) Memory access optimisation using per-layer computational mapping and memory allocation for CNN application
AU2014203218B2 (en) Memory configuration for inter-processor communication in an MPSoC
US20230289583A1 (en) System and method for adapting a neural network model on a hardware platform
US10423395B2 (en) Data processing graph compilation
US10430191B2 (en) Methods and apparatus to compile instructions for a vector of instruction pointers processor architecture to enable speculative execution and avoid data corruption
US11216281B2 (en) Facilitating data processing using SIMD reduction operations across SIMD lanes
JP7246447B2 (en) Model training method, apparatus, electronic device, storage medium, development system and program
CN114936085A (en) ETL scheduling method and device based on deep learning algorithm
CN113516246A (en) Parameter optimization method, quantum chip control method and device
US20150100950A1 (en) Method and apparatus for instruction scheduling using software pipelining
US8341577B1 (en) Parallel circuit simulation with partitions
JP7042870B2 (en) Methods, devices, devices and computer-readable storage media performed by computing devices
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
Conrady et al. LCS-based automatic configuration of approximate computing parameters for fpga system designs
CN108846248B (en) Application modeling and performance prediction method
CN112465116A (en) Operation method, operation device, electronic device and storage medium
CN115329923A (en) Compiling method for neural network model and related product
KR20130088285A (en) Data processing system and method of data simulation
US11449347B1 (en) Time-multiplexed implementation of hardware accelerated functions in a programmable integrated circuit
KR101721341B1 (en) Determination module of executing apparatus using in heterogeneous multi-core and method for the same
KR20230134953A (en) Method and apparatus for estimating execution time of neural network
AU2015271896A1 (en) Selection of system-on-chip component models for early design phase evaluation

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant