KR102333845B1 - 칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 저장 매체 - Google Patents

칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 저장 매체 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
English (en)
Other versions
KR20210001871A (ko
Inventor
용 왕
지아신 시
Original Assignee
베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
쿤룬신 테크놀로지(베이징) 캄파니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디., 쿤룬신 테크놀로지(베이징) 캄파니 리미티드 filed Critical 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Publication of KR20210001871A publication Critical patent/KR20210001871A/ko
Application granted granted Critical
Publication of KR102333845B1 publication Critical patent/KR102333845B1/ko

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

본 발명의 실시예에 따르면, 칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 저장 매체를 제공한다. 상기 칩 기반의 컴퓨팅 기능 생성 방법은, 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값을 획득하는 단계; 입력 파라미터 값에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 단계 - 후보 컴퓨팅 기능 템플릿은 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 구성 가능한 파라미터는 적어도 하나의 후보 값을 가짐 - ; 및 칩 기반의 컴퓨팅 기능을 구현하기 위해, 입력 파라미터 값 및 후보 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 후보 값에 따라 타겟 컴퓨팅 기능 템플릿 및 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계를 포함한다. 상기 방법은 칩의 설계가 상이한 애플리케이션 시나리오/연산 규모에 동적으로 적응 가능하고, 구성 가능한 파라미터의 동적 구성을 구현할 수 있으므로 컴퓨팅 기능 템플릿을 수동으로 구현하는 난이도를 크게 단순화하고 칩 설계 특히는 칩 소프트웨어 개발 효율성을 향상시킨다.

Description

칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 저장 매체{METHOD, APPARATUS, DEVICE AND STORAGE MEDIUM FOR GENERATING CHIP-BASED COMPUTING FUNCTIONS}
본 발명의 실시예는 주로 칩 분야에 관한 것으로, 보다 구체적으로는, 칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체에 관한 것이다.
최근, 딥 러닝 기술을 비롯한 인공 지능(Artificial Intelligence, AI)은 이미 다양한 분야(예를 들어, 음성 처리, 이미지 처리, 자연어 처리, 비디오 처리, 자동 제어 등)에서 널리 사용되고 있는 바, 사람들의 생활 방식에 큰 영향을 미치고 있으며 인공 지능 기술이 보다 발전함에 따라 인공 지능 수준에 대한 사람들의 기대는 갈수록 높아지고 있다. 인공 지능 수준은 주로 딥 러닝의 발전에 의존하는데, 딥 러닝 기술은 컴퓨팅 기능에 대한 요구가 매우 높으나 기존의 프로세서는 성능, 비용 및 전력 등 각 방면의 제한으로 인해 딥 러닝 요구를 만족시키기 어렵다. 따라서 딥 러닝 기술의 요구를 만족시키기 위해 예를 들어 그래픽 처리 장치(GPU, graphics processing unit), 응용 주문형 직접회로(ASIC) 등 소프트웨어와 하드웨어가 긴밀히 결합된 고성능 AI 칩의 설계는 현재 해결해야 할 주요 과제이다.
본 발명의 예시적인 실시예에 따르면, 칩 기반의 컴퓨팅 기능 생성 해결수단을 제공한다.
본 발명의 제1 양태는, 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값을 획득하는 단계; 입력 파라미터 값에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 단계 - 후보 컴퓨팅 기능 템플릿은 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 구성 가능한 파라미터는 적어도 하나의 후보 값을 가짐 - ; 및 칩 기반의 컴퓨팅 기능을 구현하기 위해, 입력 파라미터 값 및 후보 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 후보 값에 따라 타겟 컴퓨팅 기능 템플릿 및 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법을 제공한다.
본 발명의 제1 양태는, 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값을 획득하는 입력 파라미터 값 획득 모듈; 입력 파라미터 값에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 후보 컴퓨팅 기능 템플릿 확정 모듈 - 후보 컴퓨팅 기능 템플릿은 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 구성 가능한 파라미터는 적어도 하나의 후보 값을 가짐 - ; 및 칩 기반의 컴퓨팅 기능을 구현하기 위해, 입력 파라미터 값 및 후보 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 후보 값에 따라 타겟 컴퓨팅 기능 템플릿 및 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 기반의 컴퓨팅 기능 생성 장치를 제공한다.
본 발명의 제3 양태는, 하나 또는 복수의 프로세서; 및 하나 또는 복수의 프로그램이 저장된 저장 장치를 포함하고, 하나 또는 복수의 프로그램이 하나 또는 복수의 프로세서에 의해 실행될 경우, 하나 또는 복수의 프로세서가 본 발명의 제1 양태에 따른 칩 기반의 컴퓨팅 기능 생성 방법을 구현하도록 하는 전자 기기를 제공한다.
본 발명의 제4 양태는, 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체를 제공하고, 상기 컴퓨터 프로그램은 프로세서에 의해 실행될 경우 본 발명의 제1 양태에 따른 칩 기반의 컴퓨팅 기능 생성 방법을 구현한다.
발명의 내용 부분에서 설명된 내용은 본 발명의 실시예의 핵심 또는 중요한 특징 및 본 발명의 범위를 한정하지 않음을 이해해야 한다. 본 발명의 다른 특징은 아래의 설명을 통해 보다 쉽게 이해될 것이다.
첨부된 도면을 결부하고 이하 상세한 설명을 참조하여 본 발명의 다양한 실시예의 전술한 설명 및 다른 특징, 이점 및 양태는 보다 명백해질 것이다. 도면에서, 동일하거나 유사한 도면 표기는 동일하거나 유사한 요소를 나타낸다.
도 1은 본 발명의 다양한 실시예에 따른 칩 기반의 컴퓨팅 기능 생성 해결수단의 예시적 환경의 모식도를 도시한다.
도 2는 본 발명의 일부 예시적인 실시예에 따른 칩 기반의 컴퓨팅 기능 생성 방법의 흐름도를 도시한다.
도 3은 본 발명의 실시예에 따른 칩 기반의 컴퓨팅 기능 생성 장치의 예시적 블록도를 도시한다.
도 4는 본 발명의 다양한 실시예를 실시할 수 있는 컴퓨팅 기기의 블록도를 도시한다.
아래에 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세하게 설명한다. 비록 도면에는 본 발명의 일부 실시예가 도시되어 있으나 본 발명은 다양한 형태로 구현될 수 있음을 이해해야 하고, 여기서 설명된 실시예에 한정되는 것으로 해석되어서는 안되며, 반대로 이러한 실시예는 본 발명을 보다 분명하고 완전하게 이해시키기 위해 제공된다. 본 발명의 도면 및 실시예는 단지 예시로서 작용되며, 본 발명의 보호 범위를 한정하려는 것이 아님을 이해해야 한다.
본 발명의 실시예의 설명 과정에서, 용어 "포함하다” 및 이와 유사한 용어는 "포함하나 한정되지 않음”과 같은 개방적인 포함으로 이해되어야 한다. 용어 "기반”은 "적어도 부분적으로 기반”으로 이해되어야 한다. 용어 "일 실시예” 또는 "상기 실시예”는 "적어도 일 실시예”로 이해되어야 한다. 용어 "제1", "제2" 등은 상이하거나 동일한 객체를 지칭할 수 있다. 아래 설명은 다른 명시적 및 암시적 정의를 더 포함할 수 있다.
본 명세서에서 사용되는 바와 같이, 용어 "칩"은 기존 또는 미래에 개발될 소프트웨어 또는 하드웨어 기술을 통해 소정의 기능을 구현할 수 있는 캐리어를 의미한다. 일부 애플리케이션 시나리오에서, 이는 "웨이퍼 블록”, "웨이퍼”, "베어 칩”, "집적 회로”, "모놀리식 소자”, "반도체 소자”, "마이크로 전자 소자” 등을 포함하나 이에 한정되지는 않는다.
본 명세서에서 사용되는 바와 같이, 용어 "연산자"는 기존 또는 미래에 개발될 소프트웨어 또는 하드웨어 기술에 의해 구현될 수 있는 기본 연산 알고리즘 또는 기능을 구현하는 칩 내의 유닛을 의미한다. 연산자를 통해 컨볼루션, 다양한 값 연산, 다양한 벡터 연산, 다양한 매트릭스 연산, 다양한 문자 연산 등 칩에서의 다양한 기본 연산을 구현할 수 있다.
본 명세서에서 사용되는 바와 같이, 본 명세서에서 사용되는 용어 "컴퓨팅 기능"은 칩에서 임의의 컴퓨닝/연산/알고리즘을 구현하는 논리 유닛을 지칭하며, 이는 개별적인 연산자 또는 복수의 연산자에 의해 구현될 수 있고, 복수의 연산자 간에는 사전 설정되었거나 동적으로 지정된 논리적 관계를 통해 결합될 수 있다.
위에서 언급한 바와 같이, 딥 러닝 기술에 대한 고성능 칩을 제공하는 것은 현재 해결해야 할 확정적인 문제이다. 기존의 딥 러닝 사용자는 주로 tensorflow, caffe, mxnet, pytorch, paddlepaddle 등과 같은 딥 러닝 프레임을 사용하되, AI 칩을 딥 러닝 분야에 적용하려면 반드시 프레임에 통합되어야 하는데, 그 핵심 작업 중 하나는 프레임에서 다양한 연산자(operator)를 구현하고 컨볼루션, 다양한 값 연산, 다양한 벡터 연산, 다양한 행렬 연산, 다양한 문자 연산 등과 같은 연산자를 통해 칩에서의 기본 연산을 구현하는 동시에 별도의 연산자 또는 연산자에 의해 결합된 칩의 하나 또는 복수의 컴퓨팅 기능을 구현하는 것이다. 칩의 다양한 컴퓨팅 기능의 실행 성능은 AI 칩의 성능을 직접 확정한다.
주요 AI 칩 제조업체는 각자의 프레임에 기반하여 예를 들어 nvidia GPU, google TPU, BAI du Kunlun 칩 등과 같은 대응된 AI 칩을 개발하였다. 이러한 AI 칩은 각자의 명령어 세트를 구비하고 예를 들어 CUDA, OPENCL 등 자체 프로그래밍 프레임을 구비하며 프로그래밍 언어(예를 들어, C / C ++, C #, Python 등)로 프로그래밍할 수 있다.
프로그래밍 방식을 통해 AI 칩의 각 연산자 또는 본 발명의 상기 컴퓨팅 기능을 구현할 수 있으나, 바닥층 칩 프레임은 예를 들어 블록 분할 방법, 다양한 저장 공간(예를 들어, 레지스터, 버퍼, 메모리, 공유 메모리 등)의 효율적인 사용, 프로그램 스케줄링(예를 들어, 스레드 스케줄링, 프로세서 스케줄링 등) 방법을 비롯한 많은 구성 가능한 파라미터를 구비한다. 많은 수의 파라미터를 합리적으로 구성하려면 개발자가 바닥층 칩 아키텍처에 매우 익숙해야 하나 비록 익숙할지라도 고성능 AI 칩을 구성하는데 필요한 개발 주기가 매우 길고 특히 AI 칩 소프트웨어 개발 효율성이 매우 낮다. 또한 애플리케이션 시나리오/연산 규모가 풍부하므로 특정 애플리케이션 시나리오/연산 규모를 위해 설계된 칩은 다른 연산 규모에서 최적의 성능을 구현하기가 어렵다.
본 발명자는 칩 기반의 컴퓨팅 기능을 생성하는 가능한 해결수단은 일부 범용되는 연산자 라이브러리를 수동으로 구현하고 연산자에서 칩 바닥층 파라미터의 구성을 구현하는 것임에 유의하였다. 위에서 분석한 바와 같이, 이러한 해결수단을 통해 칩 기반의 컴퓨팅 기능을 생성하는 난이도는 매우 높으며 또한 효율성이 낮고, 다양한 애플리케이션 시나리오/연산 규모에 유연하게 적용할 수 없다. 다른 가능한 칩 설계 해결수단은, 고수준 언어로 프리미티브를 생성하는 동시에 수동 방식으로 인코딩하여 일부 최적화된 연산자 템플릿을 구현하는 것이다. 이러한 반자동의 칩 기반의 컴퓨팅 기능을 생성하는 해결수단은 칩 설계 과정 특히는 칩 소프트웨어 개발의 효율성을 향상시키나, 이러한 해결수단은 칩 프레임 바닥층의 하드웨어를 차단하여 칩의 성능이 미리 인코딩된 최적화된 연산자 템플릿에 의존하게 되어 고성능의 연산자를 구현하기 어렵다. 이 밖에, 발명자는 또한 완전 자동화된 해결수단을 통해 칩 기반의 컴퓨팅 기능을 생성할 수 있음에 유의하였다. 즉 다면체 컴파일 기술을 주로 사용하여 완전히 컴파일러에 의해 코드를 생성한다. 이러한 해결수단에서는 사용자는 알고리즘만 설명하고 컴파일러가 자동으로 코드를 생산한다. 이러한 해결수단은 칩 소프트웨어 개발의 높은 효율성을 구현하나 칩 프레임 바닥층의 하드웨어를 완전히 차단하므로 고성능 코드의 구현 가능성을 감소시킨다.
본 발명의 실시예에 따르면, 칩 기반의 컴퓨팅 기능 생성 해결수단을 제안한다. 상기 해결수단에서, 각각의 칩에 의해 지원되는 컴퓨팅 기능은 적어도 하나의 후보 컴퓨팅 기능 템플릿에 대응되고, 상기 후보 컴퓨팅 기능 템플릿은 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 가지며, 구성 가능한 파라미터는 적어도 하나의 후보 값을 갖는다. 컴퓨팅 기능의 입력 파라미터 값을 획득한 후, 입력 파라미터 값에 따라 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하고, 입력 파라미터 값 및 후보 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 후보 값에 따라 타겟 컴퓨팅 기능 템플릿 및 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하며, 칩 기반의 컴퓨팅 기능을 생성할 수 있다. 이러한 방식을 통해, 컴퓨팅 기능 템플릿은 칩 내부의 구성 가능한 파라미터를 상위 호출자에게 제공하고, 상위 호출자가 입력된 파라미터 값에 따라 구성 가능한 파라미터의 값을 동적으로 구성함으로써, 칩 기반의 컴퓨팅 기능 생성시 상이한 애플리케이션 시나리오/연산 규모에 동적으로 적응할 수 있다.
나아가, 고성능 연산자 또는 본 발명의 상기 컴퓨팅 기능을 더욱 잘 구현하기 위해, 본 발명의 실시예에 따르면, 머신 러닝 방식을 사용하여 입력 파라미터 값 및 후보 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 후보 값에 따라 타겟 컴퓨팅 기능 템플릿 및 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정한다. 이러한 방식을 통해 구성 가능한 파라미터의 동적 구성을 구현하는 동시에 수동 방식으로 컴퓨팅 기능 템플릿을 구현하고 칩 바닥층 파라미터를 구성하는 난이도를 크게 감소시킨다. 이 밖에, 머신 러닝 방식을 통해 검색 범위가 매우 넓은 경우에도 칩 설계를 고효율적으로 완료할 수 있다.
이 밖에, 후보 컴퓨팅 기능 템플릿의 실행 성능을 더욱 잘 추정하기 위해, 적시(just-in-time, JIT) 컴파일을 적용하여 테스트함으로써 실행 성능을 획득한다. 이러한 방식을 통해, 컴파일시 코드가 생성되는 것이 아니라 실행시 코드가 생성되므로 칩 설계 과정, 특히는 칩 소프트웨어 개발의 효율성을 향상시키는 동시에 고성능 칩 기반의 컴퓨팅 기능 생성을 보장한다.
이하, 도면을 참조하여 본 발명의 실시예를 구체적으로 설명한다. 본 발명은 단지 예시의 목적일 뿐 어떠한 방식으로든 본 발명을 한정하려는 것이 아님을 이해해야 한다. 본 발명의 일부 예시적인 실시예는 단일 기본 기능(즉 하나의 연산자의 기능)을 포함하는 컴퓨팅 기능을 예시로 하나, 본 발명의 컴퓨팅 기능은 복수의 연산자 기능을 구현하기 위한 복수의 연산자 조합을 포함할 수 있음을 이해해야 한다.
도 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에 도시된 바와 같이, 컴퓨팅 기기(130)는 또한 컴퓨팅 기능에 대한 하나 또는 복수의 후보 컴퓨팅 기능 템플릿(120-1, 120-2 내지 120-M)을 획득할 수 있다. 설명의 편의를 위해, 복수의 후보 컴퓨팅 기능 템플릿(120-1, 120-2 내지 120-M)은 후보 컴퓨팅 기능 템플릿(120)으로 총칭될 수 있다.
일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 컴퓨팅 기기(130) 내에 위치한 후보 컴퓨팅 기능 템플릿 데이터베이스/메모리 또는 컴퓨팅 기기(130) 외부에 위치한 후보 컴퓨팅 기능 템플릿 데이터베이스/메모리로부터 컴퓨팅 기능의 후보 컴퓨팅 기능 템플릿(120)을 획득할 수 있다. 예를 들어, 벡터 곱셈에 대한 컴퓨팅 기능의 경우, 도 1에 도시된 후보 컴퓨팅 기능 템플릿(120-1)은 벡터 곱셈을 구현하는 컴퓨팅 기능 템플릿일 수 있고, 이의 구성 가능한 파라미터는 벡터 곱셈 실행시 세그먼트 크기일 수 있으며, 상기 세그먼트 크기의 후보 값은 [3, 4, 5]일 수 있고, 다른 후보 컴퓨팅 기능 템플릿(120-2)은 벡터 곱셈을 구현하는 다른 컴퓨팅 기능 템플릿일 수 있으며, 이의 구성 가능한 파라미터는 벡터 곱셈 실행시 호출된 프로세서 수일 수 있고, 상기 호출 가능한 프로세서 수의 후보 값은 [1, 2, 4]일 수 있다.
컴퓨팅 기기(130)는 수신된 입력 파라미터 값(110) 및 획득된 후보 컴퓨팅 기능 템플릿(120)에 기반하여 상기 입력 파라미터 값(110)에 대한 타겟 컴퓨팅 기능 템플릿(140) 및 상기 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값을 확정할 수 있다. 예를 들어, 도 1의 예시에서, 컴퓨팅 기기(130)는 본 발명의 칩 기반의 컴퓨팅 기능을 생성하는 해결수단을 이용하여 벡터 곱셈에 대한 컴퓨팅 기능의 경우에 입력 파라미터 값(110) "100, 100"의 이러한 특정된 애플리케이션 시나리오/연산 규모에 기반하여 타겟 컴퓨팅 기능 템플릿(140) 및 상기 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값을 확정한다. 예를 들어 후보 컴퓨팅 기능 템플릿(120-1)을 타겟 컴퓨팅 기능 템플릿(140)으로 확정하는 동시에, 벡터 곱셈 수행시 세그먼트 크기가 "4"임을 확정한다. 이러한 도시된 입력 파라미터 값, 후보 컴퓨팅 기능 템플릿, 구성 가능한 파라미터, 및 구성 가능한 파라미터의 후보 값은 예시로서 제공될 뿐, 입력 파라미터 값, 후보 컴퓨팅 기능 템플릿, 구성 가능한 파라미터, 및 구성 가능한 파라미터의 값은 실제 경우에 따라 변할 수 있음을 이해해야 한다. 본 발명의 범위는 이에 한정되지 않는다.
이하, 도 2를 참조하여 본 발명에 따른 칩 기반의 컴퓨팅 기능 생성 과정을 보다 자세히 설명한다. 도 2는 본 발명의 일부 예시적인 실시예에 따른 칩 기반의 컴퓨팅 기능 생성 과정(200)의 흐름도를 도시하고, 과정(200)은 도 1의 컴퓨팅 기기(130)에 의해 구현될 수 있다. 논의의 용이성을 위해 도 1을 결부하여 과정(200)을 설명한다.
블록(210)에서, 컴퓨팅 기기(130)는 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값(110)을 획득한다. 구체적으로, 칩은 많은 컴퓨팅 기능을 지원할 수 있다. 본 발명의 비제한적이고 예시적인 실시예에서, 컴퓨팅 기능은 기본 연산(예를 들어, 컨볼루션, 다양한 값 연산, 다양한 문자 연산, 다양한 매트릭스 연산, 다양한 벡터 연산, 암호화, 디코딩 등)의 기초 컴퓨팅 기능을 구현한다. 상이한 컴퓨팅 기능에 따라, 입력 파라미터 값(110)은 하나이거나 복수 개일 수 있다. 이 밖에, 입력 파라미터 값(110)은 사용자 입력 방식 또는 스트립트/프로파일/명령 파일을 판독하는 방식을 포함하나 이에 한정되지 않는 임의의 방식으로 획득될 수 있다.
본 발명의 일부 예시적인 실시예에서, 입력 파라미터 값(110)은 애플리케이션 시나리오/연산 규모와 연관될 수 있다. 구체적으로, 입력 파라미터 값(110)은 예를 들어, 매트릭스 연산을 구현하는 경우 입력 파라미터 값(110)은 매트릭스의 규모를 식별하고, 암호화 연산을 구현하는 경우 입력 파라미터 값(110)은 암호화 알고리즘의 암호화 길이를 식별하고, 벡터 연산을 구현하는 경우 입력 파라미터 값(110)은 벡터 길이를 식별할 수 있는 등 컴퓨팅 기능이 구현할 연산 규모를 식별할 수 있다. 상기 입력 파라미터 값(110)은 단지 예시로서 제공될 뿐 일부 다른 구현에서 입력 파라미터 값(110)의 값 및 타입 등은 변화될 수 있음을 이해해야 한다. 따라서 입력 파라미터 값(110)의 타입 및/또는 값 등은 본 발명의 상기 예시된 범위에 한정되어서는 안되며 입력 파라미터 값(110)은 컴퓨팅 기능의 애플리케이션 시나리오/연산 규모와 관련된 임의의 적합한 타입 및/또는 값일 수 있다.
본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기능의 애플리케이션 시나리오/연산 규모와 관련된 입력 파라미터 값(110)은 컴퓨팅 기기(130)에 의해 획득되므로, 칩 기반의 컴퓨팅 기능 생성 방법이 다양한 애플리케이션 시나리오/연산 규모에 원활하게 적용될 수 있으며 또한 생성된 컴퓨팅 기능이 상기 특정된 애플리케이션 시나리오/연산 규모보다 더 적합하게 적용될 수 있다.
블록(220)에서, 컴퓨팅 기기(130)는 블록(210)에서 획득된 입력 파라미터 값(110)에 기반하여 컴퓨팅 기능에 대응되는 후보 컴퓨팅 기능 템플릿(120)을 확정한다. 컴퓨팅 기기(130)는 확정된 후보 컴퓨팅 기능 템플릿(120)을 타겟 컴퓨팅 기능 템플릿(140)의 검색을 수행하는 검색 공간으로 사용할 수 있으며, 후보 컴퓨팅 기능 템플릿(120)은 하나이거나 복수 개일 수 있다.
본 발명의 일부 예시적인 실시예에서, 각각의 컴퓨팅 기능은 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)에 대응될 수 있고, 각각의 후보 컴퓨팅 기능 템플릿(120)은 후보 컴퓨팅 기능 템플릿(120)의 실행 성능과 관련된 적어도 하나의 구성 가능한 파라미터, 예를 들어, 분할 블록 크기, 세그먼트 크기, 스레드 수, 프로세서 수, 레지스터 정보, 메모리 정보, 프로세서 정보 등을 가질 수 있다. 각각의 구성 가능한 파라미터는 적어도 하나의 후보 값을 가질 수 있으며, 상이한 애플리케이션 시나리오/연산 규모에서, 구성 파라미터의 상이한 후보 값은 설계된 칩이 상이한 실행 성능을 구현하도록 할 수 있다. 이러한 구성 가능한 파라미터는 일반적으로 칩 기반의 컴퓨팅 기능을 생성하는 과정에서 컴퓨팅 기능의 내부 파라미터로 사용된다.
본 발명의 일부 예시적인 실시예에서, 수동 인코딩 방식으로 상이한 컴퓨팅 기능 설계에 대해 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 구현하고, 수동 인코딩 방식으로 후보 컴퓨팅 기능 템플릿(120)을 구현하여 후보 컴퓨팅 기능 템플릿(120)의 실행 로직을 보다 정확하게 함으로써 후보 컴퓨팅 기능 템플릿(120)이 인입되어 보다 양호하게 칩 바닥층 프레임과 결합되도록 어느 정도 보장할 수 있다. 그러나 후보 컴퓨팅 기능 템플릿(120)의 구현은 본 발명에 도시된 수동 인코딩 방식으로 한정되지 않으며 다른 일부 예시적인 실시예에서, 후보 컴퓨팅 기능 템플릿(120)은 자동 또는 반자동 방식으로 구현될 수도 있음을 이해해야 한다. 이러한 자동 또는 반자동 방식으로 후보 컴퓨팅 기능 템플릿(120)을 구현하는 해결수단에서, 기존 최적화된 컴퓨팅 기능 템플릿 또는 타겟 컴퓨팅 기능 템플릿(140)/구성 가능한 파라미터의 이력 데이터/기록 등을 참조하거나 조합할 수 있다.
본 발명의 일부 예시적인 실시예에서, 후보 컴퓨팅 기능 템플릿(120)은 기계 지향적 프로그래밍 언어와 같은 저수준 프로그래밍 언어를 적용하여 구현된다. 추가적이거나 대안적으로, 본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)에 의해 수행되는 과정(200)은 기계 지향적 프로그래밍 언어와 같은 저수준 프로그래밍 언어를 적용하여 구현된다.
저수준 프로그래밍 언어는 고수준 프로그래밍 언어에 비해 바닥층 하드웨어와 더욱 잘 상호 작용함으로써 하드웨어의 성능을 더욱 잘 발휘하고 고성능 칩 컴퓨팅 기능의 구현을 보장하는데 유리하다.
본 발명의 일부 예시적인 실시예에서, 복수의 후보 템플릿(120)은 상이한 애플리케이션 시나리오/연산 규모와 연관된다. 예를 들어, 매트릭스 곱셈의 컴퓨팅 기능에 대해, 후보 컴퓨팅 기능 템플릿(120-1)은 애플리케이션 시나리오(1)(예를 들어, 곱해지는 매트릭스 규모가 50 * 50보다 작음)에서 양호한 실행 성능을 구현하고, 후보 컴퓨팅 기능 템플릿(120-2)은 애플리케이션 시나리오(2)(예를 들어, 곱해지는 매트릭스 규모가 100 * 100보다 큼)에서 양호한 실행 성능을 구현할 수 있다. 상이한 기능을 갖는 컴퓨팅 기능에 대해, 상이한 애플리케이션 시나리오/연산 규모에 대한 후보 컴퓨팅 기능 템플릿(120)을 설계 및 구현할 수 있고, 상이한 애플리케이션 시나리오/연산 규모에 대한 커스터마이징을 구현하도록 설계 및 구현될 수 있다.
본 발명의 일부 예시적인 실시예에서, 복수의 후보 컴퓨팅 기능 템플릿(120)이 갖는 구성 가능한 파라미터의 개수, 값은 임의적일 수 있고 또한 각각의 내부 처리 로직을 가질 수 있다. 각각의 후보 컴퓨팅 기능 템플릿(120)은 각각의 내부 설계에 따라 칩 내부의 복잡한, 구성 가능한 파라미터를 상위 호출자(예를 들어, 컴퓨팅 기기(130))에 제공하여 상위 호출자가 적어도 부분적으로 구성 가능한 파라미터에 기반하여 후보 템플릿(120)에 대해 검색, 구성 및 테스트 등을 수행할 수 있도록 한다. 이러한 방식을 통해, 칩 기반의 컴퓨팅 기능을 생성하는 유연성을 향상시키면서, 수동 방식으로 칩 내부 파라미터을 구성하여 칩 설계 과정, 특히는 칩 소프트웨어 개발의 난이도를 감소시키는 동시에 칩 구성 가능한 파라미터 구성의 합리성 및 정확성을 향상시킨다.
본 발명의 일부 예시적인 실시예에서, 후보 컴퓨팅 기능 템플릿(120)은 또한 제약 조건을 갖는데, 제약 조건은 상기 후보 컴퓨팅 기능 템플릿(120)의 적용 범위를 한정한다. 본 발명의 일부 예시적인 실시예에서, 제약 조건은 입력 파라미터 값(110)과 연관될 수 있다. 예를 들어, 매트릭스 연산 수행시, 제약 조건은 매트릭스 규모가 50 * 50보다 작은 것일 수 있다.
추가적이거나 대안적으로, 본 발명의 일부 예시적인 실시예에서, 제약 조건은 또한 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 후보 값을 한정할 수 있다. 예를 들어, 매트릭스 연산을 수행하고 또한 구성 가능한 파라미터가 분할 블록 크기인 경우, 제약 조건은 분할 블록 크기의 값이 [2, 4, 6]인 것일 수 있다.
추가적이거나 대안적으로, 본 발명의 일부 예시적인 실시예에서, 제약 조건은 동시에 입력 파라미터 값(110) 및 구성 가능한 파라미터과 연관될 수 있다. 예를 들어, 제약 조건은 입력 파라미터 값(110) 및 구성 가능한 파라미터 값을 입력한 함수로 한 연산 결과가 기설정된 조건을 만족시키는 등 제약 조건일 수 있다.
본 발명에서 설명된 제약 조건에 대한 예시는 단지 예시적인 것일 뿐 제약 조건에 대한 한정이 아니며, 상이한 후보 컴퓨팅 기능 템플릿(120)의 구체적인 구현에 따라 제약 조건은 임의의 형태 또는 임의의 값일 수 있음을 이해해야 한다.
추가적이거나 대안적으로, 컴퓨팅 기기(130)는 입력 파라미터 값(110) 및 제약 조건에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 확정한다. 입력 파라미터 값(110) 및/또는 제약 조건은 모두 특정된 애플리케이션 시나리오/연산 규모를 어느 정도 반영할 수 있으므로, 입력 파라미터 값(110) 및 제약 조건에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 확정하면 검색할 후보 컴퓨팅 기능 템플릿(120)의 범위를 효과적으로 감소시키게 되어 칩 설계 과정, 특히는 칩 소프트웨어 개발의 효율성을 향상시킨다.
계속해서 도 2를 참조하면, 블록(230)에서, 컴퓨팅 기기(130)는 칩 기반의 상기 컴퓨팅 기능을 구현하기 위해, 입력 파라미터 값(110) 및 후보 컴퓨팅 기능 템플릿(120)(블록(220)에서 확정된 후보 템플릿(120)의 범위 내)의 구성 가능한 파라미터의 상이한 후보 값에 따라 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정한다.
본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 머신 러닝 방식을 사용하여 입력 파라미터 값(110) 및 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 복수의 상이한 후보 값에 따라 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정한다.
본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 상기 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 상이한 후보 값에서의 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 추정하고, 추정된 실행 성능에 기반하여 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정한다.
제한적이지 않은 설명적인 예시로서, 컴퓨팅 기기(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이다.
상기 초기 측정 세트값의 선택은 단지 예시적인 것일 뿐 초기 측정 세트값에서 구성 가능한 파라미터의 개수는 필요에 따라 조정할 수 있음을 이해해야 한다. 일부 예시적인 실시예에서, 이는 블록(220)에서 확정된 모든 후보 컴퓨팅 기능 템플릿(120)에 관련된 전체 구성 가능한 파라미터를 포함할 수 있고, 다른 일부 예시적인 실시예에서, 블록(220)에서 확정된 모든 후보 컴퓨팅 기능 템플릿(120)에 관련된 전체 구성 가능한 파라미터 중 일부만 포함할 수 있다. 유사하게, 초기 측정 세트의 값은 후보 컴퓨팅 기능 템플릿(120)에 따라 합리하게 설정될 수도 있으며 본 발명은 이에 대해 한정하지 않는다. 예를 들어, 후보 컴퓨팅 기능 템플릿(120)의 다른 예시로서, 벡터 길이가 각각 (1000, 1000), 즉 각각의 벡터가 1000개의 값을 포함하는 애플리케이션 시나리오의 경우, 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터는 가동된 컴퓨팅 코어의 개수(후보 값은 m이고, 여기서 m은 양의 정수임), 및 각각의 컴퓨팅 코어에 의해 산출된 값의 개수(후보 값은 n이고, 여기서 n은 양의 정수임)이며, 해당 제약 조건은 m * n ≤ 1000일 수 있다.
컴퓨팅 기기(130)는 초기 측정 세트에 따라 상기 초기 측정 세트에서의 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 추정한다. 구체적으로, 계속해서 상기 벡터 곱셈의 예시를 참조하면, 컴퓨팅 기기(130)는 초기 측정 세트 [50, 50, 3, 3]에서의 템플릿(120-1 및 120-2) 각각의 실행 성능을 추정한다.
컴퓨팅 기기(130)는 머신 러닝 방식에 의해 다음 측정 파라미터 세트를 생성한다. 본 발명의 일부 예시적인 실시예에서, 다음 측정 파라미터 세트의 선택은 이전 측정 파라미터 세트의 측정 결과에 기반할 수 있다. 이 밖에, 다음 측정 파라미터 세트의 구성 가능한 파라미터 개수 및 값의 선택은 초기 측정 파라미터 세트와 일치하므로 간결성을 위해 여기서 더 이상 반복하지 않는다. 본 조작은 기존 또는 향후 개발될 임의의 머신 러닝 기술이 포함됨을 이해해야 한다. 머신 러닝 방식으로 다음 측정 파라미터 세트를 생성하여 다음 측정 파라미터 세트를 보다 합리적으로 선택함으로써 구성 가능한 파라미터의 모든 후보 값에 대응되는 검색 공간을 순회할 필요가 없게 되어 칩 기반의 컴퓨팅 기능 생성 방법의 효율성을 향상시킨다.
검색이 종료되기 이전에, 다음 측정 파라미터 세트를 생성하고 생성된 측정 파라미터 세트에 대해 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 측정하는 단계를 반복적으로 수행한다. 측정된 실행 성능에 기반하여 타겟 컴퓨팅 기능 템플릿(140) 및 상기 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 값을 확정한다. 예를 들어, 측정 결과에 실행 성능이 가장 우수한 결과가 후보 컴퓨팅 기능 템플릿(120-1)이 세그먼트 길이가 3인 경우에 대응하는 것으로 나타나면, 컴퓨팅 기기(130)는 후보 컴퓨팅 기능 템플릿(120-1)을 타겟 템플릿으로 확정하고, 후보 컴퓨팅 기능 템플릿(120-1)의 구성 가능한 파라미터(즉 벡터 세그먼트 길이)의 후보 값 3을 타겟 값으로 확정한다.
본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정시 동시에 후보 컴퓨팅 기능 템플릿의 제약 조건도 고려하는데 구체적으로는 하기와 같이 표현될 수 있다. 초기 측정 파라미터 세트 및 다음 측정 파라미터 세트를 확정하고, 초기 측정 파라미터 세트 및 다음 측정 파라미터 세트를 후보 컴퓨팅 기능 템플릿(120)에 적용할 경우, 후보 컴퓨팅 기능 템플릿(120)의 제약 조건을 고려한다. 상기 방식을 통해, 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값이 보다 효율적이고 정확하게 확정될 수 있다.
상기 방식을 통해, 칩 내부의 구성 가능한 파라미터는 상위 호출자에게 제공되고, 이는 칩 소프트웨어 개발 과정에서 실행 성능의 테스트 결과에 따라 동적으로 구성될 수 있으므로 칩 내부의 구성 가능한 파라미터를 구성하는 난이도를 감소시키며 고성능 칩의 설계를 보장한다.
추가적으로, 본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 획득하기 위해 JIT 컴파일을 적용하여 테스트를 수행할 수 있다. 구체적으로, 컴퓨팅 기기(130)는 생성된 측정 파라미터를 후보 컴퓨팅 기능 템플릿(120)에 적용하여 JIT방식으로 최종 코드를 생성하고 후보 컴퓨팅 기능 템플릿(120)의 성능을 테스트한다. 이러한 방식을 통해, 컴파일시 코드가 생성되는 것이 아니라 실행시 코드가 생성되므로 칩 설계 과정, 특히는 칩 소프트웨어 개발의 효율성을 향상시키는 동시에 고성능 칩 기반의 컴퓨팅 기능 생성을 보장한다.
본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 칩 기반의 상기 컴퓨팅 기능을 구현하기 위해, 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정한다. 구체적으로, 컴퓨팅 기기(130)는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값에 대응되는 코드를 출력한다.
이 밖에, 칩 소프트웨어 개발 과정의 효율성을 보다 향상시키기 위해 다양한 방식으로 칩 소프트웨어 개발 과정을 제어할 수 있다. 본 발명의 일부 예시적인 실시예에서, 실행 성능 임계값을 설정하는 방식으로 칩 기반의 컴퓨팅 기능 생성 과정을 제어할 수 있다. 구체적으로, 타겟 컴퓨팅 기능 템플릿(140) 및 그 타겟 값을 확정하는 과정에서, 추정된 실행 성능이 실행 성능 임계값보다 우수할 경우, 상기 실행 성능에 대응되는 후보 컴퓨팅 기능 템플릿(120) 및 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 후보 값을 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값으로 확정한다.
실행 성능 임계값의 구성은 다양한 방식으로 구현될 수 있는데, 본 발명의 일부 예시적인 실시예에서, 실행 성능 임계값은 사용자에 의해 입력된 것일 수 있다. 다른 일부 예시적인 실시예에서, 실행 성능 임계값은 미리 구성된 디폴트 값일 수 있고 또한 미리 컴퓨팅 기기(130)에 저장될 수 있다.
추가적이거나 대안적으로, 본 발명의 일부 예시적인 실시예에서, 또한 칩 기반의 컴퓨팅 기능 생성 과정을 기설정된 시간대 내로 한정할 수 있다. 구체적으로, 기설정된 시간대 내에 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정한다.
기설정된 시간대는 다양한 방식으로 구성될 수 있다. 예를 들어, 사용자 입력 방식, 구체적으로는 사용자가 칩의 설계 시간과 관련된 시간대를 컴퓨팅 기기(130)에 전송하는 방식으로 구성될 수 있다.
추가적이거나 대안적으로, 기설정된 시간대는 입력 파라미터 값(110)에 의해 확정될 수도 있다. 예를 들어, 컴퓨팅 기기(130)는 상이한 애플리케이션 시나리오/연산 규모에 대해, 상이한 기설정된 시간대를 설정할 수 있다. 추가적이거나 대안적으로, 기설정된 시간대는 컴퓨팅 기기(130) 내에 기본적으로 구성될 수 있다.
상기 방식을 통해, 칩 기반의 컴퓨팅 기능 생성 과정의 유연한 제어를 구현할 수 있고 성능과 효율 간의 균형을 보다 양호하게 구현할 수 있다.
추가적으로, 본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 값을 확정한 후, 입력 파라미터 값(110)과, 확정된, 입력 파라미터 값(110)에 대응되는 타겟 컴퓨팅 기능 템플릿(140) 및 상기 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값 사이의 대응 관계를 저장한다.
추가적으로, 본 발명의 일부 예시적인 실시예에서, 컴퓨팅 기기(130)는 입력 파라미터 값(110)(블록(210)에 도시된 바와 같음)을 수신한 후, 이미 저장된 대응 관계에서 검색하여 입력 파라미터 값(110)에 대응되는 대응 관계가 이미 존재하는지 여부를 확정하고, 입력 파라미터 값(110)에 대응되는 대응 관계가 존재하는 것으로 확정된 경우, 상기 대응 관계에 기반하여 입력 파라미터 값(110)에 대응되는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값을 직접 확정하여 칩 기반의 상기 컴퓨팅 기능을 구현한다.
상기 방식을 통해, 생성된 칩 기반의 컴퓨팅 기능은 다양한 애플리케이션 시나리오/연산 규모에 동적으로 적용될 수 있으며, 이에 구성된 구성 가능한 파라미터는 추정된 실행 성능에 따라 확정된 것이므로 더욱 신뢰할 수 있고, 머신 러닝 방식을 사용하여 파라미터 세트를 선택 및 측정하며, 타겟 연산자 템플릿 및 타겟 값을 확정하므로 수동으로 파라미터를 구성하는 난이도를 감소시켜 효율적으로 칩 기반의 컴퓨팅 기능을 생성할 수 있다.
도 3은 본 발명의 실시예에 따른 칩 기반의 컴퓨팅 기능 생성 장치(300)의 블록도를 도시한다. 장치(300)는 도 1의 컴퓨팅 기기(130) 내에 포함되거나 컴퓨팅 기기(130)로서 구현될 수 있다. 도 3에 도시된 바와 같이, 장치(300)는 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값(110)을 획득하는 입력 파라미터 값 획득 모듈(310)을 포함한다. 장치(300)는 입력 파라미터 값(110)에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 확정하는 후보 컴퓨팅 기능 템플릿 확정 모듈(320)을 더 포함하되, 후보 컴퓨팅 기능 템플릿(120)은 후보 컴퓨팅 기능 템플릿(120)의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 구성 가능한 파라미터는 적어도 하나의 후보 값을 가질 수 있다. 나아가, 장치(300)는 칩 기반의 상기 컴퓨팅 기능을 구현하기 위해, 입력 파라미터 값(110) 및 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 상이한 후보 값에 따라 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정하는 타겟 컴퓨팅 기능 템플릿 확정 모듈(330)을 더 포함한다.
본 발명의 일부 예시적인 실시예에서, 타겟 컴퓨팅 기능 템플릿 확정 모듈(330)은 머신 러닝 방식을 사용하여 입력 파라미터 값(110) 및 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 복수의 상이한 후보 값에 따라, 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정하는 머신 러닝 모듈을 포함한다.
본 발명의 일부 예시적인 실시예에서, 타겟 컴퓨팅 기능 템플릿 확정 모듈(330)은, 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 상이한 후보 값에서의 추정 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 추정하는 성능 추정 모듈; 및 추정된 실행 성능에 기반하여 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정하는 제2 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함한다.
본 발명의 일부 예시적인 실시예에서, 제2 타겟 컴퓨팅 기능 템플릿 확정 모듈은, 추정된 실행 성능이 실행 성능 임계값보다 우수한지 여부를 확정하는 임계값 판단 모듈; 및 추정된 실행 성능이 실행 성능 임계값보다 우수한 것에 응답하여, 추정된 실행 성능에 대응되는 후보 컴퓨팅 기능 템플릿(120) 및 후보 컴퓨팅 기능 템플릿(120)의 구성 가능한 파라미터의 후보 값을 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값으로 확정하는 제3 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함한다.
본 발명의 일부 예시적인 실시예에서, 실행 성능 임계값은 사용자에 의해 입력되거나 컴퓨팅 기기(130)에 미리 구성된 것이다.
본 발명의 일부 예시적인 실시예에서, 성능 추정 모듈은, 입력 파라미터 값(110) 및 적어도 하나의 구성 가능한 파라미터의 적어도 하나의 후보 값을 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)에 적용하는 파라미터 적용 모듈; 및 적시 컴파일 방식을 통해 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)의 코드를 생성하고 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)의 실행 성능을 추정하는 컴파일 모듈을 포함한다.
본 발명의 일부 예시적인 실시예에서, 후보 컴퓨팅 기능 템플릿(120)은 입력 파라미터 값(110) 및/또는 후보 컴퓨팅 기능 템플릿(120)의 실행 성능과 관련된 구성 가능한 파라미터와 관련된 제약 조건을 더 구비하고; 후보 컴퓨팅 기능 템플릿 확정 모듈(320)은, 입력 파라미터 값(110) 및 제약 조건에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 확정하는 제1 후보 컴퓨팅 기능 템플릿 확정 모듈을 포함한다.
본 발명의 일부 예시적인 실시예에서, 장치(300)는 입력 파라미터 값(110)과, 확정된, 입력 파라미터 값(110)에 대응되는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값 사이의 대응 관계를 저장하는 저장 모듈을 더 포함한다.
본 발명의 일부 예시적인 실시예에서, 장치(300)는 입력 파라미터 값(110)에 기반하여 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)을 확정하기 이전에, 이미 저장된 대응 관계에 입력 파라미터 값(110)에 대응되는 대응 관계가 존재하는지 여부를 확정하는 대응 관계 판단 모듈; 및 입력 파라미터 값(110)에 대응되는 대응 관계가 존재하는 것으로 확정한 것에 응답하여, 대응 관계에 기반하여 입력 파라미터 값(110)에 대응되는 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)에 대응되는 구성 가능한 파라미터의 타겟 값을 확정하는 제4 타겟 컴퓨팅 기능 템플릿 확정 모듈을 더 포함한다.
본 발명의 일부 예시적인 실시예에서, 타겟 컴퓨팅 기능 템플릿 확정 모듈(330)은, 기설정된 시간대 내에 확정 타겟 컴퓨팅 기능 템플릿(140) 및 타겟 컴퓨팅 기능 템플릿(140)의 구성 가능한 파라미터의 타겟 값을 확정하는 제5 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함한다.
본 발명의 일부 예시적인 실시예에서, 기설정된 시간대는, 사용자에 의해 입력된, 칩의 설계 시간과 관련된 시간대; 입력 파라미터 값(110); 및 컴퓨팅 기기(130)에 미리 구성된, 칩의 설계 시간과 관련된 시간대 중 적어도 하나에 기반하여 확정된다.
본 발명의 일부 예시적인 실시예에서, 적어도 하나의 후보 컴퓨팅 기능 템플릿(120)은 기계 지향적 프로그래밍 언어를 통해 구현된다.
본 발명의 일부 예시적인 실시예에서, 각각의 컴퓨팅 기능은 복수의 후보 컴퓨팅 기능 템플릿(120)에 대응되고, 복수의 후보 컴퓨팅 기능 템플릿(120)은 상이한 애플리케이션 시나리오에 대응된다.
본 발명의 일부 예시적인 실시예에서, 입력 파라미터 값(110)은 애플리케이션 시나리오와 연관된다.
도 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)에 연결된다.
예를 들어 키보드, 마우스 등을 포함하는 입력 유닛(406); 예를 들어 다양한 타입의 디스플레이, 스피커 등을 포함하는 출력 유닛(407); 예를 들어 자기 디스크, 광 디스크 등을 포함하는 저장 유닛(408); 및 예를 들어 LAN 카드, 모뎀, 무선 통신 트랜시버 등을 포함하는 통신 유닛(409)을 포함하는 기기(400) 중의 복수의 부재는 I/O 인터페이스(405)에 연결된다. 통신 유닛(409)은 기기(400)가 인터넷과 같은 컴퓨터 네트워크 및/또는 다양한 전기 통신망에 의해 다른 기기와 정보/데이터를 교환할 수 있도록 허용한다.
컴퓨팅 유닛(401)은 프로세싱 및 컴퓨팅 기능을 갖는 다양한 범용 및/또는 전용 프로세싱 컴포넌트일 수 있다. 컴퓨팅 유닛(401)의 일부 예시는 중앙 처리 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 다양한 전용 인공 지능(AI) 컴퓨팅 칩, 기계 학습 모델 알고리즘을 실행하는 다양한 컴퓨팅 유닛, 및 디지털 신호 프로세서(DSP) 및 임의의 적합한 프로세서, 컨트롤러, 마이크로 컨트롤러 등을 포함하나 이에 한정되지 않는다. 컴퓨팅 유닛(401)은 과정(200)과 같은 전술된 다양한 방법 및 프로세스를 수행한다. 예를 들어, 일부 예시적인 실시예에서, 과정(200)은 저장 유닛(408)과 같은 기계 판독 가능 매체에 유형적으로 구현되는 컴퓨터 소프트웨어 프로그램으로서 구현될 수 있다. 일부 예시적인 실시예에서, 컴퓨터 프로그램의 일부 또는 전부는 ROM(402) 및/또는 통신 유닛(409)을 통해 장치(400)에 로딩 및/또는 설치될 수 있다. 컴퓨터 프로그램이 RAM(403)에 로딩되고 컴퓨팅 유닛(401)에 의해 실행될 경우, 전술한 하나 이상의 과정(200)의 단계가 수행될 수 있다. 대안적으로, 다른 실시예들에서, 컴퓨팅 유닛(401)은 임의의 다른 적합한 수단(예를 들어, 펌웨어에 의해)에 의해 과정(200)을 수행하도록 구성될 수 있다.
본문에서 이상 설명된 기능은 적어도 일부가 하나 또는 복수의 하드웨어 논리 부재에 의해 실행될 수 있다. 예를 들어, 비제한적으로, 사용 가능한 시범 유형의 하드웨어 논리 부재는 필드 프로그램 가능 게이트 어레이(FPGA), 전용 집적 회로(ASIC), 전용 표준 제품(ASSP), 시스템 온 칩의 시스템(SOC), 복합 프로그램 가능 논리 소자(CPLD) 등을 포함한다.
본 발명의 방법을 구현하는 프로그램 코드는 하나 또는 복수의 프로그래밍 언어의 임의의 조합으로 편집할 수 있다. 이러한 프로그램 코드는 범용 컴퓨터, 전용 컴퓨터 또는 다른 프로그램 가능 데이터 처리 장치의 프로세서 또는 제어기에 제공될 수 있으며, 프로그램 코드는 프로세서 또는 제어기에 의해 실행될 경우, 흐름도 및/또는 블록도에 지정된 기능/작동이 구현되도록 할 수 있다. 프로그램 코드는 완전히 기계에서 실행되거나, 부분적으로 기계에서 실행되거나, 독립형 소프트웨어 패키지로서 기계에서 실행되며, 일부는 원격 기계에서 실행되거나 완전히 원격 기계 또는 서버에서 실행될 수 있다.
본 발명의 컨텍스트에서, 기계 판독 가능 매체는 명령 실행 시스템, 장치 또는 기기에 의해 또는 명령 실행 시스템, 장치 또는 기기와 결합하여 사용하기 위한 프로그램을 포함하거나 저장할 수있는 유형 매체일 수 있다. 기계 판독 가능 매체는 기계 판독 가능 신호 매체 또는 기계 판독 가능 저장 매체일 수 있다. 기계 판독 가능 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 기기, 또는 상기 내용의 임의의 적절한 조합을 포함할 수 있지만 이에 한정되지 않는다. 기계 판독 가능 저장 매체의 보다 구체적인 예는 하나 또는 복수의 와이어에 기반한 전기 연결, 휴대용 컴퓨터 디스크, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능 프로그램 가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, CD-ROM, 광학 저장 기기, 자기 저장 기기 또는 전술한 내용의 임의의 적절한 조합을 포함한다.
이 밖에, 특정 순서로 각 동작을 설명하였지만, 이는 이러한 동작들이 도시된 특정 순서 또는 순차적 순서로 수행되도록 요구되거나 모든 도시된 동작들이 예기한 결과에 달성하기 위해 수행되어야 함을 이해해야 한다. 일정한 환경에서, 다수의 미션 및 합병 처리는 유리할 수 있다. 마찬가지로, 전술한 설명에서 여러 개의 구체적인 구현 세부사항이 포함되어 있지만 이것이 본 발명의 범위를 한정하는 것으로 해석되어서는 안된다. 독립적인 실시예의 컨텍스트에서 설명된 특정된 특징은 단일 구현으로 조합되어 구현될 수 있다. 반대로, 단일 구현의 컨텍스트에서 설명된 다양한 특징은 또한 다수의 구현에서 독립적으로 또는 임의의 적절한 하위 조합으로 구현될 수도 있다.
구조 특징 및/또는 방법 논리적 동작에 특정된 언어로 본 부제를 설명하였지만, 첨부된 청구범위에서 한정된 주제는 전술한 특정된 특징 또는 동작에 반드시 한정되는 것은 아님을 이해해야 한다. 반대로, 전술한 특정된 특징 및 동작은 단지 청구범위의 예시적 형태를 구현하기 위한 것이다.

Claims (26)

  1. 컴퓨팅 기기에 의해 수행되는 칩 기반의 컴퓨팅 기능 생성 방법에 있어서,
    상기 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값을 획득하는 단계;
    상기 입력 파라미터 값에 기반하여, 상기 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 단계 - 상기 후보 컴퓨팅 기능 템플릿은 상기 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 상기 구성 가능한 파라미터는 적어도 하나의 후보 값을 가짐 - ; 및
    칩 기반의 상기 컴퓨팅 기능을 구현하기 위해, 상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값에 따라, 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
  2. 제1항에 있어서,
    상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값에 따라, 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계는,
    머신 러닝 방식을 사용하여, 상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 복수의 상이한 상기 후보 값에 따라, 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
  3. 제1항에 있어서,
    상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값에 따라, 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계는,
    상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상이한 상기 후보 값에서의 상기 후보 컴퓨팅 기능 템플릿의 실행 성능을 추정하는 단계; 및
    추정된 상기 실행 성능에 기반하여, 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
  4. 제3항에 있어서,
    추정된 상기 실행 성능에 기반하여, 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 단계는,
    상기 추정된 상기 실행 성능이 실행 성능 임계값보다 우수한지 여부를 확정하는 단계; 및
    상기 추정된 상기 실행 성능이 실행 성능 임계값보다 우수한 것에 응답하여, 상기 추정된 상기 실행 성능에 대응되는 상기 후보 컴퓨팅 기능 템플릿 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값을 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값으로 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
  5. 제4항에 있어서,
    상기 실행 성능 임계값은 사용자에 의해 입력되거나 칩 설계 장치에 미리 구성된 것인 칩 기반의 컴퓨팅 기능 생성 방법.
  6. 제3항에 있어서,
    상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상이한 상기 후보 값에서의 상기 후보 컴퓨팅 기능 템플릿의 실행 성능을 추정하는 단계는,
    상기 입력 파라미터 값 및 적어도 하나의 상기 구성 가능한 파라미터의 적어도 하나의 상기 후보 값을 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿에 적용하는 단계; 및
    적시 컴파일 방식을 통해 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿의 코드를 생성하고 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿의 상기 실행 성능을 추정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
  7. 제1항에 있어서,
    상기 후보 컴퓨팅 기능 템플릿은, 상기 입력 파라미터 값 및/또는 상기 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터와 관련된 제약 조건을 더 구비하고;
    상기 컴퓨팅 기능에 대응되는 적어도 하나의 컴퓨팅 기능 템플릿을 확정하는 단계는,
    상기 입력 파라미터 값 및 상기 제약 조건에 기반하여, 상기 컴퓨팅 기능에 대응되는 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
  8. 제1항에 있어서,
    상기 입력 파라미터 값과, 확정된, 상기 입력 파라미터 값에 대응되는 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿에 대응되는 상기 구성 가능한 파라미터의 상기 타겟 값 사이의 대응 관계를 확정하는 단계를 더 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
  9. 제8항에 있어서,
    상기 입력 파라미터 값에 기반하여, 상기 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 단계 이전에, 이미 저장된 상기 대응 관계에 상기 입력 파라미터 값에 대응되는 대응 관계가 존재하는지 여부를 확정하는 단계를 더 포함하고,
    타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계는,
    상기 입력 파라미터 값에 대응되는 대응 관계가 존재하는 것으로 확정된 것에 응답하여, 상기 대응 관계에 기반하여, 상기 입력 파라미터 값에 대응되는 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿에 대응되는 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
  10. 제1항에 있어서,
    타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 단계는,
    기설정된 시간대 내에 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 단계를 포함하는 칩 기반의 컴퓨팅 기능 생성 방법.
  11. 제10항에 있어서,
    상기 기설정된 시간대는,
    사용자에 의해 입력된, 상기 칩의 설계 시간과 관련된 시간대;
    상기 입력 파라미터 값; 및
    칩 설계 장치에 미리 구성된, 상기 칩의 설계 시간과 관련된 시간대 중 적어도 하나에 기반하여 확정되는 칩 기반의 컴퓨팅 기능 생성 방법.
  12. 제1항에 있어서,
    각각의 상기 컴퓨팅 기능은 복수의 상기 후보 컴퓨팅 기능 템플릿에 대응되고, 상기 복수의 후보 컴퓨팅 기능 템플릿은 상이한 애플리케이션 시나리오에 대응되며, 상기 입력 파라미터 값은 애플리케이션 시나리오와 연관된 칩 기반의 컴퓨팅 기능 생성 방법.
  13. 칩 설계를 위한 장치에 있어서,
    상기 칩에 의해 지원되는 컴퓨팅 기능과 관련된 입력 파라미터 값을 획득하는 입력 파라미터 값 획득 모듈;
    상기 입력 파라미터 값에 기반하여, 상기 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 후보 컴퓨팅 기능 템플릿 확정 모듈 - 상기 후보 컴퓨팅 기능 템플릿은 상기 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터를 갖고, 상기 구성 가능한 파라미터는 적어도 하나의 후보 값을 가짐 - ; 및
    칩 기반의 상기 컴퓨팅 기능을 구현하기 위해, 상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값에 따라, 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 구성 가능한 파라미터의 타겟 값을 확정하는 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 설계를 위한 장치.
  14. 제13항에 있어서,
    상기 타겟 컴퓨팅 기능 템플릿 확정 모듈은,
    머신 러닝 방식을 사용하여, 상기 입력 파라미터 값 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 복수의 상이한 상기 후보 값에 따라, 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 머신 러닝 모듈을 포함하는 칩 설계를 위한 장치.
  15. 제13항에 있어서,
    상기 타겟 컴퓨팅 기능 템플릿 확정 모듈은,
    상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상이한 상기 후보 값에서의 상기 후보 컴퓨팅 기능 템플릿의 실행 성능을 추정하는 성능 추정 모듈; 및
    추정된 상기 실행 성능에 기반하여, 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 제2 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 설계를 위한 장치.
  16. 제15항에 있어서,
    제2 타겟 컴퓨팅 기능 템플릿 확정 모듈은,
    상기 추정된 상기 실행 성능이 실행 성능 임계값보다 우수한지 여부를 확정하는 임계값 판단 모듈; 및
    상기 추정된 상기 실행 성능이 실행 성능 임계값보다 우수한 것에 응답하여, 상기 추정된 상기 실행 성능에 대응되는 상기 후보 컴퓨팅 기능 템플릿 및 상기 후보 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 후보 값을 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값으로 확정하는 제3 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 설계를 위한 장치.
  17. 제16항에 있어서,
    상기 실행 성능 임계값은 사용자에 의해 입력되거나 칩 설계 장치에 미리 구성된 것인 칩 설계를 위한 장치.
  18. 제15항에 있어서,
    상기 성능 추정 모듈은,
    상기 입력 파라미터 값 및 적어도 하나의 상기 구성 가능한 파라미터의 적어도 하나의 상기 후보 값을 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿에 적용하는 파라미터 적용 모듈; 및
    적시 컴파일 방식을 통해 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿의 코드를 생성하고 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿의 상기 실행 성능을 추정하는 컴파일 모듈을 포함하는 칩 설계를 위한 장치.
  19. 제13항에 있어서,
    상기 후보 컴퓨팅 기능 템플릿은, 상기 입력 파라미터 값 및/또는 상기 후보 컴퓨팅 기능 템플릿의 실행 성능과 관련된 구성 가능한 파라미터와 관련된 제약 조건을 더 구비하고;
    상기 후보 컴퓨팅 기능 템플릿 확정 모듈은,
    상기 입력 파라미터 값 및 상기 제약 조건에 기반하여, 상기 컴퓨팅 기능에 대응되는 상기 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하는 제1 상기 후보 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 설계를 위한 장치.
  20. 제13항에 있어서,
    상기 입력 파라미터 값과, 확정된, 상기 입력 파라미터 값에 대응되는 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿에 대응되는 상기 구성 가능한 파라미터의 상기 타겟 값 사이의 대응 관계를 저장하는 저장 모듈을 더 포함하는 칩 설계를 위한 장치.
  21. 제20항에 있어서,
    상기 입력 파라미터 값에 기반하여, 상기 컴퓨팅 기능에 대응되는 적어도 하나의 후보 컴퓨팅 기능 템플릿을 확정하기 이전에, 이미 저장된 상기 대응 관계에 상기 입력 파라미터 값에 대응되는 대응 관계가 존재하는지 여부를 확정하는 대응 관계 판단 모듈; 및
    상기 입력 파라미터 값에 대응되는 대응 관계가 존재하는 것으로 확정된 것에 응답하여, 상기 대응 관계에 기반하여, 상기 입력 파라미터 값에 대응되는 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿에 대응되는 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 제4 타겟 컴퓨팅 기능 템플릿 확정 모듈을 더 포함하는 칩 설계를 위한 장치.
  22. 제13항에 있어서,
    타겟 컴퓨팅 기능 템플릿 확정 모듈은,
    기설정된 시간대 내에 상기 타겟 컴퓨팅 기능 템플릿 및 상기 타겟 컴퓨팅 기능 템플릿의 상기 구성 가능한 파라미터의 상기 타겟 값을 확정하는 제5 타겟 컴퓨팅 기능 템플릿 확정 모듈을 포함하는 칩 설계를 위한 장치.
  23. 제22항에 있어서,
    상기 기설정된 시간대는,
    사용자에 의해 입력된, 상기 칩의 설계 시간과 관련된 시간대;
    상기 입력 파라미터 값; 및
    칩 설계 장치에 미리 구성된, 상기 칩의 설계 시간과 관련된 시간대 중 적어도 하나에 기반하여 확정되는 칩 설계를 위한 장치.
  24. 제13항에 있어서,
    각각의 상기 컴퓨팅 기능은 복수의 상기 후보 컴퓨팅 기능 템플릿에 대응되고, 상기 복수의 후보 컴퓨팅 기능 템플릿은 상이한 애플리케이션 시나리오에 대응되며, 상기 입력 파라미터 값은 애플리케이션 시나리오와 연관된 칩 설계를 위한 장치.
  25. 하나 또는 복수의 프로세서; 및
    하나 또는 복수의 프로그램을 저장하는 메모리를 포함하는 전자 기기에 있어서,
    상기 하나 또는 복수의 프로그램이 상기 하나 또는 복수의 프로세서에 의해 실행될 경우, 상기 전자 기기가 제1항 내지 제12항 중 어느 한 항에 따른 칩 기반의 컴퓨팅 기능 생성 방법을 구현하도록 하는 전자 기기.
  26. 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 프로그램이 프로세서에 의해 실행될 경우 제1항 내지 제12항 중 어느 한 항에 따른 칩 기반의 컴퓨팅 기능 생성 방법을 구현하는 컴퓨터 판독 가능 저장 매체.
KR1020200003572A 2019-06-26 2020-01-10 칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 저장 매체 KR102333845B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910559200.3A CN112148391A (zh) 2019-06-26 2019-06-26 生成基于芯片的计算功能的方法、装置、设备和存储介质
CN201910559200.3 2019-06-26

Publications (2)

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

Family

ID=68841033

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200003572A KR102333845B1 (ko) 2019-06-26 2020-01-10 칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 저장 매체

Country Status (5)

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

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 (zh) * 2021-05-18 2022-03-25 北京百度网讯科技有限公司 深度学习框架的算子注册方法、装置、设备和存储介质
CN113419207B (zh) * 2021-08-24 2021-11-05 湖南省计量检测研究院 一种基于物联网的计量芯片异常检测及诊断系统
CN113705017B (zh) * 2021-09-08 2022-09-16 清华大学无锡应用技术研究院 芯片设计方法、装置、芯片、电子设备及存储介质

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
US10203934B2 (en) 2012-07-11 2019-02-12 Intel Corporation Parallell 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 (zh) * 2015-03-31 2019-06-28 日本电气株式会社 变分推理的数据初始化的方法和装置
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 (ja) * 2016-03-31 2019-10-02 株式会社デンソーウェーブ パラメータ調整装置
JP6227195B1 (ja) * 2016-10-04 2017-11-08 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム
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 (zh) * 2018-09-30 2020-06-09 阿里巴巴集团控股有限公司 一种芯片及基于其的数据处理方法

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
CN112148391A (zh) 2020-12-29
JP6952138B2 (ja) 2021-10-20
EP3757760A1 (en) 2020-12-30
US11507348B2 (en) 2022-11-22
US20200409662A1 (en) 2020-12-31
JP2021005357A (ja) 2021-01-14
KR20210001871A (ko) 2021-01-06

Similar Documents

Publication Publication Date Title
KR102333845B1 (ko) 칩 기반의 컴퓨팅 기능 생성 방법, 장치, 기기 및 저장 매체
AU2017279610A1 (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
Scarborough et al. A vectorizing Fortran compiler
US10430191B2 (en) Methods and apparatus to compile instructions for a vector of instruction pointers processor architecture to enable speculative execution and avoid data corruption
CN113516247A (zh) 参数校准方法、量子芯片的控制方法、装置及系统
EP2924559A2 (en) Program, compiler method, and compiler apparatus
US11216281B2 (en) Facilitating data processing using SIMD reduction operations across SIMD lanes
JP7246447B2 (ja) モデルトレーニング方法、装置、電子デバイス、記憶媒体、開発システムおよびプログラム
US9354850B2 (en) Method and apparatus for instruction scheduling using software pipelining
CN114936085A (zh) 基于深度学习算法的etl调度方法及装置
US11262989B2 (en) Automatic generation of efficient vector code with low overhead in a time-efficient manner independent of vector width
US8341577B1 (en) Parallel circuit simulation with partitions
JP7042870B2 (ja) コンピューティングデバイスによって実行される方法、装置、機器及びコンピュータ読み取り可能な記憶媒体
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
CN112465116B (zh) 编译方法、运算方法、电子设备和存储介质
CN108846248B (zh) 一种应用建模及性能预测方法
US11449347B1 (en) Time-multiplexed implementation of hardware accelerated functions in a programmable integrated circuit
CN115329923A (zh) 用于神经网络模型的编译方法和相关产品
KR20130088285A (ko) 데이터 처리 시스템 및 그 시스템에서 데이터 시뮬레이션 방법
US20150355299A1 (en) Method and apparatus for operating a measuring device
KR101721341B1 (ko) 이종 멀티코어 환경에서 사용되는 수행장치 결정 모듈 및 이를 이용한 수행장치 결정방법
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