KR20210149045A - 인공 지능 칩 검증 - Google Patents

인공 지능 칩 검증 Download PDF

Info

Publication number
KR20210149045A
KR20210149045A KR1020217031299A KR20217031299A KR20210149045A KR 20210149045 A KR20210149045 A KR 20210149045A KR 1020217031299 A KR1020217031299 A KR 1020217031299A KR 20217031299 A KR20217031299 A KR 20217031299A KR 20210149045 A KR20210149045 A KR 20210149045A
Authority
KR
South Korea
Prior art keywords
use case
verification
template
test
target
Prior art date
Application number
KR1020217031299A
Other languages
English (en)
Inventor
화청 허우
판웨이 부
커 장
Original Assignee
상하이 센스타임 인텔리전트 테크놀로지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 상하이 센스타임 인텔리전트 테크놀로지 컴퍼니 리미티드 filed Critical 상하이 센스타임 인텔리전트 테크놀로지 컴퍼니 리미티드
Publication of KR20210149045A publication Critical patent/KR20210149045A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)

Abstract

본 발명은 인공 지능(AI) 칩 검증 시스템, 방법, 디바이스 및 기록 매체를 제공하는바, 당해 시스템은 검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성하기 위한 사용 사례 생성기; 상기 사용 사례 생성기에 접속하고, 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하여 테스트 결과를 얻기 위한 테스트 대기 칩 부품; 및 상기 테스트 대기 칩 부품에 접속하고, 상기 테스트 결과와 상기 검증 사용 사례에 대응하는 참고 결과를 비교하여 상기 테스트 대기 설계의 상기 검증 대기 대상에 대한 검증 결과를 얻기 위한 비교 부품을 포함하되, 상기 검증 사용 사례는 상기 소정의 사용 사례 템플릿에 의해 정의된 포맷을 충족시키고, 상기 검증 대기 대상은 뉴럴 네트워크 모델 중의 목표 연산자 또는 뉴럴 네트워크 모델을 포함한다.

Description

인공 지능 칩 검증
본 발명은 인공 지능(Artificial Intelligence, AI) 칩 검증의 분야에 관한 것으로, 구체적으로는 AI 칩 검증 시스템, 방법, 디바이스 및 기록 매체에 관한 것이다.
검증은 칩 개발 과정에서 매우 중요한 단계인바, 칩을 제조업자에게 넘겨줘 생산하기 전에 칩의 기능의 정확성을 보증하기 위해 검증이 반드시 필요하다.
AI 칩의 개발 프로젝트에서는 다양한 타입의 뉴럴 네트워크 도입에 따라 칩은 비교적 강한 적응성 및 러버스트성을 가지는 것이 요구되며, 따라서 칩의 기능 검증도 다양한 타입의 뉴럴 네트워크에 적응될 것이 요구된다.
본 발명은 AI 칩 검증 시스템, 방법, 디바이스, 기록 매체 및 컴퓨터 프로그램 제품을 제공한다.
본 발명의 실시예의 제1 양태에 따르면, AI 칩 검증 시스템을 제공하는바, 상기 시스템은 검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성하기 위한 사용 사례 생성기; 상기 사용 사례 생성기에 접속하고, 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하여 테스트 결과를 얻기 위한 테스트 대기 칩 부품; 및 상기 테스트 대기 칩 부품에 접속하고, 상기 테스트 결과와 상기 검증 사용 사례에 대응하는 참고 결과를 비교하여 상기 테스트 대기 설계의 상기 검증 대기 대상에 대한 검증 결과를 얻기 위한 비교 부품을 포함하되, 상기 검증 사용 사례는 상기 소정의 사용 사례 템플릿에 의해 정의된 포맷을 충족시키고, 상기 검증 대기 대상은 뉴럴 네트워크 모델 중의 목표 연산자 또는 뉴럴 네트워크 모델을 포함한다.
본 발명의 실시예에 있어서, 포맷이 사전에 정의된 소정의 사용 사례 템플릿을 통해 검증 사용 사례를 생성함으로써, 본 발명의 실시예에 의해 제공되는 AI 칩 검증 시스템이 다양한 타입의 뉴럴 네트워크 모델을 검증할 수 있도록 할 수 있다.
몇몇의 옵션의 실시예에 있어서, 상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 명령 흐름 템플릿을 포함하는 명령 흐름 템플릿 파일; 상기 검증 사용 사례의 초기화 데이터 템플릿을 포함하는 초기화 데이터 템플릿 파일; 및 상기 검증 사용 사례의 레지스터 구성 템플릿을 포함하는 레지스터 구성 템플릿 파일 중의 적어도 하나를 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 시스템은 상기 사용 사례 생성기 및 상기 테스트 대기 칩 부품에 접속하고, 상기 소정의 사용 사례 템플릿에 기반하여 상기 검증 사용 사례를 상기 테스트 대기 칩 부품으로 구동함으로써, 상기 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하기 위한 환경 드라이버를 더 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 출력 결과 템플릿을 포함하는 결과 템플릿 파일을 포함하고, 상기 시스템은 상기 테스트 대기 칩 부품 및 상기 비교 부품에 접속하고, 상기 결과 템플릿 파일에 기반하여 상기 테스트 대기 칩 부품으로 상기 테스트 결과를 샘플링하고, 샘플링하여 얻은 상기 테스트 결과를 상기 비교 부품에 전송하기 위한 환경 샘플러를 더 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 사용 사례 생성기는 상기 검증 대기 대상의 파라미터 파일을 취득하고, 상기 검증 대기 대상의 상기 파라미터 파일에 포함되어 있는 대상 파라미터를 해석함으로써, 상기 검증 대기 대상의 상기 검증 사용 사례를 생성하기 위한 방향 생성기를 포함한다.
본 발명의 실시예에 있어서, 뉴럴 네트워크 모델의 층 레벨을 검증할 수 있고, 또한 뉴럴 네트워크 모델 전체를 검증할 수 있기에, 테스트 대기 설계의 뉴럴 네트워크에 대한 검증의 심도 및 유연성을 향상시켰다.
몇몇의 옵션의 실시예에 있어서, 상기 파라미터 파일은 고정 소수점 파라미터 파일 및 네트워크 구성 파일을 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례에 대응하는 참고 결과를 포함하는 참고 결과 파일을 포함하고, 상기 비교 부품이 비교할 때 이용한 상기 참고 결과는 상기 소정의 사용 사례 템플릿으로부터 취득한 것이다.
본 발명의 실시예에 있어서, 검증 사용 사례로부터 당해 검증 사용 사례의 참고 결과를 직접 취득할 수 있으므로, 참고 모델 부품을 이용하여 검증 사용 사례를 실행할 필요가 없어지기에, 비교 장치의 실행 효율을 향상시켰고, 테스트 대기 설계에 대한 검증 효율을 향상시켰다.
몇몇의 옵션의 실시예에 있어서, 상기 사용 사례 생성기는 상기 검증 대기 대상의 구성 파일을 취득하고, 상기 구성 파일에 기반하여 검증 대기 대상의 대상 파라미터를 랜덤하게 생성하며, 생성된 상기 대상 파라미터에 기반하여 상기 검증 대기 대상의 상기 검증 사용 사례를 생성하기 위한 랜덤 생성기를 포함한다.
본 발명의 실시예에 있어서, 랜덤 생성기는 구성 파일에 의해, 특정 검증 사용 사례에 기반하여, 랜덤 기술을 이용하여 다른 검증 사용 사례를 생성함으로써, 검증 시나리오가 더 포괄적이도록 하며, 검증의 완전성을 효과적으로 향상시켰다.
몇몇의 옵션의 실시예에 있어서, 상기 시스템은 상기 사용 사례 생성기 및 상기 비교 부품에 접속하고, 상기 사용 사례 생성기가 생성한 상기 검증 사용 사례를 실행함으로써, 상기 검증 사용 사례에 대응하는 참고 결과를 얻기 위한 참고 모델 부품을 더 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 스케줄링 코어 명령 흐름 템플릿을 포함하는 스케줄링 코어 명령 흐름 템플릿 파일을 포함하고, 상기 시스템은 상기 사용 사례 생성기, 상기 테스트 대기 칩 부품 및 상기 비교 부품에 접속하며, 상기 스케줄링 코어 명령 흐름 템플릿 파일에 기반하여 상기 테스트 대기 설계의 스케줄링 코어 명령 흐름을 생성하기 위한 스케줄링 명령 컴파일러를 더 포함하되, 상기 테스트 대기 설계의 스케줄링 코어 명령 흐름은 상기 검증 사용 사례 중에 포함되어 있고, 상기 테스트 대기 설계는 상기 검증 사용 사례 중의 상기 스케줄링 코어 명령 흐름에 기반하여 상기 검증 사용 사례 중의 명령 흐름에 대해 처리를 실행한다.
본 발명의 실시예에 있어서, 레벨 1의 DUT에 대한 AI 칩 검증 시스템의 기타 모듈을 재이용했다. 칩 검증의 작업량을 감소하고, 테스트 대기 설계에 대한 검증 효율을 향상시켰으며, 검증 자원을 절약했다.
몇몇의 옵션의 실시예에 있어서, 상기 시스템은 상기 테스트 대기 칩 부품에 접속하고, 상기 테스트 대기 설계의 상기 검증 사용 사례를 실행하는 성능 파라미터를 취득하며, 상기 성능 파라미터에 기반하여 성능 통계 결과를 얻기 위한 성능 통계기를 더 포함한다.
본 발명의 실시예에 있어서, 성능 통계기는 테스트 대기 설계를 통해 뉴럴 네트워크 모델의 층 레벨의 검증 사용 사례를 실행하는 연산 시간 및 대역폭을 통계할 수 있으며, 또한 테스트 대기 설계를 통해 뉴럴 네트워크 모델 전체의 네트워크 레벨의 검증 사용 사례를 실행하는 연산 시간 및 대역폭을 통계할 수 있기에, 테스트 대기 설계에 대한 검증의 성능 통계를 강화했다.
본 발명의 실시예의 제2 양태에 따르면, AI 칩 검증 방법을 제공하는바, 상기 방법은 검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성하는 것; 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하여 테스트 결과를 얻는 것; 및 상기 테스트 결과와 상기 검증 사용 사례에 대응하는 참고 결과를 비교하여 상기 테스트 대기 설계의 상기 검증 대기 대상에 대한 검증 결과를 얻는 것을 포함하되, 상기 검증 사용 사례는 상기 소정의 사용 사례 템플릿에 의해 정의된 포맷을 충족시키고, 상기 검증 대기 대상은 뉴럴 네트워크 모델 중의 목표 연산자 또는 뉴럴 네트워크 모델을 포함한다.
본 발명의 실시예에 있어서, 검증 대기 대상의 정보에 기반하여 생성한 검증 사용 사례는 소정의 사용 사례 템플릿에 의해 사전에 정의된 포맷에 기반하여 생성한 검증 사용 사례다. 기타 타입의 뉴럴 네트워크에 대응하는 검증 대기 대상에 의해 생성된 검증 사용 사례가 통일된 포맷을 가지므로, 본 발명의 실시예에 의해 제공되는 AI 칩 검증 시스템이 다양한 타입의 뉴럴 네트워크를 검증할 수 있도록 할 수 있다.
몇몇의 옵션의 실시예에 있어서, 상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 명령 흐름 템플릿을 포함하는 명령 흐름 템플릿 파일; 상기 검증 사용 사례의 초기화 데이터 템플릿을 포함하는 초기화 데이터 템플릿 파일; 및 상기 검증 사용 사례의 레지스터 구성 템플릿을 포함하는 레지스터 구성 템플릿 파일 중의 적어도 하나를 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성한 후에, 상기 소정의 사용 사례 템플릿에 기반하여 상기 검증 사용 사례를 상기 테스트 대기 칩 부품으로 구동함으로써, 상기 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하는 것을 더 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 출력 결과 템플릿을 포함하는 결과 템플릿 파일을 포함하고, 상기 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하여 테스트 결과를 얻은 후에, 상기 결과 템플릿 파일에 기반하여 상기 테스트 대기 칩 부품으로 상기 테스트 결과를 샘플링하고, 샘플링하여 얻은 상기 테스트 결과를 상기 비교 부품에 전송하는 것을 더 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성하는 것은 상기 검증 대기 대상의 파라미터 파일을 취득하고, 상기 검증 대기 대상의 상기 파라미터 파일에 포함되어 있는 대상 파라미터를 해석함으로써, 상기 검증 대기 대상의 상기 검증 사용 사례를 생성하는 것을 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 파라미터 파일은 고정 소수점 파라미터 파일 및 네트워크 구성 파일을 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 참고 결과를 포함하는 참고 결과 파일을 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성하는 것은 상기 검증 대기 대상의 구성 파일을 취득하고, 상기 구성 파일에 기반하여 검증 대기 대상의 대상 파라미터를 랜덤하게 생성하며, 생성된 상기 대상 파라미터에 기반하여 상기 검증 대기 대상의 상기 검증 사용 사례를 생성하는 것을 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 방법은 참고 모델 부품을 이용하여 상기 검증 사용 사례를 실행하여 대응하는 참고 결과를 얻는 것을 더 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 스케줄링 코어 명령 흐름 템플릿을 포함하는 스케줄링 코어 명령 흐름 템플릿 파일을 포함하고, 상기 방법은 상기 스케줄링 코어 명령 흐름 템플릿 파일에 기반하여, 상기 테스트 대기 설계의 스케줄링 코어 명령 흐름을 생성하는 것; 상기 스케줄링 코어 명령 흐름에 기반하여, 상기 검증 대기 대상의 검증 사용 사례를 생성하는 것; 및 상기 테스트 대기 설계를 통해, 상기 검증 사용 사례 중의 상기 스케줄링 코어 명령 흐름에 기반하여 상기 검증 사용 사례 중의 명령 흐름에 대해 처리를 실행하는 것을 더 포함한다.
몇몇의 옵션의 실시예에 있어서, 상기 방법은 상기 테스트 대기 설계의 상기 검증 사용 사례를 실행하는 성능 파라미터를 취득하고, 상기 성능 파라미터에 기반하여 성능 통계 결과를 얻는 것을 더 포함한다.
본 발명의 실시예의 제3 양태에 따르면, 컴퓨터 디바이스를 제공하는바, 당해 디바이스는 메모리; 프로세서; 및 메모리에 기억되어 있으며, 프로세서 상에서 실행 가능한 컴퓨터 프로그램을 포함하고, 상기 프로세서에 의해 상기 프로그램이 실행될 때에, 제2 양태 중 어느 한 항에 기재된 AI 칩 검증 방법이 실현된다.
본 발명의 실시예의 제4 양태에 따르면, 컴퓨터 프로그램이 기억되어 있는 컴퓨터 판독 가능 기록 매체를 제공하는바, 상기 프로그램이 프로세서에 의해 실행될 때에, 상기 프로세서가 제2 양태 중 어느 한 항에 기재된 AI 칩 검증 방법을 실현한다.
본 발명의 실시예의 제5 양태에 따르면, 컴퓨터 프로그램을 포함하는 컴퓨터 프로그램 제품을 제공하는바, 상기 프로그램이 프로세서에 의해 실행될 때에, 상기 프로세서가 제2 양태 중 어느 한 항에 기재된 AI 칩 검증 방법을 실현한다.
상기의 일반적인 설명 및 이하의 상세한 설명은 예시적 및 해석적인 것에 지나지 않고, 본 발명을 한정하려는 것이 아님을 이해해야 한다.
여기서의 도면은 명세서에 병합되어 본 명세서의 일부를 구성하며, 이러한 도면은 본 발명에 부합되는 실시예를 나타내며, 명세서와 함께 본 발명의 기술 방안을 설명한다.
도 1은 예시적인 일 실시예에 관한 AI 칩 검증 시스템을 나타낸 모식도이다.
도 2는 예시적인 일 실시예에 관한 소정의 사용 사례 템플릿을 나타낸 모식도이다.
도 3은 예시적인 다른 일 실시예에 관한 AI 칩 검증 시스템을 나타낸 모식도이다.
도 4는 예시적인 다른 일 실시예에 관한 소정의 사용 사례 템플릿을 나타낸 모식도이다.
도 5는 예시적인 또 다른 일 실시예에 관한 AI 칩 검증 시스템을 나타낸 모식도이다.
도 6은 예시적인 더 다른 일 실시예에 관한 AI 칩 검증 시스템을 나타낸 모식도이다.
도 7은 예시적인 일 실시예에 관한 구성 파일을 나타낸 모식도이다.
도 8은 예시적인 일 실시예에 관한 2차 테스트 대기 설계를 나타낸 모식도이다.
도 9는 예시적인 더 다른 일 실시예에 관한 AI 칩 검증 시스템을 나타낸 모식도이다.
도 10은 예시적인 일 실시예에 관한 AI 칩 검증 방법을 나타낸 플로우 챠트다.
여기서 예시적인 실시예를 상세하게 설명하는바, 그 예를 도면에 나타낸다. 이하의 설명에서 도면이 언급될 경우, 특히 명기하지 않는 한, 서로 다른 도면에서의 같은 부호는 같거나 유사한 요소를 나타낸다. 이하의 예시적인 실시예를 통해 설명하는 실시 형태는 본 발명에 부합되는 모든 실시 형태를 나타낸 것은 아니다. 반대로, 이들은 첨부된 특허청구의 범위에 기재되어 있듯이, 본 발명의 몇몇의 양태에 일치한 장치와 방법의 단순한 예다.
본 발명에서 사용하는 용어는 특정 실시예를 설명하는 것만을 목적으로 하고 있으며, 본 발명을 한정하려는 것을 의도하는 것이 아니다. 본 발명 및 첨부된 특허청구의 범위에서 사용되는 "한 가지", "상기” 및 "당해"와 같은 단수형은, 문맥이 기타 의미를 명확히 나타내지 않는 한, 복수형도 포함하는 것을 의도한다. 본 명세서에서 사용되는 "및/또는"과 같은 용어는 하나 또는 복수의 관련되게 리스트된 항목의 임의 또는 모든 가능한 조합을 나타냄을 더 이해해야 한다.
본 발명에서는 제1, 제2, 제3 등의 용어를 사용하여 다양한 정보를 설명할 수 있지만, 이러한 정보는 이러한 용어에 의해 한정되어서는 안됨을 이해해야 한다. 이러한 용어는 같은 타입의 정보를 서로 구별하기 위하여서만 사용된다. 예를 들면 본 발명의 범위에서 일탈하지 않는 전제 하에서, 제1 정보는 또 제2 정보로 불릴 수 있으며, 마찬가지로 제2 정보도 제1 정보로 불릴 수 있다. 문맥에 따라 여기서 사용되는 "만약"과 같은 단어는 "… 면" 또는 "… 경우" 또는 "것이 확정된 것에 응답하여"로 해석될 수 있다.
이하, 본 발명에 의해 제공되는 AI 칩 검증의 기술 방안을 더 명확히 하기 위하여, 도면을 참조하여 본 발명의 실시예의 기술 방안을 더 상세하게 설명한다.
도 1을 참조하면, 도 1은 본 발명에 의해 제공되는 실시예의 AI 칩 검증 시스템을 나타낸 모식도이다. 여기서, 도 1에 나타낸바와 같이, 당해 AI 칩 검증 시스템은 사용 사례 생성기(101), 테스트 대기 칩 부품(102) 및 비교 부품(103)을 포함할 수 있다. 여기서, 사용 사례 생성기(101)는 검증 사용 사례를 생성한다. 당해 검증 사용 사례는 테스트 대기 칩 부품(102)에 입력되어 테스트 대기 설계 처리가 실행되어, 테스트 결과를 얻을 수 있다. 당해 테스트 결과 및 당해 테스트 결과에 대응하는 검증 사용 사례는 비교 부품(103)에 입력되어 처리가 실행되어, 테스트 대기 설계의 검증 결과를 얻을 수 있다.
몇몇의 예에 있어서, AI 칩 검증에서는 새로 설계한 AI가 뉴럴 네트워크 모델 중의 특정 조작(연산자)을 구현 가능한지 여부를 검증할 수 있고, 예를 들면 당해 AI 칩을 이용하여 뉴럴 네트워크중의 합성곱, 풀링 등의 조작을 실행 가능한지 여부를 검증할 수 있다. 이러한 검증 뉴럴 네트워크 모델 중의 특정 연산자의 경우, 뉴럴 네트워크 모델 중의 연산자를 검증 대기 대상으로 설정한다. 몇몇의 예에 있어서, 또한 새로 설계한 AI 칩이 완전한 뉴럴 네트워크 모델을 구축 가능한지 여부를 검증할 수 있다. 이러한 완전한 뉴럴 네트워크 모델을 검증할 경우, 뉴럴 네트워크 모델 전체를 검증 대기 대상으로 설정한다. 여기서, 뉴럴 네트워크 모델은 합성곱 뉴럴 네트워크 등과 같은 이미지 식별에 이용될 수 있는 뉴럴 네트워크, 음성 식별에 이용될 수 있는 뉴럴 네트워크 또는 텍스트 식별에 이용될 수 있는 뉴럴 네트워크일 수 있는바, 본 발명은 이에 대해 한정하지 않는다.
도 1에 나타낸 AI 칩 검증 시스템에서는, 사용 사례 생성기(101)는 검증 대기 대상의 정보를 해석하여, 당해 검증 대기 대상의 검증 사용 사례를 생성하기 위한 파라미터를 얻을 수 있다. 여기서, 검증 대기 대상의 정보는 예를 들면 검증 대기 대상의 특징을 참고하여 검증 대기 대상의 설계 사양으로부터 추출할 수 있다. 검증 대기 대상의 정보는 고정 소수점 파라미터 파일 및 네트워크 구성 파일에 포함되어 있는 파라미터 정보일 수도 있고, 당해 검증 대기 대상에 대응하는 구성 파일 중의 파라미터 정보일 수도 있다. 고정 소수점 파라미터 파일은 예를 들면 AI 네트워크의 특성에 대해 고정 소수점 파라미터에 대해 고정 소수점 처리를 실행하여 얻은 파라미터일 수 있다. 예를 들면 뉴럴 네트워크 모델 중의 합성곱 조작을 검증 대기 대상으로 설정할 경우, 사용 사례 생성기(101)는 당해 합성곱 조작에 대응하는 고정 소수점 파라미터 파일 및 네트워크 구성 파일 중의 파라미터 정보를 해석하여, 당해 합성곱 조작의 검증 사용 사례를 생성하기 위한 파라미터를 얻을 수 있다. 또는 완전한 뉴럴 네트워크 모델을 검증 대기 대상으로 설정할 경우, 사용 사례 생성기(101)는 당해 뉴럴 네트워크 모델에 대응하는 고정 소수점 파라미터 파일 및 네트워크 구성 파일을 해석하여, 당해 뉴럴 네트워크 모델의 검증 사용 사례를 생성하기 위한 파라미터를 얻을 수 있다.
사용 사례 생성기(101)는 검증 대기 대상의 검증 사용 사례를 생성하기 위한 파라미터를 얻은 후에, 당해 파라미터 및 소정의 사용 사례 템플릿에 정의된 포맷에 기반하여 검증 대기 대상의 검증 사용 사례를 생성한다. 여기서, 소정의 사용 사례 템플릿은 생성하려고 하는 검증 사용 사례 중의 데이터의 포맷을 정의한다. 예를 들면 소정의 사용 사례 템플릿은 생성하려고 하는 검증 사용 사례의 특정 부분의 데이터 포맷을 정의한다. 구체적으로, 소정의 사용 사례 템플릿은 생성하려고 하는 검증 사용 사례 중의 명령 흐름 데이터 및 초기화 데이터의 포맷을 정의할 수 있는바, 즉 특정 부분(명령 흐름 데이터 및 초기화 데이터)의 포맷을 정의할 수 있다. 생성하려고 하는 검증 사용 사례 중의 특정 부분 이외의 데이터 포맷의 경우, 소정의 사용 사례 템플릿은 구체적인 상황에 따라 정의할 수 있다. 또는 소정의 사용 사례 템플릿은 생성하려고 하는 검증 사용 사례의 모든 데이터에 대해 포맷을 정의할 수 있는바, 본 발명의 실시예는 이에 대해 한정하지 않는다.
몇몇의 옵션의 실시예에 있어서, 상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 명령 흐름 템플릿을 포함하는 명령 흐름 템플릿 파일; 상기 검증 사용 사례의 초기화 데이터 템플릿을 포함하는 초기화 데이터 템플릿 파일; 및 상기 검증 사용 사례의 레지스터 구성 템플릿을 포함하는 레지스터 구성 템플릿 파일 중의 적어도 하나를 포함한다.
상기 실시예에 있어서, 사용 사례 생성기(101)는 소정의 사용 사례 템플릿 중의 각각의 템플릿 파일에 기반하여, 검증 사용 사례 중의 기타 데이터를 생성할 수 있다. 사용 사례 생성기(101)는 명령 흐름 템플릿 파일 중의 명령 흐름 템플릿에 기반하여, 당해 명령 흐름 템플릿에 정의된 포맷의 명령 흐름을 생성하고, 초기화 데이터 템플릿 파일 중의 초기화 데이터 템플릿에 기반하여, 당해 초기화 데이터 템플릿에 정의된 포맷의 초기화 데이터를 생성하며, 레지스터 구성 템플릿 파일 중의 레지스터 구성 템플릿에 기반하여, 당해 레지스터 구성 템플릿에 정의된 포맷의 레지스터 구성 데이터를 생성할 수 있다. 사용 사례 생성기(101)는 소정의 사용 사례 템플릿에 의해 정의된 포맷에 기반하여, 검증 대기 대상의 검증 사용 사례를 생성할 수 있다.
예시적으로, 도 2는 소정의 사용 사례 템플릿을 나타낸다. 사용 사례 생성기(101)는 "명령 흐름"의 템플릿 파일에 기반하여 검증 사용 사례 중의 명령 흐름을 생성하고, "이미지/가중치 데이터"의 템플릿 파일 및 초기화 리스트(Initial list)의 템플릿 파일에 기반하여, "이미지/가중치 데이터" 및 "Initial list"데이터 등과 같은 검증 사용 사례 중의 초기화 데이터를 생성하고, 레지스터 구성(Register config)의 템플릿 파일에 기반하여, 검증 사용 사례 중의 레지스터 구성 데이터를 생성할 수 있다.
사용 사례 생성기(101)가 검증 사용 사례를 생성한 후에, 테스트 대기 칩 부품(102)은 검증 사용 사례를 취득하고, 테스트 대기 설계(Design Under Test, DUT)를 통해 당해 검증 사용 사례를 실행하여 테스트 결과를 얻을 수 있다.
몇몇의 예에 있어서, 복수의 테스트 사용 사례를 사용하여 테스트 대기 칩 부품을 테스트할 수 있다. 복수의 테스트 사용 사례에는 복수의 다른 명령 흐름 및/또는 다른 이미지/가중치 데이터가 존재할 수 있다.
몇몇의 옵션의 실시예에 있어서, 도 3에 나타낸바와 같이, 상기 시스템은 환경 드라이버(301)를 더 포함하며, 당해 환경 드라이버(301)는 상기 소정의 사용 사례 템플릿에 기반하여 상기 검증 사용 사례를 상기 테스트 대기 칩 부품(102)으로 구동하여, 상기 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행한다.
상기 실시예에 있어서, 환경 드라이버(301)는 검증 사용 사례 중의 구체적인 데이터를 해석하고, 해석 후의 데이터에 대해 구동을 실행할 수 있다. 예를 들면 환경 드라이버(301)는 검증 사용 사례 중의 명령 흐름, 초기화 데이터 및 레지스터 구성 데이터를 테스트 대기 칩 부품(102)에 송신하고, 및/또는, 이러한 데이터에 기반하여 테스트 대기 칩 부품(102)을 구성함으로써, 테스트 대기 설계를 통해 당해 검증 사용 사례를 실행하도록 한다.
도 2에 나타낸 소정의 사용 사례 템플릿에 기반하여 생성된 검증 사용 사례의 예를 설명한다. 환경 드라이버(301)는 검증 사용 사례 중의 초기화 데이터, 명령 흐름 및 레지스터 구성 데이터를 해석하고, UVM(Universal Verification Methodology, 유니버설 검증 방법론) 중의 Driver구성 요소를 이용하여, 테스트 대기 칩 부품(102)의 네 부분에 대해 구동을 실행할 수 있다.
제1 부분에 있어서, 검증 사용 사례 중의 레지스터 구성 데이터를 이용하여 테스트 대기 설계의 레지스터를 배치한다. 여기서, 레지스터 구성 조작은 AHB(Advanced High performance Bus, 고급 고성능 버스) 및 APB(Advanced Peripheral Bus, 고급 주변 장치 버스 )등 인터페이스 프로토콜에 엄밀하게 따를 필요가 있다.
제2 부분에 있어서, 테스트 대기 설계에 접속된 외부 기억 모델 (예를 들면 vip model)을 초기화한다. 여기서, 외부 기억 모델의 초기화는 vip backdoor기술을 이용하여 외부 기억 모듈에 사용되는 memory 영역을 조작할 필요가 있다.
제3부분에 있어서, 테스트 설계 대기 내부 기억 모델(예를 들면 memory model)을 초기화한다. 여기서, DUT 내부 기억 모델의 초기화는 DUT memory 함수를 캡슐화하고, 내부 공유 저장 공간에 대해 정밀한 주소 기입 조작을 실행할 필요가 있다.
제4부분에 있어서, 검증 사용 사례 중의 명령 흐름에 대해 구동을 실행한다. UVM Driver의 타이밍 특성을 이용하고, 검증 사용 사례 명령 흐름 파일 중의 명령 흐름을 소정의 포맷에 따라 DUT의 명령 인터페이스에 송신한다.
환경 드라이버(301)는 검증 사용 사례의 데이터를 테스트 대기 칩 부품(102)으로 구동하고, 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행한다. 당해 테스트 대기 칩 부품(102)에 포함되어 있는 테스트 대기 설계는 검증 대기의 새로 설계된 완전한 칩일 수도 있고, 검증 대기의 완전한 칩을 구성하는 새로 설계된 특정 부분의 회로 및/또는 코드일 수도 있다. 예를 들면 특정 기능을 완료한 회로 및/또는 코드일 수 있는바, 본 발명은 이에 대해 한정하지 않는다.
테스트 대기 칩 부품(102) 내의 테스트 대기 설계를 통해 검증 사용 사례를 실행한 후에, 검증 사용 사례에 대응하는 테스트 결과를 얻는다. 비교 부품(103)은 테스트 대기 칩 부품(102)으로부터 테스트 대기 설계를 통해 검증 사용 사례를 실행한 후의 테스트 결과를 취득할 수 있다.
몇몇의 옵션의 실시예에 있어서, 상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 출력 결과 템플릿을 포함하는 결과 템플릿 파일을 포함한다. 도 3에 나타낸바와 같이, 상기 시스템은 환경 샘플러(302)를 더 포함하며, 당해 환경 샘플러(302)는 상기 결과 템플릿 파일에 기반하여 상기 테스트 대기 칩 부품(102)으로부터 상기 테스트 결과를 샘플링하고, 샘플링하여 얻은 상기 테스트 결과를 상기 비교 부품(103)에 전송한다.
도 5에 나타낸 소정의 사용 사례 템플릿을 참조하면, 검증 사용 사례의 출력 결과 템플릿을 포함하는 덤프 리스트(Dump list) 템플릿 파일을 결과 템플릿 파일로 사용할 수 있다. 환경 샘플러(302)는 "Dump list"의 템플릿 파일 중의 출력 결과 템플릿에 기반하여, 테스트 대기 칩 부품(102)으로부터 테스트 대기 설계를 샘플링하여 검증 사용 사례를 실행한 후에 테스트 결과를 얻을 수 있다.
예를 들면 환경 샘플러(302)는 UVM중의 Monitor 구성 요소를 이용하여 확장하고, 결과 데이터 dump_data의 샘플링 태스크를 사용자 정의하며, DUT입력/출력 인터페이스의 타이밍 요건을 따라 외부 기억 모델 중의 결과 데이터를 임시 어레이에 샘플링할 수 있다. 그 다음, 결과 템플릿 파일 중의 출력 결과 템플릿의 포맷, 예를 들면 "Dump list"의 템플릿 파일의 포맷에 기반하여, 임시 어레이를 파일에 기억한다. 여기서, 샘플링한 결과 데이터는 AI 네트워크의 네트워크 층 레벨의 연산 결과를 포함하며, 샘플링 조건은 msg 신호 등과 같은 네트워크 층이 종료된 신호다.
여기서, 도 3에 나타낸 AI 칩 검증 시스템 중의 환경 드라이버(301) 및 환경 샘플러(302)는 테스트 대기 칩 부품(102)으로부터 독립되어 있다. 기타 구현 가능한 형태에 있어서, 테스트 대기 칩 부품(102) 내에 환경 드라이버(301) 및 환경 샘플러(302)를 통합할 수 있는바, 본 발명은 이에 대해 구체적으로 한정하지 않는다.
비교 부품(103) 중의 테스트 결과와 비교하기 위한 참고 결과는 비교 부품(103)에 의해 직접 검증 사용 사례로부터 취득한 결과 데이터 또는 검증 사용 사례 참고 모델 부품을 이용하여 검증 사용 사례를 실행하여 얻은 결과 데이터일 수 있다. 여기서, 참고 모델 부품은 검증 대기 AI 칩 또는 테스트 대기 설계의 각 기능을 검증하기 위한 모델이며, 테스트 대기 설계의 DUT의 논리 동작을 시뮬레이트하는 역할을 한다. 예를 들면 System C 코딩 모델을 사용하여 참고 모델 부품을 실현할 수 있다. 당해 참고 모델 부품은 비교를 위한 골든(Golden) 결과를 생성하는 역할을 한다. Golden 결과를 생성할 때에, 환경 샘플러에서 수집된 데이터와의 일관성을 보증할 필요가 있다. 몇몇의 구현 가능한 형태에 있어서, 참고 모델 부품은 별도의 하나의 구성 요소일 수 있다.
몇몇의 구현 가능한 형태에 있어서, 비교 부품(103)은 환경 샘플러(302)의 테스트 결과 및 당해 검증 사용 사례에 대응하는 참고 결과에 대해 정확성 비교를 실행하는 역할을 하며, 또한 다양한 유형의 결과 데이터의 비교를 지원한다. 예를 들면 DUT 내부 기억 결과 데이터의 비교를 지원하고, 외부 기억 모델 중의 네트워크 결과의 비교를 지원한다. 네트워크의 각 네트워크 층이 종료했을 때에 데이터 비교를 실행할 수 있고, 각각의 층의 데이터 결과를 비교할 수 있다. 검증 사용 사례의 실행이 종료되었을 때에, 모든 네트워크 층의 데이터 결과를 비교할 수 있다. 따라서, 개발자는 당해 검증 결과에 기반하여 현재 검증하는 테스트 대기 설계를 목표로 변경할 수 있다.
본 발명의 실시예에 있어서, 포맷이 사전에 정의된 소정의 사용 사례 템플릿을 통해 검증 사용 사례를 생성함으로써, 서로 다른 타입의 뉴럴 네트워크에 대응하는 검증 대기 대상에 의해 생성된 검증 사용 사례가 통일된 포맷을 가지므로, 본 발명의 실시예에 의해 제공되는 AI 칩 검증 시스템이 다양한 타입의 뉴럴 네트워크를 검증할 수 있도록 할 수 있다.
몇몇의 옵션의 실시예에 있어서, 도 5에 나타낸바와 같이, 본 발명의 다른 일 실시예는 AI 칩 검증 시스템을 제공하는바, 당해 시스템 중의 사용 사례 생성기(101)는 방향 생성기(401)을 포함한다. 방향 생성기(401)는 검증 대기 대상의 파라미터 파일을 취득하고, 검증 대기 대상의 파라미터 파일에 포함되어 있는 검증 대기 대상의 대상 파라미터를 해석하여 검증 대기 대상의 검증 사용 사례를 생성한다. 여기서, 파라미터 파일 중의 대상 파라미터는 검증 대기 대상의 검증 사용 사례를 생성할 때에 방향 생성기(401)가 필요로 하는 파라미터다. 예를 들면 파라미터 파일은 고정 소수점 파라미터 파일 또는 네트워크 구성 파일 중의 하나 또는 복수일 수도 있고, 또한 대상 파라미터를 포함하는 다른 파라미터 파일일 수도 있는바, 본 발명의 실시예는 이에 대해 한정하지 않는다.
파라미터 파일이 고정 소수점 파라미터 파일 및 네트워크 구성 파일과 같은 두개의 파일을 포함하는 예를 들면, 방향 생성기(401)는 검증 대기 대상의 고정 소수점 파라미터 파일 및 네트워크 구성 파일을 취득하고, 두 파일에 포함되어 있는 대상 파라미터를 해석하며, 대상 파라미터에 기반하여 검증 대기 대상의 검증 사용 사례를 생성할 수 있다.
구체적으로, 프로그래밍 언어가 C++인 예를 들어 설명한다. 방향 생성기(401)는 뉴럴 네트워크 모델의 고정 소수점 파라미터 파일 및 네트워크 구성 파일을 해석하고, 해석하여 얻은 대상 파라미터에 기반하여 Printf 함수를 호출하여 명령 흐름을 생성한다. 방향 생성기(401)는 생성된 명령 흐름에 기반하여, 소정의 사용 사례 템플릿 중의 명령 흐름 템플릿에 의해 정의된 포맷을 따라 검증 사용 사례의 명령 흐름을 생성하고, 또한, 소정의 사용 사례 템플릿 중의 기타 템플릿 파일에 기반하여 검증 사용 사례 중의 다른 데이터를 생성함으로써, 완전한 검증 사용 사례를 얻는다. 환경 드라이버(301, 도 5에 나타내지 않음)를 이용하여 검증 사용 사례의 데이터를 테스트 대기 칩 부품(102)으로 구동하고, 테스트 대기 설계의 DUT를 통해 검증 사용 사례를 실행한다. 환경 샘플러(302, 도 5에 나타내지 않음)을 이용하여 검증 사용 사례에 대응하는 테스트 결과를 샘플링할 수 있다. 관련된 구체적인 과정은 전술한 실시예 중의 관련된 설명과 같으므로, 여기서는 반복적으로 설명하지 않는다.
본 발명의 실시예에 있어서, 방향 생성기(401)에 의해 생성된 검증 사용 사례에는 당해 검증 사용 사례의 참고 결과가 포함될 수 있다. 이에 따라 소정의 사용 사례 템플릿은 참고 결과 파일을 포함하며, 검증 사용 사례의 참고 결과를 포함한다. 도 4에 나타낸 소정의 사용 사례 템플릿의 예를 들면, 여기서 "층 레벨 데이터"의 템플릿 파일은 참고 결과 파일로 사용될 수 있으며, 방향 생성기(401)에 의해 생성된 당해 검증 사용 사례의 참고 결과를 포함한다. 이렇게 함으로써, 비교 부품(103)은 직접 검증 사용 사례로부터 참고 결과를 취득하고, 참고 결과와 테스트 대기 칩 부품(102)으로부터 얻은 테스트 결과를 비교할 수 있다.
구현 가능한 다른 일 형태에 있어서, 방향 생성기(401)는 검증 사용 사례를 생성할 때에, 당해 검증 사용 사례의 참고 결과를 생성하는지에 관계 없이, 모두 참고 모델 부품을 이용하여 당해 검증 사용 사례를 실행하여 참고 결과를 얻을 수 있으며, 참고 모델 부품을 통해 참고 결과를 비교 부품(103)에 전송한다. 여기서, 참고 모델 부품은 검증 대기 칩 또는 테스트 대기 설계의 각 기능을 검증하는 모델이며, 테스트 대기 설계의 DUT의 논리 동작을 시뮬레이트하는 역할을 한다.
본 실시예의 AI 칩 검증 방법에 따르면, 비교 부품이 검증 사용 사례로부터 당해 검증 사용 사례의 참고 결과를 직접 취득할 수 있으므로, 참고 모델 부품을 이용하여 검증 사용 사례를 실행할 필요가 없어지기에, 비교 장치의 실행 효율을 향상시켰고, 테스트 대기 설계에 대한 검증 효율을 향상시켰다.
몇몇의 옵션의 실시예에 있어서, 방향 생성기(401)는 뉴럴 네트워크 모델 중의 특정 층 또는 복수의 특정 층을 검증 대기 대상으로 설정하는 검증 사용 사례를 생성할 수 있다. 예를 들면 합성곱 뉴럴 네트워크 모델 중의 특정 합성곱 층을 검증 대기 대상으로 설정하는 검증 사용 사례를 생성할 수 있다. 뉴럴 네트워크 모델 중의 특정 층 또는 복수의 특정 층을 검증 대기 대상으로 설정하는 것을 층 레벨 검증 대상이라고 부를 수 있다.
도 5에 나타낸 AI 칩 검증 시스템의 예를 들면, 층 레벨 검증을 지원할 때에, 방향 생성기(401)는 뉴럴 네트워크 모델 중의 목표 네트워크 층에 대응하는 파라미터 파일을 해석하고, 소정의 사용 사례 템플릿에 의해 정의된 포맷에 기반하여 목표 네트워크 층을 층 레벨 검증 대상으로 설정하는 검증 사용 사례를 생성할 수 있다. 여기서, 목표 네트워크 층은 뉴럴 네트워크 모델 중의 검증 대기의 하나 또는 복수의 네트워크 층일 수 있는바, 예를 들면 하나의 합성곱 층, 풀링 층 또는 복수의 합성곱 층, 복수의 완전 접속 층 등일 수 있다.
구체적으로, 예를 들면 합성곱 뉴럴 네트워크 모델 중의 특정 합성곱 층을 검증함으로써, 테스트 대기 설계를 통해 당해 합성곱 층의 연산을 실행 가능한지 여부를 테스트한다. 본 발명의 실시예에 있어서, 방향 생성기(401)는 당해 뉴럴 네트워크 모델 중의 당해 합성곱 층에 대응하는 고정 소수점 파라미터 파일 및 네트워크 구성 파일을 해석하고, 소정의 사용 사례 템플릿에 의해 정의된 포맷에 기반하여 당해 합성곱 층을 층 레벨 검증 대상으로 설정하는 검증 사용 사례를 생성한다.
본 발명의 실시예에 있어서, 방향 생성기(401)는 또한 특정 완전 뉴럴 네트워크 모델을 검증 대기 대상으로 설정하는 검증 사용 사례를 생성할 수 있다. 예를 들면 합성곱 뉴럴 네트워크 모델에 대응하는 검증 사용 사례를 생성할 수 있다. 이렇게 뉴럴 네트워크 모델의 전체를 검증 대기 대상으로 설정하는 것을 네트워크 레벨 검증 대상이라고 부를 수 있다.
구체적으로, 예를 들면 이미지 식별을 위한 합성곱 뉴럴 네트워크 모델을 검증함으로써, 테스트 대기 설계를 통해 당해 합성곱 뉴럴 네트워크 모델 중의 연산을 완전히 실행 가능한지 여부를 테스트할 수 있다. 본 발명의 실시예에 있어서, 방향 생성기(401)는 당해 합성곱 뉴럴 네트워크 모델에 대응하는 고정 소수점 파라미터 파일 및 네트워크 구성 파일에 해석하고, 소정의 사용 사례 템플릿에 의해 정의된 포맷에 기반하여, 당해 합성곱 뉴럴 네트워크 모델을 네트워크 레벨 검증 대상으로 설정하는 검증 사용 사례를 생성한다.
본 발명의 실시예에 의해 제공되는 AI 칩 검증 방법에 따르면, 뉴럴 네트워크 모델의 층 레벨을 검증할 수 있고, 더 뉴럴 네트워크 모델의 전체를 검증할 수 있으며, 테스트 대기 설계의 뉴럴 네트워크에 대한 검증의 심도 및 유연성을 향상시켰다. 따라서, 칩 개발에서 발생한 하자(Bug)를 더 정확하게 특정하여 수정함으로써, 칩 검증의 수렴을 스피드 업할 수 있다.
몇몇의 옵션의 실시예에 있어서, 도 6에 나타낸바와 같이, 본 발명의 또 다른 일 실시예는 AI 칩 검증 시스템을 제공하는바, 당해 시스템에서는 사용 사례 생성기(101)는 랜덤 생성기(501)를 포함하고, 검증 사용 사례와 비교 장치(103) 사이에 참고 모델 부품(502)을 더 포함한다. 여기서, 참고 모델 부품(502)은 검증 대기 AI 칩 또는 테스트 대기 설계의 각 기능을 검증하는 모델이며, 테스트 대기 설계의 DUT의 논리 동작을 시뮬레이트하는 역할을 한다. 예를 들면 System C 코딩 모델을 이용하여 실현되어, 비교를 위한 Golden 결과를 생성하는 역할을 한다. Golden 결과를 생성할 때에 환경 샘플러에 의해 수집되는 데이터와의 일관성을 보증할 필요가 있다.
본 실시예에 있어서, 랜덤 생성기(501)는 검증 대기 대상의 구성 파일을 취득하고, 구성 파일 중의 파라미터에 기반하여 랜덤화 기술을 이용하여 검증 대기 대상의 대상 파라미터를 생성하고, 랜덤하게 생성된 대상 파라미터를 이용하여 검증 사용 사례를 생성한다. 여기서, 구성 파일은 검증자가 검증 대기의 테스트 대기 설계에 대해 구성한 파일이며, 예를 들면 검증자는 Excel 등의 테이블 툴을 이용하여, 파라미터 구성의 테이블 파일을 생성할 수 있다. 도 7은 테이블 구성 파일을 나타낸다.
랜덤 생성기(501)는 구성 파일을 해석하고, 구성 파일의 파라미터를 이용하고 검증 대기 대상의 대상 파라미터를 랜덤하게 생성하고, 및/또는, 대상 파라미터의 수치를 변경할 수 있다. 예를 들면 System Verilog 언어의 random constraint기술을 이용하여, 소스 피연산자 범위, 소스 피연산 함수 주소, 목표 피연산자 범위, 목표 피연산 함수 주소 및 연산자의 계산 파라미터 등을 랜덤하게 생성할 수 있다. 도 7에 예시한 구성 파일의 예를 들면, 랜덤 생성기(501)는 테이블 구성 파일 중의 case-1 내의 n개의 파라미터를 해석하고, random constraint기술을 이용하여 이러한 n개의 파라미터 중의 일부의 파라미터 및/또는 이 부분의 파라미터 수치를 랜덤하게 생성할 수 있다. 여기서, "일부의 파라미터"는 n개의 파라미터 중의 하나일 수도 있고, n개의 파라미터 중의 복수일 수도 있는바, 본 발명의 실시예는 이에 대해 한정하지 않는다. 랜덤화를 거친 후에, case-1과 다른 복수 그룹의 파라미터 및/또는 파라미터 값을 얻어 검증 대기 대상의 대상 파라미터로 사용할 수 있으며, 랜덤 생성기(501)는 이러한 랜덤하게 생성한 대상 파라미터 및/또는 파라미터 값에 기반하여 검증 사용 사례를 생성할 수 있다.
도 7은 검증자가 검증 대기의 뉴럴 네트워크 모델 및 테스트 대기 설계에 대해 구성한 테이블 구성 파일을 나타내는바, 당해 구성 파일은 복수의 특정 검증 사용 사례를 생성하는 파라미터 및/또는 파라미터 값을 포함한다. 예를 들면 일련 번호 1이 위치하는 행은 param-1-1····param-1-n과 같은 case-1의 n개의 파라미터를 포함하고, 이에 따라 case-2, case-3······case-n등은 모두 n개의 파라미터로 구성된다. 각 case 중의 n개의 구성 파라미터 및 그 파라미터 값은 당해 case의 하나의 특정 검증 사용 사례에 대응한다. 랜덤 생성기(501)는 랜덤화 기술을 이용하여, 특정 검증 사용 사례를 기반으로 커버 범위가 상대적으로 넓은 검증 사용 사례를 생성할 수 있다.
랜덤 생성기(501)는 검증 사용 사례를 생성하는 과정에서 랜덤 기술을 사용하여 검증 대기 대상의 대상 파라미터 및/또는 파라미터의 수치를 생성하기 때문에, 생성된 검증 사용 사례의 참고 결과가 불분명하다. 따라서, 본 발명의 실시예에 있어서, 도 6에 나타낸 AI 칩 검증 시스템은 참고 모델 부품(502)을 포함한다. 여기서, 참고 모델 부품(502)은 랜덤 생성기(501)이 생성한 검증 사용 사례를 실행함으로써, 당해 검증 사용 사례의 참고 결과를 얻는다. 참고 모델 부품(502)은 검증 대기 칩 또는 테스트 대기 설계의 각 기능을 검증하는 모델이며, 테스트 대기 설계의 DUT의 논리 동작을 시뮬레이트하는 역할을 한다. 예를 들면 System C 코딩 모델을 이용하여 실현되며, 비교를 위한 Golden 결과를 생성하는 역할을 한다. Golden 결과를 생성할 때에 환경 샘플러에 의해 수집되는 데이터와의 일관성을 보증할 필요가 있다. 서로 다른 테스트 대기 칩 부품(102)에 대해, 서로 다른 참고 모델 부품(502)이 있을 수 있다.
상기 실시예에 있어서, 랜덤 생성기(501)는 구성 파일에 기반하여 특정 검증 사용 사례를 이용하여 랜덤 기술을 이용하여 다른 검증 사용 사례를 생성함으로써, 검증 시나리오가 더 포괄적이도록 하며, 검증의 완전성을 효과적으로 향상시켰다.
도 6에 나타낸 AI 칩 검증 시스템에서는 사용 사례 생성기(101)는 랜덤 생성기(501)만을 포함한다. 기타 구현 가능한 형태에 있어서, 사용 사례 생성기(101)는 방향 생성기(401) 및 랜덤 생성기(501)를 동시에 포함할 수 있다. 도 5 및 도 6에 나타낸 AI 칩 검증 시스템은 실시예의 설명을 명확히 하기 위하여, 양자를 각각 나타내며, 어떠한 형식의 한정도 이루지 않는다.
방향 생성기(401)에 의해 생성된 테스트 사용 사례의 경우, 참고 모델 부품(502)을 사용하여 당해 테스트 사용 사례를 실행함으로써, 당해 검증 사용 사례의 참고 결과를 얻을 수도 있고, 참고 모델 부품(502)을 사용하지 않고, 직접 방향 생성기(401)에 의해 생성된 당해 검증 사용 사례의 참고 결과를 사용할 수도 있다.
AI 칩 검증 과정에 있어서, 검증 대기의 테스트 대기 설계를 레벨 1의 DUT 및 레벨 2의 DUT로 분할할 수 있다. 도 8을 참조하면, 레벨 2의 DUT는 레벨 1의 DUT을 기초로 스케줄링 코어가 추가되었다. 여기서, 레벨 1의 DUT는 검증 사용 사례 중의 명령 흐름을 실행할 수 있다. 레벨 2의 DUT 중의 스케줄링 코어는 스케줄링 코어 명령 흐름을 실행함으로써, 검증 사용 사례 중의 명령 흐름에 대해, 수송, 스케줄링, 제어 및 배포를 실행할 수 있으며, 테스트 대기 설계의 유연성을 향상시킬 수 있다.
도 4의 소정의 사용 사례 템플릿을 이용하여 생성한 검증 사용 사례의 예를 든다. 레벨 1의 DUT는 직접 검증 사용 사례 중의 명령 흐름 템플릿 파일에 기반하여 생성된 명령 흐름을 실행하고, 레벨 2의 DUT 중의 스케줄링 코어는 검증 사용 사례 중의 스케줄링 코어 명령 흐름 템플릿 파일에 기반하여 생성된 스케줄링 코어 명령 흐름을 실행함으로써, 당해 검증 사용 사례 중의 명령 흐름에 대해, 수송, 스케줄링, 제어 및 배포를 실행할 수 있다. 이상의 실시예에 의해 제공되는 사용 사례 생성기(랜덤 생성기 및 방향 생성기를 포함함)의 경우, "스케줄링 코어 명령 흐름"을 생성할 수 없기 때문에 대응하는 레벨 1의 DUT의 검증 사용 사례만을 생성할 수 있다.
도 9에 나타낸바와 같이, 본 발명의 또 다른 일 실시예는 AI 칩 검증 시스템을 제공한다. 레벨 2의 DUT에 대응하여, 당해 AI 칩 검증 시스템은 스케줄링 명령 컴파일러(601)을 더 포함한다. 스케줄링 명령 컴파일러(601)는 명령 제어 플로우를 컴파일함으로써, 레벨 2의 DUT 중의 스케줄링 코어에 의해 실행 가능한 스케줄링 코어 명령 흐름을 얻을 수 있다. 여기서, 명령 제어 플로우는 검증 사용 사례 중의 명령 흐름을 제어하기 위한, 특정 프로그래밍 언어로 기술된 명령이다. 예를 들면 스케줄링 명령 컴파일러(601)는 C 언어 코드에 의해 기술된 명령 제어 플로우를 컴파일하고, 레벨 2의 DUT 중의 스케줄링 코어에 의해 실행 가능한 바이너리 어셈블리 파일을 출력하는바, 즉 스케줄링 코어 명령 흐름을 얻는다.
도 9에 나타낸 AI 칩 검증 시스템에 대응하여, 소정의 사용 사례 템플릿은 스케줄링 코어 명령 흐름 템플릿 파일을 포함할 수 있으며, 여기서 당해 파일은 검증 사용 사례의 스케줄링 코어 명령 흐름 템플릿을 포함한다. 스케줄링 명령 컴파일러(601)는 명령 제어 플로우를 컴파일하고, 스케줄링 코어 명령 흐름 템플릿에 의해 정의된 포맷에 기반하여, 검증 사용 사례 중의 스케줄링 코어 명령 흐름을 생성한다. 도 4에 나타낸 소정의 사용 사례 템플릿의 예를 든다. 사용 사례 생성기(101)는 또한, "스케줄링 코어 명령 흐름 템플릿 파일" 이외의 다른 템플릿 파일에 기반하여, 레벨 2의 검증 사용 사례 중의 "스케줄링 코어 명령 흐름" 이외의 다른 데이터를 생성함으로써, 레벨 2의 DUT에 대응하는 완전한 검증 사용 사례를 생성할 수 있다.
본 발명의 실시예 중의 AI 칩 검증 시스템은 레벨 1의 DUT에 대응하는 AI 칩 검증 시스템과 비교하면, 스케줄링 명령 컴파일러(601)만을 추가하였으며, 레벨 1의 DUT에 대한 AI 칩 검증 시스템의 기타 모듈을 재이용했다. 이렇게 함으로써, 칩 검증의 작업량을 감소하고, 테스트 대기 설계에 대한 검증 효율을 향상시켰고, 검증 자원을 절약했다.
몇몇의 옵션의 실시예에 있어서, 도 9에 나타낸바와 같이, 당해 AI 칩 검증 시스템은 테스트 대기 칩 부품(102)에 접속된 성능 통계기(602)를 더 포함한다. 이는 예시적인 AI 칩 검증 시스템의 구체적인 구성에 지나지 않으며, 전술한 도 1, 도 3, 도 5 또는 도 6에 기재된 레벨 1의 DUT를 검증하는 시스템에 성능 통계기(602)를 추가하여 얻은 구성 등과 같은 구성 형식일 수 있음을 이해할 수 있다. 본 발명의 실시예에 있어서, 성능 통계기(602)는 테스트 대기 칩 부품(102)으로부터 테스트 대기 설계를 취득하여 검증 사용 사례의 성능 파라미터를 실행하고, 얻은 성능 파라미터에 기반하여 성능 통계를 실행한다.
몇몇의 구현 가능한 형태에 있어서, 성능 통계기(602)는 테스트 대기 설계를 통해 검증 사용 사례를 실행하는 시간을 통계할 수 있다. 예를 들면 성능 통계기(602)는 리셋 신호에 의해 트리거 되는바, 예를 들면 리셋 신호가 저레벨로부터 고레벨에 변화되는 것을 시작 점으로 뉴럴 네트워크 모델의 각 층(layer)의 연산 시간을 통계하거나, 뉴럴 네트워크 모델의 전체 실행 시간을 통계할 수 있다.
예를 들면 테스트 대기 설계를 통해 실행하는 검증 사용 사례가 층 레벨 검증 대상의 검증 사용 사례일 경우, 성능 통계기(602)는 뉴럴 네트워크 모델 중의 검증 사용 사례에 대응하는 네트워크 층이 테스트 대기 설계를 통해 실행되는 시간을 통계할 수 있는바, 예를 들면 합성곱 층의 테스트 대기 설계에 있어서의 연산 시간을 통계할 수 있다. 예를 들면 테스트 대기 설계를 통해 실행하는 검증 사용 사례가 뉴럴 네트워크 모델 전체적으로 대응하는 검증 사용 사례일 경우, 성능 통계기(602)는 테스트 대기 설계의 연산 뉴럴 네트워크 모델 전체에 있어서의 시간을 통계할 수 있고, 예를 들면 합성곱 뉴럴 네트워크 모델의 전체 테스트 대기 설계에 있어서의 연산 시간을 통계할 수 있다.
몇몇의 구현 가능한 형태에 있어서, 성능 통계기(602)는 또한, 테스트 대기 설계의 실제 대역폭을 통계할 수 있다. 구체적으로, 성능 통계기(602)는 통계 테스트 대기 설계 중의 모든 인터페이스의 판독 및 기입 데이터 량을 통계하고, 통계한 테스트 대기 설계에 대응하는 당해 판독 및 기입 데이터 량의 연산 시간을 조합하여 테스트 대기 설계의 실제 대역폭을 계산할 수 있는바, 예를 들면 테스트 대기 설계의 AHB 및 APB의 버스의 대역폭을 계산할 수 있다. 예를 들면 테스트 대기 설계를 통해 실행하지만 층 레벨에 대한 레벨 검증 사용 사례일 경우, 성능 통계기(602)는 테스트 대기 설계를 통해 뉴럴 네트워크 모델에 대응하는 네트워크 층을 실행하는 실제의 대역폭을 계산할 수 있다. 예를 들면 테스트 대기 설계를 통해 합성곱 층의 검증 사용 사례를 실행하는 실제의 대역폭을 계산할 수 있다. 예를 들면 테스트 대기 설계를 통해 실행하지만 네트워크 레벨에 대한 검증 사용 사례일 경우, 성능 통계기(602)는 계산 테스트 대기 설계를 통해 뉴럴 네트워크 모델 전체를 실행하는 실제의 대역폭을 계산할 수 있다. 예를 들면 테스트 대기 설계를 통해 합성곱 뉴럴 네트워크 전체를 실행하는 실제의 대역폭을 계산할 수 있다.
상기 실시예에 있어서는 AI 칩 검증 시스템에 성능 통계기를 추가하고, 테스트 대기 설계를 통해 검증 사용 사례를 실행하는 시간 및 대역폭 등의 성능 파라미터를 통계할 수 있다. 또한, 성능 통계기는 테스트 대기 설계를 통해 뉴럴 네트워크 모델의 층 레벨의 검증 사용 사례를 실행하는 연산 시간 및 대역폭을 통계할 수 있고, 또한 테스트 대기 설계를 통해 뉴럴 네트워크 모델 전체의 네트워크 레벨의 검증 사용 사례를 실행하는 연산 시간 및 대역폭을 통계할 수 있기에, 테스트 대기 설계에 대한 검증의 성능 통계를 강화했다.
상기 실시예에 있어서, AI 칩 검증 시스템은 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합에 의해 전체적 또는 부분적으로 구현될 수 있다. 예를 들면 상기의 각 부품의 기능에 대응하는 코드는 SystemVerilog 언어로 구현할 수 있고, 코드를 서버의 메모리에 기억할 수 있다. 테스트 대기 칩 부품을 검증할 때에, 서버의 프로세서에서 당해 코드를 실행시킴으로써, 테스트 대기 칩 부품을 검증할 수 있다. 또한, 예를 들면 상기의 각 부품은 하나 또는 복수의 특정 용도 대상 집적 회로(ASIC), 디지털 신호 프로세서(DSP), 프로그래밍 가능 논리 장치(PLD), 프로그래머블 로직 디바이스(FPGA), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 또는 기타 전자 부품 등과 같은 회로의 형태로 구현할 수 있다. 또한, 예를 들면 소프트웨어에서 구현할 때에 전체적 또는 부분적으로 컴퓨터 프로그램 제품의 형태로 구현할 수 있다.
몇몇의 옵션의 실시예에 있어서, 도 10에 나타낸바와 같이, 본 발명의 실시예는 AI 칩 검증 방법을 나타낸다. 본 발명의 실시예 제공의 AI 칩 검증 방법 또는 AI 칩 검증 시스템은 AI 칩 검증을 실행하는 서버, 단말 디바이스 또는 다른 타입의 전자 디바이스에 적용될 수 있다. 도 10에 나타낸 AI 칩 검증의 흐름은 이하의 단계를 포함할 수 있다.
단계 101에 있어서, 검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성하되, 여기서, 상기 검증 사용 사례는 상기 소정의 사용 사례 템플릿에 의해 정의된 포맷을 충족시키고, 상기 검증 대기 대상은 뉴럴 네트워크 모델 중의 목표 연산자 또는 뉴럴 네트워크 모델을 포함한다.
본 단계에 있어서, 검증 대기 대상의 정보를 해석하여 당해 검증 대상의 검증 사용 사례를 생성하기 위한 파라미터를 얻는다. 여기서, 검증 대기 대상은 뉴럴 네트워크 모델 중의 연산자 또는 뉴럴 네트워크 모델의 전체일 수 있다. 검증 대기 대상의 정보는 고정 소수점 파라미터 파일 및 네트워크 구성 파일에 포함되어 있는 파라미터 정보일 수도 있고 또는 당해 검증 대상에 대응하는 구성 파일 중의 파라미터 정보일 수도 있다.
검증 대상의 검증 사용 사례를 생성하기 위한 파라미터를 얻은 후에, 생성된 파라미터 및 소정의 사용 사례 템플릿에 의해 정의된 포맷에 기반하여, 검증 대기 대상의 검증 사용 사례를 생성한다. 여기서, 소정의 사용 사례 템플릿은 생성하려고 하는 검증 사용 사례 중의 데이터의 포맷을 정의하는바, 구체적인 설명은 검증 시스템의 일부 실시예의 관련된 설명을 참조할 수 있다.
몇몇의 구현 가능한 형태에 있어서, 검증 대기 대상의 파라미터 파일을 취득하고, 검증 대기 대상의 파라미터 파일에 포함되어 있는 대상 파라미터를 해석하여 검증 대기 대상의 검증 사용 사례를 생성할 수 있다. 여기서, 관련된 설명은 검증 시스템 실시예의 관련된 일부의 설명을 참조할 수 있다. 이러한 실시 형태에 있어서, 검증 사용 사례 중에 대응하는 참고 결과를 생성함으로써, 참고 모델 부품을 이용하여 검증 사용 사례를 실행하고 있을 수 있는 필요가 없어지기에, 테스트 대기 설계에 대한 검증의 효율을 향상시켰다. 또한, 뉴럴 네트워크 모델의 층 레벨을 검증할 수 있고, 뉴럴 네트워크 모델 전체를 검증할 수 있으며, 테스트 대기 설계의 뉴럴 네트워크에 대한 검증의 심도 및 유연성을 개선했다.
다른 구현 가능한 형태에 있어서, 검증 대기 대상의 구성 파일을 취득하고, 구성 파일 중의 파라미터에 기반하여 랜덤화 기술을 이용하여 검증 대기 대상의 대상 파라미터를 랜덤하게 생성하며, 랜덤하게 생성된 대상 파라미터를 이용하여 검증 사용 사례를 생성할 수 있다. 관련된 구체적인 설명은 마찬가지로 본 발명의 검증 시스템의 실시예의 관련된 부분의 설명을 참조할 수 있다. 당해 실시 형태에 있어서, 특정 검증 사용 사례에 기반하여 랜덤 기술을 이용하여 다른 검증 사용 사례를 생성함으로써, 검증 시나리오가 더 포괄적이도록 하며, 검증의 완전성을 효과적으로 향상시켰다.
단계 102에 있어서, 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하여 테스트 결과를 얻는다.
검증 대기 대상의 검증 사용 사례를 생성한 후에, 테스트 대기 설계를 통해 당해 검증 사용 사례를 실행하고, 실행 후의 테스트 결과를 얻을 수 있다. 여기서, 테스트 대기 설계는 테스트 대기 칩 부품에 포함될 수 있고, 또한 소정의 사용 사례 템플릿에 기반하여 환경 드라이버를 이용하여 검증 사용 사례의 데이터를 테스트 대기 칩 부품으로 구동하고, 테스트 대기 설계를 통해 실행될 수 있다. 테스트 대기 설계를 통해 검증 사용 사례를 실행한 후에, 환경 샘플러를 이용하여 테스트 대기 칩 부품으로 당해 검증 사용 사례를 실행한 후의 테스트 결과를 샘플링할 수 있다. 관련된 설명은 본 발명의 검증 시스템의 실시예의 관련된 설명과 같으므로, 여기서는 반복적으로 설명하지 않는다.
단계 103에 있어서, 상기 테스트 결과와 상기 검증 사용 사례에 대응하는 참고 결과를 비교하여 상기 테스트 대기 설계의 상기 검증 대기 대상에 대한 검증 결과를 얻는다.
본 단계에 있어서 검증 사용 사례의 테스트 결과와 비교하기 위한 참고 결과는 검증 사용 사례에 이미 존재하는 결과 데이터일 수도 있고, 또는 참고 모델 부품을 이용하여 검증 사용 사례를 실행하여 얻은 결과 데이터일 수도 있다. 여기서, 참고 모델 부품은 검증 대기 AI 칩 또는 테스트 대기 설계의 각 기능을 검증하는 모델이며, 테스트 대기 설계의 DUT의 논리 동작을 시뮬레이트하는 역할을 한다.
본 발명의 실시예에 있어서, 소정의 사용 사례 템플릿을 이용하여 검증 사용 사례의 포맷을 사전에 정의하므로, 서로 다른 타입의 뉴럴 네트워크에 대응하는 검증 대기 대상에 의해 생성된 검증 사용 사례가 통일된 포맷을 가지므로, 당해 AI 칩 검증 방법은 다양한 타입의 뉴럴 네트워크를 검증할 수 있다.
몇몇의 옵션의 실시예에 있어서, 명령 제어 플로우를 컴파일하여, 레벨 2의 DUT 중의 스케줄링 코어에 의해 실행 가능한 스케줄링 코어 명령 흐름을 얻을 수 있다. 대응하는 소정의 사용 사례 템플릿은 스케줄링 코어 명령 흐름 템플릿 파일을 포함하며, 여기서, 당해 파일은 검증 사용 사례의 스케줄링 코어 명령 흐름 템플릿을 포함한다.
구체적으로, 명령 제어 플로우를 컴파일하고, 스케줄링 코어 명령 흐름 템플릿에 의해 정의된 포맷에 기반하여, 검증 사용 사례 중의 스케줄링 코어 명령 흐름을 생성할 수 있다. 그 다음, "스케줄링 코어 명령 흐름 템플릿 파일" 이외의 기타 템플릿 파일에 기반하여, 레벨 2의 검증 사용 사례 중의 "스케줄링 코어 명령 흐름" 이외의 다른 데이터를 생성함으로써, 레벨 2의 DUT에 대응하는 완전한 검증 사용 사례를 생성할 수 있다. 테스트 대기 설계는 레벨 2의 DUT의 검증 사용 사례에 포함되어 있는 스케줄링 코어 명령 흐름에 기반하여, 당해 검증 사용 사례 중의 명령 흐름에 대해 처리를 실행한다. 레벨 2의 DUT검증 사용 사례를 생성하는 이러한 방법은 레벨 1의 DUT검증 사용 사례를 생성하는 모듈을 재이용할 수 있으므로, 칩 검증의 작업량을 감소하고, 검증 효율을 향상시켰다.
몇몇의 옵션의 실시예에 있어서, 테스트 대기 설계를 통해 검증 사용 사례를 실행하는 성능 파라미터를 취득하고, 얻은 성능 파라미터에 기반하여 성능 통계를 실행할 수 있다. 예를 들면 테스트 대기 설계를 통해 검증 사용 사례를 실행하는 시간을 통계하고, 테스트 대기 설계의 실제 대역폭을 통계할 수 있다. 구체적인 통계 과정은 검증 시스템의 실시예와 관련된 일부의 설명을 참조할 수 있는바, 여기서 반복적으로 설명하지 않는다. 본 실시예의 성능 통계는 테스트 대기 설계를 통해 뉴럴 네트워크 모델의 층 레벨의 검증 사용 사례를 실행하는 연산 시간 및 대역폭을 통계하고, 또한 테스트 대기 설계를 통해 뉴럴 네트워크 모델 전체의 네트워크 레벨의 검증 사용 사례를 실행하는 연산 시간 및 대역폭을 통계할 수 있기에, 테스트 대기 설계에 대한 검증의 성능 통계를 강화했다.
본 발명은 컴퓨터 디바이스를 더 제공하는바, 당해 디바이스는 메모리; 프로세서; 및 메모리에 기억되어 있으며, 프로세서 상에서 실행 가능한 컴퓨터 프로그램을 포함하고, 상기 프로세서에 의해 상기 프로그램이 실행될 때에, 본 발명이 임의의 실시예의 AI 칩 검증 방법을 구현할 수 있다.
본 발명은 컴퓨터 프로그램이 기억되어 있는 컴퓨터 판독 가능 기록 매체를 더 제공하는바, 상기 프로그램이 프로세서에 의해 실행될 때에, 상기 프로세서가 본 발명이 임의의 실시예의 AI 칩 검증 방법을 구현한다.
여기서, 상기 비일시적인 컴퓨터 판독 가능 기록 매체는 ROM, CD-ROM, 자기 테이프, 플로피디스크, 빛 데이터 기억 디바이스 등일 수 있는바, 본 발명은 이에 대해 한정하지 않는다.
본 발명은 컴퓨터 프로그램을 포함하는 컴퓨터 프로그램 제품을 더 제공하는바, 상기 프로그램이 프로세서에 의해 실행될 때에, 본 발명이 임의의 실시예의 AI 칩 검증 방법이 구현된다.
당업자는 명세서를 검토하고 여기에 공개한 발명을 실시한 후에, 본 발명의 다른 실시 형태를 용이하게 생각해낼 수 있다. 본 발명은 본 발명이 임의의 변형, 용도 또는 적응적 변경을 커버함을 의도하고 있으며, 이러한 변형, 용도 또는 적응적 변경은 본 발명의 일반 원칙에 따라 본 발명의 기술 분야에 있어서의 상식 또는 종래의 기술적 수단을 포함한다. 명세서 및 실시예는 예시적인 것으로 간주되어야 하여, 본 발명의 참된 범위 및 사상은 이하의 특허청구의 범위에 의해 지적된다.
본 발명은 상기에 설명되고 도면에 나타낸 정확한 구조에 한정되지 않으며, 그 범위에서 일탈하지 않는 전제 하에서, 다양한 수정 및 변경을 실행할 수 있음을 이해해야 한다. 본 발명의 범위는 첨부된 특허청구의 범위에 의해서만 한정된다.
상기는 본 발명의 상대적으로 바람직한 실시예에 지나지 않으며, 본 발명을 한정하려는 것이 아니다. 본 개시의 사상 및 원칙의 범위 내에서 이루어진 수정, 동등의 치환, 개선 등은 본 발명의 보호 범위에 포함되어야 한다.

Claims (21)

  1. 인공 지능(AI) 칩 검증 시스템에 있어서,
    검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성하기 위한 사용 사례 생성기;
    상기 사용 사례 생성기에 접속하고, 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하여 테스트 결과를 얻기 위한 테스트 대기 칩 부품; 및
    상기 테스트 대기 칩 부품에 접속하고, 상기 테스트 결과와 상기 검증 사용 사례에 대응하는 참고 결과를 비교하여 상기 테스트 대기 설계의 상기 검증 대기 대상에 대한 검증 결과를 얻기 위한 비교 부품을 포함하되,
    상기 검증 사용 사례는 상기 소정의 사용 사례 템플릿에 의해 정의된 포맷을 충족시키고, 상기 검증 대기 대상은 뉴럴 네트워크 모델 중의 목표 연산자 또는 뉴럴 네트워크 모델을 포함하는
    것을 특징으로 하는 AI 칩 검증 시스템.
  2. 제1항에 있어서,
    상기 소정의 사용 사례 템플릿은,
    상기 검증 사용 사례의 명령 흐름 템플릿을 포함하는 명령 흐름 템플릿 파일;
    상기 검증 사용 사례의 초기화 데이터 템플릿을 포함하는 초기화 데이터 템플릿 파일; 및
    상기 검증 사용 사례의 레지스터 구성 템플릿을 포함하는 레지스터 구성 템플릿 파일 중의 적어도 하나를 포함하는
    것을 특징으로 하는 AI 칩 검증 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 사용 사례 생성기 및 상기 테스트 대기 칩 부품에 접속하고, 상기 소정의 사용 사례 템플릿에 기반하여 상기 검증 사용 사례를 상기 테스트 대기 칩 부품으로 구동함으로써, 상기 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하기 위한 환경 드라이버를 더 포함하는
    것을 특징으로 하는 AI 칩 검증 시스템.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 출력 결과 템플릿을 포함하는 결과 템플릿 파일을 포함하고,
    상기 AI 칩 검증 시스템은 상기 테스트 대기 칩 부품 및 상기 비교 부품에 접속하고, 상기 결과 템플릿 파일에 기반하여 상기 테스트 대기 칩 부품으로 상기 테스트 결과를 샘플링하고, 샘플링하여 얻은 상기 테스트 결과를 상기 비교 부품에 전송하기 위한 환경 샘플러를 더 포함하는
    것을 특징으로 하는 AI 칩 검증 시스템.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 사용 사례 생성기는,
    상기 검증 대기 대상의 파라미터 파일을 취득하고, 상기 검증 대기 대상의 상기 파라미터 파일에 포함되어 있는 대상 파라미터를 해석함으로써, 상기 검증 대기 대상의 상기 검증 사용 사례를 생성하기 위한 방향 생성기를 포함하는
    것을 특징으로 하는 AI 칩 검증 시스템.
  6. 제5항에 있어서,
    상기 파라미터 파일은 고정 소수점 파라미터 파일 및 네트워크 구성 파일을 포함하는
    것을 특징으로 하는 AI 칩 검증 시스템.
  7. 제5항 또는 제6항에 있어서,
    상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례에 대응하는 참고 결과를 포함하는 참고 결과 파일을 포함하고,
    상기 비교 부품이 비교할 때 이용한 상기 참고 결과는 상기 소정의 사용 사례 템플릿으로부터 취득한 것인
    것을 특징으로 하는 AI 칩 검증 시스템.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 사용 사례 생성기는,
    상기 검증 대기 대상의 구성 파일을 취득하고, 상기 구성 파일에 기반하여 검증 대기 대상의 대상 파라미터를 랜덤하게 생성하며, 생성된 상기 대상 파라미터에 기반하여 상기 검증 대기 대상의 상기 검증 사용 사례를 생성하기 위한 랜덤 생성기를 포함하는
    것을 특징으로 하는 AI 칩 검증 시스템.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 사용 사례 생성기 및 상기 비교 부품에 접속하고, 상기 사용 사례 생성기가 생성한 상기 검증 사용 사례를 실행함으로써, 상기 검증 사용 사례에 대응하는 참고 결과를 얻기 위한 참고 모델 부품을 더 포함하는
    것을 특징으로 하는 AI 칩 검증 시스템.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 스케줄링 코어 명령 흐름 템플릿을 포함하는 스케줄링 코어 명령 흐름 템플릿 파일을 포함하고,
    상기 AI 칩 검증 시스템은, 상기 사용 사례 생성기, 상기 테스트 대기 칩 부품 및 상기 비교 부품에 접속하고, 상기 스케줄링 코어 명령 흐름 템플릿 파일에 기반하여, 상기 테스트 대기 설계의 스케줄링 코어 명령 흐름을 생성하기 위한 스케줄링 명령 컴파일러를 더 포함하되,
    상기 테스트 대기 설계의 스케줄링 코어 명령 흐름은 상기 검증 사용 사례 중에 포함되어 있고,
    상기 테스트 대기 설계는 상기 검증 사용 사례 중의 상기 스케줄링 코어 명령 흐름에 기반하여 상기 검증 사용 사례 중의 명령 흐름에 대해 처리를 실행하는
    것을 특징으로 하는 AI 칩 검증 시스템.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 테스트 대기 칩 부품에 접속하고, 상기 테스트 대기 설계의 상기 검증 사용 사례를 실행하는 성능 파라미터를 취득하며, 상기 성능 파라미터에 기반하여 성능 통계 결과를 얻기 위한 성능 통계기를 더 포함하는
    것을 특징으로 하는 AI 칩 검증 시스템.
  12. AI 칩 검증 방법에 있어서,
    검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성하는 것;
    테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하여 테스트 결과를 얻는 것; 및
    상기 테스트 결과와 상기 검증 사용 사례에 대응하는 참고 결과를 비교하여 상기 테스트 대기 설계의 상기 검증 대기 대상에 대한 검증 결과를 얻는 것을 포함하고,
    상기 검증 사용 사례는 상기 소정의 사용 사례 템플릿에 의해 정의된 포맷을 충족시키고, 상기 검증 대기 대상은 뉴럴 네트워크 모델 중의 목표 연산자 또는 뉴럴 네트워크 모델을 포함하는
    것을 특징으로 하는 AI 칩 검증 방법.
  13. 제12항에 있어서,
    상기 소정의 사용 사례 템플릿은,
    상기 검증 사용 사례의 명령 흐름 템플릿을 포함하는 명령 흐름 템플릿 파일;
    상기 검증 사용 사례의 초기화 데이터 템플릿을 포함하는 초기화 데이터 템플릿 파일; 및
    상기 검증 사용 사례의 레지스터 구성 템플릿을 포함하는 레지스터 구성 템플릿 파일 중의 적어도 하나를 포함하는
    것을 특징으로 하는 AI 칩 검증 방법.
  14. 제12항 또는 제13항에 있어서,
    상기 검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성한 후에,
    상기 소정의 사용 사례 템플릿에 포함되어 있는 적어도 하나의 템플릿 파일에 기반하여, 상기 검증 사용 사례를 상기 테스트 대기 칩 부품으로 구동함으로써, 상기 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하는 것을 더 포함하는
    것을 특징으로 하는 AI 칩 검증 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 출력 결과 템플릿을 포함하는 결과 템플릿 파일을 포함하고,
    상기 테스트 대기 설계를 통해 상기 검증 사용 사례를 실행하여 테스트 결과를 얻은 후에,
    상기 결과 템플릿 파일에 기반하여 상기 테스트 대기 칩 부품으로 상기 테스트 결과를 샘플링하고, 샘플링하여 얻은 상기 테스트 결과를 상기 비교 부품에 전송하는 것을 더 포함하는
    것을 특징으로 하는 AI 칩 검증 방법.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서,
    상기 검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성하는 것은,
    상기 검증 대기 대상의 파라미터 파일을 취득하고, 상기 검증 대기 대상의 상기 파라미터 파일에 포함되어 있는 대상 파라미터를 해석함으로써, 상기 검증 대기 대상의 상기 검증 사용 사례를 생성하는 것을 포함하는
    것을 특징으로 하는 AI 칩 검증 방법.
  17. 제16항에 있어서,
    상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 참고 결과를 포함하는 참고 결과 파일을 포함하는
    것을 특징으로 하는 AI 칩 검증 방법.
  18. 제12항 내지 제17항 중 어느 한 항에 있어서,
    상기 검증 대기 대상의 정보 및 소정의 사용 사례 템플릿에 기반하여 상기 검증 대기 대상의 검증 사용 사례를 생성하는 것은,
    상기 검증 대기 대상의 구성 파일을 취득하고, 상기 구성 파일에 기반하여 검증 대기 대상의 대상 파라미터를 랜덤하게 생성하며, 생성된 상기 대상 파라미터에 기반하여 상기 검증 대기 대상의 상기 검증 사용 사례를 생성하는 것을 포함하는
    것을 특징으로 하는 AI 칩 검증 방법.
  19. 제12항 내지 제18항 중 어느 한 항에 있어서,
    상기 소정의 사용 사례 템플릿은 상기 검증 사용 사례의 스케줄링 코어 명령 흐름 템플릿을 포함하는 스케줄링 코어 명령 흐름 템플릿 파일을 포함하고,
    상기 AI 칩 검증 방법은,
    상기 스케줄링 코어 명령 흐름 템플릿 파일에 기반하여, 상기 테스트 대기 설계의 스케줄링 코어 명령 흐름을 생성하는 것;
    상기 스케줄링 코어 명령 흐름에 기반하여, 상기 검증 대기 대상의 검증 사용 사례를 생성하는 것;
    상기 테스트 대기 설계를 통해, 상기 검증 사용 사례 중의 상기 스케줄링 코어 명령 흐름에 기반하여 상기 검증 사용 사례 중의 명령 흐름에 대해 처리를 실행하는 것을 더 포함하는
    것을 특징으로 하는 AI 칩 검증 방법.
  20. 컴퓨터 디바이스에 있어서,
    메모리; 프로세서; 및 메모리에 기억되어 있으며, 프로세서 상에서 실행 가능한 컴퓨터 프로그램을 포함하고,
    상기 프로세서에 의해 상기 컴퓨터 프로그램이 실행될 때에, 제12항 내지 제19항 중 어느 한 항에 기재된 방법이 실현되는
    것을 특징으로 하는 컴퓨터 디바이스.
  21. 컴퓨터 프로그램이 기억되어 있는 컴퓨터 판독 가능 기록 매체에 있어서,
    상기 컴퓨터 프로그램이 프로세서에 의해 실행될 때에, 상기 프로세서로 하여금 제12항 내지 제19항 중 어느 한 항에 기재된 방법을 실현하도록 하는
    것을 특징으로 하는 컴퓨터 판독 가능 기록 매체.
KR1020217031299A 2020-05-29 2020-09-30 인공 지능 칩 검증 KR20210149045A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202010476115.3A CN113742202A (zh) 2020-05-29 2020-05-29 Ai芯片验证系统、方法、设备及存储介质
CN202010476115.3 2020-05-29
PCT/CN2020/119406 WO2021238006A1 (zh) 2020-05-29 2020-09-30 人工智能芯片验证

Publications (1)

Publication Number Publication Date
KR20210149045A true KR20210149045A (ko) 2021-12-08

Family

ID=78724695

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217031299A KR20210149045A (ko) 2020-05-29 2020-09-30 인공 지능 칩 검증

Country Status (5)

Country Link
JP (1) JP7270764B2 (ko)
KR (1) KR20210149045A (ko)
CN (1) CN113742202A (ko)
TW (1) TWI778473B (ko)
WO (1) WO2021238006A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102662404B1 (ko) * 2023-07-22 2024-04-29 주식회사 플랜터 인공지능 기반 다목적 지능형 반도체 시스템

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302721A (zh) * 2021-12-20 2023-06-23 瑞昱半导体股份有限公司 芯片设计验证系统与方法及计算机可读取记录介质
CN114912413A (zh) * 2022-04-29 2022-08-16 上海阵量智能科技有限公司 芯片验证方法及平台
CN114996076B (zh) * 2022-07-01 2023-02-07 北京联盛德微电子有限责任公司 一种用于芯片仿真的遍历型用例验证方法、系统及电子设备
CN115047323B (zh) * 2022-08-17 2022-10-25 中诚华隆计算机技术有限公司 用于芯片的智能测试方法及系统
CN115794503A (zh) * 2022-09-30 2023-03-14 湖南智存合壹信息科技有限公司 一种基于国产cpu主板的高性能测试装置及方法
CN115495388B (zh) * 2022-11-17 2023-03-10 瀚博半导体(上海)有限公司 用于ai推理芯片的芯片验证方法、装置、设备及介质
CN115879409B (zh) * 2022-12-02 2023-09-19 南京金阵微电子技术有限公司 验证方法、验证装置、介质及电子设备
CN115792580B (zh) * 2023-01-30 2023-05-12 北京怀美科技有限公司 芯片检测系统及可编辑芯片检测系统
CN116431421B (zh) * 2023-06-13 2023-08-29 成都登临科技有限公司 神经网络生成方法及生成器、验证方法及系统、存储介质
CN117034824A (zh) * 2023-08-25 2023-11-10 广州市粤港澳大湾区前沿创新技术研究院 复用测试用例和验证环境的仿真验证系统、方法、终端及介质
CN117056897B (zh) * 2023-10-13 2023-12-26 沐曦集成电路(上海)有限公司 用于芯片验证的配置信息处理方法、电子设备和介质
CN117743194B (zh) * 2024-02-19 2024-05-07 睿思芯科(深圳)技术有限公司 芯片验证用例的自动化生成方法、系统及相关设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200745895A (en) * 2006-06-07 2007-12-16 Powerchip Semiconductor Corp Method and system for virtual metrology prediction and prediction model building in semiconductor manufacture
US20080115114A1 (en) * 2006-11-10 2008-05-15 Sashank Palaparthi Automated software unit testing
CN100389399C (zh) * 2006-11-20 2008-05-21 北京中星微电子有限公司 一种芯片验证的方法及系统
CN102109572B (zh) * 2009-12-23 2014-12-31 中兴通讯股份有限公司 一种传输芯片的测试方法及测试控制方法
CN102402628B (zh) * 2010-09-07 2016-03-09 无锡中感微电子股份有限公司 一种生成SoC验证平台的方法及系统
CN104268078B (zh) * 2014-09-23 2017-03-15 北京控制工程研究所 一种基于参数化ip测试用例集合的芯片自动化验证方法
US10990300B2 (en) * 2018-04-16 2021-04-27 Lexmark International, Inc. Methods for restricting read access to supply chips
US20200042419A1 (en) 2018-07-31 2020-02-06 Alibaba Group Holding Limited System and method for benchmarking ai hardware using synthetic ai model
CN110489344A (zh) * 2019-08-02 2019-11-22 Oppo广东移动通信有限公司 引擎测试方法及相关产品
CN110941519B (zh) * 2019-12-17 2022-12-13 锐捷网络股份有限公司 一种网络设备的芯片测试方法及装置
CN111045880A (zh) 2019-12-17 2020-04-21 湖南长城银河科技有限公司 芯片测试方法、验证系统及存储介质
CN111178512B (zh) 2019-12-31 2023-04-18 中科南京人工智能创新研究院 器件运行神经网络的测试方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102662404B1 (ko) * 2023-07-22 2024-04-29 주식회사 플랜터 인공지능 기반 다목적 지능형 반도체 시스템

Also Published As

Publication number Publication date
CN113742202A (zh) 2021-12-03
WO2021238006A1 (zh) 2021-12-02
JP7270764B2 (ja) 2023-05-10
TW202145046A (zh) 2021-12-01
TWI778473B (zh) 2022-09-21
JP2022537620A (ja) 2022-08-29

Similar Documents

Publication Publication Date Title
JP7270764B2 (ja) 人工知能チップ検証
US7434184B2 (en) Method for detecting flaws in a functional verification plan
WO2007001108A1 (en) System for providing feature-oriented software product line engineering environment
CN106155903B (zh) 用于系统设计验证的装置和方法
US10380283B2 (en) Functional verification with machine learning
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
CN111782207A (zh) 任务流代码生成方法、装置、设备及存储介质
US9619598B2 (en) Input space reduction for verification test set generation
CN112860587B (zh) Ui自动测试方法和装置
Di Natale et al. A Model-based approach for the synthesis of software to firmware adapters for use with automatically generated components
CN116450431A (zh) Cpu参考模型的指令功能测试系统及其方法、计算机设备和存储介质
Kaijser et al. Towards simulation-based verification for continuous integration and delivery
CN116069635A (zh) Soc系统的测试方法、装置、计算机设备及存储介质
CN115562931A (zh) 处理器调试模块验证方法、装置、电子设备和存储介质
CN115034165A (zh) 一种芯片仿真验证方法、系统、设备以及存储介质
US9600613B1 (en) Block-level code coverage in simulation of circuit designs
US10223077B2 (en) Determination of signals for readback from FPGA
CN108334313A (zh) 用于大型soc研发的持续集成方法、装置及代码管理系统
CN114416460A (zh) 分析基带性能的方法和仿真系统
EP3734491A1 (en) Method, apparatus, device, and medium for implementing simulator
US12001771B2 (en) Variant model-based compilation for analog simulation
CN115510782B (zh) 定位验证错误的方法、电子设备和存储介质
CN117331565B (zh) 软件生成方法、装置、计算机设备及存储介质
CN117313650B (zh) 一种芯片测试验证方法及其应用装置
US20230069588A1 (en) Variant model-based compilation for analog simulation

Legal Events

Date Code Title Description
WITB Written withdrawal of application