KR102611162B1 - 데이터 처리 장치 및 관련 제품 - Google Patents

데이터 처리 장치 및 관련 제품 Download PDF

Info

Publication number
KR102611162B1
KR102611162B1 KR1020207036312A KR20207036312A KR102611162B1 KR 102611162 B1 KR102611162 B1 KR 102611162B1 KR 1020207036312 A KR1020207036312 A KR 1020207036312A KR 20207036312 A KR20207036312 A KR 20207036312A KR 102611162 B1 KR102611162 B1 KR 102611162B1
Authority
KR
South Korea
Prior art keywords
descriptor
data
tensor
address
storage space
Prior art date
Application number
KR1020207036312A
Other languages
English (en)
Other versions
KR20200144153A (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
Priority claimed from CN201910272513.0A external-priority patent/CN111782274B/zh
Priority claimed from CN201910272454.7A external-priority patent/CN111783992A/zh
Priority claimed from CN201910319175.1A external-priority patent/CN111831329B/zh
Priority claimed from CN201910694672.XA external-priority patent/CN112306945B/zh
Priority claimed from CN201910735424.5A external-priority patent/CN112347027A/zh
Priority claimed from CN201910735425.XA external-priority patent/CN112347186B/zh
Priority claimed from CN201910734749.1A external-priority patent/CN112347185A/zh
Priority claimed from CN201910735393.3A external-priority patent/CN112347026B/zh
Application filed by 캠브리콘 테크놀로지스 코퍼레이션 리미티드 filed Critical 캠브리콘 테크놀로지스 코퍼레이션 리미티드
Publication of KR20200144153A publication Critical patent/KR20200144153A/ko
Application granted granted Critical
Publication of KR102611162B1 publication Critical patent/KR102611162B1/ko

Links

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3555Indexed addressing using scaling, e.g. multiplication of index
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/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

Abstract

본 발명은 데이터 처리 장치 및 관련 제품에 관한 것으로, 상기 제품은 제어 모듈을 포함하고, 상기 제어 모듈은 명령 캐시 유닛, 명령 처리 유닛 및 저장 큐 유닛을 포함하며; 상기 명령 캐시 유닛은 상기 인공 신경망 연산과 관련된 계산 명령을 저장하고; 상기 명령 처리 유닛은 상기 계산 명령을 해석하여 복수의 연산 명령을 획득하며; 상기 저장 큐 유닛은 명령 큐를 저장하고, 상기 명령 큐는 상기 큐의 선후 순서에 따라 실행할 복수의 연산 명령 또는 계산 명령을 포함한다. 상기 방법을 통해 본 발명은 신경망 모델 연산시 관련 제품의 연산 효율을 향상시킬 수 있다.

Description

데이터 처리 장치 및 관련 제품{DATA PROCESSING APPARATUS AND RELATED PRODUCT}
본 발명은 컴퓨터 기술분야에 관한 것으로, 특히 데이터 처리 장치 및 관련 제품에 관한 것이다.
인공 지능 기술의 지속적인 발전에 따라 처리해야 할 데이터 양과 데이터 차원 모두 지속적으로 증가하고 있다. 관련 기술에서, 프로세서는 일반적으로 명령의 파라미터를 획득하여 데이터 주소를 결정한 후 데이터 주소에 따라 데이터를 판독 및 사용한다. 이를 위해서는 기술자가 파라미터 설계시 데이터 액세스 관련 파라미터(예를 들어, 데이터 간 또는 데이터 차원 간의 상호 관계 등)를 설정하여 명령을 생성하고 이를 프로세서에 전달하여 데이터 액세스를 완료해야 하는데 이러한 방식은 프로세서의 처리 효율을 감소시킨다.
이 점을 고려하여, 본 발명은 데이터 처리의 기술적 해결수단을 제안한다.
본 발명의 일 양태에 따르면, 데이터 처리 장치로서,
제어 유닛 및 실행 유닛을 포함하고, 상기 제어 유닛은 텐서 제어 모듈을 포함하며, 상기 제어 유닛은,
디코딩된 제1 처리 명령의 피연산자가 디스크립터의 식별자를 포함하는 경우, 상기 디스크립터의 식별자에 따라 상기 텐서 제어 모듈을 통해, 텐서의 모양을 지시하기 위한 상기 디스크립터에 대응되는 디스크립터 저장 공간을 결정하고;
상기 디스크립터 저장 공간으로부터 상기 디스크립터의 콘텐츠를 획득하며;
상기 실행 유닛이 상기 디스크립터의 콘텐츠에 따라 상기 제1 처리 명령을 실행하도록, 상기 실행 유닛에 상기 디스크립터의 콘텐츠 및 상기 제1 처리 명령을 송신하도록 구성된 데이터 처리 장치를 제공한다.
본 발명의 다른 양태에 따르면, 상술한 바와 같은 데이터 처리 장치를 포함하는 인공 지능 칩을 제공한다.
본 발명의 다른 양태에 따르면, 상술한 바와 같은 인공 지능 칩을 포함하는 전자 기기를 제공한다.
본 발명의 다른 양태에 따르면, 메모리 소자, 인터페이스 장치, 제어 소자 및 상술한 바와 같은 인공 지능 칩을 포함하고;
상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며;
상기 메모리 소자는 데이터를 저장하고;
상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며;
상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링하는 보드를 제공한다.
본 발명의 실시예에 따른 데이터 처리 장치는 텐서 모양을 지시하는 디스크립터를 도입하고 제어 유닛에 텐서 제어 모듈을 설치한다. 따라서 디코딩된 처리 명령의 피연산자에 디스크립터 식별자가 포함된 경우, 텐서 제어 모듈을 통해 대응되는 디스크립터 저장 공간을 결정하고, 실행 유닛이 디스크립터 콘텐츠에 따라 명령을 실행하도록 상기 공간으로부터 디스크립터 콘텐츠를 획득하여 상기 콘텐츠 및 처리 명령을 실행 유닛에 송신할 수 있다. 이에 따라 데이터 액세스의 복잡성을 감소시키고 데이터 액세스의 효율을 향상시킨다.
본 발명의 다른 특징 및 양태는 아래 첨부된 도면을 참조하여 예시적인 실시예에 대한 상세한 설명을 통해 명확해질 것이다.
명세서에 포함되고 명세서의 일부를 구성하는 도면은 명세서와 함께 본 발명의 예시적인 실시예, 특징 및 양태를 도시하며 본 발명의 원리를 설명하기 위해 사용된다.
도 1a는 본 발명의 일 실시예에 따른 데이터 처리 장치의 블록도를 도시한다.
도 1b는 본 발명의 일 실시예에 따른 데이터 처리 장치의 블록도를 도시한다.
도 1c는 본 발명의 일 실시예에 따른 데이터 처리 방법의 흐름도를 도시한다.
도 1da은 본 발명의 실시예에 따른 데이터 동기화 방법의 처리 시스템의 모식도를 도시한다.
도 1db는 본 발명의 일 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다.
도 1e는 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다.
도 1f는 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다.
도 1g는 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다.
도 1h는 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다.
도 2는 본 발명의 실시예에 따른 데이터 저장 공간의 모식도를 도시한다.
도 3a는 본 발명의 실시예에 따른 데이터 처리 방법의 블록도를 도시한다.
도 3ba은 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다.
도 3bb는 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다.
도 3bc은 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다.
도 3bd는 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다.
도 3be는 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다.
도 3ca은 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다.
도 3cb는 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다.
도 3cc은 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다.
도 3da은 본 발명의 일 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다.
도 3db는 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다.
도 3dc은 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다.
도 3ea은 본 발명의 일 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다.
도 3eb는 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다.
도 3ec은 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다.
도 3fa은 본 발명의 일 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다.
도 3fb는 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다.
도 3fc은 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다.
도 4는 본 발명의 실시예에 따른 보드의 구조 블록도를 도시한다.
이하, 도면을 참조하여 본 발명의 다양한 예시적인 실시예, 특징 및 양태를 자세히 설명한다. 도면에서 동일한 부호는 동일하거나 유사한 기능을 가진 소자를 표시한다. 도면에는 실시예의 다양한 양태가 도시되어 있으나 달리 언급되지 않는 한, 반드시 일정한 비율로 도면을 작도할 필요는 없다.
여기서, 전문 용어 "예시적"은 "예, 실시예 또는 명시적으로 사용됨"을 의미하고, "예시적"인 것으로 설명되는 임의의 실시예는 다른 실시예보다 우수하거나 양호한 것으로 해석될 필요는 없다.
이 밖에, 본 발명을 보다 명확히 설명하기 위해 아래 발명의 실시를 위한 형태에서 많은 구체적인 세부 사항이 제공되나, 당업자는 본 발명이 일부 구체적인 세부 사항 없이도 구현될 수 있음을 이해해야 한다. 일부 구현예에서, 당업자에게 공지된 방법, 수단, 소자 및 회로는 본 발명의 요지를 강조하기 위해 자세한 설명은 생략한다.
본 발명의 실시예에 따르면, 데이터 처리 장치를 제공한다.
도 1a는 본 발명의 일 실시예에 따른 데이터 처리 장치의 블록도를 도시한다. 도 1a에 도시된 바와 같이, 상기 데이터 처리 장치는 제어 유닛(11a) 및 실행 유닛(12a)을 포함하고, 상기 제어 유닛(11a)은 텐서 제어 모듈(111a)을 포함하며, 상기 제어 유닛(11a)은,
디코딩된 제1 처리 명령의 피연산자가 디스크립터의 식별자를 포함하는 경우, 상기 디스크립터의 식별자에 따라 상기 텐서 제어 모듈을 통해, 텐서의 모양을 지시하기 위한 상기 디스크립터에 대응되는 디스크립터 저장 공간을 결정하고;
상기 디스크립터 저장 공간으로부터 상기 디스크립터의 콘텐츠를 획득하며;
상기 실행 유닛이 상기 디스크립터의 콘텐츠에 따라 상기 제1 처리 명령을 실행하도록, 상기 실행 유닛에 상기 디스크립터의 콘텐츠 및 상기 제1 처리 명령을 송신한다.
본 발명의 실시예에 따른 데이터 처리 장치는 텐서 모양을 지시하는 디스크립터를 도입하고 제어 유닛에 텐서 제어 모듈을 설치한다. 따라서 디코딩된 처리 명령의 피연산자에 디스크립터 식별자가 포함된 경우, 텐서 제어 모듈을 통해 대응되는 디스크립터 저장 공간을 결정하고, 실행 유닛이 디스크립터 콘텐츠에 따라 명령을 실행하도록 상기 공간으로부터 디스크립터 콘텐츠를 획득하여 상기 콘텐츠 및 처리 명령을 실행 유닛에 송신할 수 있다. 이에 따라 데이터 액세스의 복잡성을 감소시키고 데이터 액세스의 효율을 향상시킨다.
예를 들어, 상기 데이터 처리 장치는 예컨대 프로세서일 수 있고, 여기서, 프로세서는 범용 프로세서(예를 들어, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU)) 및 전용 프로세서(예를 들어, 인공 지능 프로세서, 과학 컴퓨팅 프로세서 또는 디지털 신호 프로세서 등)를 포함할 수 있으며, 본 발명은 프로세서의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 데이터 처리 장치는 제어 유닛(11a) 및 실행 유닛(12a)을 포함하고, 제어 유닛(11a)은 장치를 제어할 수 있는 바, 예를 들어, 메모리 또는 외부로부터 전달된 명령을 판독하고 명령을 디코딩하며, 해당 부재에 마이크로 동작 제어 신호 등을 송신한다. 실행 유닛(12a)은 구체적인 명령을 실행하기 위한 것으로, 예를 들어 산술 및 논리 유닛(arithmetic and logic unit, ALU), 메모리 액세스 유닛(memory access unit, MAU), 인공 지능 연산 유닛(neural functional unit, NFU) 등일 수 있으며, 본 발명은 실행 유닛(12a)의 구체적인 하드웨어 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 데이터 처리 장치에 의해 처리되는 데이터는 N 차원 텐서 데이터(N은 0보다 크거나 같은 정수임. 예를 들어, N=1, 2 또는 3)를 포함할 수 있다. 데이터 처리 장치의 메모리에 텐서 데이터를 저장할 경우, 데이터 주소(또는 저장 영역)에 따라 텐서 데이터의 모양, 데이터 간 또는 데이터 차원 간의 상호 관계 등 관련 정보를 결정할 수 없으므로 텐서 데이터에 대한 프로세서의 액세스 효율이 낮다.
이 경우, 디스크립터(텐서 디스크립터)를 도입하여 텐서(N 차원 텐서 데이터)의 모양을 지시할 수 있는데, 여기서 N의 값은 텐서 데이터의 차원 수(오더)에 따라 결정되거나 텐서 데이터의 사용 필요에 따라 설정될 수 있다. 예를 들어, N의 값이 3인 경우, 텐서 데이터는 3차원 데이터이고, 디스크립터는3개 차원 방향에서 상기 3차원 텐서 데이터의 모양(예를 들어, 오프셋, 크기 등)을 지시할 수 있다. 당업자라면 실제 필요에 따라 N의 값을 설정할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터는 식별자 및 콘텐츠 등을 포함할 수 있고, 디스크립터의 식별자는 예를 들어 번호와 같은 디스크립터를 구분할 수 있으며; 디스크립터의 콘텐츠는 텐서 데이터의 모양을 표시하는 적어도 하나의 모양 파라미터(예를 들어, 텐서의 각 차원 방향에서의 크기 등)를 포함할 수 있고, 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터(예를 들어, 데이터 기준점의 기준 주소)를 포함할 수도 있으며, 본 발명은 디스크립터의 콘텐츠에 포함되는 구체적인 파라미터에 대해 한정하지 않는다.
디스크립터를 적용하여 텐서 데이터를 지시하는 방식을 통해 텐서 데이터의 모양, 위치, 데이터 간 또는 데이터 차원 간의 상호 관계 등 관련 정보를 표현할 수 있으므로 텐서 데이터의 액세스 효율을 향상시킨다.
가능한 실시형태에 있어서, 예를 들어, 디스크립터의 등록, 수정 및 취소, 디스크립터 콘텐츠 판독 및 기록 등과 같은 디스크립터와 관련된 동작을 구현하기 위해 제어 유닛(11a)에는 텐서 제어 모듈(111a)이 설치될 수 있다. 텐서 제어 모듈(111a)은 예를 들어 텐서 인터페이스 유닛(Tensor interface Unit, TIU)일 수 있으며, 본 발명은 텐서 제어 모듈의 구체적인 하드웨어 유형에 대해 한정하지 않는다. 이러한 방식을 통해, 전용 하드웨어를 통해 디스크립터와 관련된 동작을 구현할 수 있으므로 텐서 데이터의 액세스 효율을 더욱 향상시킨다.
가능한 실시형태에 있어서, 데이터 처리 장치는 처리 명령을 수신하면, 우선 제어 유닛(11a)을 통해 처리 명령을 디코딩할 수 있다. 여기서, 상기 제어 유닛(11a)은 또한 수신된 제1 처리 명령을 디코딩 처리하여 디코딩된 제1 처리 명령을 획득한다.
여기서, 디코딩된 제1 처리 명령은 연산 코드 및 하나 또는 복수의 피연산자를 포함하고, 상기 연산 코드는 상기 제1 처리 명령에 대응되는 처리 유형을 지시한다.
이 경우, 제1 처리 명령이 제어 유닛(11a)에 의해 디코딩된 후, 디코딩된 제1 처리 명령(마이크로 명령)을 얻을 수 있다. 여기서, 제1 처리 명령은 데이터 액세스 명령, 연산 명령, 디스크립터 관리 명령 및 동기화 명령 등을 포함할 수 있으며, 본 발명은 제1 처리 명령의 구체적인 유형 및 구체적인 디코딩 방식에 대해 한정하지 않는다.
상기 디코딩된 제1 처리 명령은 연산 코드 및 하나 또는 복수의 피연산자를 포함할 수 있고, 연산 코드는 제1 처리 명령에 대응되는 처리 유형을 지시하며, 피연산자는 처리할 데이터를 지시한다. 예를 들어, 상기 명령은 Add; A; B로 표시할 수 있는데, 여기서 Add는 연산 코드이고, A와 B는 피연산자이며, 상기 명령은 A와 B를 더하기 위한 것이다. 본 발명은 디코딩된 명령의 피연산자 수 및 명령의 표현 형태에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제어 유닛(11a)에 의해 디코딩된 제1 처리 명령의 피연산자가 디스크립터의 식별자를 포함하는 경우, 텐서 제어 모듈을 통해 디스크립터에 대응되는 디스크립터 저장 공간을 결정할 수 있고; 디스크립터 저장 공간을 결정한 후, 디스크립터 저장 공간으로부터 디스크립터의 콘텐츠(모양, 주소 등 정보)를 획득할 수 있다. 다음, 실행 유닛이 디스크립터의 콘텐츠에 따라 제1 처리 명령을 실행하도록 제어 유닛(11a)은 디스크립터의 콘텐츠 및 제1 처리 명령을 실행 유닛에 송신할 수 있다.
가능한 실시형태에 있어서, 상기 실행 유닛은,
수신된 디스크립터의 콘텐츠 및 제1 처리 명령에 따라, 데이터 저장 공간에서 상기 제1 처리 명령의 피연산자에 대응되는 데이터의 데이터 주소를 결정하고;
상기 데이터 주소에 따라 상기 제1 처리 명령에 대응되는 데이터 처리를 수행한다.
다시 말하면, 실행 유닛(12a)은 디스크립터의 콘텐츠 및 제1 처리 명령을 수신하면, 디스크립터의 콘텐츠에 따라 데이터 저장 공간에서 제1 처리 명령에 포함된 디스크립터 식별자의 피연산자에 대응되는 데이터의 데이터 주소를 계산하고, 나아가 상기 데이터 주소에 따라 대응되는 처리를 수행할 수 있다.
예를 들어, 명령 Add; A; B의 경우, 피연산자 A와 B에 각각 디스크립터의 식별자 TR1 및 TR2가 포함되면, 제어 유닛은 텐서 제어 모듈을 통해 TR1 및 TR2에 대응되는 디스크립터 저장 공간을 결정하고, 디스크립터 저장 공간 내의 콘텐츠(예를 들어, 모양 파라미터 및 주소 파라미터)를 판독하여 이를 실행 유닛에 송신할 수 있다. 실행 유닛은 디스크립터의 콘텐츠를 수신한 후, 데이터 A와 B의 데이터 주소를 계산할 수 있는 바, 예를 들어, 메모리에서 A의 주소 1는 ADDR64-ADDR127이고, 메모리에서 B의 주소 2는 ADDR1023-ADDR1087이다. 다음, 실행 유닛은 주소 1 및 주소 2에서 각각 데이터를 판독하고 덧셈(Add) 연산을 수행하여 연산 결과(A + B)를 획득할 수 있다.
이러한 방식을 통해, 디스크립터 저장 공간으로부터 디스크립터 콘텐츠를 획득하고, 나아가 액세스할 때마다 명령을 통해 주소를 불러들일 필요 없이 데이터 주소를 획득할 수 있으므로 프로세서의 데이터 액세스 효율을 향상시킨다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 디스크립터 저장 공간에 저장될 수 있고, 상기 디스크립터 저장 공간은 제어 유닛의 내부 메모리(예를 들어, 레지스터, 온칩 SRAM 또는 기타 미디어 캐시 등) 내의 저장 공간일 수 있다. 디스크립터에 의해 지시된 텐서 데이터의 데이터 저장 공간은 상기 제어 유닛의 내부 메모리(예를 들어, 온칩 캐시) 또는 상기 제어 유닛에 연결된 외부 메모리(오프칩 메모리) 내의 저장 공간일 수 있고, 데이터 저장 공간 내의 데이터 주소는 실제 물리적 주소 또는 가상 주소일 수 있으며, 본 발명은 디스크립터 저장 공간, 데이터 저장 공간의 위치 및 데이터 주소의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 동일한 영역에 위치할 수 있다. 예를 들어, 온칩에 캐시된 하나의 연속 영역을 사용하여 디스크립터의 관련 콘텐츠를 저장할 수 있으며, 그 주소는 ADDR0-ADDR1023이다. 여기서, 주소 ADDR0-ADDR31은 디스크립터의 식별자를 저장할 수 있고, 주소 ADDR32-ADDR63은 디스크립터의 콘텐츠를 저장할 수 있으며, 주소 ADDR64-ADDR1023은 디스크립터에 의해 지시된 텐서 데이터를 저장할 수 있다. 여기서, 주소 ADDR은 1 비트 또는 1 바이트로 한정되지 않으며 여기서는 하나의 주소를 표시하는 하나의 주소 단위이다. 당업자는 실제 상황에 따라 저장 영역 및 그 주소를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터가 지시하는 텐서 데이터는 내부 메모리의 상이한 영역에 별도로 저장될 수 있다. 예를 들어, 레지스터를 디스크립터 저장 공간으로 사용하여 레지스터에 디스크립터의 식별자 및 콘텐츠를 저장하고, 온칩 캐시를 데이터 저장 공간으로 사용하여 디스크립터가 지시하는 텐서 데이터를 저장할 수 있다.
가능한 실시형태에 있어서, 디스크립터 전용인 전용 레지스터(SR)를 설치할 수도 있고, 디스크립터의 데이터는 즉치 값이거나 전용 레지스터에서 획득할 수도 있다. 레지스터를 사용하여 디스크립터의 식별자 및 콘텐츠를 저장하는 경우, 레지스터의 번호를 사용하여 디스크립터의 식별자를 표시할 수 있는데, 예를 들어, 레지스터의 번호가 0인 경우, 저장된 디스크립터의 식별자는 0이다. 레지스터 내의 디스크립터가 유효한 경우, 디스크립터가 지시하는 텐서 데이터의 크기에 따라 캐시 공간에 상기 텐서 데이터를 저장하기 위한 하나의 영역(예를 들어, 캐시에서 각각의 텐서 데이터에 하나의 텐서 캐시 유닛을 생성함)을 할당할 수 있다. 기설정된 캐시 공간을 적용하여 상기 텐서 데이터를 저장할 수도 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 내부 메모리에 저장될 수 있고, 디스크립터가 지시하는 텐서 데이터는 외부 메모리에 저장될 수 있다. 예를 들어, 온칩에 디스크립터의 식별자 및 콘텐츠를 저장하고, 오프칩에 디스크립터가 지시하는 텐서 데이터를 저장하는 방식을 적용할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소는 고정 주소일 수 있다. 예를 들어, 텐서 데이터에 별도의 데이터 저장 공간을 분할할 수 있고, 데이터 저장 공간에서 각각의 텐서 데이터의 시작 주소는 디스크립터의 식별자와 일대일로 대응된다. 이 경우, 실행 유닛은 디스크립터의 콘텐츠에 따라 피연산자에 대응되는 데이터의 데이터 주소를 바로 결정한 후 제1 처리 명령을 실행할 수 있다.
가능한 실시형태에 있어서, 디스크립터의 식별자에 대응되는 데이터 저장 공간의 데이터 주소가 가변 주소인 경우, 상기 디스크립터는 N 차원 텐서 데이터의 주소를 지시할 수도 있으며, 여기서, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함할 수 있다. 예를 들어, 텐서 데이터가 3차원 데이터이고 디스크립터가 상기 텐서 데이터의 주소를 지시하는 경우, 디스크립터의 콘텐츠는 예를 들어 텐서 데이터의 시작 주소와 같이 상기 텐서 데이터의 주소를 표시하는 하나의 주소 파라미터를 포함할 수 있고, 예를 들어 텐서 데이터의 시작 주소 + 주소 오프셋과 같이 상기 텐서 데이터 주소의 여러 주소 파라미터 또는 각 차원을 기반으로 하는 텐서 데이터의 주소 파라미터를 포함할 수도 있다. 당업자는 실제 필요에 따라 주소 파라미터를 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함한다. 여기서, 기준 주소는 데이터 기준점의 변화에 따라 다를 수 있으며, 본 발명은 데이터 기준점의 선택에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 기준 주소는 상기 데이터 저장 공간의 시작 주소를 포함할 수 있다. 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록인 경우, 디스크립터의 기준 주소는 데이터 저장 공간의 시작 주소이고, 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록을 제외한 다른 데이터인 경우, 디스크립터의 기준 주소는 상기 데이터 블록의 데이터 저장 공간 내 물리적 주소이다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 모양 파라미터는 N개 차원 방향 중 적어도 하나의 방향에서의 상기 텐서 데이터의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터가 지시하는 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함한다. 여기서, 데이터 설명 위치는 디스크립터가 지시하는 텐서 데이터 중의 포인트 또는 영역의 매핑 위치인데, 예를 들어, 텐서 데이터가 3차원 데이터인 경우, 디스크립터는 3차원 공간 좌표(x, y, z)를 사용하여 상기 텐서 데이터의 모양을 표시할 수 있고, 상기 텐서 데이터의 데이터 설명 위치는 3차원 공간 좌표(x, y, z)를 사용하여 표시하고 상기 텐서 데이터에 의해3차원 공간에 매핑된 포인트 또는 영역의 위치일 수 있다.
당업자는 실제 상황에 따라 텐서 데이터의 모양을 표시하는 파라미터를 선택할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
도 2는 본 발명의 일 실시예에 따른 데이터 처리 장치의 데이터 저장 공간의 모식도를 도시한다. 도 2에 도시된 바와 같이, 데이터 저장 공간(21)은 행 우선 방식을 적용하여 하나의 2차원 데이터를 저장하는데, 이는 (x, y)(여기서, X축은 수평으로 오른쪽을 향하고 Y축은 수직으로 아래를 향함)로 표시될 수 있고, X축 방향에서의 크기(각 행의 크기)는 ori_x(미도시)이며, Y축 방향에서의 크기(총 행수)는 ori_y(미도시)이고, 데이터 저장 공간(21)의 시작 주소 PA_start(기준 주소)는 첫번째 데이터 블록(22)의 물리적 주소이다. 데이터 블록(23)은 데이터 저장 공간(21) 내의 부분적 데이터로서, 이가 X축 방향에서의 오프셋(25)은 offset_x로 표시되고, Y축 방향에서의 오프셋(24)은 offset_y로 표시되며, X축 방향에서의 크기는 size_x로 표시되고, Y축 방향에서의 크기는 size_y로 표시된다.
가능한 실시형태에 있어서, 디스크립터를 사용하여 데이터 블록(23)을 정의하는 경우, 디스크립터의 데이터 기준점은 데이터 저장 공간(21)의 첫번째 데이터 블록을 사용할 수 있고, 디스크립터의 기준 주소는 데이터 저장 공간(21)의 시작 주소 PA_start이며, 데이터 저장 공간(21)이 X축에서의 크기 ori_x, Y축에서의 크기 ori_y, 및 데이터 블록(23)이 Y축 방향에서의 오프셋 offset_y, X축 방향에서의 오프셋 offset_x, X축 방향에서의 크기 size_x 및 Y축 방향에서의 크기 size_y를 결부하여 데이터 블록(23)의 디스크립터의 콘텐츠를 결정할 수 있다.
가능한 실시형태에 있어서, 하기 식 (1)을 사용하여 디스크립터의 콘텐츠를 표시할 수 있다.
(1)
상기 예시에서 디스크립터는 2차원 공간을 설명하나 당업자는 실제 상황에 따라 디스크립터의 콘텐츠가 표시하는 차원을 설정할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치에 따라 상기 텐서 데이터의 디스크립터의 콘텐츠를 결정할 수 있다.
예를 들어, 디스크립터의 데이터 기준점의 데이터 저장 공간 내 기준 주소 PA_base, 및 대각선 위치의 두 정점이 데이터 기준점에 대한 위치를 사용하여 도 2에서 데이터 블록(23)의 디스크립터의 콘텐츠를 결정할 수 있는데, 우선 디스크립터의 데이터 기준점 및 이가 데이터 저장 공간 내의 기준 주소 PA_base를 결정한다. 예를 들어, 데이터 저장 공간(21)에서 데이터 기준점으로서 하나의 데이터(예를 들어, 위치가 (2, 2)인 데이터)를 선택하고, 상기 데이터의 데이터 저장 공간 내 물리적 주소를 기준 주소 PA_base로 사용한 후, 데이터 블록(23)의 대각선 위치의 적어도 두개의 정점이 데이터 기준점에 대한 위치를 결정할 수 있다. 예를 들어, 왼쪽 상부로부터 오른쪽 하부 방향으로의 대각선 위치의 정점이 데이터 기준점에 대한 위치를 사용하되, 여기서, 왼쪽 상단 정점의 상대 위치가 (x_min, y_min)이고, 오른쪽 하단 정점의 상대 위치가 (x_max, y_max)이며, 다음 기준 주소 PA_base, 왼쪽 상단 정점의 상대 위치 (x_min, y_min) 및 오른쪽 하단 정점의 상대 위치 (x_max, y_max)에 따라 데이터 블록(23)의 디스크립터 콘텐츠를 결정할 수 있다.
가능한 실시형태에 있어서, 하기 식 (2)를 사용하여 디스크립터의 콘텐츠를 표시할 수 있다.
(2)
상기 예시에서 왼쪽 상단 및 오른쪽 하단의 두 정점을 사용하여 디스크립터의 콘텐츠를 결정하였으나 당업자는 실제 필요에 따라 적어도 두개의 정점의 구체적인 정점을 설정할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소, 및 상기 디스크립터가 지시하는 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계에 따라 상기 텐서 데이터의 디스크립터의 콘텐츠를 결정할 수 있다. 여기서, 데이터 설명 위치와 데이터 주소 간의 매핑 관계는 실제 필요에 따라 설정할 수 있는 바, 예를 들어, 디스크립터가 지시하는 텐서 데이터가 3차원 공간 데이터인 경우, 함수 f(x, y, z)를 사용하여 데이터 설명 위치와 데이터 주소 간의 매핑 관계를 정의할 수 있다.
가능한 실시형태에 있어서, 하기 식 (3)을 사용하여 디스크립터의 콘텐츠를 표시할 수 있다.
(3)
당업자는 실제 상황에 따라 데이터 설명 위치와 데이터 주소 간의 매핑 관계를 설정할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
식 (1)을 적용하여 디스크립터의 콘텐츠를 표시하는 경우, 텐서 데이터 중의 임의의 데이터 포인트에 대해 데이터 설명 위치를 (xq, yq)로 설정하면, 데이터 저장 공간에서 상기 데이터 포인트의 데이터 주소 는 하기 식 (4)을 사용하여 결정할 수 있다.
(4)
이러한 방식을 통해, 실행 유닛은 디스크립터의 콘텐츠에 따라 디스크립터가 지시하는 텐서 데이터의 데이터 저장 공간 내 데이터 주소를 계산하고, 나아가 상기 주소에 따라 처리 명령에 대응되는 처리를 수행할 수 있다.
가능한 실시형태에 있어서, 디스크립터의 관리 명령을 통해 디스크립터의 등록, 수정 및 취소 등 관리를 구현하고 이러한 관리 명령에 해당 연산 코드를 설정할 수 있다. 예를 들어, 디스크립터 등록 명령(TRCreat)을 통해 디스크립터를 등록(생성)하고; 디스크립터 수정 명령을 통해 디스크립터의 각 파라미터(모양, 주소 등)를 수정하며; 디스크립터 취소 명령(TRRelease)을 통해 디스크립터 등을 취소(삭제)할 수 있다. 본 발명은 디스크립터의 관리 명령의 유형 및 연산 코드의 구체적인 설정에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 등록 명령인 경우, 상기 제1 처리 명령 중 디스크립터의 등록 파라미터를 획득하되, 상기 등록 파라미터는 상기 디스크립터의 식별자, 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하고;
상기 디스크립터의 등록 파라미터에 따라, 상기 텐서 제어 모듈을 통해 디스크립터 저장 공간에서 상기 디스크립터의 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 결정하며;
상기 디스크립터와 상기 제2 저장 영역 간의 대응 관계를 구축하기 위해, 상기 디스크립터의 등록 파라미터 및 상기 제2 저장 영역에 따라 상기 디스크립터의 콘텐츠를 결정하고;
상기 디스크립터의 콘텐츠를 상기 제1 저장 영역에 저장한다.
예를 들어, 디스크립터 등록 명령은 디스크립터의 등록을 위한 것으로, 상기 명령에는 디스크립터의 등록 파라미터가 포함될 수 있으며, 상기 등록 파라미터는 디스크립터의 식별자(ID), 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함할 수 있다. 예를 들어, 상기 등록 파라미터는 식별자 TR0, 텐서 모양(차원 수, 각 차원의 크기, 오프셋, 시작 데이터 주소 등)을 포함할 수 있으며, 본 발명은 등록 파라미터의 구체적인 콘텐츠에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디코딩된 제1 처리 명령의 연산 코드에 따라 상기 명령이 디스크립터 등록 명령임을 결정하는 경우, 제어 유닛은 제1 처리 명령 중의 등록 파라미터에 따라 상기 텐서 제어 모듈을 통해 해당 디스크립터를 생성할 수 있다.
가능한 실시형태에 있어서, 우선 디스크립터 저장 공간에서 디스크립터 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 결정할 수 있다.
예를 들어, 저장 영역 중 적어도 하나가 기설정된 경우, 제1 저장 영역 및/또는 제2 저장 영역을 직접 결정할 수 있다. 예를 들어, 디스크립터 콘텐츠 및 텐서 데이터 콘텐츠가 동일한 저장 공간에 저장되고, 디스크립터의 식별자 TR0에 대응되는 디스크립터의 콘텐츠의 저장 주소가 ADDR32-ADDR63이며, 텐서 데이터의 콘텐츠의 저장 주소가 ADDR64-ADDR1023으로 기설정된 경우, 이 두 주소가 제1 저장 영역 및 제2 저장 영역임을 직접 결정할 수 있다.
가능한 실시형태에 있어서, 기설정된 저장 영역이 존재하지 않는 경우, 텐서 제어 모듈을 통해 디스크립터 저장 공간에서 디스크립터 콘텐츠에 제1 저장 영역을 할당하고, 데이터 저장 공간에서 텐서 데이터 콘텐츠를 위한 제2 저장 영역을 할당할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 등록 파라미터 중의 텐서 모양 및 상기 제2 저장 영역의 데이터 주소에 따라 텐서 모양과 주소 간의 대응 관계를 구축하고, 나아가 디스크립터 콘텐츠를 결정함으로써 데이터 처리시 디스크립터 콘텐츠에 따라 대응되는 데이터 주소를 결정할 수 있다. 디스크립터 콘텐츠를 결정한 후, 이를 제1 저장 영역에 저장함으로써 디스크립터의 등록 과정을 완료한다.
예를 들어, 도 2에 도시된 텐서 데이터(23)의 경우, 등록 파라미터는 데이터 저장 공간(21)의 시작 주소 PA_start(기준 주소), X축 방향에서의 오프셋(25)(offset_x로 표시), Y축 방향에서의 오프셋(24)(offset_y로 표시), X축 방향에서의 크기(size_x로 표시), Y축 방향에서의 크기(size_y로 표시)를 포함할 수 있다. 이러한 파라미터를 통해 디스크립터의 콘텐츠를 식 (1)로 표시하고 이를 제1 저장 영역에 저장함으로써 디스크립터의 등록 과정을 완료할 수 있다.
이러한 방식을 통해, 디스크립터 등록 명령에 따라 디스크립터를 자동으로 생성하여 디스크립터에 의해 지시된 텐서와 데이터 주소 간의 대응을 구현함으로써 데이터 처리시 디스크립터 콘텐츠를 통해 데이터 주소를 획득하고 프로세서의 데이터 액세스 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 취소 명령인 경우, 상기 제1 처리 명령에서 디스크립터의 식별자를 획득하고;
상기 디스크립터의 식별자에 따라 디스크립터 저장 공간에서 상기 디스크립터의 저장 영역 및 상기 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터 콘텐츠의 저장 영역을 상기 텐서 제어 모듈을 통해 각각 해제한다.
예를 들어, 디스크립터 취소 명령은 디스크립터에 의해 점유된 공간을 해제하기 위해 디스크립터를 취소(삭제)할 수 있고, 상기 명령에는 적어도 디스크립터의 식별자가 포함될 수 있다.
가능한 실시형태에 있어서, 디코딩된 제1 처리 명령의 연산 코드에 따라 상기 명령이 디스크립터 취소 명령임을 결정하는 경우, 제어 유닛은 제1 처리 명령 중의 디스크립터 식별자에 따라 텐서 제어 모듈을 통해 해당 디스크립터를 취소할 수 있다.
가능한 실시형태에 있어서, 디스크립터의 식별자에 따라 텐서 제어 모듈은 디스크립터 저장 공간에서 상기 디스크립터의 저장 영역, 및 데이터 저장 공간에서 디스크립터에 의해 지시된 텐서 데이터 콘텐츠의 저장 영역을 해제함으로써 각 저장 영역에 대한 상기 디스크립터의 점유를 해제할 수 있다.
이러한 방식을 통해, 디스크립터 사용 종료 후, 디스크립터에 의해 점유된 공간을 해제하고 제한된 저장 리소스를 재활용할 수 있으므로 리소스의 활용 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 수정 명령인 경우, 상기 제1 처리 명령에서 디스크립터의 수정 파라미터를 획득하되, 상기 수정 파라미터는 상기 디스크립터의 식별자, 수정할 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하고;
상기 디스크립터의 수정 파라미터에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터의 업데이트될 콘텐츠를 결정하며;
업데이트될 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터 저장 공간 내의 상기 디스크립터의 콘텐츠를 업데이트한다.
예를 들어, 디스크립터 수정 명령은 예컨대 식별자, 텐서 모양 등 디스크립터의 다양한 파라미터를 수정할 수 있다. 상기 명령은 수정 파라미터를 포함할 수 있고, 상기 수정 파라미터는 상기 디스크립터의 식별자, 수정할 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하며, 본 발명은 수정 파라미터의 구체적인 콘텐츠에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디코딩된 제1 처리 명령의 연산 코드에 따라 상기 명령이 디스크립터 수정 명령임을 결정하는 경우, 제어 유닛은 제1 처리 명령 중의 수정 파라미터에 따라 텐서 제어 모듈을 통해 디스크립터의 업데이트될 콘텐츠를 결정할 수 있는데, 예를 들어, 텐서의 차원을 3차원에서 2차원으로 변경하고, 하나 또는 복수의 차원 방향에서의 텐서의 크기 등을 변경한다.
가능한 실시형태에 있어서, 업데이트될 콘텐츠를 결정한 후, 텐서 제어 모듈은 업데이트된 디스크립터 콘텐츠가 수정된 텐서 데이터의 모양을 지시할 수 있도록 디스크립터 저장 공간 내의 디스크립터 콘텐츠를 업데이트할 수 있으며, 본 발명은 업데이트될 콘텐츠의 범위 및 구체적인 업데이트 방식에 대해 한정하지 않는다.
이러한 방식을 통해, 디스크립터에 의해 지시된 텐서 데이터가 변경된 경우, 디스크립터와 텐서 데이터 간의 대응을 유지하고 리소스의 활용 효율을 향상시키기 위해 디스크립터를 직접 수정할 수 있다.
가능한 실시형태에 있어서, 상기 제어 유닛은 의존 관계 판단 모듈을 더 포함하고, 상기 제어 유닛은 또한,
상기 디스크립터의 식별자에 따라 의존 관계 판단 모듈을 통해 의존 관계가 있는 제2 처리 명령의 존재 여부를 결정하되, 상기 제2 처리 명령은 명령 큐에서 상기 제1 처리 명령 이전에 위치하고 또한 피연산자에 상기 디스크립터의 식별자가 구비된 처리 명령을 포함하고;
의존 관계가 있는 제2 처리 명령이 존재하는 경우, 상기 제1 처리 명령을 차단하거나 캐시한다.
예를 들어, 디스크립터를 설정한 후, 디스크립터에 따라 명령 간의 의존 관계를 판단하도록 제어 유닛에 의존 관계 판단 모듈을 설치할 수 있다. 디코딩된 제1 처리 명령의 피연산자가 디스크립터의 식별자를 포함하면, 제어 유닛은 의존 관계 판단 모듈을 통해 상기 제1 처리 명령의 프리앰블 명령에 의존 관계가 있는 명령이 존재하는지 여부를 결정할 수 있다.
이 경우, 명령 큐에서 제1 처리 명령 이전의 명령(프리앰블 명령)에 있어서, 의존 관계 판단 모듈은 피연산자에서 상기 디스크립터의 식별자를 갖는 제2 처리 명령을 검색하고 제2 처리 명령과 제1 처리 명령이 의존 관계를 갖는지 여부를 판단할 수 있다.
예를 들어, 제1 처리 명령이 디스크립터 TR0에 대한 연산 명령이고, 제2 처리 명령이 디스크립터 TR0에 대한 기록 명령이면, 상기 제2 처리 명령 실행 기간 내에는 제1 처리 명령을 실행할 수 없고, 제2 처리 명령과 제1 처리 명령 간에는 의존 관계를 갖는다. 제2 처리 명령이 제1 처리 명령에 대한 동기화 명령(sync)을 포함하는 경우, 상기 제2 처리 명령이 실행 완료된 후 제1 처리 명령을 실행해야 하며, 제2 처리 명령과 제1 처리 명령 간에는 의존 관계를 갖는다.
가능한 실시형태에 있어서, 의존 관계가 있는 제2 처리 명령이 존재하면, 제1 처리 명령을 차단할 수 있다. 즉, 제2 처리 명령이 실행 완료될 때까지 제1 처리 명령 및 다른 후속 명령의 실행이 중단되고, 그 후 제1 처리 명령 및 다른 후속 명령이 실행된다.
가능한 실시형태에 있어서, 의존 관계가 있는 제2 처리 명령이 존재하면, 제1 처리 명령을 캐시할 수 있다. 즉, 다른 명령의 실행에 영향을 주지 않으면서 제1 처리 명령을 기설정된 캐시 공간에 저장하고, 제2 처리 명령이 실행 완료된 후, 캐시 공간 내의 제1 처리 명령을 실행한다. 본 발명은 의존 관계가 존재하는 경우 제1 처리 명령에 대한 처리 방식에 대해 한정하지 않는다.
이러한 방식을 통해, 의존 관계 판단 모듈을 도입하여 명령 간의 유형에 의해 발생된 의존 관계 및 동기화 명령에 의해 발생된 의존 관계를 결정함으로써 명령의 실행 순서 및 데이터 처리의 정확성을 보장할 수 있다.
가능한 실시형태에 있어서, 상기 제어 유닛은 또한,
상기 디스크립터의 식별자에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터의 현재 상태를 결정하되, 상기 디스크립터의 상태는 동작 가능 상태 또는 동작 불가능 상태를 포함하고;
상기 디스크립터가 현재 동작 불가능 상태인 경우, 상기 제1 처리 명령을 차단하거나 캐시한다.
예를 들어, 텐서 제어 모듈에 디스크립터의 상태 대응 테이블을 저장하여 디스크립터의 현재 상태를 표시할 수 있으며, 디스크립터의 상태는 동작 가능 상태 또는 동작 불가능 상태를 포함한다.
가능한 실시형태에 있어서, 제1 처리 명령의 프리앰블 명령이 현재 디스크립터를 작동(예를 들어, 기록 또는 판독) 중인 경우, 텐서 제어 모듈은 디스크립터의 현재 상태를 동작 불가능 상태로 설정할 수 있다. 해당 상태에서는 제1 처리 명령을 차단 또는 캐시할 수는 있으나 실행할 수 없고, 반대로, 현재 디스크립터를 작동하는 프리앰블 명령이 존재하지 않는 경우, 텐서 제어 모듈은 디스크립터의 현재 상태를 동작 가능 상태로 설정할 수 있으며, 해당 상태에서는 제1 처리 명령을 실행할 수 있다.
가능한 실시형태에 있어서, 디스크립터 콘텐츠가 레지스터TR(텐서 레지스터, Tensor Register)에 저장되는 경우, 텐서 제어 모듈의 디스크립터의 상태 대응 테이블에는 TR의 사용 상황도 저장될 수 있어 TR의 점유 및 해제 여부를 결정하고 제한된 레지스터 리소스의 관리를 구현한다.
이러한 방식을 통해, 디스크립터의 상태에 따라 명령 간의 의존 관계를 판단함으로써 명령의 실행 순서 및 데이터 처리의 정확성을 보장할 수 있다.
가능한 실시형태에 있어서, 상기 제1 처리 명령은 데이터 액세스 명령을 포함하고, 상기 피연산자는 소스 데이터 및 목적 데이터를 포함한다.
여기서, 상기 제어 유닛은,
상기 소스 데이터 및 상기 목적 데이터 중 적어도 하나가 디스크립터의 식별자를 포함하는 경우, 상기 텐서 제어 모듈을 통해 상기 디스크립터의 디스크립터 저장 공간을 결정하고;
상기 디스크립터 저장 공간으로부터 상기 디스크립터의 콘텐츠를 획득하며;
상기 실행 유닛에 상기 디스크립터의 콘텐츠 및 상기 제1 처리 명령을 송신한다.
여기서, 상기 실행 유닛은,
수신된 상기 디스크립터의 콘텐츠 및 상기 제1 처리 명령에 따라 상기 소스 데이터의 제1 데이터 주소 및/또는 상기 목적 데이터의 제2 데이터 주소를 각각 결정하고;
상기 제1 데이터 주소로부터 데이터를 판독하여 상기 제2 데이터 주소에 기록한다.
예를 들어, 데이터 액세스 명령의 피연산자는 소스 데이터 및 목적 데이터를 포함하고, 소스 데이터의 데이터 주소로부터 데이터를 판독하여 목적 데이터의 데이터 주소에 기록한다. 제1 처리 명령이 데이터 액세스 명령인 경우, 디스크립터를 통해 텐서 데이터의 액세스를 구현할 수 있고, 데이터 액세스 명령의 소스 데이터 및 목적 데이터 중 적어도 하나가 디스크립터의 식별자를 포함하는 경우, 텐서 제어 모듈을 통해 디스크립터의 디스크립터 저장 공간을 결정할 수 있다.
가능한 실시형태에 있어서, 소스 데이터가 제1 디스크립터의 식별자를 포함하고 목적 데이터가 제2 디스크립터의 식별자를 포함하면, 제어 유닛은 텐서 제어 모듈을 통해 제1 디스크립터의 제1 디스크립터 저장 공간 및 제2 디스크립터의 제2 디스크립터 저장 공간을 각각 결정한 후, 제1 디스크립터 저장 공간 및 제2 디스크립터 저장 공간으로부터 각각 제1 디스크립터의 콘텐츠 및 제2 디스크립터의 콘텐츠를 판독하고; 제1 디스크립터 및 제2 디스크립터의 콘텐츠를 실행 유닛에 송신할 수 있다. 실행 유닛은 제1 디스크립터 및 제2 디스크립터의 콘텐츠를 수신한 후, 소스 데이터의 제1 데이터 주소 및 목적 데이터의 제2 데이터 주소를 각각 계산하고; 제1 데이터 주소로부터 데이터를 판독하여 제2 데이터 주소에 기록함으로써 전체 액세스 과정을 완료할 수 있다.
예를 들어, 소스 데이터는 오프칩의 판독할 데이터이고, 그의 제1 디스크립터의 식별자는 1이며, 목적 데이터는 온칩의 하나의 저장 공간이고, 그의 제2 디스크립터의 식별자는 2일 수 있다. 제어 유닛(11a)은 소스 데이터 중 제1 디스크립터의 식별자 1 및 목적 데이터 중 제2 디스크립터의 식별자 2에 따라, 디스크립터 저장 공간으로부터 각각 제1 디스크립터의 콘텐츠 D1 및 제2 디스크립터의 콘텐츠 D2를 획득하고, 제1 디스크립터의 콘텐츠 D1, 제2 디스크립터의 콘텐츠 D2 및 제1 처리 명령을 실행 유닛(12a)에 송신할 수 있다. 여기서, 제1 디스크립터의 콘텐츠 D1 및 제2 디스크립터의 콘텐츠는 각각 하기와 같이 표시될 수 있다.
D1:
D2:
실행 유닛(12a)은 수신된 제1 디스크립터의 콘텐츠 D1 및 제1 디스크립터의 콘텐츠 D2에 따라 각각 소스 데이터의 시작 물리적 주소 PA3 및 목적 데이터의 시작 물리적 주소 PA4를 획득할 수 있으며, 이는 각각 하기와 같이 표시된다.
실행 유닛(12a)은 소스 데이터의 시작 물리적 주소 PA3 및 목적 데이터의 시작 물리적 주소 PA4, 제1 디스크립터의 콘텐츠 D1 및 제2 디스크립터의 콘텐츠 D2에 따라 제1 데이터 주소 및 제2 데이터 주소를 각각 결정하고, 제1 데이터 주소로부터 데이터를 판독하여 제2 데이터 주소(IO 채널을 통해)에 기록함으로써 D1이 지시하는 텐서 데이터를 D2가 지시하는 저장 공간에 로딩할 수 있다.
가능한 실시형태에 있어서, 소스 데이터에만 제1 디스크립터의 식별자가 포함된 경우, 제어 유닛은 텐서 제어 모듈을 통해 제1 디스크립터의 제1 디스크립터 저장 공간을 결정한 후 제1 디스크립터 저장 공간으로부터 제1 디스크립터의 콘텐츠를 판독하고, 이를 실행 유닛에 송신할 수 있다. 실행 유닛은 제1 디스크립터의 콘텐츠를 수신한 후, 소스 데이터의 제1 데이터 주소를 계산할 수 있고; 명령의 피연산자 중 목적 데이터의 제2 데이터 주소에 따라, 실행 유닛은 제1 데이터 주소로부터 데이터를 판독하여 제2 데이터 주소에 기록함으로써 전체 액세스 과정을 완료할 수 있다.
가능한 실시형태에 있어서, 목적 데이터에만 제2 디스크립터의 식별자가 포함된 경우, 제어 유닛은 텐서 제어 모듈을 통해 제2 디스크립터의 제2 디스크립터 저장 공간을 결정한 후 제2 디스크립터 저장 공간으로부터 제2 디스크립터의 콘텐츠를 판독하고, 이를 실행 유닛에 송신할 수 있다. 실행 유닛은 제2 디스크립터의 콘텐츠를 수신한 후, 목적 데이터의 제2 데이터 주소를 계산할 수 있고; 명령의 피연산자 중 소스 데이터의 제1 데이터 주소에 따라, 실행 유닛은 제1 데이터 주소로부터 데이터를 판독하여 제2 데이터 주소에 기록함으로써 전체 액세스 과정을 완료할 수 있다.
이러한 방식을 통해, 액세스할 때마다 명령을 통해 주소를 불러들일 필요 없이 디스크립터를 사용하여 데이터의 액세스를 완료할 수 있으므로 데이터 액세스 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 제1 처리 명령은 연산 명령을 포함하고, 상기 실행 유닛은,
수신된 디스크립터의 콘텐츠 및 제1 처리 명령에 따라, 데이터 저장 공간에서 상기 제1 처리 명령의 피연산자에 대응되는 데이터의 데이터 주소를 결정하고;
상기 데이터 주소에 따라 상기 제1 처리 명령에 대응되는 연산을 수행한다.
예를 들어, 제1 처리 명령이 연산 명령인 경우, 디스크립터를 통해 텐서 데이터의 연산을 구현할 수 있다. 연산 명령의 피연산자에 디스크립터의 식별자가 포함된 경우, 텐서 제어 모듈을 통해 디스크립터의 디스크립터 저장 공간을 결정한 후 디스크립터 저장 공간으로부터 디스크립터의 콘텐츠를 판독하고, 이를 실행 유닛에 송신할 수 있다. 실행 유닛은 디스크립터의 콘텐츠를 수신한 후, 피연산자에 대응되는 데이터의 주소를 계산하고, 나아가 데이터 주소로부터 데이터를 판독하여 연산함으로써 전체 연산 과정을 완료할 수 있다. 이러한 방식을 통해, 연산시 명령을 통해 데이터 주소를 불러들일 필요 없이 디스크립터를 사용하여 데이터의 판독을 완료할 수 있으므로 데이터 연산 효율을 향상시킨다.
본 발명의 실시예에 따른 데이터 처리 장치는 데이터 처리 명령 실행 과정에서 디스크립터를 통해 데이터의 주소를 결정할 수 있도록, 텐서 모양을 지시할 수 있는 디스크립터를 도입하여 하드웨어 측면에서 명령 생성 방식을 단순화함으로써 데이터 액세스의 복잡성을 감소시키고 데어터 액세스를 위한 프로세서의 효율을 향상시킨다.
가능한 실시형태에 있어서, 전술한 데이터 처리 장치를 포함하는 인공 지능 칩을 더 개시한다.
가능한 실시형태에 있어서, 전술한 인공 지능 칩을 포함하는 보드를 더 개시한다.
도 4는 본 발명의 실시예에 따른 보드의 구조 블록도를 도시하는데, 도 4를 참조하면, 전술한 보드는 전술한 인공 지능 칩(389) 외에도 다른 보조 부재를 더 포함할 수 있다. 상기 보조 부재는 메모리 소자(390), 인터페이스 장치(391) 및 제어 소자(392)를 포함하나 이에 한정되지 않는다.
상기 메모리 소자(390)는 버스를 통해 상기 인공 지능 칩에 연결되어 데이터를 저장한다. 상기 메모리 소자는 복수 그룹의 저장 유닛(393)을 포함할 수 있고, 각 그룹의 상기 저장 유닛은 버스를 통해 상기 인공 지능 칩에 연결된다. 각 그룹의 상기 저장 유닛은 DDR SDRAM(영문: Double Data Rate SDRAM, 2배속 동기식 동적 램)일 수 있음을 이해할 수 있다.
DDR은 클럭 주파수를 증가할 필요 없이 SDRAM의 속도를 두배로 증가시킬 수 있고 또한 클럭 펄스의 상승 및 하강 에지에서 데이터의 판독을 허용하며, DDR의 속도는 표준 SDRAM의 두배이다. 일 실시예에서, 상기 저장 장치는 4개 그룹의 상기 저장 유닛을 포함하고, 각 그룹의 상기 저장 유닛은 복수의 DDR4 입자(칩)를 포함할 수 있다. 일 실시예에서, 상기 인공 지능 칩 내부는 4개의 72 비트 DDR4 컨트롤러를 포함할 수 있고, 전술한 72 비트 DDR4 컨트롤러 중 64bit는 데이터 전송에 사용되며, 8bit는 ECC 검증에 사용된다. 각 그룹의 상기 저장 유닛에 DDR4-3200 입자가 적용되는 경우, 이론적인 데이터 전송 대역폭은 25600 MB/s에 도달할 수 있음을 이해할 수 있다.
일 실시예에서, 각 그룹의 상기 저장 유닛은 병렬로 설치된 복수의 2배속 동기식 동적 램을 포함하고, DDR은 하나의 클럭 주기 내에서 데이터를 2회 전송할 수 있다. 상기 인공 지능 칩에는 DDR을 제어하는 컨트롤러가 설치되어 각각의 상기 저장 유닛의 데이터 전송 및 데이터 저장을 제어한다.
상기 인터페이스 장치는 상기 인공 지능 칩에 전기적으로 연결되고, 상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기(예를 들어, 서버 또는 컴퓨터) 간의 데이터 전송을 구현한다. 예를 들어, 일 실시예에서, 상기 인터페이스 장치는 표준 PCIE 인터페이스일 수 있다. 예를 들어, 서버가 표준 PCIE 인터페이스를 통해 상기 인공 지능 칩에 처리할 데이터를 전달하여 데이터 전이를 구현할 수 있다. 바람직하게는, PCIE 3.0 X 16 인터페이스를 적용하여 전송하는 경우, 이론적 대역폭은 16000 MB/s에 도달할 수 있다. 다른 실시예에서, 상기 인터페이스 장치는 다른 인터페이스일 수도 있는데, 상기 인터페이스 유닛이 스위칭 기능을 구현할 수 있는 한 본원 발명은 전술한 다른 인터페이스의 구체적인 구현 형태를 한정하지 않는다. 이 밖에, 상기 인공 지능 칩의 계산 결과는 여전히 상기 인터페이스 장치에 의해 외부 기기(예를 들어, 서버)로 다시 전송된다.
상기 제어 소자는 상기 인공 지능 칩에 전기적으로 연결되고, 상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링한다. 구체적으로, 상기 인공 지능 칩과 상기 제어 소자는 SPI를 통해 인터페이스에 전기적으로 연결 가능하고, 상기 제어 소자는 마이크로 컨트롤러 유닛(Micro Controller Unit, MCU)를 포함할 수 있다. 예를 들어 상기 인공 지능 칩은 복수의 프로세싱 칩, 복수의 프로세싱 코어 또는 복수의 프로세싱 회로를 포함할 수 있고, 복수의 부하를 구동할 수 있다. 따라서, 상기 인공 지능 칩은 다중 부하 및 경부하 등 상이한 작업 상태에 있을 수 있다. 상기 제어 장치를 통해 상기 인공 지능 칩 중 복수의 프로세싱 칩, 복수의 처리 및 또는 복수의 프로세싱 회로의 작업 상태에 대한 조절 및 제어를 구현할 수 있다.
일부 실시예에서, 전술한 인공 지능 칩을 포함하는 전자 기기를 개시한다.
전자 기기는 데이터 처리 장치, 로봇, 컴퓨터, 프린터, 스캐너 태블릿 PC, 스마트 단말기, 휴대폰, 운전 레코더, 내비게이터, 센서, 웹캠, 서버, 클라우드 서버, 카메라, 비디오 카메라, 프로젝터, 시계, 헤드셋, 모바일 스토리지, 웨어러블 기기, 교통 수단, 가정용 전기 기구 및/또는 의료 기기를 포함한다.
상기 교통 수단은 비행기, 선박 및/또는 차량을 포함하고; 상기 가정용 전기 기구는 TV, 에어컨, 전자 레인지, 냉장고, 밥솥, 가습기, 세탁기, 전등, 가스 스토브 및 레인지 후드를 포함하며; 상기 의료 기기는 NMR, B-초음파 및/또는 심전도를 포함한다.
제A1항, 데이터 처리 장치로서, 제어 유닛 및 실행 유닛을 포함하고, 상기 제어 유닛은 텐서 제어 모듈을 포함하며, 상기 제어 유닛은,
디코딩된 제1 처리 명령의 피연산자가 디스크립터의 식별자를 포함하는 경우, 상기 디스크립터의 식별자에 따라 상기 텐서 제어 모듈을 통해, 텐서의 모양을 지시하기 위한 상기 디스크립터에 대응되는 디스크립터 저장 공간을 결정하고;
상기 디스크립터 저장 공간으로부터 상기 디스크립터의 콘텐츠를 획득하며;
상기 실행 유닛이 상기 디스크립터의 콘텐츠에 따라 상기 제1 처리 명령을 실행하도록, 상기 실행 유닛에 상기 디스크립터의 콘텐츠 및 상기 제1 처리 명령을 송신하는 데이터 처리 장치.
제A2항, 제A1항에 있어서, 상기 실행 유닛은,
수신된 디스크립터의 콘텐츠 및 제1 처리 명령에 따라, 데이터 저장 공간에서 상기 제1 처리 명령의 피연산자에 대응되는 데이터의 데이터 주소를 결정하고;
상기 데이터 주소에 따라 상기 제1 처리 명령에 대응되는 데이터 처리를 수행하는 데이터 처리 장치.
제A3항, 제A2항에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 등록 명령인 경우, 상기 제1 처리 명령 중 디스크립터의 등록 파라미터를 획득하되, 상기 등록 파라미터는 상기 디스크립터의 식별자, 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하고;
상기 디스크립터의 등록 파라미터에 따라, 상기 텐서 제어 모듈을 통해 디스크립터 저장 공간에서 상기 디스크립터의 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 결정하며;
상기 디스크립터와 상기 제2 저장 영역 간의 대응 관계를 구축하기 위해, 상기 디스크립터의 등록 파라미터 및 상기 제2 저장 영역에 따라 상기 디스크립터의 콘텐츠를 결정하고;
상기 디스크립터의 콘텐츠를 상기 제1 저장 영역에 저장하는 데이터 처리 장치.
제A4항, 제A1항 - 제A3항 중 어느 한 항에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 취소 명령인 경우, 상기 제1 처리 명령에서 디스크립터의 식별자를 획득하고;
상기 디스크립터의 식별자에 따라 디스크립터 저장 공간에서 상기 디스크립터의 저장 영역 및 상기 데이터 저장 공간에서 디스크립터에 의해 지시된 텐서 데이터 콘텐츠의 저장 영역을 상기 텐서 제어 모듈을 통해 각각 해제하는 데이터 처리 장치.
제A5항, 제A1항 -제A4항 중 어느 한 항에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 수정 명령인 경우, 상기 제1 처리 명령에서 디스크립터의 수정 파라미터를 획득하되, 상기 수정 파라미터는 상기 디스크립터의 식별자, 수정할 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하고;
상기 디스크립터의 수정 파라미터에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터의 업데이트될 콘텐츠를 결정하며;
업데이트될 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터 저장 공간 내의 상기 디스크립터의 콘텐츠를 업데이트하는 데이터 처리 장치.
제A6항, 제A1항 -제A5항 중 어느 한 항에 있어서, 상기 제어 유닛은 의존 관계 판단 모듈을 더 포함하고, 상기 제어 유닛은 또한,
상기 디스크립터의 식별자에 따라 의존 관계 판단 모듈을 통해 의존 관계가 있는 제2 처리 명령의 존재 여부를 결정하되, 상기 제2 처리 명령은 명령 큐에서 상기 제1 처리 명령 이전에 위치하고 또한 피연산자에 상기 디스크립터의 식별자가 구비된 처리 명령을 포함하고;
의존 관계가 있는 제2 처리 명령이 존재하는 경우, 상기 제1 처리 명령을 차단하거나 캐시하는 데이터 처리 장치.
제A7항, 제A1항 -제A5항 중 어느 한 항에 있어서, 상기 제어 유닛은 또한,
상기 디스크립터의 식별자에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터의 현재 상태를 결정하되, 상기 디스크립터의 상태는 동작 가능 상태 또는 동작 불가능 상태를 포함하고;
상기 디스크립터가 현재 동작 불가능 상태인 경우, 상기 제1 처리 명령을 차단하거나 캐시하는 데이터 처리 장치.
제A8항, 제A2항에 있어서, 상기 제1 처리 명령은 데이터 액세스 명령을 포함하고, 상기 피연산자는 소스 데이터 및 목적 데이터를 포함하며,
여기서, 상기 제어 유닛은,
상기 소스 데이터 및 상기 목적 데이터 중 적어도 하나가 디스크립터의 식별자를 포함하는 경우, 상기 텐서 제어 모듈을 통해 상기 디스크립터의 디스크립터 저장 공간을 결정하고;
상기 디스크립터 저장 공간으로부터 상기 디스크립터의 콘텐츠를 획득하며;
상기 실행 유닛에 상기 디스크립터의 콘텐츠 및 상기 제1 처리 명령을 송신하고,
여기서, 상기 실행 유닛은,
수신된 상기 디스크립터의 콘텐츠 및 상기 제1 처리 명령에 따라 상기 소스 데이터의 제1 데이터 주소 및/또는 상기 목적 데이터의 제2 데이터 주소를 각각 결정하며;
상기 제1 데이터 주소로부터 데이터를 판독하여 상기 제2 데이터 주소에 기록하는 데이터 처리 장치.
제A9항, 제A2항에 있어서, 상기 제1 처리 명령은 연산 명령을 포함하고, 상기 실행 유닛은,
수신된 디스크립터의 콘텐츠 및 제1 처리 명령에 따라, 데이터 저장 공간에서 상기 제1 처리 명령의 피연산자에 대응되는 데이터의 데이터 주소를 결정하고;
상기 데이터 주소에 따라 상기 제1 처리 명령에 대응되는 연산을 수행하는 데이터 처리 장치.
제A10항, 제A1항 -제A9항 중 어느 한 항에 있어서, 상기 디스크립터는 N 차원 텐서 데이터의 모양을 지시하되, N은 0보다 크거나 같은 정수이고,
상기 디스크립터의 콘텐츠는 텐서 데이터의 모양을 표시하는 적어도 하나의 모양 파라미터를 포함하는 데이터 처리 장치.
제A11항, 제A10항에 있어서, 상기 디스크립터는 또한 N 차원 텐서 데이터의 주소를 지시하고, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함하는 데이터 처리 장치.
제A12항, 제A11항에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함하고;
여기서, 상기 텐서 데이터의 모양 파라미터는,
N개 차원 방향 중 적어도 하나의 방향에서의 상기 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터가 지시하는 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함하는 데이터 처리 장치.
제A13항, 제A1항 - 제A12 중 어느 한 항에 있어서, 상기 제어 유닛은 또한,
수신된 제1 처리 명령을 디코딩 처리하여 디코딩된 제1 처리 명령을 얻고,
여기서, 디코딩된 제1 처리 명령은 연산 코드 및 하나 또는 복수의 피연산자를 포함하며, 상기 연산 코드는 상기 제1 처리 명령에 대응되는 처리 유형을 지시하는 데이터 처리 장치.
제A14항, 제A2항 -제A13항 중 어느 한 항에 있어서, 상기 디스크립터 저장 공간은 상기 제어 유닛의 내부 메모리 중의 저장 공간이고, 상기 데이터 저장 공간은 상기 제어 유닛의 내부 메모리 또는 상기 제어 유닛에 연결된 외부 메모리 중의 저장 공간인 데이터 처리 장치.
제A15항, 인공 지능 칩으로서, 제A1항 - 제A14항 중 어느 한 항에 따른 데이터 처리 장치를 포함하는 인공 지능 칩.
제A16항, 전자 기기로서, 제A15항에 따른 인공 지능 칩을 포함하는 전자 기기.
제A17항, 보드로서, 메모리 소자, 인터페이스 장치, 제어 소자 및 제A15항에 따른 인공 지능 칩을 포함하고;
상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며;
상기 메모리 소자는 데이터를 저장하고;
상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며;
상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링하는 보드.
제A18항, 제A17항에 있어서,
상기 메모리 소자는 복수 그룹의 저장 유닛을 포함하고, 각 그룹의 상기 저장 유닛은 버스를 통해 상기 인공 지능 칩에 연결되며, 상기 저장 유닛은 DDR SDRAM이고;
상기 칩은 각각의 상기 저장 유닛의 데이터 전송 및 데이터 저장을 제어하는 DDR 컨트롤러를 포함하며;
상기 인터페이스 장치는 표준 PCIE 인터페이스인 보드.
인공 지능 기술의 지속적인 발전에 따라 처리해야 할 데이터 양과 데이터 차원 모두 지속적으로 증가하고 있다. 관련 기술에서, 프로세서는 일반적으로 명령의 파라미터를 획득하여 데이터 주소를 결정한 후 데이터 주소에 따라 데이터를 판독 및 사용한다. 이를 위해서는 기술자가 파라미터 설계시 데이터 액세스 관련 파라미터(예를 들어, 데이터 간 또는 데이터 차원 간의 상호 관계 등)를 설정하여 명령을 생성하고 이를 프로세서에 전달하여 데이터 액세스를 완료해야 하는데 이러한 방식은 프로세서의 처리 효율을 감소시킨다.
본 발명의 실시예에 따르면, 데이터 처리 장치를 제공한다. 도 1b는 본 발명의 일 실시예에 따른 데이터 처리 장치의 블록도를 도시하는 것으로, 도 1b에 도시된 바와 같이, 상기 데이터 처리 장치는 제어 유닛(11b) 및 실행 유닛(12b)을 포함하고, 상기 제어 유닛(11b)은 텐서 제어 모듈(111b)을 포함하며, 상기 제어 유닛(11b)은,
디코딩된 제1 처리 명령의 피연산자가 디스크립터의 식별자를 포함하는 경우, 상기 디스크립터의 식별자에 따라 상기 텐서 제어 모듈을 통해, 텐서의 모양을 지시하기 위한 상기 디스크립터에 대응되는 디스크립터 저장 공간을 결정하고;
상기 디스크립터 저장 공간으로부터 상기 디스크립터의 콘텐츠를 획득하며;
상기 디스크립터의 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 데이터 저장 공간에서 상기 제1 처리 명령의 피연산자에 대응되는 데이터의 데이터 주소를 결정하고;
상기 데이터 주소에 따라 상기 텐서 제어 모듈을 통해 상기 제1 처리 명령에 대응되는 데이터 처리를 수행한다.
본 발명의 실시예에 따른 데이터 처리 장치는 텐서 모양을 지시하는 디스크립터를 도입하고 제어 유닛에 텐서 제어 모듈을 설치한다. 따라서 디코딩된 처리 명령의 피연산자에 디스크립터 식별자가 포함된 경우, 텐서 제어 모듈을 통해 디스크립터 콘텐츠를 획득하고, 텐서 제어 모듈을 통해 데이터 주소를 결정하며, 나아가 처리 명령을 실행할 수 있다. 이에 따라 데이터 액세스의 복잡성을 감소시키고 데이터 액세스의 효율을 향상시킨다.
예를 들어, 상기 데이터 처리 장치는 예컨대 프로세서일 수 있고, 여기서, 프로세서는 범용 프로세서(예를 들어, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU)) 및 전용 프로세서(예를 들어, 인공 지능 프로세서, 과학 컴퓨팅 프로세서 또는 디지털 신호 프로세서 등)를 포함할 수 있으며, 본 발명은 프로세서의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 데이터 처리 장치는 제어 유닛(11b) 및 실행 유닛(12b)을 포함하고, 제어 유닛(11b)은 장치를 제어할 수 있는 바, 예를 들어, 메모리 또는 외부로부터 전달된 명령을 판독하고 명령을 디코딩하며, 해당 부재에 마이크로 동작 제어 신호 등을 송신한다. 실행 유닛(12b)은 구체적인 명령을 실행하기 위한 것으로, 실행 유닛(12b) 은 예를 들어 산술 및 논리 유닛(arithmetic and logic unit, ALU), 메모리 액세스 유닛(memory access unit, MAU), 인공 지능 연산 유닛(neural functional unit, NFU) 등일 수 있으며, 본 발명은 실행 유닛(12b)의 구체적인 하드웨어 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 데이터 처리 장치에 의해 처리되는 데이터는 N 차원 텐서 데이터(N은 0보다 크거나 같은 정수임. 예를 들어, N=1, 2 또는 3)를 포함할 수 있다. 이 경우, 디스크립터(텐서 디스크립터)를 도입하여 텐서(N 차원 텐서 데이터)의 모양을 결정할 수 있는데, 여기서, N의 값은 텐서 데이터의 차원 수(오더)에 따라 결정되거나 텐서 데이터의 사용 요구에 따라 설정될 수도 있다. 예를 들어, N의 값이 3인 경우, 텐서 데이터는 3차원 데이터이고, 디스크립터는3개 차원 방향에서 상기 3차원 텐서 데이터의 모양(예를 들어, 오프셋, 크기 등)을 지시할 수 있다. 당업자라면 실제 필요에 따라 N의 값을 설정할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터는 식별자 및 콘텐츠 등을 포함할 수 있고, 디스크립터의 식별자는 예를 들어 번호와 같은 디스크립터를 구분할 수 있으며; 디스크립터의 콘텐츠는 텐서 데이터의 모양을 표시하는 적어도 하나의 모양 파라미터(예를 들어, 텐서의 각 차원 방향에서의 크기 등)를 포함할 수 있고, 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터(예를 들어, 데이터 기준점의 기준 주소)를 포함할 수도 있으며, 본 발명은 디스크립터의 콘텐츠에 포함되는 구체적인 파라미터에 대해 한정하지 않는다.
디스크립터를 적용하여 텐서 데이터를 지시하는 방식을 통해 텐서 데이터의 모양을 표현하고, 나아가 복수의 텐서 데이터 간의 상호 관계 등 관련 정보를 결정할 수도 있으므로 텐서 데이터의 액세스 효율을 향상시킨다.
가능한 실시형태에 있어서, 디스크립터의 등록, 수정 및 취소, 디스크립터 콘텐츠 판독 및 기록, 데이터 주소의 계산 및 데이터 액세스 명령의 실행 등과 같은 디스크립터와 관련된 동작을 구현하기 위해 제어 유닛(11b)에는 텐서 제어 모듈(111b)이 설치될 수 있다. 텐서 제어 모듈(111b)은 예를 들어 텐서 인터페이스 유닛(Tensor interface Unit, TIU)일 수 있으며, 본 발명은 텐서 제어 모듈의 구체적인 하드웨어 유형에 대해 한정하지 않는다. 이러한 방식을 통해, 전용 하드웨어를 통해 디스크립터와 관련된 동작을 구현할 수 있으므로 텐서 데이터의 액세스 효율을 더욱 향상시킨다.
가능한 실시형태에 있어서, 데이터 처리 장치는 처리 명령을 수신하면, 우선 제어 유닛(11b)을 통해 처리 명령을 디코딩할 수 있다. 여기서, 상기 제어 유닛(11b)은 또한 수신된 제1 처리 명령을 디코딩 처리하여 디코딩된 제1 처리 명령을 획득한다.
여기서, 디코딩된 제1 처리 명령은 연산 코드 및 하나 또는 복수의 피연산자를 포함하고, 상기 연산 코드는 상기 제1 처리 명령에 대응되는 처리 유형을 지시한다.
이 경우, 제1 처리 명령이 제어 유닛(11b)에 의해 디코딩된 후, 디코딩된 제1 처리 명령(마이크로 명령)을 얻을 수 있다. 여기서, 제1 처리 명령은 데이터 액세스 명령, 연산 명령, 디스크립터 관리 명령 및 동기화 명령 등을 포함할 수 있으며, 본 발명은 제1 처리 명령의 구체적인 유형 및 구체적인 디코딩 방식에 대해 한정하지 않는다.
상기 디코딩된 제1 처리 명령은 연산 코드 및 하나 또는 복수의 피연산자를 포함할 수 있고, 연산 코드는 제1 처리 명령에 대응되는 처리 유형을 지시하며, 피연산자는 처리할 데이터를 지시한다. 예를 들어, 상기 명령은 Add; A; B로 표시할 수 있는데, 여기서 Add는 연산 코드이고, A와 B는 피연산자이며, 상기 명령은 A와 B를 더하기 위한 것이다. 본 발명은 디코딩된 명령의 피연산자 수 및 명령의 표현 형태에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제어 유닛(11b)에 의해 디코딩된 제1 처리 명령의 피연산자가 디스크립터의 식별자를 포함하는 경우, 텐서 제어 모듈을 통해 디스크립터에 대응되는 디스크립터 저장 공간을 결정할 수 있고; 디스크립터 저장 공간을 결정한 후, 디스크립터 저장 공간으로부터 디스크립터의 콘텐츠(텐서 데이터의 모양, 주소 등을 표시하는 정보를 포함함)를 획득할 수 있다. 다음, 디스크립터의 콘텐츠에 따라 텐서 제어 모듈을 통해 피연산자에 대응되는 데이터 저장 공간 내의 데이터 주소를 결정하고, 데이터 주소에 따라 텐서 제어 모듈을 통해 제1 처리 명령에 대응되는 데이터 처리를 수행할 수 있다.
다시 말하면, 제1 처리 명령의 피연산자에 디스크립터의 식별자가 포함된 경우, 텐서 제어 모듈은 디스크립터의 식별자에 따라 디스크립터 저장 공간으로부터 디스크립터의 콘텐츠를 획득하고, 디스크립터의 콘텐츠에 따라 제1 처리 명령에 포함된 디스크립터 식별자의 피연산자에 대응되는 데이터의 데이터 저장 공간 내 데이터 주소를 계산하며, 나아가 상기 데이터 주소에 따라 대응되는 처리를 수행할 수 있다.
이러한 방식을 통해, 디스크립터 저장 공간으로부터 디스크립터 콘텐츠를 획득하고, 나아가 액세스할 때마다 명령을 통해 주소를 불러들일 필요 없이 데이터 주소를 획득할 수 있으므로 프로세서의 데이터 액세스 효율을 향상시킨다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 디스크립터 저장 공간에 저장될 수 있고, 상기 디스크립터 저장 공간은 제어 유닛의 내부 메모리(예를 들어, 레지스터, 온칩 SRAM 또는 기타 미디어 캐시 등) 내의 저장 공간일 수 있다. 디스크립터에 의해 지시된 텐서 데이터의 데이터 저장 공간은 상기 제어 유닛의 내부 메모리(예를 들어, 온칩 캐시) 또는 상기 제어 유닛에 연결된 외부 메모리(오프칩 메모리) 내의 저장 공간일 수 있고, 데이터 저장 공간 내의 데이터 주소는 실제 물리적 주소 또는 가상 주소일 수 있으며, 본 발명은 디스크립터 저장 공간, 데이터 저장 공간의 위치 및 데이터 주소의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 동일한 영역에 위치할 수 있다. 예를 들어, 온칩에 캐시된 하나의 연속 영역을 사용하여 디스크립터의 관련 콘텐츠를 저장할 수 있으며, 그 주소는 ADDR0-ADDR1023이다. 여기서, 주소 ADDR0-ADDR31은 디스크립터의 식별자를 저장할 수 있고, 주소 ADDR32-ADDR63은 디스크립터의 콘텐츠를 저장할 수 있으며, 주소 ADDR64-ADDR1023은 디스크립터에 의해 지시된 텐서 데이터를 저장할 수 있다. 여기서, 주소 ADDR은 1 비트 또는 1 바이트로 한정되지 않으며 여기서는 하나의 주소를 표시하는 하나의 주소 단위이다. 당업자는 실제 상황에 따라 저장 영역 및 그 주소를 결정할 수 있으며 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 내부 메모리의 상이한 영역에 별도로 저장될 수 있다. 예를 들어, 레지스터를 디스크립터 저장 공간으로 사용하여 레지스터에 디스크립터의 식별자 및 콘텐츠를 저장하고, 온칩 캐시를 데이터 저장 공간으로 사용하여 디스크립터가 지시하는 텐서 데이터를 저장할 수 있다.
가능한 실시형태에 있어서, 디스크립터 전용인 전용 레지스터(SR)를 설치할 수도 있고, 디스크립터의 데이터는 즉치 값이거나 전용 레지스터에서 획득할 수도 있다. 레지스터를 사용하여 디스크립터의 식별자 및 콘텐츠를 저장하는 경우, 레지스터의 번호를 사용하여 디스크립터의 식별자를 표시할 수 있는데, 예를 들어, 레지스터의 번호가 0인 경우, 저장된 디스크립터의 식별자는 0이다. 레지스터 내의 디스크립터가 유효한 경우, 디스크립터가 지시하는 텐서 데이터의 크기에 따라 캐시 공간에 상기 텐서 데이터를 저장하기 위한 하나의 영역(예를 들어, 캐시에서 각각의 텐서 데이터에 하나의 텐서 캐시 유닛을 생성함)을 할당할 수 있다. 기설정된 캐시 공간을 적용하여 상기 텐서 데이터를 저장할 수도 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 내부 메모리에 저장될 수 있고, 디스크립터에 의해 지시된 텐서 데이터는 외부 메모리에 저장될 수 있다. 예를 들어, 온칩에 디스크립터의 식별자 및 콘텐츠를 저장하고, 오프칩에 디스크립터가 지시하는 텐서 데이터를 저장하는 방식을 적용할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소는 고정 주소일 수 있다. 예를 들어, 텐서 데이터에 별도의 데이터 저장 공간을 분할할 수 있고, 데이터 저장 공간에서 각각의 텐서 데이터의 시작 주소는 디스크립터의 식별자와 일대일로 대응된다. 이 경우, 제어 유닛은 디스크립터의 콘텐츠에 따라 텐서 제어 모듈을 통해 피연산자에 대응되는 데이터의 데이터 주소를 결정한 후 제1 처리 명령을 실행할 수 있다.
가능한 실시형태에 있어서, 디스크립터의 식별자에 대응되는 데이터 저장 공간의 데이터 주소가 가변 주소인 경우, 상기 디스크립터는 N 차원 텐서 데이터의 주소를 지시할 수도 있으며, 여기서, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함할 수 있다. 예를 들어, 텐서 데이터가 3차원 데이터이고 디스크립터가 상기 텐서 데이터의 주소를 지시하는 경우, 디스크립터의 콘텐츠는 예를 들어 텐서 데이터의 시작 주소와 같이 상기 텐서 데이터의 주소를 표시하는 하나의 주소 파라미터를 포함할 수 있고, 예를 들어 텐서 데이터의 시작 주소 + 주소 오프셋과 같이 상기 텐서 데이터 주소의 여러 주소 파라미터 또는 각 차원을 기반으로 하는 텐서 데이터의 주소 파라미터를 포함할 수도 있다. 당업자는 실제 필요에 따라 주소 파라미터를 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함한다. 여기서, 기준 주소는 데이터 기준점의 변화에 따라 다를 수 있으며, 본 발명은 데이터 기준점의 선택에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 기준 주소는 상기 데이터 저장 공간의 시작 주소를 포함할 수 있다. 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록인 경우, 디스크립터의 기준 주소는 데이터 저장 공간의 시작 주소이고, 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록을 제외한 다른 데이터인 경우, 디스크립터의 기준 주소는 상기 데이터 블록의 데이터 저장 공간 내 물리적 주소이다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 모양 파라미터는 N개 차원 방향 중 적어도 하나의 방향에서의 상기 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 텐서 데이터의 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터에 의해 지시된 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함한다. 여기서, 데이터 설명 위치는 디스크립터가 지시하는 텐서 데이터 중의 포인트 또는 영역의 매핑 위치인데, 예를 들어, 텐서 데이터가 3차원 데이터인 경우, 디스크립터는 3차원 공간 좌표(x, y, z)를 사용하여 상기 텐서 데이터의 모양을 표시할 수 있고, 상기 텐서 데이터의 데이터 설명 위치는 3차원 공간 좌표(x, y, z)를 사용하여 표시하고 상기 텐서 데이터에 의해3차원 공간에 매핑된 포인트 또는 영역의 위치일 수 있다.
당업자는 실제 상황에 따라 텐서 데이터의 모양을 표시하는 파라미터를 선택할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터의 관리 명령을 통해 디스크립터의 등록, 수정 및 취소 등 관리를 구현하고 이러한 관리 명령에 해당 연산 코드를 설정할 수 있다. 예를 들어, 디스크립터 등록 명령(TRCreat)을 통해 디스크립터를 등록(생성)하고; 디스크립터 수정 명령을 통해 디스크립터의 각 파라미터(모양, 주소 등)를 수정하며; 디스크립터 취소 명령(TRRelease)을 통해 디스크립터 등을 취소(삭제)할 수 있다. 본 발명은 디스크립터의 관리 명령의 유형 및 연산 코드의 구체적인 설정에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 등록 명령인 경우, 상기 제1 처리 명령 중 디스크립터의 등록 파라미터를 획득하되, 상기 등록 파라미터는 상기 디스크립터의 식별자, 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하고;
상기 디스크립터의 등록 파라미터에 따라, 상기 텐서 제어 모듈을 통해 디스크립터 저장 공간에서 상기 디스크립터의 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 결정하며;
상기 디스크립터와 상기 제2 저장 영역 간의 대응 관계를 구축하기 위해, 상기 디스크립터의 등록 파라미터 및 상기 제2 저장 영역에 따라 상기 디스크립터의 콘텐츠를 결정하고;
상기 디스크립터의 콘텐츠를 상기 제1 저장 영역에 저장한다.
예를 들어, 디스크립터 등록 명령은 디스크립터의 등록을 위한 것으로, 상기 명령에는 디스크립터의 등록 파라미터가 포함될 수 있으며, 상기 등록 파라미터는 디스크립터의 식별자(ID), 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함할 수 있다. 예를 들어, 상기 등록 파라미터는 식별자 TR0, 텐서 모양(차원 수, 각 차원의 크기, 오프셋, 시작 데이터 주소 등)을 포함할 수 있으며, 본 발명은 등록 파라미터의 구체적인 콘텐츠에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디코딩된 제1 처리 명령의 연산 코드에 따라 상기 명령이 디스크립터 등록 명령임을 결정하는 경우, 제어 유닛은 제1 처리 명령 중의 등록 파라미터에 따라 상기 텐서 제어 모듈을 통해 해당 디스크립터를 생성할 수 있다.
가능한 실시형태에 있어서, 우선 디스크립터 저장 공간에서 디스크립터 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 결정할 수 있다.
예를 들어, 저장 영역 중 적어도 하나가 기설정된 경우, 제1 저장 영역 및/또는 제2 저장 영역을 직접 결정할 수 있다. 예를 들어, 디스크립터 콘텐츠 및 텐서 데이터 콘텐츠가 동일한 저장 공간에 저장되고, 디스크립터의 식별자 TR0에 대응되는 디스크립터의 콘텐츠의 저장 주소가 ADDR32-ADDR63이며, 텐서 데이터의 콘텐츠의 저장 주소가 ADDR64-ADDR1023으로 기설정된 경우, 이 두 주소가 제1 저장 영역 및 제2 저장 영역임을 직접 결정할 수 있다.
가능한 실시형태에 있어서, 기설정된 저장 영역이 존재하지 않는 경우, 텐서 제어 모듈을 통해 디스크립터 저장 공간에서 디스크립터 콘텐츠에 제1 저장 영역을 할당하고, 데이터 저장 공간에서 텐서 데이터 콘텐츠를 위한 제2 저장 영역을 할당할 수 있으며. 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 등록 파라미터 중의 텐서 모양 및 상기 제2 저장 영역의 데이터 주소에 따라 텐서 모양과 주소 간의 대응 관계를 구축하고, 나아가 디스크립터 콘텐츠를 결정함으로써 데이터 처리시 디스크립터 콘텐츠에 따라 대응되는 데이터 주소를 결정할 수 있다. 디스크립터 콘텐츠를 결정한 후, 이를 제1 저장 영역에 저장함으로써 디스크립터의 등록 과정을 완료한다.
예를 들어, 도 2에 도시된 텐서 데이터(23)의 경우, 등록 파라미터는 데이터 저장 공간(21)의 시작 주소 PA_start(기준 주소), X축 방향에서의 오프셋(25)(offset_x로 표시), Y축 방향에서의 오프셋(24)(offset_y로 표시), X축 방향에서의 크기(size_x로 표시), Y축 방향에서의 크기(size_y로 표시)를 포함할 수 있다. 이러한 파라미터를 통해 디스크립터의 콘텐츠를 식 (1)로 표시하고 이를 제1 저장 영역에 저장함으로써 디스크립터의 등록 과정을 완료할 수 있다.
이러한 방식을 통해, 디스크립터 등록 명령에 따라 디스크립터를 자동으로 생성하여 디스크립터에 의해 지시된 텐서와 데이터 주소 간의 대응을 구현함으로써 데이터 처리시 디스크립터 콘텐츠를 통해 데이터 주소를 획득하고 프로세서의 데이터 액세스 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 취소 명령인 경우, 상기 제1 처리 명령에서 디스크립터의 식별자를 획득하고;
상기 디스크립터의 식별자에 따라 디스크립터 저장 공간에서 상기 디스크립터의 저장 영역 및 상기 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터 콘텐츠의 저장 영역을 상기 텐서 제어 모듈을 통해 각각 해제한다.
예를 들어, 디스크립터 취소 명령은 디스크립터에 의해 점유된 공간을 해제하기 위해 디스크립터를 취소(삭제)할 수 있고, 상기 명령에는 적어도 디스크립터의 식별자가 포함될 수 있다.
가능한 실시형태에 있어서, 디코딩된 제1 처리 명령의 연산 코드에 따라 상기 명령이 디스크립터 취소 명령임을 결정하는 경우, 제어 유닛은 제1 처리 명령 중의 디스크립터 식별자에 따라 텐서 제어 모듈을 통해 해당 디스크립터를 취소할 수 있다.
가능한 실시형태에 있어서, 디스크립터의 식별자에 따라 디스크립터의 식별자에 따라 텐서 제어 모듈은 디스크립터 저장 공간에서 상기 디스크립터의 저장 영역, 및 데이터 저장 공간에서 디스크립터에 의해 지시된 텐서 데이터 콘텐츠의 저장 영역을 해제함으로써 각 저장 영역에 대한 상기 디스크립터의 점유를 해제할 수 있다.
이러한 방식을 통해, 디스크립터 사용 종료 후, 디스크립터에 의해 점유된 공간을 해제하고 제한된 저장 리소스를 재활용할 수 있으므로 리소스의 활용 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 수정 명령인 경우, 상기 제1 처리 명령에서 디스크립터의 수정 파라미터를 획득하되, 상기 수정 파라미터는 상기 디스크립터의 식별자, 수정할 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하고;
상기 디스크립터의 수정 파라미터에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터의 업데이트될 콘텐츠를 결정하며;
업데이트될 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터 저장 공간 내의 상기 디스크립터의 콘텐츠 및/또는 데이터 저장 공간 내 텐서 데이터의 콘텐츠를 업데이트한다.
예를 들어, 디스크립터 수정 명령은 예컨대 식별자, 텐서 모양 등 디스크립터의 다양한 파라미터를 수정할 수 있다. 상기 명령은 수정 파라미터를 포함할 수 있고, 상기 수정 파라미터는 상기 디스크립터의 식별자, 수정할 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하며, 본 발명은 수정 파라미터의 구체적인 콘텐츠에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디코딩된 제1 처리 명령의 연산 코드에 따라 상기 명령이 디스크립터 수정 명령임을 결정하는 경우, 제어 유닛은 제1 처리 명령 중의 수정 파라미터에 따라 텐서 제어 모듈을 통해 디스크립터의 업데이트될 콘텐츠를 결정할 수 있는데, 예를 들어, 텐서의 차원을 3차원에서 2차원으로 변경하고, 하나 또는 복수의 차원 방향에서의 텐서의 크기 등을 변경한다.
가능한 실시형태에 있어서, 업데이트될 콘텐츠를 결정한 후, 텐서 제어 모듈은 텐서 데이터를 수정하고 업데이트된 디스크립터 콘텐츠가 수정된 텐서 데이터의 모양을 지시할 수 있도록, 디스크립터 저장 공간 내의 디스크립터 콘텐츠 및/또는 데이터 저장 공간 중 텐서 데이터의 콘텐츠를 업데이트될 수 있으며, 본 발명은 업데이트될 콘텐츠의 범위 및 구체적인 업데이트 방식에 대해 한정하지 않는다.
이러한 방식을 통해, 디스크립터에 의해 지시된 텐서 데이터가 변경된 경우, 디스크립터와 텐서 데이터 간의 대응을 유지하고 리소스의 활용 효율을 향상시키기 위해 디스크립터를 직접 수정할 수 있다.
가능한 실시형태에 있어서, 상기 제어 유닛은 의존 관계 판단 모듈을 더 포함하고, 상기 제어 유닛은 또한,
상기 디스크립터의 식별자에 따라 의존 관계 판단 모듈을 통해 의존 관계가 있는 제2 처리 명령의 존재 여부를 결정하되, 상기 제2 처리 명령은 명령 큐에서 상기 제1 처리 명령 이전에 위치하고 또한 피연산자에 상기 디스크립터의 식별자가 구비된 처리 명령을 포함하고;
의존 관계가 있고 또한 처리가 완료되지 않은 제2 처리 명령이 존재하는 경우, 상기 제1 처리 명령을 차단하거나 캐시한다.
예를 들어, 디스크립터를 설정한 후, 디스크립터에 따라 명령 간의 의존 관계를 판단하도록 제어 유닛에 의존 관계 판단 모듈을 설치할 수 있다. 디코딩된 제1 처리 명령의 피연산자가 디스크립터의 식별자를 포함하면, 제어 유닛은 의존 관계 판단 모듈을 통해 상기 제1 처리 명령의 프리앰블 명령에 의존 관계가 있는 명령이 존재하는지 여부를 결정할 수 있다.
이 경우, 명령 큐에서 제1 처리 명령 이전의 명령(프리앰블 명령)에 있어서, 의존 관계 판단 모듈은 피연산자에서 상기 디스크립터의 식별자를 갖는 제2 처리 명령을 검색하고, 검색된 제2 처리 명령을 제1 처리 명령과 의존 관계가 있는 처리 명령으로서 사용할 수 있다. 제1 처리 명령의 피연산자에 복수의 디스크립터의 식별자가 존재하는 경우, 각각의 디스크립터에 대응되는 의존 관계를 각각 판단할 수 있다. 다시 말하면, 피연산자에서 복수의 디스크립터 중 적어도 하나의 디스크립터 식별자를 갖는 프리앰블 명령을 의존 관계가 있는 제2 처리 명령으로서 사용한다.
예를 들어, 제1 처리 명령이 디스크립터 TR0에 대한 연산 명령이고, 제2 처리 명령이 디스크립터 TR0에 대한 기록 명령이면, 상기 제2 처리 명령 실행 기간 내에는 제1 처리 명령을 실행할 수 없고, 제2 처리 명령과 제1 처리 명령 간에는 의존 관계를 갖는다. 제2 처리 명령이 제1 처리 명령에 대한 동기화 명령(sync)을 포함하는 경우, 상기 제2 처리 명령이 실행 완료된 후 제1 처리 명령을 실행해야 하며, 제2 처리 명령과 제1 처리 명령 간에는 의존 관계를 갖는다.
가능한 실시형태에 있어서, 의존 관계가 있고 또한 처리가 완료되지 않은 제2 처리 명령이 존재하면, 제1 처리 명령을 차단할 수 있다. 즉, 제2 처리 명령이 실행 완료될 때까지 제1 처리 명령 및 다른 후속 명령의 실행이 중단되고, 그 후 제1 처리 명령 및 다른 후속 명령이 실행된다.
가능한 실시형태에 있어서, 의존 관계가 있고 또한 처리가 완료되지 않은 제2 처리 명령이 존재하면, 제1 처리 명령을 캐시할 수 있다. 즉, 다른 명령의 실행에 영향을 주지 않으면서 제1 처리 명령을 기설정된 캐시 공간에 저장하고, 제2 처리 명령이 실행 완료된 후, 캐시 공간 내의 제1 처리 명령을 실행한다. 본 발명은 해당 경우 제1 처리 명령의 처리 방식에 대해 한정하지 않는다.
이러한 방식을 통해, 의존 관계 판단 모듈을 도입하여 명령 간의 유형에 의해 발생된 의존 관계 및 동기화 명령에 의해 발생된 의존 관계를 결정함으로써 명령의 실행 순서 및 데이터 처리의 정확성을 보장할 수 있다.
가능한 실시형태에 있어서, 상기 제어 유닛은 또한,
상기 디스크립터의 식별자에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터의 현재 상태를 결정하되, 상기 디스크립터의 상태는 동작 가능 상태 또는 동작 불가능 상태를 포함하고;
상기 디스크립터가 현재 동작 불가능 상태인 경우, 상기 제1 처리 명령을 차단하거나 캐시한다.
예를 들어, 텐서 제어 모듈에 디스크립터의 상태 대응 테이블을 저장하여 디스크립터의 현재 상태를 표시할 수 있으며, 디스크립터의 상태는 동작 가능 상태 또는 동작 불가능 상태를 포함한다.
가능한 실시형태에 있어서, 제1 처리 명령의 프리앰블 명령이 현재 디스크립터를 작동(예를 들어, 기록 또는 판독) 중인 경우, 텐서 제어 모듈은 디스크립터의 현재 상태를 동작 불가능 상태로 설정할 수 있다. 해당 상태에서는 제1 처리 명령을 차단 또는 캐시할 수는 있으나 실행할 수 없고, 반대로, 현재 디스크립터를 작동하는 프리앰블 명령이 존재하지 않는 경우, 텐서 제어 모듈은 디스크립터의 현재 상태를 동작 가능 상태로 설정할 수 있으며, 해당 상태에서는 제1 처리 명령을 실행할 수 있다.
가능한 실시형태에 있어서, 디스크립터 콘텐츠가 레지스터TR(텐서 레지스터, Tensor Register)에 저장되는 경우, 텐서 제어 모듈의 디스크립터의 상태 대응 테이블에는 TR의 사용 상황도 저장될 수 있어 TR의 점유 및 해제 여부를 결정하고 제한된 레지스터 리소스의 관리를 구현한다.
이러한 방식을 통해, 디스크립터의 상태에 따라 명령 간의 의존 관계를 판단함으로써 명령의 실행 순서 및 데이터 처리의 정확성을 보장할 수 있다.
가능한 실시형태에 있어서, 상기 제1 처리 명령은 데이터 액세스 명령을 포함하고, 상기 피연산자는 소스 데이터 및 목적 데이터를 포함한다,
여기서, 상기 제어 유닛은,
상기 소스 데이터 및 상기 목적 데이터 중 적어도 하나가 디스크립터의 식별자를 포함하는 경우, 상기 텐서 제어 모듈을 통해 상기 디스크립터의 디스크립터 저장 공간을 결정하고;
상기 디스크립터 저장 공간으로부터 상기 디스크립터의 콘텐츠를 획득하며;
상기 디스크립터의 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 상기 소스 데이터의 제1 데이터 주소 및/또는 상기 목적 데이터의 제2 데이터 주소를 결정하고;
상기 제1 데이터 주소로부터 데이터를 판독하여 상기 제2 데이터 주소에 기록한다.
예를 들어, 데이터 액세스 명령의 피연산자는 소스 데이터 및 목적 데이터를 포함하고, 소스 데이터의 데이터 주소로부터 데이터를 판독하여 목적 데이터의 데이터 주소에 기록한다. 제1 처리 명령이 데이터 액세스 명령인 경우, 디스크립터를 통해 텐서 데이터의 액세스를 구현할 수 있고, 데이터 액세스 명령의 소스 데이터 및 목적 데이터 중 적어도 하나가 디스크립터의 식별자를 포함하는 경우, 텐서 제어 모듈을 통해 디스크립터의 디스크립터 저장 공간을 결정할 수 있다.
가능한 실시형태에 있어서, 소스 데이터가 제1 디스크립터의 식별자를 포함하고 목적 데이터가 제2 디스크립터의 식별자를 포함하면, 제어 유닛은 텐서 제어 모듈을 통해 제1 디스크립터의 제1 디스크립터 저장 공간 및 제2 디스크립터의 제2 디스크립터 저장 공간을 각각 결정한 후, 제1 디스크립터 저장 공간 및 제2 디스크립터 저장 공간으로부터 각각 제1 디스크립터의 콘텐츠 및 제2 디스크립터의 콘텐츠를 판독하고; 제1 디스크립터 및 제2 디스크립터의 콘텐츠에 따라 텐서 제어 모듈을 통해 소스 데이터의 제1 데이터 주소 및 목적 데이터의 제2 데이터 주소를 각각 계산한 후 제1 데이터 주소로부터 데이터를 판독하여 제2 데이터 주소에 기록함으로써 전체 액세스 과정을 완료할 수 있다.
예를 들어, 소스 데이터는 오프칩의 판독할 데이터이고, 그의 제1 디스크립터의 식별자는 TR1이며, 목적 데이터는 온칩의 하나의 저장 공간이고, 그의 제2 디스크립터의 식별자는 TR2일 수 있다. 제어 유닛(11b)은 소스 데이터 중 제1 디스크립터의 식별자 TR1 및 목적 데이터 중 제2 디스크립터의 식별자 TR2에 따라, 디스크립터 저장 공간으로부터 각각 제1 디스크립터의 콘텐츠 D1 및 제2 디스크립터의 콘텐츠 D2를 획득할 수 있다. 여기서, 제1 디스크립터의 콘텐츠 D1 및 제2 디스크립터의 콘텐츠 D2는 각각 하기와 같이 표시될 수 있다.
D1:
D2:
제어 유닛(11b)은 획득한 제1 디스크립터의 콘텐츠 D1 및 제2 디스크립터의 콘텐츠 D2에 따라 텐서 제어 모듈을 통해 소스 데이터의 시작 물리적 주소 PA3 및 목적 데이터의 시작 물리적 주소 PA4를 각각 획득할 수 있으며, 이는 각각 하기와 같이 표시된다.
제어 유닛(11b)은 소스 데이터의 시작 물리적 주소 PA3 및 목적 데이터의 시작 물리적 주소 PA4, 제1 디스크립터의 콘텐츠 D1 및 제2 디스크립터의 콘텐츠 D2에 따라 텐서 제어 모듈을 통해 제1 데이터 주소 및 제2 데이터 주소를 각각 결정하고, 제1 데이터 주소로부터 데이터를 판독하여 제2 데이터 주소(IO 채널을 통해)에 기록함으로써 D1이 지시하는 텐서 데이터를 D2가 지시하는 저장 공간에 로딩할 수 있다.
가능한 실시형태에 있어서, 소스 데이터에만 제1 디스크립터의 식별자가 포함된 경우, 제어 유닛은 텐서 제어 모듈을 통해 제1 디스크립터의 제1 디스크립터 저장 공간을 결정한 후 제1 디스크립터 저장 공간으로부터 제1 디스크립터의 콘텐츠를 판독하고; 제1 디스크립터의 콘텐츠에 따라 텐서 제어 모듈을 통해 소스 데이터의 제1 데이터 주소를 계산한 후 명령의 피연산자 중 목적 데이터의 제2 데이터 주소에 따라, 제1 데이터 주소로부터 데이터를 판독하여 제2 데이터 주소에 기록함으로써 전체 액세스 과정을 완료할 수 있다.
가능한 실시형태에 있어서, 목적 데이터에만 제2 디스크립터의 식별자가 포함된 경우, 제어 유닛은 텐서 제어 모듈을 통해 제2 디스크립터의 제2 디스크립터 저장 공간을 결정한 후 제2 디스크립터 저장 공간으로부터 제2 디스크립터의 콘텐츠를 판독하고; 제2 디스크립터의 콘텐츠에 따라 텐서 제어 유닛을 통해 목적 데이터의 제2 데이터 주소를 결정한 후 명령의 피연산자 중 소스 데이터의 제1 데이터 주소에 따라, 제1 데이터 주소로부터 데이터를 판독하여 제2 데이터 주소에 기록함으로써 전체 액세스 과정을 완료할 수 있다.
이러한 방식을 통해, 액세스할 때마다 명령을 통해 주소를 불러들일 필요 없이 디스크립터를 사용하여 데이터의 액세스를 완료할 수 있으므로 데이터 액세스 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 제1 처리 명령은 연산 명령을 포함하고, 상기 제어 유닛(11b)은,
상기 제1 처리 명령이 연산 명령인 경우, 상기 실행 유닛에 상기 데이터 주소 및 상기 제1 처리 명령을 송신하며,
여기서, 상기 실행 유닛은,
수신된 상기 데이터 주소에 따라 상기 제1 처리 명령에 대응되는 연산을 수행한다.
예를 들어, 제1 처리 명령이 연산 명령인 경우, 디스크립터를 통해 텐서 데이터의 연산을 구현할 수 있다. 연산 명령의 피연산자에 디스크립터의 식별자가 포함된 경우, 제어 유닛은 텐서 제어 모듈을 통해 디스크립터의 디스크립터 저장 공간을 결정한 후 디스크립터 저장 공간으로부터 디스크립터의 콘텐츠를 판독하고, 디스크립터의 콘텐츠에 따라 텐서 제어 모듈을 통해 피연산자에 대응되는 데이터의 주소를 계산한 후 데이터 주소 및 제1 처리 명령을 실행 유닛에 송신하며; 실행 유닛은 수신된 데이터 주소에 따라 데이터 주소로부터 데이터를 판독하여 연산함으로써 전체 연산 과정을 완료할 수 있다.
예를 들어, 연산 명령 Add; A; B의 경우, 피연산자 A와 B에 각각 디스크립터의 식별자 TR3 및 TR4가 포함되면, 제어 유닛은 텐서 제어 모듈을 통해 TR3 및 TR4에 대응되는 디스크립터 저장 공간을 결정하고, 디스크립터 저장 공간 내의 콘텐츠(예를 들어, 모양 파라미터 및 주소 파라미터)를 판독하며, 디스크립터의 콘텐츠에 따라 텐서 제어 모듈을 통해 데이터 A와 B의 데이터 주소를 계산할 수 있는 바, 예를 들어, 메모리에서 데이터 A의 주소 1는 ADDR64-ADDR127이고, 메모리에서 데이터 B의 주소 2는 ADDR1023-ADDR1087이다. 다음, 데이터 주소 1, 데이터 주소 2 및 Add 명령을 실행 유닛에 송신하며; 실행 유닛은 데이터 주소 1 및 데이터 주소 2로부터 각각 데이터를 판독하고 덧셈(Add) 연산을 수행하여 연산 결과(A + B)를 획득할 수 있다.
이러한 방식을 통해, 연산시 명령을 통해 데이터 주소를 불러들일 필요 없이 디스크립터를 사용하여 데이터의 판독을 완료할 수 있으므로 데이터 연산 효율을 향상시킨다.
본 발명의 실시예에 따른 데이터 처리 장치는 데이터 처리 명령 실행 과정에서 디스크립터를 통해 데이터의 주소를 결정할 수 있도록, 텐서 모양을 지시할 수 있는 디스크립터를 도입하여 하드웨어 측면에서 명령 생성 방식을 단순화함으로써 데이터 액세스의 복잡성을 감소시키고 데어터 액세스를 위한 프로세서의 효율을 향상시킨다.
가능한 실시형태에 있어서, 전술한 데이터 처리 장치를 포함하는 인공 지능 칩을 더 개시한다.
제A1항, 데이터 처리 장치로서, 제어 유닛 및 실행 유닛을 포함하고, 상기 제어 유닛은 텐서 제어 모듈을 포함하며, 상기 제어 유닛은,
디코딩된 제1 처리 명령의 피연산자가 디스크립터의 식별자를 포함하는 경우, 상기 디스크립터의 식별자에 따라 상기 텐서 제어 모듈을 통해, 텐서의 모양을 지시하기 위한 상기 디스크립터에 대응되는 디스크립터 저장 공간을 결정하고;
상기 디스크립터 저장 공간으로부터 상기 디스크립터의 콘텐츠를 획득하며;
상기 디스크립터의 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 데이터 저장 공간에서 상기 제1 처리 명령의 피연산자에 대응되는 데이터의 데이터 주소를 결정하고;
상기 데이터 주소에 따라 상기 텐서 제어 모듈을 통해 상기 제1 처리 명령에 대응되는 데이터 처리를 수행하는 데이터 처리 장치.
제A2항, 제A1항에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 등록 명령인 경우, 상기 제1 처리 명령 중 디스크립터의 등록 파라미터를 획득하되, 상기 등록 파라미터는 상기 디스크립터의 식별자, 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하고;
상기 디스크립터의 등록 파라미터에 따라, 상기 텐서 제어 모듈을 통해 디스크립터 저장 공간에서 상기 디스크립터의 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 결정하며;
상기 디스크립터와 상기 제2 저장 영역 간의 대응 관계를 구축하기 위해, 상기 디스크립터의 등록 파라미터 및 상기 제2 저장 영역에 따라 상기 디스크립터의 콘텐츠를 결정하고;
상기 디스크립터의 콘텐츠를 상기 제1 저장 영역에 저장하는 데이터 처리 장치.
제A3항, 제A1항 또는 제A2항에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 취소 명령인 경우, 상기 제1 처리 명령에서 디스크립터의 식별자를 획득하고;
상기 디스크립터의 식별자에 따라 디스크립터 저장 공간에서 상기 디스크립터의 저장 영역 및 상기 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터 콘텐츠의 저장 영역을 상기 텐서 제어 모듈을 통해 각각 해제하는 데이터 처리 장치.
제A4항, 제A1항 - 제A3항 중 어느 한 항에 있어서, 상기 제어 유닛은 또한,
상기 제1 처리 명령이 디스크립터 수정 명령인 경우, 상기 제1 처리 명령에서 디스크립터의 수정 파라미터를 획득하되, 상기 수정 파라미터는 상기 디스크립터의 식별자, 수정할 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하고;
상기 디스크립터의 수정 파라미터에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터의 업데이트될 콘텐츠를 결정하며;
업데이트될 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터 저장 공간 내의 상기 디스크립터의 콘텐츠 및/또는 데이터 저장 공간 내 텐서 데이터의 콘텐츠를 업데이트하는 데이터 처리 장치.
제A5항, 제A1항 - 제A4항 중 어느 한 항에 있어서, 상기 제어 유닛은 의존 관계 판단 모듈을 더 포함하고, 상기 제어 유닛은 또한,
상기 디스크립터의 식별자에 따라 의존 관계 판단 모듈을 통해 의존 관계가 있는 제2 처리 명령의 존재 여부를 결정하되, 상기 제2 처리 명령은 명령 큐에서 상기 제1 처리 명령 이전에 위치하고 또한 피연산자에 상기 디스크립터의 식별자가 구비된 처리 명령을 포함하고;
의존 관계가 있고 또한 처리가 완료되지 않은 제2 처리 명령이 존재하는 경우, 상기 제1 처리 명령을 차단하거나 캐시하는 데이터 처리 장치.
제A6항, 제A1항 - 제A5항 중 어느 한 항에 있어서, 상기 제어 유닛은 또한,
상기 디스크립터의 식별자에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터의 현재 상태를 결정하되, 상기 디스크립터의 상태는 동작 가능 상태 또는 동작 불가능 상태를 포함하고;
상기 디스크립터가 현재 동작 불가능 상태인 경우, 상기 제1 처리 명령을 차단하거나 캐시하는 데이터 처리 장치.
제A7항, 제A1항 - 제A6항 중 어느 한 항에 있어서, 상기 제1 처리 명령은 데이터 액세스 명령을 포함하고, 상기 피연산자는 소스 데이터 및 목적 데이터를 포함하며,
상기 제어 유닛은,
상기 소스 데이터 및 상기 목적 데이터 중 적어도 하나가 디스크립터의 식별자를 포함하는 경우, 상기 텐서 제어 모듈을 통해 상기 디스크립터의 디스크립터 저장 공간을 결정하고;
상기 디스크립터 저장 공간으로부터 상기 디스크립터의 콘텐츠를 획득하며;
상기 디스크립터의 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 상기 소스 데이터의 제1 데이터 주소 및/또는 상기 목적 데이터의 제2 데이터 주소를 결정하고;
상기 제1 데이터 주소로부터 데이터를 판독하여 상기 제2 데이터 주소에 기록하는 데이터 처리 장치.
제A8항, 제A1항 - 제A7항 중 어느 한 항에 있어서, 상기 제1 처리 명령은 연산 명령을 포함하고,
상기 제어 유닛은 또한,
상기 제1 처리 명령이 연산 명령인 경우, 상기 실행 유닛에 상기 데이터 주소 및 상기 제1 처리 명령을 송신하며,
상기 실행 유닛은,
수신된 상기 데이터 주소에 따라 상기 제1 처리 명령에 대응되는 연산을 수행하는 데이터 처리 장치.
제A9항, 제A1항 -제A8항 중 어느 한 항에 있어서, 상기 디스크립터는 N 차원 텐서 데이터의 모양을 지시하되, N은 0보다 크거나 같은 정수이고,
상기 디스크립터의 콘텐츠는 텐서 데이터의 모양을 표시하는 적어도 하나의 모양 파라미터를 포함하는 데이터 처리 장치.
제A10항, 제A9항에 있어서, 상기 디스크립터는 또한 N 차원 텐서 데이터의 주소를 지시하고, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함하는 데이터 처리 장치.
제A11항, 제A10항에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함하고;
여기서, 상기 텐서 데이터의 모양 파라미터는,
N개 차원 방향 중 적어도 하나의 방향에서의 상기 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터에 의해 지시된 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함하는 데이터 처리 장치.
제A12항, 제A1항 - 제A11항 중 어느 한 항에 있어서, 상기 제어 유닛은 또한,
수신된 제1 처리 명령을 디코딩 처리하여 디코딩된 제1 처리 명령을 획득하고,
디코딩된 제1 처리 명령은 연산 코드 및 하나 또는 복수의 피연산자를 포함하며, 상기 연산 코드는 상기 제1 처리 명령에 대응되는 처리 유형을 지시하는 데이터 처리 장치.
제A13항, 제A1항 - 제A12항 중 어느 한 항에 있어서, 상기 디스크립터 저장 공간은 상기 제어 유닛의 내부 메모리 중의 저장 공간이고, 상기 데이터 저장 공간은 상기 제어 유닛의 내부 메모리 또는 상기 제어 유닛에 연결된 외부 메모리 중의 저장 공간인 데이터 처리 장치.
제A14항, 인공 지능 칩으로서, 제A1항 - 제A13항 중 어느 한 항에 따른 데이터 처리 장치를 포함하는 인공 지능 칩.
제A15항, 전자 기기로서, 제A14항에 따른 인공 지능 칩을 포함하는 전자 기기.
제A16항, 보드로서, 메모리 소자, 인터페이스 장치, 제어 소자 및 제A14항에 따른 인공 지능 칩을 포함하고;
상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며;
상기 메모리 소자는 데이터를 저장하고;
상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며;
상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링하는 전자 기기.
제A17항, 제A16항에 있어서, 상기 메모리 소자는 복수 그룹의 저장 유닛을 포함하고, 각 그룹의 상기 저장 유닛은 버스를 통해 상기 인공 지능 칩에 연결되며, 상기 저장 유닛은 DDR SDRAM이고;
상기 칩은 각각의 상기 저장 유닛의 데이터 전송 및 데이터 저장을 제어하는 DDR 컨트롤러를 포함하며;
상기 인터페이스 장치는 표준 PCIE 인터페이스인 보드.
인공 지능 기술의 지속적인 발전에 따라 처리해야 할 데이터 양과 데이터 차원 모두 지속적으로 증가하고 있다. 관련 기술에서, 프로세서는 일반적으로 명령의 파라미터를 획득하여 데이터 주소를 결정한 후 데이터 주소에 따라 데이터를 판독 및 사용하는 바, 상기 방식은 프로세서의 처리 효율을 감소시킨다.
본 발명의 실시예에 따르면, 데이터 처리 방법을 제공한다. 도 1c는 본 발명의 일 실시예에 따른 데이터 처리 방법의 흐름도를 도시하는 것으로, 상기 데이터 처리 방법은 프로세서에 적용될 수 있고, 상기 프로세서는 범용 프로세서(예를 들어, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU)) 및 전용 프로세서(예를 들어, 인공 지능 프로세서, 과학 컴퓨팅 프로세서 또는 디지털 신호 프로세서 등)를 포함할 수 있으며, 본 발명은 프로세서의 유형에 대해 한정하지 않는다. 도 1c에 도시된 바와 같이, 상기 데이터 처리 방법은 하기와 같은 단계를 포함한다.
단계 S11c에서, 이미 디코딩된 처리 명령이 디스크립터 관리 명령인 경우, 상기 처리 명령 중의 디스크립터의 관리 파라미터를 획득하되, 상기 디스크립터는 텐서의 모양을 지시한다.
여기서, 텐서는 다양한 형태의 데이터 구성 방식을 포함할 수 있고, 텐서는 상이한 차원일 수 있다. 예를 들어 스칼라는 0차원 텐서로, 벡터는 1차원 텐서로, 매트릭스는 2차원 또는 2차원 이상의 텐서로 간주할 수 있으며, 텐서의 모양에는 텐서의 차원, 텐서 각 차원의 크기 등 정보가 포함된다. 예를 들어, 텐서가 인 경우,
상기 텐서의 모양은 디스크립터에 의해 (2, 4)로 설명될 수 있다. 즉, 두개의 파라미터로 상기 텐서가 2차원 텐서이고, 상기 텐서의 제1 차원(열)의 크기가 2이며, 제2 차원(행)의 크기가 4임을 표시한다. 본 발명은 디스크립터가 텐서의 모양을 지시하는 방식을 제한하지 않음에 유의해야 한다. 메모리에 텐서 데이터를 저장하는 경우, 데이터 주소(또는 저장 영역)에 따라 텐서 데이터의 모양을 결정할 수 없으며, 나아가 복수의 텐서 데이터 간의 상호 관계 등 관련 정보 역시 결정할 수 없으므로 텐서 데이터에 대한 프로세서의 액세스 효율이 낮다. 이 경우, 디스크립터를 도입하여 텐서의 모양을 지시할 수 있다.
가능한 실시형태에 있어서, 디스크립터는 식별자 및 콘텐츠 등을 포함할 수 있고, 디스크립터의 식별자는 예를 들어 번호와 같은 디스크립터를 구분할 수 있으며; 디스크립터의 콘텐츠는 텐서 데이터의 모양을 설명할 수 있고, 디스크립터의 콘텐츠는 텐서 데이터의 모양을 표시하는 모양 파라미터(예를 들어, 텐서의 각 차원 방향에서의 크기 등)를 포함할 수 있으며, 텐서 데이터의 주소를 표시하는 주소 파라미터(예를 들어, 데이터 기준점의 기준 주소)를 포함할 수도 있다. 본 발명은 디스크립터의 콘텐츠의 구체적인 파라미터에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터 관리 명령을 통해 디스크립터의 등록, 수정 및 취소 등 관리를 구현하고, 이러한 관리 명령에 해당 연산 코드를 설정할 수 있다. 예를 들어, 디스크립터 등록 명령(TRCreat)을 통해 디스크립터를 등록(생성)하고; 디스크립터 수정 명령을 통해 디스크립터의 각 파라미터(모양, 주소 등)를 수정하며; 디스크립터 취소 명령(TRRelease)을 통해 디스크립터 등을 취소(삭제)할 수 있다. 본 발명은 디스크립터 관리 명령의 유형 및 연산 코드의 구체적인 설정에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 이미 디코딩된 처리 명령은 연산 코드 및 하나 또는 복수의 피연산자를 포함할 수 있고, 연산 코드는 처리 명령에 대응되는 처리 유형을 지시하며, 피연산자는 처리할 데이터를 지시한다. 디코딩된 처리 명령의 경우, 연산 코드에 따라 처리 명령의 처리 유형을 결정할 수 있고, 이미 디코딩된 처리 명령이 디스크립터 관리 명령인 경우, 처리 명령 중의 디스크립터의 관리 파라미터를 획득할 수 있다. 여기서, 관리 파라미터는 디스크립터 관리 명령의 동작 파라미터를 지시할 수 있다. 예를 들어, 디스크립터 등록 명령의 관리 파라미터는 디스크립터의 식별자, 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 등을 포함할 수 있으며, 본 발명은 관리 파라미터의 구체적인 콘텐츠에 대해 한정하지 않는다.
단계 S12c에서, 상기 관리 파라미터에 따라 상기 처리 명령을 실행한다.
다시 말하면, 획득된 파라미터에 따라 처리 명령을 실행할 수 있다. 예를 들어, 처리 명령이 디스크립터 등록 명령인 경우, 디스크립터 등록 명령의 관리 파라미터를 획득한 후, 관리 파라미터에 따라 디스크립터 등록 명령을 실행하고 해당 디스크립터를 생성할 수 있다.
본 발명의 실시예에 따르면, 이미 디코딩된 처리 명령이 디스크립터 관리 명령인 경우, 명령 중의 관리 파라미터를 획득하고, 관리 파라미터에 따라 처리 명령을 실행함으로써 디스크립터 관리 명령을 통해 디스크립터를 관리하여 디스크립터에 대한 프로세서의 처리 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 상기 디스크립터는 N 차원 텐서 데이터의 모양을 지시할 수 있으며, 여기서 N은 0보다 크거나 같은 정수이고, 상기 디스크립터의 콘텐츠는 텐서 데이터의 모양을 표시하는 적어도 하나의 모양 파라미터를 포함할 수 있다.
가능한 실시형태에 있어서, 디스크립터는 N 차원 텐서 데이터의 모양을 지시할 수 있으며, 여기서, N의 값은 텐서 데이터의 차원 수(오더)에 따라 결정되거나, 텐서 데이터의 사용 요구에 따라 설정될 수도 있다. 예를 들어, 텐서 데이터가 3차원 데이터이면, N의 값은 3(차원 수에 따라 결정)일 수 있고, 디스크립터는 3개 차원 방향에서의 상기 텐서 데이터의 모양(예를 들어, 오프셋, 크기 등)을 지시할 수 있다. 당업자라면 실제 필요에 따라 N의 값을 설정할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터의 콘텐츠는 텐서 데이터의 모양을 표시하는 적어도 하나의 모양 파라미터(예를 들어, 텐서의 각 차원 방향에서의 크기 등)를 포함할 수 있고. 본 발명은 디스크립터의 콘텐츠에 포함되는 구체적인 모양 파라미터에 대해 한정하지 않는다.
본 실시예에서, 디스크립터를 적용하여 텐서 데이터를 지시하는 방식을 통해 텐서 데이터의 모양을 표현하고, 나아가 복수의 텐서 데이터 간의 상호 관계 등 관련 정보를 결정할 수도 있으므로 텐서 데이터의 액세스 효율을 향상시킨다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 디스크립터 저장 공간에 저장될 수 있고, 상기 디스크립터 저장 공간은 제어 유닛의 내부 메모리(예를 들어, 레지스터, 온칩 SRAM 또는 기타 미디어 캐시 등) 내의 저장 공간일 수 있다. 디스크립터에 의해 지시된 텐서 데이터의 데이터 저장 공간은 상기 제어 유닛의 내부 메모리(예를 들어, 온칩 캐시) 또는 상기 제어 유닛에 연결된 외부 메모리(오프칩 메모리) 내의 저장 공간일 수 있고, 데이터 저장 공간 내의 데이터 주소는 실제 물리적 주소 또는 가상 주소일 수 있으며, 본 발명은 디스크립터 저장 공간, 데이터 저장 공간의 위치 및 데이터 주소의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 동일한 영역에 위치할 수 있다. 예를 들어, 온칩에 캐시된 하나의 연속 영역을 사용하여 디스크립터의 관련 콘텐츠를 저장할 수 있으며, 그 주소는 ADDR0-ADDR1023이다. 여기서, 주소 ADDR0-ADDR31은 디스크립터의 식별자를 저장할 수 있고, 주소 ADDR32-ADDR63은 디스크립터의 콘텐츠를 저장할 수 있으며, 주소 ADDR64-ADDR1023은 디스크립터에 의해 지시된 텐서 데이터를 저장할 수 있다. 여기서, 주소 ADDR은 1 비트 또는 1 바이트로 한정되지 않으며 여기서는 하나의 주소를 표시하는 하나의 주소 단위이다. 당업자는 실제 상황에 따라 저장 영역 및 그 주소를 결정할 수 있으며 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 내부 메모리의 상이한 영역에 별도로 저장될 수 있다. 예를 들어, 레지스터를 디스크립터 저장 공간으로 사용하여 레지스터에 디스크립터의 식별자 및 콘텐츠를 저장하고, 온칩 캐시를 데이터 저장 공간으로 사용하여 디스크립터가 지시하는 텐서 데이터를 저장할 수 있다.
가능한 실시형태에 있어서, 디스크립터 전용인 전용 레지스터(SR)를 설치할 수도 있고, 디스크립터의 데이터는 즉치 값이거나 전용 레지스터에서 획득할 수도 있다. 레지스터를 사용하여 디스크립터의 식별자 및 콘텐츠를 저장하는 경우, 레지스터의 번호를 사용하여 디스크립터의 식별자를 표시할 수 있는데, 예를 들어, 레지스터의 번호가 0인 경우, 저장된 디스크립터의 식별자는 0이다. 레지스터 내의 디스크립터가 유효한 경우, 디스크립터가 지시하는 텐서 데이터의 크기에 따라 캐시 공간에 상기 텐서 데이터를 저장하기 위한 하나의 영역(예를 들어, 캐시에서 각각의 텐서 데이터에 하나의 텐서 캐시 유닛을 생성함)을 할당할 수 있다. 기설정된 캐시 공간을 적용하여 상기 텐서 데이터를 저장할 수도 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 내부 메모리에 저장될 수 있고, 디스크립터에 의해 지시된 텐서 데이터는 외부 메모리에 저장될 수 있다. 예를 들어, 온칩에 디스크립터의 식별자 및 콘텐츠를 저장하고, 오프칩에 디스크립터가 지시하는 텐서 데이터를 저장하는 방식을 적용할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소는 고정 주소일 수 있다. 예를 들어, 텐서 데이터에 별도의 데이터 저장 공간을 분할할 수 있고, 데이터 저장 공간에서 각각의 텐서 데이터의 시작 주소는 디스크립터의 식별자와 일대일로 대응된다. 이 경우, 디스크립터의 식별자 및 대응 관계에 따라 디스크립터에 의해 지시된 텐서 데이터의 데이터 주소를 바로 결정할 수 있다.
당업자는 실제 필요에 따라 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터의 저장 방식을 설정할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
실시예에서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 동일한 영역에 위치할 수 있고, 별도로 저장할 수도 있으며, 내부 메모리 및/또는 외부 메모리에 저장할 수 있어 디스크립터 및 텐서 데이터의 저장이 편리하고 원활하므로 처리 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 상기 디스크립터는 N 차원 텐서 데이터의 주소를 지시할 수도 있으며, 여기서, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함할 수 있다.
가능한 실시형태에 있어서, 디스크립터의 식별자에 대응되는 저장 영역의 데이터 주소가 가변 주소인 경우, 디스크립터는 N 차원 텐서 데이터의 주소를 지시할 수도 있으며, 여기서, 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 포함할 수도 있다. 예를 들어, 텐서 데이터가 3차원 데이터이면, 디스크립터를 사용하여 상기 텐서 데이터의 주소를 지시할 수 있고, 디스크립터의 콘텐츠는 상기 텐서 데이터의 주소를 표시하는 하나의 주소 파라미터(예를 들어, 텐서 데이터의 시작 주소)를 포함할 수 있으며, 상기 텐서 데이터 주소의 여러 주소 파라미터(예를 들어, 텐서 데이터의 시작 주소 + 주소 오프셋, 또는 각 차원을 기반으로 하는 텐서 데이터의 주소 파라미터)를 포함할 수도 있다. 당업자는 실제 필요에 따라 주소 파라미터를 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
본 실시예에서, 디스크립터를 사용하여 텐서 데이터의 주소를 지시하고, 디스크립터에 의해 지시된 텐서 데이터의 주소를 통해 복수의 텐서 데이터 간의 상호 관계를 결정할 수 있으므로 프로세서의 액세스 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함한다. 여기서, 기준 주소는 데이터 기준점의 변화에 따라 다를 수 있으며, 본 발명은 데이터 기준점의 선택에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 기준 주소는 상기 데이터 저장 공간의 시작 주소를 포함할 수 있다. 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록인 경우, 디스크립터의 기준 주소는 데이터 저장 공간의 시작 주소이고, 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록을 제외한 다른 데이터인 경우, 디스크립터의 기준 주소는 상기 데이터 블록의 데이터 저장 공간 내 물리적 주소이다.
본 실시예에서, 텐서 데이터의 주소 파라미터는 디스크립터의 데이터 기준점에 대응되는 기준 주소를 포함할 수 있고, 동작 및/또는 사용 요구에 따라 상이한 데이터 기준점, 디스크립터의 콘텐츠에서 사용에 대응되는 기준 주소를 결정할 수 있으므로, 디스크립터의 콘텐츠가 동작 및/또는 사용 요구에 더 부합되어 데이터 처리 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 텐서 데이터의 모양 파라미터는 N개 차원 방향 중 적어도 하나의 방향에서의 상기 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 텐서 데이터의 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터에 의해 지시된 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함한다.
여기서, 데이터 설명 위치는 디스크립터가 지시하는 텐서 데이터 중의 포인트 또는 영역의 매핑 위치인데, 예를 들어, 텐서 데이터가 3차원 데이터인 경우, 디스크립터는 3차원 공간 좌표(x, y, z)를 사용하여 상기 텐서 데이터의 모양을 표시할 수 있고, 상기 텐서 데이터의 데이터 설명 위치는 3차원 공간 좌표(x, y, z)를 사용하여 표시하고 상기 텐서 데이터에 의해3차원 공간에 매핑된 포인트 또는 영역의 위치일 수 있다.
당업자는 실제 상황에 따라 텐서 데이터의 모양을 표시하는 파라미터를 선택할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
본 실시예에서, 텐서 데이터의 모양 파라미터는 크기, 오프셋, 위치, 매핑 관계 중 적어도 하나를 포함하고 동작 및/또는 사용 요구에 따라 디스크립터의 콘텐츠에서 상이한 모양 파라미터를 사용할 수 있으므로, 디스크립터의 콘텐츠가 동작 및/또는 사용 요구에 더 부합되어 데이터 처리 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 상기 디스크립터 관리 명령은 디스크립터 등록 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자, 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함한다.
단계 S12c는, 상기 처리 명령이 디스크립터 등록 명령인 경우, 상기 디스크립터의 식별자, 상기 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 디스크립터를 등록하는 단계를 포함할 수 있다.
가능한 실시형태에 있어서, 디스크립터 등록 명령은 디스크립터의 등록에 사용될 수 있고, 디스크립터 등록 명령의 관리 파라미터는 디스크립터의 식별자(ID), 디스크립터에 의해 지시된 텐서 데이터의 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함할 수 있다. 예를 들어, 디스크립터 등록 명령의 관리 파라미터는 디스크립터 식별자 TR0, 디스크립터에 의해 지시된 텐서 데이터의 모양(차원 수, 각 차원의 크기, 오프셋, 시작 데이터 주소 등)이며, 본 발명은 관리 파라미터의 구체적인 콘텐츠에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 디스크립터를 등록할 수 있다.
예를 들어, 디스크립터 등록 명령의 관리 파라미터가 디스크립터의 식별자 TR0를 포함하는 경우, TR0에 따라 설명 등록 명령을 실행하고, 디스크립터 TR0를 등록하며, 디스크립터 TR0를 TR0에 대응되는 디스크립터 저장 공간(예를 들어, 레지스터)에 저장할 수 있다.
가능한 실시형태에 있어서, 디스크립터 등록 명령의 관리 파라미터가 디스크립터에 의해 지시된 텐서 데이터의 모양을 포함하는 경우, 디스크립터에 의해 지시된 텐서 데이터의 모양에 따라 상기 디스크립터의 콘텐츠를 결정하고, 상기 디스크립터의 콘텐츠를 디스크립터 저장 공간에 저장하여 디스크립터의 등록을 완료할 수 있다. 디스크립터 등록 명령의 관리 파라미터가 디스크립터의 식별자를 더 포함하는 경우, 디스크립터의 콘텐츠를 결정한 후, 디스크립터의 콘텐츠를 디스크립터의 식별자에 대응되는 디스크립터 저장 공간에 저장하여 디스크립터의 등록을 완료할 수 있다. 디스크립터의 식별자에 대응되는 디스크립터 저장 공간이 존재하지 않는 경우, 상기 디스크립터의 콘텐츠를 디스크립터 저장 공간에 저장하고, 상기 디스크립터의 식별자와 디스크립터 저장 공간의 대응 관계를 구축하여 디스크립터의 등록을 완료할 수 있다.
가능한 실시형태에 있어서, 디스크립터 등록 명령의 관리 파라미터가 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠를 포함하는 경우, 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠에 따라 상기 디스크립터의 콘텐츠를 결정하고, 텐서 데이터의 콘텐츠와 디스크립터의 콘텐츠의 대응 관계를 구축하며, 상기 디스크립터의 콘텐츠를 디스크립터 저장 공간에 저장하여 상기 디스크립터의 등록을 완료할 수 있다. 관리 파라미터가 디스크립터의 식별자를 더 포함하는 경우, 디스크립터의 콘텐츠를 결정한 후, 디스크립터의 콘텐츠를 디스크립터의 식별자에 대응되는 디스크립터 저장 공간에 저장하여 디스크립터의 등록을 완료할 수 있다. 디스크립터의 식별자에 대응되는 고정 디스크립터 저장 공간이 존재하지 않는 경우, 상기 디스크립터의 콘텐츠를 디스크립터 저장 공간에 저장하고, 상기 디스크립터의 식별자와 디스크립터 저장 공간의 대응 관계를 구축하여 디스크립터의 등록을 완료할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 의해 지시된 텐서 데이터의 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠에 따라 디스크립터를 등록하거나, 또는 디스크립터의 식별자, 디스크립터에 의해 지시된 텐서 데이터의 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠에 따라 디스크립터를 등록할 수도 있다. 본 발명은 디스크립터 등록 명령에서 관리 파라미터의 조합 방식 및 구체적인 값에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터 등록 명령에는 복수의 디스크립터의 관리 파라미터가 포함될 수 있다. 예를 들어, 명령에 디스크립터의 식별자 TR0, TR1 및 TR2가 포함되면, 관리 파라미터(디스크립터의 식별자, 디스크립터에 의해 지시된 텐서 데이터의 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나)에 따라 디스크립터 TR0, TR1 및 TR2를 각각 등록할 수 있다. 각 TR의 등록 과정은 전술한 등록 과정과 동일하거나 유사하다. 이에 따라, 하나의 명령에 따라 복수의 디스크립터를 일괄적으로 등록할 수 있으므로 디스크립터의 등록 효율이 더욱 향상된다.
본 실시예에서, 디스크립터의 식별자, 디스크립터에 의해 지시된 텐서 데이터의 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 디스크립터를 등록할 수 있으므로 디스크립터의 등록은 다양한 동작 및/또는 사용 요구를 만족할 수 있어 디스크립터의 처리 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 상기 디스크립터의 식별자, 상기 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 디스크립터를 등록하는 단계는, 디스크립터 저장 공간에서 상기 디스크립터의 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 결정하는 단계; 상기 디스크립터의 식별자, 상기 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 상기 디스크립터의 콘텐츠를 결정하고, 상기 디스크립터와 상기 제2 저장 영역 간의 대응 관계를 구축하는 단계; 및 상기 디스크립터의 콘텐츠를 상기 제1 저장 영역에 저장하는 단계를 포함할 수 있다.
가능한 실시형태에 있어서, 디스크립터 등록시, 디스크립터 저장 공간에서 디스크립터 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 먼저 결정할 수 있다.
예를 들어, 저장 영역 중 적어도 하나가 기설정된 경우, 제1 저장 영역 및/또는 제2 저장 영역을 직접 결정할 수 있다. 예를 들어, 디스크립터의 콘텐츠 및 텐서 데이터의 콘텐츠가 동일한 저장 공간에 저장되고, 디스크립터의 식별자 TR0에 대응되는 디스크립터의 콘텐츠의 저장 주소가 ADDR32-ADDR63이며, 텐서 데이터의 콘텐츠의 저장 주소가 ADDR64-ADDR1023임이 기설정된 경우, 이 두 주소가 제1 저장 영역 및 제2 저장 영역임을 직접 결정할 수 있다.
가능한 실시형태에 있어서, 기설정된 저장 영역이 존재하지 않는 경우, 디스크립터 저장 공간에서 디스크립터 콘텐츠를 위한 제1 저장 영역을 할당하고, 데이터 저장 공간에서 텐서 데이터 콘텐츠를 위한 제2 저장 영역을 할당할 수 있다. 여기서, 제어 유닛 또는 텐서 제어 모듈을 통해 저장 영역을 할당할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제1 저장 영역 및 제2 저장 영역을 결정한 후, 상기 디스크립터의 식별자, 상기 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 상기 디스크립터의 콘텐츠를 결정하고, 상기 디스크립터와 상기 제2 저장 영역 간의 대응 관계를 구축한 후, 디스크립터의 콘텐츠를 제1 저장 영역에 저장하여 디스크립터의 등록 과정을 완료할 수 있다.
예를 들어, 도 2에 도시된 텐서 데이터(23)의 경우, 등록 파라미터는 데이터 저장 공간(21)의 시작 주소 PA_start(기준 주소), X축 방향에서의 오프셋(25)(offset_x로 표시), Y축 방향에서의 오프셋(24)(offset_y로 표시), X축 방향에서의 크기(size_x로 표시), Y축 방향에서의 크기(size_y로 표시)를 포함할 수 있다. 이러한 파라미터를 통해 디스크립터의 콘텐츠를 식 (1)로 표시하고 이를 제1 저장 영역에 저장함으로써 디스크립터의 등록 과정을 완료할 수 있다.
이러한 방식을 통해, 디스크립터 등록 명령에 따라 디스크립터를 자동으로 생성하여 디스크립터에 의해 지시된 텐서와 데이터 주소 간의 대응을 구현함으로써 데이터 처리시 디스크립터 콘텐츠를 통해 데이터 주소를 획득하고 프로세서의 데이터 액세스 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠는 즉치 값 및 레지스터의 데이터 중 적어도 하나를 포함한다.
가능한 실시형태에 있어서, 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠는 즉치 값을 포함할 수 있다. 여기서, 즉치 값은 데이터 처리 과정에서 변경되지 않는 텐서 데이터일 수 있고, 디스크립터와 즉치 값의 대응 관계를 구축한 후, 데이터 처리 과정에서 디스크립터로 즉치 값을 대체할 수 있다. 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠는 레지스터의 데이터도 포함할 수 있고, 디스크립터와 레지스터의 데이터 간의 대응 관계를 구축한 후, 레지스터의 번호를 디스크립터의 식별자로서 사용할 수 있다.
본 실시예에서, 디스크립터를 통해 즉치 값 및 레지스터의 데이터를 지시함으로써 즉치 값 및 레지스터의 데이터를 사용하는 복잡성을 감소하여 데이터 처리 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 상기 디스크립터 관리 명령은 제1 디스크립터 취소 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자를 포함하며, 여기서, 단계 S12c는 상기 처리 명령이 제1 디스크립터 취소 명령인 경우, 상기 디스크립터의 식별자에 따라 상기 식별자에 대응되는 디스크립터를 취소하는 단계를 포함할 수 있다.
여기서, 제1 디스크립터 취소 명령은 디스크립터를 취소(삭제)할 수 있고, 그의 관리 파라미터는 디스크립터의 식별자를 포함할 수 있으며, 여기서, 디스크립터의 식별자는 취소할 디스크립터를 지시한다.
가능한 실시형태에 있어서, 제1 디스크립터 취소 명령의 관리 파라미터는 적어도 하나의 디스크립터의 식별자를 포함할 수 있다. 다시 말하면, 제1 디스크립터 취소 명령은 하나의 디스크립터를 취소하거나 복수의 디스크립터를 동시에 취소할 수도 있다.
가능한 실시형태에 있어서, 제1 디스크립터 취소 명령은 일부 디스크립터의 식별자를 포함할 수 있는 바, 즉 현재 디스크립터 중 일부 디스크립터만 취소한다. 또한 전체 디스크립터의 식별자를 포함할 수도 있는 바, 즉 현재 모든 디스크립터를 취소한다.
가능한 실시형태에 있어서, 상기 처리 명령이 제1 디스크립터 취소 명령인 경우, 디스크립터의 식별자에 따라 상기 식별자에 대응되는 디스크립터를 취소할 수 있다. 예를 들어, 제1 디스크립터 취소 명령의 관리 파라미터가 TR2 및 TR3인 경우, 제1 디스크립터 취소 명령은 TR2 및 TR3에 따라 TR2 및 TR3에 대응되는 디스크립터를 취소할 수 있다.
본 실시예에서, 디스크립터의 식별자에 따라 디스크립터를 취소할 수 있고, 사용 요구에 따라 디스크립터의 일부 또는 전부, 하나 또는 복수의 디스크립터를 동시에 취소할 수도 있으므로 디스크립터의 취소 방식이 다양한 처리 요구를 충족하여 디스크립터의 취소 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 디스크립터의 식별자에 따라 상기 식별자에 대응되는 디스크립터를 취소하는 단계는, 디스크립터 저장 공간에서 상기 디스크립터의 저장 영역 및 상기 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터 콘텐츠의 저장 영역을 각각 해제하는 단계를 포함할 수 있다.
다시 말하면, 디스크립터의 식별자에 따라 상기 식별자에 대응되는 디스크립터를 취소하는 경우, 디스크립터에 의해 점유된 저장 영역을 동시에 해제할 수 있는 바, 즉, 디스크립터 저장 공간에서 디스크립터의 저장 영역 및 데이터 저장 공간에서 디스크립터에 의해 지시된 텐서 데이터 콘텐츠의 저장 영역을 각각 해제할 수 있다. 이러한 방식을 통해, 디스크립터 사용 종료 후, 디스크립터에 의해 점유된 공간을 해제하고 제한된 저장 리소스를 재활용할 수 있으므로 리소스의 활용 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 디스크립터 관리 명령은 제2 디스크립터 취소 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자를 포함한다. 여기서, 단계 S12c는 상기 처리 명령이 제2 디스크립터 취소 명령인 경우, 상기 디스크립터의 식별자에 따라 디스크립터 저장 공간에 저장된 상기 디스크립터의 콘텐츠를 지정된 저장 공간에 저장하는 단계; 및 상기 식별자에 대응되는 디스크립터를 취소하는 단계를 포함할 수 있다.
여기서, 제2 디스크립터 취소 명령은 디스크립터를 취소(삭제)할 수 있고, 그의 관리 파라미터는 디스크립터의 식별자를 포함할 수 있으며, 여기서, 디스크립터의 식별자는 취소할 디스크립터를 지시한다.
가능한 실시형태에 있어서, 처리 명령이 제2 디스크립터 취소 명령인 경우, 디스크립터의 식별자에 따라 우선 디스크립터 저장 공간에 저장된 디스크립터의 콘텐츠를 지정된 저장 공간에 저장한 후, 상기 디스크립터의 식별자에 대응되는 디스크립터를 취소할 수 있다. 다시 말하면, 제2 디스크립터 취소 명령은 취소할 디스크립터의 콘텐츠를 저장한 후 취소 동작을 수행할 수 있다. 디스크립터의 콘텐츠를 먼저 저장한 후 디스크립터가 취소 동작을 수행하는 방식을 통해, 후속적인 사용이 필요한 디스크립터의 콘텐츠를 저장하는 동시에 현재 디스크립터에 의해 점유된 리소스(예를 들어, 디스크립터의 식별자, 저장 공간 등 리소스)도 해제하여 리소스 사용 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 상기 디스크립터 관리 명령은 디스크립터 수정 명령을 포함하고, 상기 관리 파라미터는 상기 디스크립터의 식별자, 수정할 디스크립터의 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하며, 여기서, 단계 S12c는 상기 처리 명령이 디스크립터 수정 명령인 경우, 상기 디스크립터의 관리 파라미터에 따라 상기 디스크립터의 업데이트될 콘텐츠를 결정하는 단계; 및 업데이트될 콘텐츠에 따라 상기 디스크립터의 식별자, 디스크립터 저장 공간 내의 상기 디스크립터의 콘텐츠 및 데이터 저장 공간 내의 텐서 데이터의 콘텐츠 중 적어도 하나를 업데이트하는 단계를 포함할 수 있다.
예를 들어, 디스크립터 수정 명령은 예컨대 디스크립터의 식별자, 텐서 모양 등 디스크립터의 다양한 파라미터를 수정할 수 있고, 디스크립터 수정 명령의 관리 파라미터는 디스크립터의 식별자, 수정할 디스크립터의 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함할 수 있으며, 본 발명은 디스크립터 수정 명령의 관리 파라미터의 구체적인 콘텐츠에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 처리 명령이 디스크립터 수정 명령인 경우, 디스크립터의 관리 파라미터에 따라 디스크립터의 업데이트될 콘텐츠를 결정할 수 있는 바, 예를 들어, 텐서의 차원을 3차원에서 2차원으로 변경하고, 하나 또는 복수의 차원 방향에서의 텐서의 크기 등을 변경한다.
가능한 실시형태에 있어서, 업데이트될 콘텐츠를 결정한 후, 텐서 데이터를 수정하고 업데이트된 디스크립터가 수정된 텐서 데이터를 지시할 수 있도록, 디스크립터 저장 공간 내의 디스크립터의 식별자, 디스크립터 저장 공간 내의 상기 디스크립터의 콘텐츠 및 데이터 저장 공간 내의 텐서 데이터의 콘텐츠 중 적어도 하나를 업데이트 할 수 있다. 본 발명은 업데이트될 콘텐츠의 범위 및 구체적인 업데이트 방식에 대해 한정하지 않는다.
이러한 방식을 통해, 디스크립터에 의해 지시된 텐서 데이터가 변경된 경우, 디스크립터와 텐서 데이터 간의 대응을 유지하고 리소스의 활용 효율을 향상시키기 위해 디스크립터를 직접 수정할 수 있다.
전술한 실시예를 예시로서 상기와 같이 데이터 처리 방법을 설명하였으나 당업자는 본 발명이 이에 한정되어서는 안됨을 이해할 수 있음에 유의해야 한다. 실제로, 사용자는 본 발명의 기술적 해결수단에 부합되는 한 개인 취향 및/또는 실제 응용상황에 따라 유연하게 각 단계를 설정할 수 있다.
도 3a는 본 발명의 실시예에 따른 데이터 처리 방법의 블록도를 도시하는 것으로, 도 3a에 도시된 바와 같이, 상기 데이터 처리 장치는,
이미 디코딩된 처리 명령이 디스크립터 관리 명령인 경우, 상기 처리 명령 중의 디스크립터의 관리 파라미터를 획득하되, 상기 디스크립터는 텐서의 모양을 지시하는 파라미터 획득 모듈(31a); 및
상기 관리 파라미터에 따라 상기 처리 명령을 실행하는 명령 실행 모듈(32a)을 포함한다.
가능한 실시형태에 있어서, 상기 디스크립터 관리 명령은 디스크립터 등록 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자, 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하며,
상기 명령 실행 모듈(32a)은,
상기 처리 명령이 디스크립터 등록 명령인 경우, 상기 디스크립터의 식별자, 상기 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 디스크립터를 등록하는 등록 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 상기 등록 서브 모듈은 또한,
디스크립터 저장 공간에서 상기 디스크립터의 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 결정하며;
상기 디스크립터의 식별자, 상기 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 상기 디스크립터의 콘텐츠를 결정하고, 상기 디스크립터와 상기 제2 저장 영역 간의 대응 관계를 구축하며;
상기 디스크립터의 콘텐츠를 상기 제1 저장 영역에 저장한다.
가능한 실시형태에 있어서, 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠는 즉치 값 및 레지스터의 데이터 중 적어도 하나를 포함한다.
가능한 실시형태에 있어서, 상기 디스크립터 관리 명령은 제1 디스크립터 취소 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자를 포함하며,
여기서, 상기 명령 실행 모듈(32a)은,
상기 처리 명령이 제1 디스크립터 취소 명령인 경우, 상기 디스크립터의 식별자에 따라 상기 식별자에 대응되는 디스크립터를 취소하는 제1 취소 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 제1 취소 서브 모듈은 또한,
디스크립터 저장 공간에서 상기 디스크립터의 저장 영역 및 상기 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터 콘텐츠의 저장 영역을 각각 해제한다.
가능한 실시형태에 있어서, 상기 디스크립터 관리 명령은 제2 디스크립터 취소 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자를 포함하며,
여기서, 상기 명령 실행 모듈(32a)은,
상기 처리 명령이 제2 디스크립터 취소 명령인 경우, 상기 디스크립터의 식별자에 따라 디스크립터 저장 공간에 저장된 상기 디스크립터의 콘텐츠를 지정된 저장 공간에 저장하는 저장 공간 결정 서브 모듈; 및
상기 식별자에 대응되는 디스크립터를 취소하는 제2 취소 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 상기 디스크립터 관리 명령은 디스크립터 수정 명령을 포함하고, 상기 관리 파라미터는 상기 디스크립터의 식별자, 수정할 디스크립터의 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하며,
여기서, 상기 명령 실행 모듈(32a)은,
상기 처리 명령이 디스크립터 수정 명령인 경우, 상기 디스크립터의 관리 파라미터에 따라 상기 디스크립터의 업데이트될 콘텐츠를 결정하는 업데이트 콘텐츠 결정 서브 모듈; 및
업데이트될 콘텐츠에 따라 상기 디스크립터의 식별자, 디스크립터 저장 공간 내의 상기 디스크립터의 콘텐츠 및 데이터 저장 공간 내의 텐서 데이터의 콘텐츠 중 적어도 하나를 업데이트하는 수정 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 상기 디스크립터는 N 차원 텐서 데이터의 모양을 지시하되, N은 0보다 크거나 같은 정수이고,
여기서, 상기 디스크립터의 콘텐츠는 텐서 데이터의 모양을 표시하는 적어도 하나의 모양 파라미터를 포함한다.
가능한 실시형태에 있어서, 상기 디스크립터는 또한 N 차원 텐서 데이터의 주소를 지시하고, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함한다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함한다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 모양 파라미터는,
N개 차원 방향 중 적어도 하나의 방향에서의 상기 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 텐서 데이터의 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터에 의해 지시된 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함한다.
가능한 실시형태에 있어서, 전술한 데이터 처리 장치를 포함하는 인공 지능 칩을 더 개시한다.
가능한 실시형태에 있어서, 보드를 더 개시한다. 상기 보드는 메모리 소자, 인터페이스 장치 및 제어 소자 및 전술한 인공 지능 칩을 포함하고; 상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며; 상기 메모리 소자는 데이터를 저장하고; 상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며; 상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링한다.
가능한 실시형태에 있어서, 상기 메모리 소자는 복수 그룹의 저장 유닛을 포함하고, 각 그룹의 상기 저장 유닛은 버스를 통해 상기 인공 지능 칩에 연결되며, 상기 저장 유닛은 DDR SDRAM이고; 상기 칩은 각각의 상기 저장 유닛의 데이터 전송 및 데이터 저장을 제어하는 DDR 컨트롤러를 포함하며; 상기 인터페이스 장치는 표준 PCIE 인터페이스이다.
제A1항, 데이터 처리 방법으로서,
이미 디코딩된 처리 명령이 디스크립터 관리 명령인 경우, 상기 처리 명령 중의 디스크립터의 관리 파라미터를 획득하되, 상기 디스크립터는 텐서의 모양을 지시하는 단계; 및
상기 관리 파라미터에 따라 상기 처리 명령을 실행하는 단계를 포함하는 데이터 처리 방법.
제A2항, 제A1항에 있어서, 상기 디스크립터 관리 명령은 디스크립터 등록 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자, 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하며,
상기 관리 파라미터에 따라 상기 처리 명령을 실행하는 단계는,
상기 처리 명령이 디스크립터 등록 명령인 경우, 상기 디스크립터의 식별자, 상기 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 디스크립터를 등록하는 단계를 포함하는 데이터 처리 방법.
제A3항, 제A2항에 있어서, 상기 디스크립터의 식별자, 상기 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 디스크립터를 등록하는 단계는,
디스크립터 저장 공간에서 상기 디스크립터의 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 결정하는 단계;
상기 디스크립터의 식별자, 상기 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 상기 디스크립터의 콘텐츠를 결정하고, 상기 디스크립터와 상기 제2 저장 영역 간의 대응 관계를 구축하는 단계; 및
상기 디스크립터의 콘텐츠를 상기 제1 저장 영역에 저장하는 단계를 포함하는 데이터 처리 방법.
제A4항, 제A2항 또는 제A3항에 있어서, 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠는 즉치 값 및 레지스터의 데이터 중 적어도 하나를 포함하는 데이터 처리 방법.
제A5항, 제A1항에 있어서, 상기 디스크립터 관리 명령은 제1 디스크립터 취소 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자를 포함하며,
여기서, 상기 관리 파라미터에 따라 상기 처리 명령을 실행하는 단계는,
상기 처리 명령이 제1 디스크립터 취소 명령인 경우, 상기 디스크립터의 식별자에 따라 상기 식별자에 대응되는 디스크립터를 취소하는 단계를 포함하는 데이터 처리 방법.
제A6항, 제A5항에 있어서, 상기 디스크립터의 식별자에 따라 상기 식별자에 대응되는 디스크립터를 취소하는 단계는,
디스크립터 저장 공간에서 상기 디스크립터의 저장 영역 및 상기 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터 콘텐츠의 저장 영역을 각각 해제하는 단계를 포함하는 데이터 처리 방법.
제A7항, 제A1항에 있어서, 상기 디스크립터 관리 명령은 제2 디스크립터 취소 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자를 포함하며,
여기서, 상기 관리 파라미터에 따라 상기 처리 명령을 실행하는 단계는,
상기 처리 명령이 제2 디스크립터 취소 명령인 경우, 상기 디스크립터의 식별자에 따라 디스크립터 저장 공간에 저장된 상기 디스크립터의 콘텐츠를 지정된 저장 공간에 저장하는 단계; 및
상기 식별자에 대응되는 디스크립터를 취소하는 단계를 포함하는 데이터 처리 방법.
제A8항, 제A1항에 있어서, 상기 디스크립터 관리 명령은 디스크립터 수정 명령을 포함하고, 상기 관리 파라미터는 상기 디스크립터의 식별자, 수정할 디스크립터의 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하며,
여기서, 상기 관리 파라미터에 따라 상기 처리 명령을 실행하는 단계는,
상기 처리 명령이 디스크립터 수정 명령인 경우, 상기 디스크립터의 관리 파라미터에 따라 상기 디스크립터의 업데이트될 콘텐츠를 결정하는 단계; 및
업데이트될 콘텐츠에 따라 상기 디스크립터의 식별자, 디스크립터 저장 공간 내의 상기 디스크립터의 콘텐츠 및 데이터 저장 공간 내의 텐서 데이터의 콘텐츠 중 적어도 하나를 업데이트하는 단계를 포함하는 데이터 처리 방법.
제A9항, 제A1항 - 제A8항 중 어느 한 항에 있어서, 상기 디스크립터는 N 차원 텐서 데이터의 모양을 지시하되, N은 0보다 크거나 같은 정수이고,
상기 디스크립터의 콘텐츠는 텐서 데이터의 모양을 표시하는 적어도 하나의 모양 파라미터를 포함하는 데이터 처리 방법.
제A10항, 제A9항에 있어서, 상기 디스크립터는 또한 N 차원 텐서 데이터의 주소를 지시하고, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함하는 데이터 처리 방법.
제A11항, 제A10항에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함하는 데이터 처리 방법.
제A12항, 제A11항에 있어서, 상기 텐서 데이터의 모양 파라미터는,
N개 차원 방향 중 적어도 하나의 방향에서의 상기 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 텐서 데이터의 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터에 의해 지시된 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함하는 데이터 처리 방법.
제A13항, 데이터 처리 장치로서,
이미 디코딩된 처리 명령이 디스크립터 관리 명령인 경우, 상기 처리 명령 중의 디스크립터의 관리 파라미터를 획득하되, 상기 디스크립터는 텐서의 모양을 지시하는 파라미터 획득 모듈; 및
상기 관리 파라미터에 따라 상기 처리 명령을 실행하는 명령 실행 모듈을 포함하는 데이터 처리 장치.
제A14항, 제A13항에 있어서, 상기 디스크립터 관리 명령은 디스크립터 등록 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자, 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하며,
상기 명령 실행 모듈은,
상기 처리 명령이 디스크립터 등록 명령인 경우, 상기 디스크립터의 식별자, 상기 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 디스크립터를 등록하는 등록 서브 모듈을 포함하는 데이터 처리 장치.
제A15항, 제A14항에 있어서, 상기 등록 서브 모듈은 또한,
디스크립터 저장 공간에서 상기 디스크립터의 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 결정하며;
상기 디스크립터의 식별자, 상기 디스크립터에 의해 지시된 텐서 데이터의 모양, 및 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나에 따라 상기 디스크립터의 콘텐츠를 결정하고, 상기 디스크립터와 상기 제2 저장 영역 간의 대응 관계를 구축하며;
상기 디스크립터의 콘텐츠를 상기 제1 저장 영역에 저장하는 데이터 처리 장치.
제A16항, 제A14항 또는 제A15항에 있어서, 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠는 즉치 값 및 레지스터의 데이터 중 적어도 하나를 포함하는 데이터 처리 장치.
제A17항, 제A13항에 있어서, 상기 디스크립터 관리 명령은 제1 디스크립터 취소 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자를 포함하며,
상기 명령 실행 모듈은,
상기 처리 명령이 제1 디스크립터 취소 명령인 경우, 상기 디스크립터의 식별자에 따라 상기 식별자에 대응되는 디스크립터를 취소하는 제1 취소 서브 모듈을 포함하는 데이터 처리 장치.
제A18항, 제A17항에 있어서, 제1 취소 서브 모듈은 또한,
디스크립터 저장 공간에서 상기 디스크립터의 저장 영역 및 상기 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터 콘텐츠의 저장 영역을 각각 해제하는 데이터 처리 장치.
제A19항, 제A13항에 있어서, 상기 디스크립터 관리 명령은 제2 디스크립터 취소 명령을 포함하고, 상기 관리 파라미터는 디스크립터의 식별자를 포함하며,
상기 명령 실행 모듈은,
상기 처리 명령이 제2 디스크립터 취소 명령인 경우, 상기 디스크립터의 식별자에 따라 디스크립터 저장 공간에 저장된 상기 디스크립터의 콘텐츠를 지정된 저장 공간에 저장하는 저장 공간 결정 서브 모듈; 및
상기 식별자에 대응되는 디스크립터를 취소하는 제2 취소 서브 모듈을 포함하는 데이터 처리 장치.
제A20항, 제A13항에 있어서, 상기 디스크립터 관리 명령은 디스크립터 수정 명령을 포함하고, 상기 관리 파라미터는 상기 디스크립터의 식별자, 수정할 디스크립터의 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하며,
상기 명령 실행 모듈은,
상기 처리 명령이 디스크립터 수정 명령인 경우, 상기 디스크립터의 관리 파라미터에 따라 상기 디스크립터의 업데이트될 콘텐츠를 결정하는 업데이트 콘텐츠 결정 서브 모듈; 및
업데이트될 콘텐츠에 따라 상기 디스크립터의 식별자, 디스크립터 저장 공간 내의 상기 디스크립터의 콘텐츠 및 데이터 저장 공간 내의 텐서 데이터의 콘텐츠 중 적어도 하나를 업데이트하는 수정 서브 모듈을 포함하는 데이터 처리 장치.
제A21항, 제A13항 - 제A20항 중 어느 한 항에 있어서, 상기 디스크립터는 N 차원 텐서 데이터의 모양을 지시하되, N은 0보다 크거나 같은 정수이고,
상기 디스크립터의 콘텐츠는 텐서 데이터의 모양을 표시하는 적어도 하나의 모양 파라미터를 포함하는 데이터 처리 장치.
제A22항, 제A21항에 있어서, 상기 디스크립터는 또한 N 차원 텐서 데이터의 주소를 지시하고, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함하는 데이터 처리 장치.
제A23항, 제A22항에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함하는 데이터 처리 장치.
제A24항, 제A23항에 있어서, 상기 텐서 데이터의 모양 파라미터는,
N개 차원 방향 중 적어도 하나의 방향에서의 상기 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 텐서 데이터의 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터에 의해 지시된 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함하는 데이터 처리 장치.
제A25항, 인공 지능 칩으로서, 제A13항 - 제A24항 중 어느 한 항에 따른 데이터 처리 장치를 포함하는 것을 특징으로 하는 인공 지능 칩.
제A26항, 전자 기기로서, 제A25항에 따른 인공 지능 칩을 포함하는 것을 특징으로 하는 전자 기기.
제A27항, 보드로서, 메모리 소자, 인터페이스 장치, 제어 소자 및 제A25항에 따른 인공 지능 칩을 포함하고;
상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며;
상기 메모리 소자는 데이터를 저장하고;
상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며;
상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링하는 것을 특징으로 하는 보드.
제A28항, 제A27항에 있어서,
상기 메모리 소자는 복수 그룹의 저장 유닛을 포함하고, 각 그룹의 상기 저장 유닛은 버스를 통해 상기 인공 지능 칩에 연결되며, 상기 저장 유닛은 DDR SDRAM이고;
상기 칩은 각각의 상기 저장 유닛의 데이터 전송 및 데이터 저장을 제어하는 DDR 컨트롤러를 포함하며;
상기 인터페이스 장치는 표준 PCIE 인터페이스인 것을 특징으로 하는 보드.
인공 지능 기술의 지속적인 발전에 따라 그 응용 분야가 갈수록 광범해져 이미지 인식, 음성 인식, 자연어 처리 등 분야에 잘 응용되고 있으나 인공 지능 알고리즘의 복잡성이 증가함에 따라 처리해야 할 데이터 양 및 데이터 차원 모두 지속적으로 증가되므로 일반적으로 멀티 코어 및/또는 멀티 칩에 대한 데이터 처리가 필요하다. 코어 간 또는 칩 간의 데이터 동기화를 수행하는 경우, 관련 기술의 동기화 방식을 적용하면 동기화 오버헤드가 크므로 처리 효율이 낮다.
본 발명의 실시예에 따르면, 데이터 동기화 방법을 제공한다.
본 발명의 실시예에 따른 데이터 동기화 방법은 복수의 프로세서(멀티 코어)를 포함하는 처리 시스템(예를 들어, 인공 지능 칩)의 임의의 프로세서에 응용될 수 있다. 상기 프로세서는 CPU(Central Processing Unit, 중앙 처리 장치)와 같은 범용 프로세서 또는 인공 지능 연산을 수행하는 인공 지능 프로세서(IPU)일 수 있고, 인공 지능 연산은 기계 학습 연산, 뇌와 유사한 연산 등을 포함할 수 있다. 여기서, 기계 학습 연산은 신경망 연산, k-means 연산, 벡터기 지원 연산 등을 포함하고, 상기 인공 지능 프로세서는 예를 들어, GPU(Graphics Processing Unit, 그래픽 처리 유닛), NPU(Neural-Network Processing Unit, 신경망 처리 유닛), DSP(Digital Signal Process, 디지털 신호 처리 유닛), 필드 프로그래밍 가능 게이트 어레이(Field-Programmable Gate Array, FPGA) 칩 중 하나 또는 이들의 조합을 포함할 수 있으며, 본 발명은 프로세서의 구체적인 유형에 대해 한정하지 않는다. 이 밖에, 처리 시스템에서 복수의 프로세서의 유형은 동일하거나 상이할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 본 발명에서 언급한 프로세서는 복수의 처리 유닛을 포함할 수 있고, 각각의 처리 유닛은 컨볼루션 연산 임무, 풀링 임무 또는 완전 연결된 임무와 같이 할당된 다양한 임무를 독립적으로 실행할 수 있으며, 본 발명은 처리 유닛 및 처리 유닛에 의해 실행되는 임무에 대해 한정하지 않는다.
도 1da은 본 발명의 실시예에 따른 데이터 동기화 방법의 처리 시스템의 모식도를 도시하는 것으로, 도 1da에 도시된 바와 같이, 처리 시스템(100d)은 복수의 프로세서(101) 및 메모리(102)를 포함하고, 복수의 프로세서(101)는 명령 시퀀스를 실행하며, 메모리(102)는 데이터를 저장하고 랜덤 액세스 메모리(RAM, Random Access Memory) 및 레지스터 파일을 포함할 수 있다. 처리 시스템(100d)의 복수의 프로세서(101)는 저장 공간의 일부를 공용할 수 있는 바, 예를 들어, RAM 저장 공간 및 레지스터 파일의 일부를 공용할 수 있으며 동시에 각자의 저장 공간을 가질 수도 있다.
도 1db는 본 발명의 일 실시예에 따른 데이터 동기화 방법의 흐름도를 도시하는 것으로, 도 1db에 도시된 바와 같이, 상기 방법은 제1 프로세서(처리 시스템 중의 임의의 프로세서)에 응용되고, 상기 방법은 하기와 같은 단계를 포함한다.
단계 S11d에서, 동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 동기화 정보를 결정하되, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시한다.
단계 S12d에서, 상기 텐서 데이터의 동기화 정보에 따라 동기화 명령을 생성한다.
단계 S13d에서, 제2 프로세서에 상기 동기화 명령을 송신하되, 상기 동기화 명령은 상기 제2 프로세서가 상기 동기화 명령에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시한다.
예를 들어, 동기화될 데이터는 N 차원 텐서 데이터(N은 0보다 크거나 같은 정수임. 예를 들어, N=1, 2 또는 3)를 포함할 수 있고, 여기서, 텐서는 다양한 형태의 데이터 구성 방식을 포함할 수 있으며, 텐서는 상이한 차원일 수 있다. 예를 들어 스칼라는 0차원 텐서로, 벡터는 1차원 텐서로, 매트릭스는 2차원 또는 2차원 이상의 텐서로 간주할 수 있으며, 텐서의 모양에는 텐서의 차원, 텐서 각 차원의 크기 등 정보가 포함된다.
이 경우, 디스크립터(텐서 디스크립터)를 설정하여 텐서 데이터(N 차원 텐서 데이터)의 모양을 지시할 수 있다. 여기서, N의 값은 텐서 데이터의 차원 수(오더)에 따라 결정되거나, 텐서 데이터의 사용 요구에 따라 설정될 수도 있다. 예를 들어, N의 값이 3인 경우, 텐서 데이터가 3차원 텐서 데이터, 디스크립터는 3개 차원 방향에서 상기 3차원 텐서 데이터의 모양(예를 들어, 오프셋, 크기 등)을 지시할 수 있다. 당업자라면 실제 필요에 따라 N의 값을 설정할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터는 식별자 및 콘텐츠 등을 포함할 수 있고, 디스크립터의 식별자는 예를 들어 번호와 같은 디스크립터를 구분할 수 있으며; 디스크립터의 콘텐츠는 텐서 데이터의 모양을 표시하는 적어도 하나의 모양 파라미터(예를 들어, 텐서의 각 차원 방향에서의 크기 등)를 포함할 수 있고, 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터(예를 들어, 데이터 기준점의 기준 주소)를 포함할 수도 있으며, 본 발명은 디스크립터의 콘텐츠에 포함되는 구체적인 파라미터에 대해 한정하지 않는다.
디스크립터를 적용하여 텐서 데이터를 지시하는 방식을 통해 텐서 데이터의 모양을 표현하고, 나아가 복수의 텐서 데이터 간의 상호 관계 등 관련 정보를 결정할 수도 있으므로 텐서 데이터의 액세스 효율을 향상시켜 데이터 동기화시 복잡성을 감소시킨다.
가능한 실시형태에 있어서, 데이터 처리 과정에서 복수의 프로세서(예를 들어, 인공 지능 칩의 복수의 코어) 간의 데이터 동기화를 수행해야 할 가능성이 있는데, 예를 들어, 프로세서 A1의 연산 결과를 다른 연산의 입력 데이터로서 프로세서 A2에 동기화될 수 있다. 이 경우, 디스크립터 기반 데이터 동기화 메커니즘을 적용하여 데이터 동기화를 구현할 수 있다.
가능한 실시형태에 있어서, 제1 프로세서는 데이터 동기화의 송신자이고, 제2 프로세서는 데이터 동기화의 수신자이다. 동기화될 텐서 데이터가 존재하는 경우, 제1 프로세서는 단계 S11d에서 상기 텐서 데이터의 디스크립터에 따라 텐서 데이터의 동기화 정보(예를 들어, 텐서 데이터의 식별자, 모양, 소스, 저장 주소 등 정보)를 결정하고; 단계 S12d에서 동기화 정보에 따라 동기화 명령을 생성하며, 단계 S13d에서 동기화될 제2 프로세서에 상기 동기화 명령을 송신할 수 있다. 여기서, 제2 프로세서는 범용 프로세서(예를 들어, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU)) 및 전용 프로세서(예를 들어, 인공 지능 프로세서, 과학 컴퓨팅 프로세서 또는 디지털 신호 프로세서 등)를 포함할 수 있으며, 제2 프로세서의 유형은 제1 프로세서의 유형과 동일하거나 상이할 수 있으며, 본 발명은 제2 프로세서의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제1 프로세서는 제2 프로세서에 대한 데이터 동기화를 능동적으로 개시할 수 있는데, 예를 들어, 제1 프로세서가 하나의 연산을 완료하고 연산 결과(텐서 데이터)를 획득한 경우, 해당 연산 결과를 사용해야 하는 제2 프로세서에 대한 데이터 동기화를 능동적으로 개시한다. 다른 예시에서, 제1 프로세서는 제2 프로세서의 동기화 요청에 응답하여 제2 프로세서에 대한 데이터 동기화를 개시할 수도 있는데, 예를 들어, 제2 프로세서의 동기화 요청 명령을 수신하면, 제2 프로세서에 대한 데이터 동기화를 개시하며 본 발명은 데이터 동기화의 개시 시기에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제1 프로세서가 동기화될 텐서 데이터가 존재하는 것으로 결정하면, 상기 텐서 데이터의 디스크립터를 획득할 수 있다. 상기 디스크립터는 상기 텐서 데이터의 모양을 지시하는 이미 등록(생성)된 디스크립터일 수 있고, 상기 텐서 데이터의 모양 파라미터에 따라 새로운 디스크립터를 등록(생성)할 수도 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 동기화 정보를 결정할 수 있고, 상기 동기화 정보는 텐서 데이터의 식별자(예를 들어, 데이터 번호), 모양, 소스, 저장 주소 등 정보 중 적어도 하나를 포함할 수 있으며, 상기 텐서 데이터의 동기화 정보에 따라 동기화 명령을 생성할 수 있다. 제2 프로세서에 이미 상기 텐서 데이터의 정보가 구비된 경우(예를 들어, 상기 동기화될 텐서 데이터를 지시하는 디스크립터가 이미 등록됨), 동기화 명령은 제2 프로세서가 상기 텐서 데이터의 식별자에 따라 텐서 데이터의 동기화를 구현하도록 지시하기 위해 텐서 데이터의 식별자와 같은 부분적 동기화 정보만을 포함할 수 있다. 제2 프로세서에 상기 텐서 데이터의 정보가 구비되지 않은 경우, 동기화 명령은 제2 프로세서가 대응되는 정보에 따라 텐서 데이터의 동기화를 구현하도록 지시하기 위해 텐서 데이터의 식별자 및 저장 주소와 같은 더 많은 동기화 정보를 포함할 수 있으며, 본 발명은 동기화 명령에 포함되는 구체적인 콘텐츠에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 동기화 명령을 생성한 후, 제2 프로세서가 상기 동기화 명령에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시하기 위해 제2 프로세서에 상기 동기화 명령을 송신할 수 있다. 동기화 명령이 텐서 데이터의 식별자를 포함하면, 제2 프로세서는 상기 식별자에 따라 동기화될 텐서 데이터를 결정하고, 상기 동기화될 텐서 데이터를 지시하는 디스크립터를 등록 또는 획득한 후 디스크립터의 콘텐츠에 따라 디스크립터에 의해 지시된 텐서 데이터를 획득함으로써 텐서 데이터의 동기화를 구현할 수 있다. 동기화 명령이 더 많은 동기화 정보(식별자 및 저장 주소 등)를 포함하면, 제2 프로세서는 명령 중의 동기화 정보에 따라 상기 동기화될 텐서 데이터를 지시하는 디스크립터를 등록하고, 디스크립터의 콘텐츠에 따라 디스크립터에 의해 지시된 텐서 데이터를 직접 획득함으로써 텐서 데이터의 동기화를 구현할 수 있다.
본 발명의 실시예의 데이터 동기화 방법에 따르면, 텐서 데이터의 모양을 지시하는 디스크립터를 설정하고, 디스크립터에 따라 텐서 데이터의 동기화 정보를 결정하며, 제2 프로세서가 동기화 명령에 따라 동기화될 텐서 데이터를 획득하도록 지시하기 위해 동기화 정보에 따라 동기화 명령을 생성하고 제2 프로세서에 동기화 명령을 송신한다. 따라서 동기화 명령의 구조를 변경하지 않으면서 동기화 오버헤드를 감소시켜 데이터 동기화의 효율을 향상시킨다.
가능한 실시형태에 있어서, 동기화 정보는 동기화될 텐서 데이터의 저장 주소를 포함할 수 있고, 단계 S12d는 동기화될 텐서 데이터의 저장 주소가 공용 저장 공간에 있는 경우, 상기 제2 프로세서가 상기 공용 저장 공간에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시하기 위해, 상기 동기화될 텐서 데이터의 저장 주소에 따라 동기화 명령을 생성하는 단계를 포함할 수 있다.
예를 들어, 복수의 프로세서(복수의 코어)는 제1 프로세서 및 제2 프로세서 모두가 액세스할 수 있는 오프칩 메모리와 같은 공용 저장 공간을 구비할 수 있다. 상기 공용 저장 공간은 복수의 코어(복수의 프로세서) 모두가 데이터에 액세스할 수 있는 저장 공간이거나 일부 코어(일부 프로세서)가 데이터에 액세스할 수 있는 저장 공간일 수 있고, 코어 간의 공용 저장 공간은 미리 설정될 수 있으며, 본 발명은 공용 저장 공간의 설정 방식에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터의 디스크립터 콘텐츠에 따라 상기 텐서 데이터의 저장 주소를 결정할 수 있다. 동기화될 텐서 데이터의 저장 주소가 공용 저장 공간에 있는 경우, 제2 프로세서 역시 공용 저장 공간으로부터 데이터를 액세스할 수 있으므로 제2 프로세서는 동기화를 구현하기 위해 텐서 데이터의 저장 주소에 따라 텐서 데이터를 직접 판독할 수 있다. 이 경우, 동기화 명령은 동기화될 텐서 데이터의 저장 주소를 포함할 수 있는 바, 즉, 동기화될 텐서 데이터의 저장 주소에 따라 동기화 명령을 생성할 수 있다. 제2 프로세서는 동기화 명령을 수신한 후, 텐서 데이터의 저장 주소를 획득하기 위해 명령을 해석할 수 있고; 텐서 데이터의 저장 주소에 따라 제2 프로세서는 동기화될 텐서 데이터의 디스크립터를 등록(생성)하여 디스크립터의 콘텐츠가 상기 텐서 데이터의 데이터 주소와 대응되도록 하며, 공용 저장 공간으로부터 상기 동기화될 텐서 데이터를 획득함으로써 전체 동기화 과정을 완료할 수 있다.
이러한 방식을 통해, 불필요한 데이터 전송을 방지하고 텐서 데이터 액세스 횟수를 감소시킬 수 있으므로 동기화 처리 효율을 향상시킨다.
가능한 실시형태에 있어서, 동기화 정보는 동기화될 텐서 데이터의 저장 주소를 포함하고, 단계 S12d는 동기화될 텐서 데이터의 저장 주소가 비 공용 저장 공간에 있는 경우, 상기 동기화될 텐서 데이터를 공용 저장 공간에 저장하는 단계; 및 상기 제2 프로세서가 상기 공용 저장 공간에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시하기 위해, 공용 저장 공간에서 상기 동기화될 텐서 데이터의 주소에 따라 동기화 명령을 생성하는 단계를 포함할 수 있다.
예를 들어, 제1 프로세서는 비 공용 저장 공간을 구비할 수 있고, 제1 프로세서는 상기 비 공용 저장 공간 내의 데이터에 액세스할 수 있으나, 제2 프로세서는 제1 프로세서의 비 공용 저장 공간에 액세스할 수 없으며 상기 비 공용 저장 공간 내의 데이터에 액세스할 수 없다. 동기화될 텐서 데이터의 저장 주소가 비 공용 저장 공간에 있으면 제2 프로세서는 상기 텐서 데이터를 직접 획득할 수 없다. 이 경우, 제1 프로세서는 제2 프로세서가 상기 텐서 데이터에 액세스할 수 있도록 동기화될 텐서 데이터를 공용 저장 공간에 언로딩한다. 언로딩 완료 후, 제1 프로세서에 상기 동기화될 텐서 데이터를 지시하는 디스크립터가 등록되지 않았거나 또는 비 공용 저장 공간 내의 상기 텐서 데이터를 지시하는 디스크립터가 등록되고 또한 상기 디스크립터가 수정이 불가능한 경우(예를 들어, 작동 중), 제1 프로세서는 상기 동기화될 텐서 데이터의 디스크립터를 생성할 수 있는 바, 즉, 공용 저장 공간 내의 상기 텐서 데이터를 지시하기 위해 새로운 디스크립터를 등록한다.
가능한 실시형태에 있어서, 제1 프로세서는 동기화될 텐서 데이터에 따라 공용 저장 공간 내의 주소 동기화 명령을 생성할 수 있다. 제2 프로세서는 동기화 명령을 수신한 후, 동기화될 텐서 데이터의 저장 주소를 획득하기 위해 명령을 해석할 수 있고; 텐서 데이터의 저장 주소에 따라 제2 프로세서는 동기화될 텐서 데이터의 디스크립터를 등록(생성)하여 디스크립터의 콘텐츠가 상기 텐서 데이터의 데이터 주소와 대응되도록 하며, 공용 저장 공간으로부터 상기 동기화될 텐서 데이터를 획득함으로써 전체 동기화 과정을 완료할 수 있다.
이러한 방식을 통해, 제2 프로세서가 동기화될 텐서 데이터를 획득할 수 있도록, 비 공용 저장 공간 내 동기화될 텐서 데이터를 공용 저장 공간에 능동적으로 언로딩함으로써 동기화시 프로세서 간의 데이터 전송을 감소시키고 동기화 처리 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은 제2 프로세서로부터 송신된 동기화 요청 명령에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세서의 동기화 요청에 응답하여 제2 프로세서에 대한 데이터 동기화를 개시할 수 있다. 여기서, 제2 프로세서로부터의 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징과 같은 동기화될 텐서 데이터의 정보를 포함할 수 있고, 여기서, 텐서 데이터의 데이터 특징은 텐서 데이터의 식별자, 모양, 소스, 주소 등 정보를 포함할 수 있으며, 본 발명은 동기화 요청 명령의 구체적인 콘텐츠에 대해 한정하지 않는다. 동기화 요청 명령 중의 정보에 따라 제1 프로세서는 동기화될 텐서 데이터의 디스크립터를 결정하고, 디스크립터에 따라 텐서 데이터의 동기화 정보를 결정하며, 나아가 동기화 명령을 생성할 수 있다.
이러한 방식을 통해, 동기화 명령을 생성하기 위해, 제2 프로세서의 동기화 요청에 따라 동기화될 텐서 데이터의 디스크립터를 결정할 수 있으므로 불필요한 데이터 동기화를 방지하고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징을 포함하고, 상기 제2 프로세서로부터 송신된 동기화 요청 명령에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계는,
상기 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 획득하는 단계; 및
동기화될 텐서 데이터의 데이터 특징에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계를 포함할 수 있다.
예를 들어, 제1 프로세서 및 제2 프로세서가 모두 동기화될 텐서 데이터의 정보(데이터 특징)를 구비하고, 또한 정보가 동일하거나 대응 관계를 갖는 경우, 동기화 요청 명령에는 텐서 데이터의 식별자와 같은 데이터 특징이 포함될 수 있다. 제1 프로세서는 제2 프로세서로부터의 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 획득할 수 있다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터의 데이터 특징은 텐서 데이터의 식별자, 모양, 소스, 주소 등 정보를 포함할 수 있다. 예를 들어, 상기 텐서 데이터의 데이터 소스는 K번째 송신자(K번째 프로세서)이고, 상기 텐서 데이터의 데이터 소스는 번호가 200인 컨볼루션 동작의 연산 결과이며, 상기 텐서 데이터의 주소는 특정된 주소 영역(예를 들어, 주소 ADDR0-ADDR127)이고, 상기 텐서 데이터의 모양은 지정된 모양(예를 들어, 20*10의 2차원 텐서) 등이다. 당업자는 실제 상황에 따라 동기화될 텐서 데이터의 데이터 특징을 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 데이터 특징에 따라 제1 프로세서는 동기화될 텐서 데이터를 검색하고, 상기 동기화될 텐서 데이터의 디스크립터를 결정할 수 있는데, 예를 들어, 대응되는 디스크립터를 직접 획득하거나 새로 등록한다. 제2 프로세서가 상기 텐서 데이터의 동기화를 구현하도록 지시하기 위해, 상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 동기화 정보를 결정함으로써 동기화 명령을 생성 및 송신할 수 있다.
이러한 방식을 통해, 텐서 데이터의 동기화를 구현하기 위해, 요청 명령 중의 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정할 수 있다. 따라서 동기화시 텐서 데이터 자체를 전송할 필요가 없으므로 전송되는 데이터 양 및 동기화 오버헤드를 감소시키고 처리 효율을 향상시킨다.
도 3ba은 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다. 상기 데이터 동기화 방법은 제2 프로세서에 응용될 수 있으며, 도 3ba에 도시된 바와 같이, 상기 데이터 동기화 방법은 하기와 같은 단계를 포함한다.
단계 S21b에서, 제1 프로세서로부터 수신된 동기화 명령을 해석하여 동기화될 텐서 데이터의 동기화 정보를 획득한다.
단계 S22b에서, 상기 동기화될 텐서 데이터의 동기화 정보에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하되, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시한다.
단계 S23b에서, 상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 동기화될 텐서 데이터를 획득한다.
예를 들어, 제1 프로세서(송신자)는 제2 프로세서(수신자)에 대한 데이터 동기화를 능동적으로 개시할 수 있는데, 예를 들어, 제1 프로세서가 하나의 연산을 완료하고 연산 결과(텐서 데이터)를 획득한 경우, 해당 연산 결과를 사용해야 하는 제2 프로세서에 대한 데이터 동기화를 능동적으로 개시한다.
가능한 실시형태에 있어서, 제2 프로세서는 제1 프로세서로부터 동기화 명령을 수신하면, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 동기화 정보(예를 들어, 텐서 데이터의 식별자, 모양, 저장 주소 등)을 획득할 수 있다.
가능한 실시형태에 있어서, 상기 동기화 명령이 텐서 데이터의 식별자만 포함하는 경우, 제2 프로세서는 내부적으로 상기 텐서 데이터의 식별자에 대응되는 텐서 데이터 및/또는 텐서 데이터에 대응되는 디스크립터를 검색하고, 나아가 디스크립터 콘텐츠에 따라 동기화될 텐서 데이터를 획득함으로써 텐서 데이터의 동기화를 구현할 수 있다.
가능한 실시형태에 있어서, 상기 동기화 명령이 텐서 데이터의 모양 및 저장 주소를 포함하는 경우, 제2 프로세서는 텐서 데이터의 모양 및 저장 주소에 따라 상기 동기화될 텐서 데이터를 지시하는 디스크립터를 등록하고, 디스크립터의 콘텐츠에 따라 동기화될 텐서 데이터를 획득함으로써 텐서 데이터의 동기화를 구현할 수 있다.
본 발명의 실시예의 데이터 동기화 방법에 따르면, 텐서 데이터의 모양을 지시하는 디스크립터를 설정하고, 동기화 명령 중의 동기화될 텐서 데이터의 동기화 정보에 따라 상기 텐서 데이터의 디스크립터를 결정하며, 나아가 상기 텐서 데이터를 획득하여 텐서 데이터의 동기화를 구현할 수 있다. 따라서 동기화 오버헤드 및 데이터 동기화의 복잡성을 감소시키며 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 동기화 정보는 상기 동기화될 텐서 데이터의 저장 주소를 포함하고,
단계 S22b는 상기 동기화될 텐서 데이터의 저장 주소에 따라 상기 동기화될 텐서 데이터의 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 결정하는 단계를 포함하며;
단계 S23b는 상기 동기화될 텐서 데이터의 디스크립터의 콘텐츠에 따라 공용 저장 공간으로부터 상기 동기화될 텐서 데이터를 획득하는 단계를 포함한다.
예를 들어, 동기화될 텐서 데이터의 저장 주소가 공용 저장 공간에 있는 경우, 제2 프로세서는 공용 저장 공간으로부터 데이터에 액세스할 수 있다. 이 경우, 동기화 명령은 동기화될 텐서 데이터의 저장 주소를 포함할 수 있고, 제2 프로세서는 동기화 명령을 수신한 후, 동기화될 텐서 데이터의 저장 주소를 획득하기 위해 명령을 해석할 수 있으며; 상기 텐서 데이터의 저장 주소에 따라 상기 텐서 데이터에 대응되는 디스크립터를 생성하거나 수정한다. 상기 디스크립터의 콘텐츠에 따라 제2 프로세서는 공용 저장 공간으로부터 동기화될 텐서 데이터를 획득함으로써 전체 동기화 과정을 구현할 수 있다.
이러한 방식을 통해, 불필요한 데이터 전송을 방지하고 텐서 데이터 액세스 횟수를 감소시킬 수 있으므로 동기화 처리 효율을 향상시키고, 명령 전달 및 처리 과정에서 명령 호환성을 구현한다.
도 3bb는 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다. 상기 데이터 동기화 방법은 제2 프로세서에 응용될 수 있으며, 도 3bb에 도시된 바와 같이, 상기 데이터 동기화 방법은 하기와 같은 단계를 포함한다.
단계 S31b에서, 동기화될 텐서 데이터가 존재하는 경우, 동기화 요청 명령을 생성하되, 상기 동기화 요청 명령은 제1 프로세서가 상기 동기화 요청 명령에 따라 동기화될 텐서 데이터의 디스크립터를 결정하도록 지시하고, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시한다.
단계 S32b에서, 상기 제1 프로세서에 상기 동기화 요청 명령을 송신한다.
예를 들어, 제2 프로세서에 동기화될 텐서 데이터가 존재하는 경우, 상기 동기화될 텐서 데이터를 획득하기 위해 능동적으로 제1 프로세서에 동기화 요청 명령을 송신할 수 있고, 제2 프로세서는 상기 동기화될 텐서 데이터의 데이터 특징과 같은 동기화될 텐서 데이터의 정보에 따라 동기화 요청 명령을 생성할 수 있으며, 본 발명은 동기화 요청 명령의 구체적인 콘텐츠에 대해 한정하지 않는다. 동기화 요청 명령 중의 정보에 따라 제1 프로세서는 동기화될 텐서 데이터의 디스크립터를 결정하고 나아가 동기화 명령을 생성할 수 있다.
이러한 방식을 통해, 동기화 필요시 동기화 요청을 능동적으로 개시하여 데이터 동기화 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 제1 프로세서가 동기화될 텐서 데이터를 결정할 수 있도록, 상기 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징을 포함한다. 여기서, 텐서 데이터의 데이터 특징은 텐서 데이터의 식별자, 모양, 소스, 주소 등 정보를 포함할 수 있고, 당업자는 실제 상황에 따라 동기화될 텐서 데이터의 데이터 특징을 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 방법은,
제1 프로세서로부터 수신된 동기화 명령을 해석하여 동기화될 텐서 데이터의 동기화 정보를 획득하는 단계;
상기 동기화될 텐서 데이터의 동기화 정보에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계; 및
상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 동기화될 텐서 데이터를 획득하는 단계를 더 포함한다.
예를 들어, 제2 프로세서는 제1 프로세서로부터 동기화 명령을 수신하면, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 동기화 정보(예를 들어, 텐서 데이터의 식별자, 모양, 저장 주소 등)을 획득할 수 있다.
가능한 실시형태에 있어서, 상기 동기화 명령이 텐서 데이터의 식별자만 포함하는 경우, 제2 프로세서는 내부적으로 상기 텐서 데이터의 식별자에 대응되는 텐서 데이터 및/또는 텐서 데이터에 대응되는 디스크립터를 검색하고, 나아가 디스크립터 콘텐츠에 따라 동기화될 텐서 데이터를 획득함으로써 텐서 데이터의 동기화를 구현할 수 있다.
가능한 실시형태에 있어서, 상기 동기화 명령이 텐서 데이터의 모양 및 저장 주소 등을 포함하는 경우, 제2 프로세서는 텐서 데이터의 모양 및 저장 주소에 따라 상기 동기화될 텐서 데이터를 지시하는 디스크립터를 생성하고, 디스크립터의 콘텐츠에 따라 동기화될 텐서 데이터를 획득함으로써 텐서 데이터의 동기화를 구현할 수 있다.
이러한 방식을 통해, 데이터 동기화의 복잡성을 감소시키고 데이터 동기화 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 상기 동기화 정보는 상기 동기화될 텐서 데이터의 저장 주소를 포함하고,
상기 동기화될 텐서 데이터의 동기화 정보에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계는 상기 동기화될 텐서 데이터의 저장 주소에 따라 상기 동기화될 텐서 데이터의 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 결정하는 단계를 포함할 수 있으며;
상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 동기화될 텐서 데이터를 획득하는 단계는 상기 동기화될 텐서 데이터의 디스크립터의 콘텐츠에 따라 공용 저장 공간으로부터 상기 동기화될 텐서 데이터를 획득하는 단계를 포함할 수 있다.
예를 들어, 동기화될 텐서 데이터의 저장 주소가 공용 저장 공간에 있는 경우, 제2 프로세서는 공용 저장 공간으로부터 데이터에 액세스할 수 있다. 이 경우, 동기화 명령은 동기화될 텐서 데이터의 저장 주소를 포함할 수 있고, 제2 프로세서는 동기화 명령을 수신한 후, 동기화될 텐서 데이터의 저장 주소를 획득하기 위해 명령을 해석할 수 있으며; 상기 텐서 데이터의 저장 주소에 따라 상기 텐서 데이터에 대응되는 디스크립터를 생성하거나 수정한다. 상기 디스크립터의 콘텐츠에 따라 제2 프로세서는 공용 저장 공간으로부터 동기화될 텐서 데이터를 획득함으로써 전체 동기화 과정을 구현할 수 있다.
이러한 방식을 통해, 불필요한 데이터 전송을 방지하고 텐서 데이터 액세스 횟수를 감소시킬 수 있으므로 동기화 처리 효율을 향상시키고, 명령 전달 및 처리 과정에서 명령 호환성을 구현한다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 디스크립터 저장 공간에 저장될 수 있고, 상기 디스크립터 저장 공간은 프로세서의 내부 메모리(예를 들어, 레지스터, 온칩 SRAM 또는 기타 미디어 캐시 등)의 저장 공간일 수 있으며, 디스크립터에 의해 지시된 텐서 데이터의 데이터 저장 공간은 프로세서의 내부 메모리(예를 들어, 온칩 캐시) 또는 프로세서에 연결된 외부 메모리(오프칩 메모리)의 저장 공간일 수 있다. 데이터 저장 공간 내의 데이터 주소는 실제 물리적 주소 또는 가상 주소일 수 있으며, 본 발명은 디스크립터 저장 공간, 데이터 저장 공간의 위치 및 데이터 주소의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 동일한 영역에 위치할 수 있다. 예를 들어, 온칩에 캐시된 하나의 연속 영역을 사용하여 디스크립터의 관련 콘텐츠를 저장할 수 있으며, 그 주소는 ADDR0-ADDR1023이다. 여기서, 주소 ADDR0-ADDR31은 디스크립터의 식별자를 저장할 수 있고, 주소 ADDR32-ADDR63은 디스크립터의 콘텐츠를 저장할 수 있으며, 주소 ADDR64-ADDR1023은 디스크립터에 의해 지시된 텐서 데이터를 저장할 수 있다. 여기서, 주소 ADDR은 1 비트 또는 1 바이트로 한정되지 않으며 여기서는 하나의 주소를 표시하는 하나의 주소 단위이다. 당업자는 실제 상황에 따라 저장 영역 및 그 주소를 결정할 수 있으며 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 내부 메모리의 상이한 영역에 별도로 저장될 수 있다. 예를 들어, 레지스터를 디스크립터 저장 공간으로 사용하여 레지스터에 디스크립터의 식별자 및 콘텐츠를 저장하고, 온칩 캐시를 데이터 저장 공간으로 사용하여 디스크립터가 지시하는 텐서 데이터를 저장할 수 있다.
가능한 실시형태에 있어서, 디스크립터 전용인 전용 레지스터(SR)를 설치할 수도 있고, 디스크립터의 데이터는 즉치 값이거나 전용 레지스터에서 획득할 수도 있다. 레지스터를 사용하여 디스크립터의 식별자 및 콘텐츠를 저장하는 경우, 레지스터의 번호를 사용하여 디스크립터의 식별자를 표시할 수 있는데, 예를 들어, 레지스터의 번호가 0인 경우, 저장된 디스크립터의 식별자는 0이다. 레지스터 내의 디스크립터가 유효한 경우, 디스크립터가 지시하는 텐서 데이터의 크기에 따라 캐시 공간에 상기 텐서 데이터를 저장하기 위한 하나의 영역(예를 들어, 캐시에서 각각의 텐서 데이터에 하나의 텐서 캐시 유닛을 생성함)을 할당할 수 있다. 기설정된 캐시 공간을 적용하여 상기 텐서 데이터를 저장할 수도 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 내부 메모리에 저장될 수 있고, 디스크립터에 의해 지시된 텐서 데이터는 외부 메모리에 저장될 수 있다. 예를 들어, 온칩에 디스크립터의 식별자 및 콘텐츠를 저장하고, 오프칩에 디스크립터가 지시하는 텐서 데이터를 저장하는 방식을 적용할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소는 고정 주소일 수 있다. 예를 들어, 텐서 데이터에 별도의 데이터 저장 공간을 분할할 수 있고, 데이터 저장 공간에서 각각의 텐서 데이터의 시작 주소는 디스크립터의 식별자와 일대일로 대응된다. 이 경우, 프로세서는 디스크립터의 콘텐츠에 따라 텐서 데이터의 데이터 주소를 결정할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소가 가변 주소인 경우, 상기 디스크립터는 N 차원 텐서 데이터의 주소를 지시할 수도 있으며, 여기서, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함할 수 있다. 예를 들어, 텐서 데이터가 3차원 데이터이고 디스크립터가 상기 텐서 데이터의 주소를 지시하는 경우, 디스크립터의 콘텐츠는 예를 들어 텐서 데이터의 시작 주소와 같이 상기 텐서 데이터의 주소를 표시하는 하나의 주소 파라미터를 포함할 수 있고, 예를 들어 텐서 데이터의 시작 주소 + 주소 오프셋과 같이 상기 텐서 데이터 주소의 여러 주소 파라미터 또는 각 차원을 기반으로 하는 텐서 데이터의 주소 파라미터를 포함할 수도 있다. 당업자는 실제 필요에 따라 주소 파라미터를 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함한다. 여기서, 기준 주소는 데이터 기준점의 변화에 따라 다를 수 있으며, 본 발명은 데이터 기준점의 선택에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 기준 주소는 상기 데이터 저장 공간의 시작 주소를 포함할 수 있다. 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록인 경우, 디스크립터의 기준 주소는 데이터 저장 공간의 시작 주소이고, 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록을 제외한 다른 데이터인 경우, 디스크립터의 기준 주소는 상기 데이터 블록의 데이터 저장 공간 내 물리적 주소이다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 모양 파라미터는 N개 차원 방향 중 적어도 하나의 방향에서의 상기 텐서 데이터의 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터에 의해 지시된 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함한다. 여기서, 데이터 설명 위치는 디스크립터가 지시하는 텐서 데이터 중의 포인트 또는 영역의 매핑 위치인데, 예를 들어, 텐서 데이터가 3차원 데이터인 경우, 디스크립터는 3차원 공간 좌표(x, y, z)를 사용하여 상기 텐서 데이터의 모양을 표시할 수 있고, 상기 텐서 데이터의 데이터 설명 위치는 3차원 공간 좌표(x, y, z)를 사용하여 표시하고 상기 텐서 데이터에 의해3차원 공간에 매핑된 포인트 또는 영역의 위치일 수 있다.
당업자는 실제 상황에 따라 텐서 데이터의 모양을 표시하는 파라미터를 선택할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
설명의 편의를 위해 전술한 각 방법의 실시예는 모두 일련의 동작 조합으로 표현되었으나, 당업자는 본 발명에 따라 일부 단계는 다른 순서 또는 동시에 수행될 수 있음에 유의해야 한다. 따라서 본 발명은 설명된 동작 순서에 한정되지 않으며, 또한 명세서에 설명된 실시예는 모두 선택 가능한 실시예이고 언급된 동작 및 모듈은 본 개시에 반드시 필요한 것이 아님을 이해해야 한다.
추가로, 흐름도의 각 단계는 화살표 지시에 따라 순차적으로 표시되나 이러한 단계는 반드시 화살표로 지시된 순서에 따라 순차적으로 수행되는 것은 아니며, 본 명세서에 명확히 언급되지 않는 한 이러한 단계는 다른 순서로 수행될 수 있는 바, 이러한 단계의 수행은 엄격한 순서에 한정되지 않음에 유의해야 한다. 또한, 흐름도의 단계 중 적어도 일부는 복수의 서브 단계 또는 복수의 절차를 포함할 수 있고, 이러한 서브 단계 또는 절차는 반드시 동일한 시각에 수행 완료되는 것이 아니라 상이한 시각에 수행될 수 있으며, 이러한 서브 단계 또는 절차의 수행 순서 역시 반드시 순차적으로 수행되어야 하는 것이 아니라 다른 단계 또는 다른 단계의 서브 단계 또는 절차의 적어도 일부와 순번 또는 교대로 수행될 수 있다.
도 3bc은 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다. 상기 데이터 동기화 장치는 제1 프로세서에 응용되고, 도 3bc에 도시된 바와 같이, 상기 데이터 동기화 장치는,
동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 동기화 정보를 결정하는 제1 정보 결정 모듈(51b) - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 동기화 정보에 따라 동기화 명령을 생성하는 제1 명령 생성 모듈(52b); 및
제2 프로세서에 상기 동기화 명령을 송신하는 제1 명령 송신 모듈(53b) - 상기 동기화 명령은 상기 제2 프로세서가 상기 동기화 명령에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시함 - ;을 포함한다.
가능한 실시형태에 있어서, 상기 동기화 정보는 동기화될 텐서 데이터의 저장 주소를 포함하고, 상기 제1 명령 생성 모듈은, 동기화될 텐서 데이터의 저장 주소가 공용 저장 공간에 있는 경우, 상기 제2 프로세서가 상기 공용 저장 공간에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시하기 위해, 상기 동기화될 텐서 데이터의 저장 주소에 따라 동기화 명령을 생성하는 제1 생성 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 상기 동기화 정보는 동기화될 텐서 데이터의 저장 주소를 포함하고, 상기 제1 명령 생성 모듈은, 동기화될 텐서 데이터의 저장 주소가 비 공용 저장 공간에 있는 경우, 상기 동기화될 텐서 데이터를 공용 저장 공간에 저장하는 언로딩 서브 모듈; 및 상기 제2 프로세서가 상기 공용 저장 공간에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시하기 위해, 공용 저장 공간에서 상기 동기화될 텐서 데이터의 주소에 따라 동기화 명령을 생성하는 제2 생성 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 상기 장치는 제2 프로세서로부터 송신된 동기화 요청 명령에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 제1 디스크립터 결정 모듈을 더 포함한다.
가능한 실시형태에 있어서, 상기 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징을 포함하고, 상기 제1 디스크립터 결정 모듈은, 상기 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 획득하는 명령 해석 서브 모듈; 및 동기화될 텐서 데이터의 데이터 특징에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 제1 디스크립터 결정 서브 모듈을 포함한다.
도 3bd는 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다. 상기 데이터 동기화 장치는 제2 프로세서에 응용되고, 도 3bd에 도시된 바와 같이, 상기 데이터 동기화 장치는,
제1 프로세서로부터 수신된 동기화 명령을 해석하여 동기화될 텐서 데이터의 동기화 정보를 획득하는 제2 정보 결정 모듈(61b);
상기 동기화될 텐서 데이터의 동기화 정보에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 제2 디스크립터 결정 모듈(62b) - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및
상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 동기화될 텐서 데이터를 획득하는 제1 데이터 획득 모듈(63b)을 포함한다.
가능한 실시형태에 있어서, 상기 동기화 정보는 상기 동기화될 텐서 데이터의 저장 주소를 포함하고, 상기 제2 디스크립터 결정 모듈은 상기 동기화될 텐서 데이터의 저장 주소에 따라 상기 동기화될 텐서 데이터의 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 결정하는 제1 결정 서브 모듈을 포함하며;
상기 제1 데이터 획득 모듈은 상기 동기화될 텐서 데이터의 디스크립터의 콘텐츠에 따라 공용 저장 공간으로부터 상기 동기화될 텐서 데이터를 획득하는 제1 데이터 획득 서브 모듈을 포함한다.
도 3be는 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다. 상기 데이터 동기화 장치는 제2 프로세서에 응용되고, 도 3be에 도시된 바와 같이, 상기 데이터 동기화 장치는,
동기화될 텐서 데이터가 존재하는 경우, 동기화 요청 명령을 생성하는 제2 명령 생성 모듈(71b) - 상기 동기화 요청 명령은 제1 프로세서가 상기 동기화 요청 명령에 따라 동기화될 텐서 데이터의 디스크립터를 결정하도록 지시하고, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및
상기 제1 프로세서에 상기 동기화 요청 명령을 송신하는 제2 명령 송신 모듈(72b)을 포함한다.
가능한 실시형태에 있어서, 상기 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징을 포함한다.
가능한 실시형태에 있어서, 상기 장치는, 제1 프로세서로부터 수신된 동기화 명령을 해석하여 동기화될 텐서 데이터의 동기화 정보를 획득하는 제3 정보 결정 모듈; 상기 동기화될 텐서 데이터의 동기화 정보에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 제3 디스크립터 결정 모듈; 및 상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 동기화될 텐서 데이터를 획득하는 제2 데이터 획득 모듈을 더 포함한다.
가능한 실시형태에 있어서, 상기 동기화 정보는 상기 동기화될 텐서 데이터의 저장 주소를 포함하고, 상기 제3 디스크립터 결정 모듈은 상기 동기화될 텐서 데이터의 저장 주소에 따라 상기 동기화될 텐서 데이터의 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 결정하는 제2 결정 서브 모듈을 포함하며;
상기 제2 데이터 획득 모듈은 상기 동기화될 텐서 데이터의 디스크립터의 콘텐츠에 따라 공용 저장 공간으로부터 상기 동기화될 텐서 데이터를 획득하는 제2 데이터 획득 서브 모듈을 포함한다.
전술한 장치 실시예는 예시적인 것일 뿐 본 발명의 장치는 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 전술한 실시예에서 유닛/모듈의 분할은 논리적 기능 분할일 뿐 실제 구현시에는 별도의 분할 방식이 존재할 수 있는 바, 예를 들어, 복수의 유닛, 모듈 또는 구성 요소는 결합되거나 다른 시스템에 통합되거나 일부 특징이 생략되거나 수행되지 않을 수 있다.
이 밖에, 달리 명시되지 않는 한, 본 발명의 각 실시예에서 각각의 기능 유닛/모듈은 하나의 유닛/모듈에 통합될 수 있거나, 각 유닛/모듈은 별도로 물리적으로 존재할 수도 있고, 둘 또는 둘 이상의 유닛/모듈은 함께 통합될 수도 있다. 전술한 통합된 유닛/모듈은 하드웨어 형태로 구현되거나 소프트웨어 프로그램 모듈의 형태로 구현될 수도 있다.
상기 통합된 유닛/모듈이 하드웨어 형태로 구현되는 경우, 상기 하드웨어는 디지털 회로, 아날로그 회로 등일 수 있고, 하드웨어 구조의 물리적 구현에는 트랜지스터, 멤리스터 등이 포함되나 이에 한정되지 않는다. 달리 명시되지 않는 한, 상기 인공 지능 프로세서는 CPU, GPU, FPGA, DSP, ASIC 등과 같은 임의의 적절한 하드웨어 프로세서일 수 있고, 달리 명시되지 않는 한, 상기 저장 유닛은 저항 변화 메모리(RRAM, Resistive Random Access Memory), 동적 랜덤 액세스 메모리(DRAM, Dynamic Random Access Memory), 정적 랜덤 액세스 메모리(SRAM, Static Random-Access Memory), 임베디드 램(EDRAM, Enhanced Dynamic Random Access Memory), 고 대역폭 메모리(HBM, High-Bandwidth Memory), 하이브리드 메모리 큐브(HMC, Hybrid Memory Cube) 등과 같은 임의의 적절한 자기 저장 매체 또는 자기 광 저장 매체일 수 있다.
상기 통합된 유닛/모듈이 소프트웨어 프로그램 모듈의 형태로 구현되어 독립적인 제품으로 판매되거나 사용되는 경우, 하나의 컴퓨터 판독 가능 메모리에 저장될 수 있다. 이러한 이해에 기반하여, 본 발명의 기술적 해결수단은 본질적이거나 종래 기술에 기여하는 부분이거나 상기 기술적 해결수단의 전부 또는 일부가 소프트웨어 제품의 형태로 구현될 수 있다. 상기 컴퓨터 소프트웨어 제품은 하나의 메모리에 저장되고, 하나의 컴퓨터 기기(개인용 컴퓨터, 서버 또는 네트워크 기기 등일 수 있음)가 본 발명의 각 실시예에 따른 상기 방법의 전부 또는 일부를 수행하도록 하는 단수의 명령을 포함한다. 전술한 메모리는 U 디스크, 읽기 전용 메모리(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 모바일 하드 디스크, 자기 디스크 또는 광 디스크 등 프로그램 코드를 저장할 수 있는 다양한 매체를 포함한다.
가능한 실시형태에 있어서, 전술한 데이터 동기화 장치를 포함하는 인공 지능 칩을 더 개시한다.
가능한 실시형태에 있어서, 보드를 더 개시한다. 상기 보드는 메모리 소자, 인터페이스 장치 및 제어 소자 및 전술한 인공 지능 칩을 포함하고; 상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며; 상기 메모리 소자는 데이터를 저장하고; 상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며; 상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링한다.
전술한 실시예에서, 각 실시예에 대한 설명은 각자 모두 중점을 두고 있는 바, 어느 실시예에서 자세히 설명하지 않은 부분은 다른 실시예의 관련 설명을 참조할 수 있다. 전술한 실시예의 각 기술특징은 임의로 조합할 수 있으며, 설명의 간결성을 위해 전술한 실시예의 각 기술특징의 가능한 모든 조합을 설명하지 않았으나 이러한 기술특징의 조합에 모순이 없는 한 이는 모두 본 명세서에 기술된 범위로 간주되어야 한다.
전술한 내용은 하기와 같은 항에 따라 더 잘 이해할 수 있을 것이다.
제A1항, 제1 프로세서에 응용되는 데이터 동기화 방법으로서,
동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 동기화 정보를 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 동기화 정보에 따라 동기화 명령을 생성하는 단계; 및
제2 프로세서에 상기 동기화 명령을 송신하는 단계 - 상기 동기화 명령은 상기 제2 프로세서가 상기 동기화 명령에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시함 - ;를 포함하는 데이터 동기화 방법.
제A2항, 제A1항에 있어서, 상기 동기화 정보는 동기화될 텐서 데이터의 저장 주소를 포함하고,
상기 텐서 데이터의 동기화 정보에 따라 동기화 명령을 생성하는 단계는,
동기화될 텐서 데이터의 저장 주소가 공용 저장 공간에 있는 경우, 상기 제2 프로세서가 상기 공용 저장 공간에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시하기 위해, 상기 동기화될 텐서 데이터의 저장 주소에 따라 동기화 명령을 생성하는 단계를 포함하는 데이터 동기화 방법.
제A3항, 제A1항 또는 제A2항에 있어서, 상기 동기화 정보는 동기화될 텐서 데이터의 저장 주소를 포함하고, 상기 텐서 데이터의 동기화 정보에 따라 동기화 명령을 생성하는 단계는,
동기화될 텐서 데이터의 저장 주소가 비 공용 저장 공간에 있는 경우, 상기 동기화될 텐서 데이터를 공용 저장 공간에 저장하는 단계; 및
상기 제2 프로세서가 상기 공용 저장 공간에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시하기 위해, 공용 저장 공간에서 상기 동기화될 텐서 데이터의 주소에 따라 동기화 명령을 생성하는 단계를 포함하는 데이터 동기화 방법.
제A4항, 제A1항 - 제A3항 중 어느 한 항에 있어서, 상기 방법은,
제2 프로세서로부터 송신된 동기화 요청 명령에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계를 더 포함하는 데이터 동기화 방법.
제A5항, 제A4항에 있어서, 상기 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징을 포함하고, 상기 제2 프로세서로부터 송신된 동기화 요청 명령에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계는 상기 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 획득하는 단계; 및
동기화될 텐서 데이터의 데이터 특징에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계를 포함하는 데이터 동기화 방법.
제A6항, 제2 프로세서에 응용되는 데이터 동기화 방법으로서,
제1 프로세서로부터 수신된 동기화 명령을 해석하여 동기화될 텐서 데이터의 동기화 정보를 획득하는 단계;
상기 동기화될 텐서 데이터의 동기화 정보에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및
상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 동기화될 텐서 데이터를 획득하는 단계를 포함하는 데이터 동기화 방법.
제A7항, 제A6항에 있어서, 상기 동기화 정보는 상기 동기화될 텐서 데이터의 저장 주소를 포함하고, 상기 동기화될 텐서 데이터의 동기화 정보에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계는, 상기 동기화될 텐서 데이터의 저장 주소에 따라 상기 동기화될 텐서 데이터의 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 결정하는 단계를 포함하며;
상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 동기화될 텐서 데이터를 획득하는 단계는, 상기 동기화될 텐서 데이터의 디스크립터의 콘텐츠에 따라 공용 저장 공간으로부터 상기 동기화될 텐서 데이터를 획득하는 단계를 포함하는 데이터 동기화 방법.
제A8항, 제2 프로세서에 응용되는 데이터 동기화 방법으로서,
동기화될 텐서 데이터가 존재하는 경우, 동기화 요청 명령을 생성하는 단계 - 상기 동기화 요청 명령은 제1 프로세서가 상기 동기화 요청 명령에 따라 동기화될 텐서 데이터의 디스크립터를 결정하도록 지시하고, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및 상기 제1 프로세서에 상기 동기화 요청 명령을 송신하는 단계를 포함하는 데이터 동기화 방법.
제A9항, 제A8항에 있어서, 상기 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징을 포함하는 데이터 동기화 방법.
제A10항, 제A8항 또는 제A9항에 있어서, 상기 방법은,
제1 프로세서로부터 수신된 동기화 명령을 해석하여 동기화될 텐서 데이터의 동기화 정보를 획득하는 단계;
상기 동기화될 텐서 데이터의 동기화 정보에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계; 및
상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 동기화될 텐서 데이터를 획득하는 단계를 포함하는 데이터 동기화 방법.
제A11항, 제A10항에 있어서, 상기 동기화 정보는 상기 동기화될 텐서 데이터의 저장 주소를 포함하고, 상기 동기화될 텐서 데이터의 동기화 정보에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계는, 상기 동기화될 텐서 데이터의 저장 주소에 따라 상기 동기화될 텐서 데이터의 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 결정하는 단계를 포함하며;
상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 동기화될 텐서 데이터를 획득하는 단계는, 상기 동기화될 텐서 데이터의 디스크립터의 콘텐츠에 따라 공용 저장 공간으로부터 상기 동기화될 텐서 데이터를 획득하는 단계를 포함하는 데이터 동기화 방법.
제A12항, 제1 프로세서에 응용되는 데이터 동기화 장치로서,
동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 동기화 정보를 결정하는 제1 정보 결정 모듈 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 동기화 정보에 따라 동기화 명령을 생성하는 제1 명령 생성 모듈; 및
제2 프로세서에 상기 동기화 명령을 송신하는 제1 명령 송신 모듈을 포함하되, 상기 동기화 명령은 상기 제2 프로세서가 상기 동기화 명령에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시하는 데이터 동기화 장치.
제A13항, 제A12항에 있어서, 상기 동기화 정보는 동기화될 텐서 데이터의 저장 주소를 포함하고, 상기 제1 명령 생성 모듈은 동기화될 텐서 데이터의 저장 주소가 공용 저장 공간에 있는 경우, 상기 제2 프로세서가 상기 공용 저장 공간에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시하기 위해, 상기 동기화될 텐서 데이터의 저장 주소에 따라 동기화 명령을 생성하는 제1 생성 서브 모듈을 포함하는 데이터 동기화 장치.
제A14항, 제A12항 또는 제A13항에 있어서, 상기 동기화 정보는 동기화될 텐서 데이터의 저장 주소를 포함하고, 상기 제1 명령 생성 모듈은, 동기화될 텐서 데이터의 저장 주소가 비 공용 저장 공간에 있는 경우, 상기 동기화될 텐서 데이터를 공용 저장 공간에 저장하는 언로딩 서브 모듈; 및
상기 제2 프로세서가 상기 공용 저장 공간에 따라 상기 동기화될 텐서 데이터를 획득하도록 지시하기 위해, 공용 저장 공간에서 상기 동기화될 텐서 데이터의 주소에 따라 동기화 명령을 생성하는 제2 생성 서브 모듈을 포함하는 데이터 동기화 장치.
제A15항, 제A12항 - 제A14항 중 어느 한 항에 있어서, 상기 장치는, 제2 프로세서로부터 송신된 동기화 요청 명령에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 제1 디스크립터 결정 모듈을 더 포함하는 데이터 동기화 장치.
제A16항, 제A15항에 있어서, 상기 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징을 포함하고, 상기 제1 디스크립터 결정 모듈은, 상기 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 획득하는 명령 해석 서브 모듈; 및 동기화될 텐서 데이터의 데이터 특징에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 제1 디스크립터 결정 서브 모듈을 포함하는 데이터 동기화 장치.
제A17항, 제2 프로세서에 응용되는 데이터 동기화 장치로서,
제1 프로세서로부터 수신된 동기화 명령을 해석하여 동기화될 텐서 데이터의 동기화 정보를 획득하는 제2 정보 결정 모듈;
상기 동기화될 텐서 데이터의 동기화 정보에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 제2 디스크립터 결정 모듈 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및
상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 동기화될 텐서 데이터를 획득하는 제1 데이터 획득 모듈을 포함하는 데이터 동기화 장치.
제A18항, 제A17항에 있어서, 상기 동기화 정보는 상기 동기화될 텐서 데이터의 저장 주소를 포함하고, 상기 제2 디스크립터 결정 모듈은, 상기 동기화될 텐서 데이터의 저장 주소에 따라 상기 동기화될 텐서 데이터의 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 결정하는 제1 결정 서브 모듈을 포함하며,
상기 제1 데이터 획득 모듈은 상기 동기화될 텐서 데이터의 디스크립터의 콘텐츠에 따라 공용 저장 공간으로부터 상기 동기화될 텐서 데이터를 획득하는 제1 데이터 획득 서브 모듈을 포함하는 데이터 동기화 장치.
제A19항, 제2 프로세서에 응용되는 데이터 동기화 장치로서,
동기화될 텐서 데이터가 존재하는 경우, 동기화 요청 명령을 생성하는 제2 명령 생성 모듈 - 상기 동기화 요청 명령은 제1 프로세서가 상기 동기화 요청 명령에 따라 동기화될 텐서 데이터의 디스크립터를 결정하도록 지시하고, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;및
상기 제1 프로세서에 상기 동기화 요청 명령을 송신하는 제2 명령 송신 모듈을 포함하는 데이터 동기화 장치.
제A20항, 제A19항에 있어서, 상기 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징을 포함하는 데이터 동기화 장치.
제A21항, 제A18항 또는 제A20항에 있어서, 상기 장치는, 제1 프로세서로부터 수신된 동기화 명령을 해석하여 동기화될 텐서 데이터의 동기화 정보를 획득하는 제3 정보 결정 모듈; 상기 동기화될 텐서 데이터의 동기화 정보에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 제3 디스크립터 결정 모듈; 및 상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 동기화될 텐서 데이터를 획득하는 제2 데이터 획득 모듈을 더 포함하는 데이터 동기화 장치.
제A22항, 제A21항에 있어서, 상기 동기화 정보는 상기 동기화될 텐서 데이터의 저장 주소를 포함하고, 상기 제3 디스크립터 결정 모듈은 상기 동기화될 텐서 데이터의 저장 주소에 따라 상기 동기화될 텐서 데이터의 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 결정하는 제2 결정 서브 모듈을 포함하며;
상기 제2 데이터 획득 모듈은, 상기 동기화될 텐서 데이터의 디스크립터의 콘텐츠에 따라 공용 저장 공간으로부터 상기 동기화될 텐서 데이터를 획득하는 제2 데이터 획득 서브 모듈을 포함하는 데이터 동기화 장치.
제A23항, 제A12항 - 제A22항 중 어느 한 항에 따른 데이터 동기화 장치를 포함하는 인공 지능 칩.
제A24항, 제A2항3항에 따른 인공 지능 칩을 포함하는 전자 기기.
제A25항, 보드로서, 메모리 소자, 인터페이스 장치, 제어 소자 및 제A23항에 따른 인공 지능 칩을 포함하고; 상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며; 상기 메모리 소자는 데이터를 저장하고; 상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며; 상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링하는 보드.
제A26항, 제A25항에 있어서, 상기 메모리 소자는 복수 그룹의 저장 유닛을 포함하고, 각 그룹의 상기 저장 유닛은 버스를 통해 상기 인공 지능 칩에 연결되며, 상기 저장 유닛은 DDR SDRAM이고; 상기 칩은 각각의 상기 저장 유닛의 데이터 전송 및 데이터 저장을 제어하는 DDR 컨트롤러를 포함하며; 상기 인터페이스 장치는 표준 PCIE 인터페이스인 보드.
인공 지능 기술의 지속적인 발전에 따라 그 응용 분야가 갈수록 광범해져 이미지 인식, 음성 인식, 자연어 처리 등 분야에 잘 응용되고 있으나, 인공 지능 알고리즘의 복잡성이 증가함에 따라 처리해야 할 데이터 양 및 데이터 차원 모두 지속적으로 증가되므로 일반적으로 멀티 코어 및/또는 멀티 칩에 대한 데이터 처리가 필요하다. 코어 간 또는 칩 간의 데이터 동기화를 수행하는 경우, 관련 기술의 동기화 방식을 적용하면 동기화 오버헤드가 크므로 처리 효율이 낮다.
본 발명의 실시예에 따르면, 데이터 동기화 처리 방법을 제공한다. 도 1e는 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시하는 것으로, 도 1e에 도시된 바와 같이, 상기 방법은 제1 프로세서(처리 시스템 중의 임의의 프로세서)에 응용되고, 상기 방법은 하기와 같은 단계를 포함한다.
단계 S11e에서, 동기화될 텐서 데이터의 디스크립터에 따라 상태 조회 명령을 생성하되, 여기서, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시하고, 상기 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하고 동기화 상태 명령을 생성하도록 지시하며, 상기 상태 조회 명령은 상기 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 포함한다.
단계 S12e에서, 제2 프로세서에 상기 상태 조회 명령을 송신한다.
예를 들어, 동기화될 데이터는 N 차원 텐서 데이터(N은 0보다 크거나 같은 정수임. 예를 들어, N=1, 2 또는 3)를 포함할 수 있다.
데이터 처리 과정에서 복수의 프로세서(예를 들어, 인공 지능 칩의 복수의 코어) 간의 데이터 동기화를 수행해야 할 가능성이 있는데, 예를 들어, 프로세서 A1의 연산 결과를 다른 연산의 입력 데이터로서 프로세서 A2에 동기화될 수 있다. 이 경우, 디스크립터 기반 데이터 동기화 메커니즘을 적용하여 데이터 동기화를 구현할 수 있다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터에 할당 가능한 각 프로세서의 비 공용 저장 공간은 한정될 가능성이 있으므로 텐서 데이터의 전체 동기화를 구현할 수 없다. 이 경우, 텐서 데이터의 부분적 동기화를 수행할 수 있는 바, 여러 번의 부분적 동기화를 통해 전체 텐서 데이터의 동기화 과정을 구현한다.
가능한 실시형태에 있어서, 복수의 프로세서 중 제1 프로세서는 데이터 동기화의 송신자로, 제2 프로세서는 데이터 동기화의 수신자로 설정할 수 있다. 제1 프로세서와 제2 프로세서는 모두 복수의 프로세서 중 임의의 프로세서이고, 제2 프로세서의 유형은 제1 프로세서의 유형과 동일하거나 상이할 수 있으며, 본 발명은 제1 프로세서 및 제2 프로세서의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 데이터 동기화의 송신자가 동기화될 텐서 데이터를 갖는 경우, 예를 들어, 제1 프로세서가 하나의 연산을 완료하고 연산 결과(텐서 데이터)를 획득하면, 송신자는 텐서 데이터의 부분적 동기화를 수행하기 위해 수신자의 상태를 조회하고, 데이터 동기화의 수신자의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데이터 양을 결정할 수 있다. 복수의 프로세서 중 제1 프로세서는 데이터 동기화의 송신자로, 제2 프로세서는 데이터 동기화의 수신자로 설정할 수 있다. 제1 프로세서와 제2 프로세서는 모두 복수의 프로세서 중 임의의 프로세서이고, 제2 프로세서의 유형은 제1 프로세서의 유형과 동일하거나 상이할 수 있으며, 본 발명은 제1 프로세서 및 제2 프로세서의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제1 프로세서는 단계 S11에서 동기화될 텐서 데이터의 디스크립터에 따라 상태 조회 명령을 생성할 수 있다. 상기 상태 조회 명령은 동기화될 텐서 데이터의 디스크립터의 식별자 및/또는 디스크립터의 콘텐츠를 포함할 수 있으며, 이는 제2 프로세서가 자신의 상태(즉, 텐서 데이터에 대해 동기화 가능한 데이터 양)를 결정하고 회답하도록 지시한다.
가능한 실시형태에 있어서, 제1 프로세서는 단계 S12e에서 상태 조회 명령을 제2 프로세서에 송신할 수 있다. 제2 프로세서는 상기 상태 조회 명령을 수신한 후, 상기 명령을 해석하여 디스크립터의 식별자 및/또는 디스크립터의 콘텐츠를 결정할 수 있다. 디스크립터의 식별자 및/또는 디스크립터의 콘텐츠에 따라, 제2 프로세서는 동기화될 텐서 데이터를 결정하고, 나아가 상기 텐서 데이터에 할당 가능한 공간을 결정하며, 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정할 수 있다. 제1 프로세서가 동기화될 텐서 데이터의 디스크립터 및 이번에 동기화된 동기화 가능한 데이터 양을 결정할 수 있도록, 상기 텐서 데이터에 대한 동기화 가능한 데이터 양 및 디스크립터에 따라 제2 프로세서는 동기화 상태 명령을 생성 및 송신할 수 있다.
이러한 방식을 통해, 송신자와 수신자 간의 부분적 데이터 동기화를 구현하기 위해 데이터 동기화의 송신자가 수신자의 상태를 능동적으로 조회할 수 있으므로 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령 중의 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 상기 디스크립터 동기화 명령을 상기 제2 프로세서에 송신하는 단계를 포함한다.
예를 들어, 제1 프로세서는 제2 프로세서로부터 동기화 상태 명령을 수신하면, 상기 명령의 콘텐츠(예를 들어, 디스크립터의 식별자, 동기화 가능한 데이터 양 등)를 획득하기 위해 상기 명령을 해석하고, 디스크립터의 식별자에 따라 동기화될 텐서 데이터의 디스크립터를 결정함으로써 동기화될 텐서 데이터를 결정할 수 있으며; 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정한다. 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응될 수 있는 바, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 동기화 상태 명령은 동기화될 부분적 데이터를 획득하도록 지정하기 위해, 상기 부분적 서브 데이터의 디스크립터 콘텐츠 또는 저장 주소 범위 등과 같이 동기화될 텐서 데이터의 부분적 데이터의 범위를 포함할 수도 있으며, 제1 프로세서는 상기 부분적 데이터의 범위에 따라 동기화될 제1 서브 데이터를 직접 결정할 수 있다.
가능한 실시형태에 있어서, 제1 프로세서는 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 제2 프로세서에 디스크립터 동기화 명령을 송신할 수 있다. 상기 명령에는 동기화될 텐서 데이터의 디스크립터의 식별자 및 제1 서브 데이터가 포함될 수 있고, 제2 프로세서는 디스크립터 동기화 명령을 수신한 후, 동기화될 텐서 데이터의 디스크립터 및 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하며, 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 수신자가 이번에 동기화된 서브 데이터를 획득하도록, 동기화 상태 명령 중의 디스크립터에 따라 텐서 데이터를 결정하고, 수신자의 동기화 가능한 데이터 양에 따라 이번에 동기화된 서브 데이터를 결정하며, 상기 서브 데이터에 따라 디스크립터 동기화 명령을 생성 및 송신할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 동기화 상태 명령은 디스크립터의 식별자를 포함하고, 상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령 중의 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 동기화 상태 명령을 해석하여 상기 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하는 단계; 및
상기 디스크립터의 식별자에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계를 포함할 수 있다.
예를 들어, 동기화 상태 명령에는 디스크립터의 식별자(예를 들어, 식별자는 TR1임) 및 동기화 가능한 데이터 양이 포함될 수 있다. 제1 프로세서는 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하기 위해 동기화 상태 명령을 해석하고, 나아가 디스크립터의 식별자에 따라 동기화될 텐서 데이터의 디스크립터를 결정할 수 있다.
이러한 방식을 통해, 동기화시 전송되는 데이터 양을 감소시키고 처리 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령 중의 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 단계; 및
상기 제2 서브 데이터 및 상기 동기화 상태 명령 중의 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함할 수 있다.
예를 들어, 텐서 데이터 내 데이터의 상태를 설정하고, 동기화된 부분적 데이터를 동기화된 데이터로 설정하며, 동기화되지 않은 부분적 데이터를 동기화될 데이터로 설정할 수 있다. 이 경우, 제1 프로세서는 제2 프로세서로부터 동기화 상태 명령을 수신하면, 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터 내 데이터의 상태에 따라 동기화될 상태의 제2 서브 데이터를 결정하며, 제2 서브 데이터 및 동기화 상태 명령에 의해 지시된 동기화 가능한 데이터 양에 따라 이번에 동기화된 제1 서브 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많으면, 제2 서브 데이터에서 이번에 동기화된 제1 서브 데이터를 선택할 수 있고; 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같으면, 제2 서브 데이터를 제1 서브 데이터로서 사용할 수 있다.
이러한 방식을 통해, 텐서 데이터의 부분적 동기화를 구현하기 위해 이번에 동기화된 부분적 데이터를 결정할 수 있으므로 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은, 상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세가 텐서 데이터의 제1 서브 데이터의 동기화를 구현하도록, 텐서 데이터의 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성 및 송신한 후, 텐서 데이터 내 데이터의 상태, 즉 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경할 수 있다. 이에 따라, 다음번에 제2 프로세서의 상태를 조회하고 제2 프로세서의 동기화 상태 명령을 수신할 경우, 동기화될 상태의 부분적 데이터에서 다음번에 동기화될 데이터를 결정할 수 있으므로 데이터의 반복적 동기화를 방지하고, 데이터 동기화 효율을 향상시킨다.
도 3ca은 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시하는 것으로, 도 3ca에 도시된 바와 같이, 상기 방법은 2 프로세서에 응용되고, 상기 방법은 하기와 같은 단계를 포함한다.
단계 S31c에서, 제1 프로세서로부터 상태 조회 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터를 결정하되, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시한다.
단계 S32c에서, 상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정한다.
단계 S33c에서, 상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 동기화 상태 명령을 생성하되, 상기 동기화 상태 명령은 상기 제1 프로세서가 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응된다.
단계 S34c에서, 상기 제1 프로세서에 상기 동기화 상태 명령을 송신한다.
예를 들어, 데이터 동기화의 송신자가 동기화될 텐서 데이터를 갖는 경우, 송신자가 수신자의 상태를 조회할 수도 있다. 제1 프로세서(송신자)는 상태 조회 명령을 생성 및 송신할 수 있고, 제2 프로세서는 계 S31c에서 상기 상태 조회 명령을 수신하면, 상기 명령을 해석하여 동기화될 텐서 데이터의 디스크립터를 결정할 수 있다.
가능한 실시형태에 있어서, 단계 S32c에서, 제2 프로세서는 상기 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 부분적 동기화를 수행하기 위해, 자체의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양, 즉 동기화 가능한 데이터 양을 결정할 수 있다.
가능한 실시형태에 있어서, 단계 S33c에서, 제1 프로세서가 동기화될 텐서 데이터의 디스크립터 및 이번에 동기화된 동기화 가능한 데이터 양을 결정하도록 지시하기 위해, 제2 프로세서는 결정된 동기화 가능한 데이터 양 및 상기 텐서 데이터의 디스크립터에 따라 동기화 상태 명령을 생성하여 제1 프로세서에 송신할 수 있다. 제1 프로세서는 이번에 동기화 가능한 부분적 데이터(즉, 제1 서브 데이터)를 결정한 후, 디스크립터 동기화 명령을 생성하고 단계 S34c에서 2 프로세서에 디스크립터 동기화 명령을 송신할 수 있으며, 상기 명령에는 동기화될 텐서 데이터의 디스크립터의 식별자 및 제1 서브 데이터가 포함될 수 있다.
이러한 방식을 통해, 송신자는 수신자의 상태를 조회하고, 수신자는 상태 조회 명령을 수신한 후 자체 상태(즉, 동기화 가능한 데이터 양)를 결정 및 회답할 수 있어 상호 작용을 통해 데이터의 부분적 동기화를 구현하고, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제1 프로세서로부터 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계; 및 상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함한다.
예를 들어, 제2 프로세서는 스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 이번에 동기화된 상기 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하며; 나아가 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 수신자는 디스크립터 동기화 명령에 따라 디스크립터를 결정하고 이번에 동기화된 서브 데이터를 결정할 수 있으므로 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 데이터 동기화의 수신자는 텐서 데이터에 대한 부분적 동기화 요청을 개시할 수 있다. 즉, 수신자는 디스크립터 동기화 요청 명령을 송신하는데, 상기 명령은 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양, 즉, 수신자의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양을 지시할 수 있다.
가능한 실시형태에 있어서, 제1 프로세서에 응용되는 데이터 동기화 방법을 더 제공하고, 상기 방법은, 상기 제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 상기 디스크립터 동기화 명령을 상기 제2 프로세서에 송신하는 단계를 포함한다.
가능한 실시형태에 있어서, 제1 프로세서는 제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신하면, 상기 명령의 콘텐츠(예를 들어, 동기화될 텐서 데이터의 디스크립터의 식별자, 동기화될 텐서 데이터의 데이터 특징, 동기화 가능한 데이터 양 등)를 획득하기 위해 상기 명령을 해석하여 동기화될 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양을 결정할 수 있다.
가능한 실시형태에 있어서, 제1 프로세서는 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정할 수 있다. 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응될 수 있는 바, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 제1 프로세서는 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 제2 프로세서에 디스크립터 동기화 명령을 송신할 수 있다. 상기 명령에는 동기화될 텐서 데이터의 디스크립터의 식별자 및 제1 서브 데이터가 포함될 수 있고, 제2 프로세서는 디스크립터 동기화 명령을 수신한 후, 동기화될 텐서 데이터의 디스크립터 및 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하며, 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
본 발명의 실시예의 데이터 동기화 방법에 따르면, 텐서 데이터의 모양을 지시하는 디스크립터를 설정하고, 디스크립터 동기화 요청 명령 중의 디스크립터에 따라 텐서 데이터를 결정하며, 수신자의 동기화 가능한 데이터 양에 따라 이번에 동기화된 서브 데이터를 결정하고, 수신자가 이번에 동기화된 서브 데이터를 획득하도록, 상기 서브 데이터에 따라 디스크립터 동기화 명령을 생성 및 송신할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 디스크립터 동기화 요청 명령은 디스크립터의 식별자를 포함할 수 있고, 상기 제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계는, 상기 디스크립터 동기화 요청 명령을 해석하여 상기 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하는 단계; 및
상기 디스크립터의 식별자에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계를 포함한다.
예를 들어, 제1 프로세서와 제2 프로세서에 모두 상기 동기화될 텐서 데이터를 지시하는 디스크립터가 등록된 경우, 디스크립터 동기화 명령은 디스크립터의 식별자(예를 들어, 디스크립터의 식별자가 TR1인 경우, 디스크립터 동기화 명령을 Send TR1로 표시함) 및 동기화 가능한 데이터 양만 포함할 수 있다. 제1 프로세서는 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하기 위해 디스크립터 동기화 요청 명령을 해석하고, 나아가 디스크립터의 식별자에 따라 동기화될 텐서 데이터의 디스크립터를 결정할 수 있다.
이러한 방식을 통해, 동기화시 전송되는 데이터 양을 감소시키고 처리 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 디스크립터 동기화 요청 명령은 동기화될 텐서 데이터의 데이터 특징을 포함하고, 상기 제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계는,
상기 디스크립터 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 획득하는 단계; 및
상기 텐서 데이터의 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 단계를 포함한다.
예를 들어, 제1 프로세서에 상기 동기화될 텐서 데이터를 지시하는 디스크립터가 등록되지 않았거나 디스크립터의 식별자가 대응되지 않는 경우, 디스크립터 동기화 명령은 동기화될 텐서 데이터의 데이터 특징을 포함할 수 있다. 상기 데이터 특징은 텐서 데이터의 식별자, 모양, 소스, 주소 등 정보를 포함할 수 있으며, 예를 들어, 상기 텐서 데이터의 데이터 소스는 K번째 송신자(K번째 프로세서)이고, 상기 텐서 데이터의 데이터 소스는 번호가 200인 컨볼루션 동작의 연산 결과이며, 상기 텐서 데이터의 주소는 특정된 주소 영역(예를 들어, 주소 ADDR0-ADDR127)이고, 상기 텐서 데이터의 모양은 지정된 모양(예를 들어, 20*10의 2차원 텐서) 등이다. 당업자는 실제 상황에 따라 동기화될 텐서 데이터의 데이터 특징을 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 데이터 특징에 따라 제1 프로세서는 동기화될 텐서 데이터를 검색하고, 상기 동기화될 텐서 데이터의 디스크립터를 결정할 수 있는데, 예를 들어, 대응되는 디스크립터를 직접 획득하거나 새로 등록하며, 상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터를 결정하고, 나아가 동기화 가능한 데이터 양에 따라 이번에 동기화된 서브 데이터를 결정할 수 있다.
이러한 방식을 통해, 텐서 데이터의 부분적 동기화를 구현하기 위해, 디스크립터 동기화 요청 명령 중의 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정할 수 있다. 따라서 동기화시 텐서 데이터 자체를 전송할 필요가 없으므로 전송되는 데이터 양 및 동기화 오버헤드를 감소시키고 처리 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 단계; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함한다.
예를 들어, 텐서 데이터 내 데이터의 상태를 설정하고, 동기화된 부분적 데이터를 동기화된 데이터로 설정하며, 동기화되지 않은 부분적 데이터를 동기화될 데이터로 설정할 수 있다. 이 경우, 제1 프로세서는 제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신하면, 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터 내 데이터의 상태에 따라 동기화될 상태의 제2 서브 데이터를 결정하며, 제2 서브 데이터 및 디스크립터 동기화 요청 명령에 의해 지시된 동기화 가능한 데이터 양에 따라 이번에 동기화된 제1 서브 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많으면, 제2 서브 데이터에서 이번에 동기화된 제1 서브 데이터를 선택할 수 있고; 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같으면, 제2 서브 데이터를 제1 서브 데이터로서 사용할 수 있다.
이러한 방식을 통해, 텐서 데이터의 부분적 동기화를 구현하기 위해 이번에 동기화된 부분적 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 상기 방법은, 상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세가 텐서 데이터의 제1 서브 데이터의 동기화를 구현하도록, 텐서 데이터의 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성 및 송신한 후, 텐서 데이터 내 데이터의 상태, 즉 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경할 수 있다. 이에 따라, 다음번에 제2 프로세서의 동기화 요청을 수신할 경우, 동기화될 상태의 부분적 데이터에서 다음번에 동기화될 데이터를 결정할 수 있으므로 데이터의 반복적 동기화를 방지하고, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 제2 프로세서에 응용되는 데이터 동기화 방법을 더 제공한다. 상기 방법은, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양에 따라 디스크립터 동기화 요청 명령을 생성하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시하고, 상기 디스크립터 동기화 요청 명령은 제1 프로세서가 상기 디스크립터 동기화 요청 명령에 따라 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하며, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및 상기 제1 프로세서에 상기 디스크립터 동기화 요청 명령을 송신하는 단계를 포함한다.
예를 들어, 복수의 프로세서 중의 제2 프로세서는 데이터 동기화의 수신자이고, 제2 프로세서가 텐서 데이터에 대한 부분적 동기화 요청을 개시하도록 설정할 수 있다. 단계 S31c에서, 제2 프로세서에 동기화될 텐서 데이터가 존재하는 경우, 텐서 데이터의 디스크립터 및 제2 프로세서 자체의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양, 즉, 동기화 가능한 데이터 양을 결정할 수 있다. 상기 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 제2 프로세서는 디스크립터 동기화 요청 명령을 생성하고 단계 S32l에서 상기 명령을 송신할 수 있다. 상기 디스크립터 동기화 요청 명령은 디스크립터의 식별자, 디스크립터의 콘텐츠 및 텐서 데이터의 데이터 특징 중 적어도 하나를 포함할 수 있고, 제1 프로세서가 상기 명령에 따라 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시한다.
가능한 실시형태에 있어서, 제1 프로세서는 디스크립터 동기화 요청 명령을 수신하면, 상기 명령을 해석하여 동기화될 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양을 결정하고; 디스크립터에 따라 동기화될 텐서 데이터를 결정하며, 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정할 수 있다. 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응될 수 있는 바, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터 동기화 요청 명령은 동기화될 부분적 데이터를 획득하도록 지정하기 위해, 상기 부분적 서브 데이터의 디스크립터 콘텐츠 또는 저장 주소 범위 등과 같이 동기화될 텐서 데이터의 부분적 데이터의 범위를 포함할 수도 있다.
이러한 방식을 통해, 수신자는 송신자가 이번에 동기화된 서브 데이터를 결정하도록, 텐서 데이터에 대한 부분적 동기화 요청을 개시할 수 있으므로 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제1 프로세서로부터 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 텐서 데이터의 디스크립터 및 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성 및 송신할 수 있다. 제2 프로세서는 상기 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 이번에 동기화된 상기 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하며; 나아가 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 수신자는 디스크립터 동기화 명령에 따라 디스크립터를 결정하고 이번에 동기화된 서브 데이터를 결정할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 디스크립터 저장 공간에 저장될 수 있고, 상기 디스크립터 저장 공간은 프로세서의 내부 메모리(예를 들어, 레지스터, 온칩 SRAM 또는 기타 미디어 캐시 등)의 저장 공간일 수 있으며, 디스크립터에 의해 지시된 텐서 데이터의 데이터 저장 공간은 프로세서의 내부 메모리(예를 들어, 온칩 캐시) 또는 프로세서에 연결된 외부 메모리(오프칩 메모리)의 저장 공간일 수 있다. 데이터 저장 공간 내의 데이터 주소는 실제 물리적 주소 또는 가상 주소일 수 있으며, 본 발명은 디스크립터 저장 공간, 데이터 저장 공간의 위치 및 데이터 주소의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 동일한 영역에 위치할 수 있다. 예를 들어, 온칩에 캐시된 하나의 연속 영역을 사용하여 디스크립터의 관련 콘텐츠를 저장할 수 있으며, 그 주소는 ADDR0-ADDR1023이다. 여기서, 주소 ADDR0-ADDR31은 디스크립터의 식별자를 저장할 수 있고, 주소 ADDR32-ADDR63은 디스크립터의 콘텐츠를 저장할 수 있으며, 주소 ADDR64-ADDR1023은 디스크립터에 의해 지시된 텐서 데이터를 저장할 수 있다. 여기서, 주소 ADDR은 1 비트 또는 1 바이트로 한정되지 않으며 여기서는 하나의 주소를 표시하는 하나의 주소 단위이다. 당업자는 실제 상황에 따라 저장 영역 및 그 주소를 결정할 수 있으며 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 내부 메모리의 상이한 영역에 별도로 저장될 수 있다. 예를 들어, 레지스터를 디스크립터 저장 공간으로 사용하여 레지스터에 디스크립터의 식별자 및 콘텐츠를 저장하고, 온칩 캐시를 데이터 저장 공간으로 사용하여 디스크립터가 지시하는 텐서 데이터를 저장할 수 있다.
가능한 실시형태에 있어서, 디스크립터 전용인 전용 레지스터(SR)를 설치할 수도 있고, 디스크립터의 데이터는 즉치 값이거나 전용 레지스터에서 획득할 수도 있다. 레지스터를 사용하여 디스크립터의 식별자 및 콘텐츠를 저장하는 경우, 레지스터의 번호를 사용하여 디스크립터의 식별자를 표시할 수 있는데, 예를 들어, 레지스터의 번호가 0인 경우, 저장된 디스크립터의 식별자는 0이다. 레지스터 내의 디스크립터가 유효한 경우, 디스크립터가 지시하는 텐서 데이터의 크기에 따라 캐시 공간에 상기 텐서 데이터를 저장하기 위한 하나의 영역(예를 들어, 캐시에서 각각의 텐서 데이터에 하나의 텐서 캐시 유닛을 생성함)을 할당할 수 있다. 기설정된 캐시 공간을 적용하여 상기 텐서 데이터를 저장할 수도 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 내부 메모리에 저장될 수 있고, 디스크립터에 의해 지시된 텐서 데이터는 외부 메모리에 저장될 수 있다. 예를 들어, 온칩에 디스크립터의 식별자 및 콘텐츠를 저장하고, 오프칩에 디스크립터가 지시하는 텐서 데이터를 저장하는 방식을 적용할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소는 고정 주소일 수 있다. 예를 들어, 텐서 데이터에 별도의 데이터 저장 공간을 분할할 수 있고, 데이터 저장 공간에서 각각의 텐서 데이터의 시작 주소는 디스크립터의 식별자와 일대일로 대응된다. 이 경우, 프로세서는 디스크립터의 콘텐츠에 따라 텐서 데이터의 데이터 주소를 바로 결정할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소가 가변 주소인 경우, 상기 디스크립터는 N 차원 텐서 데이터의 주소를 지시할 수도 있으며, 여기서, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함할 수 있다. 예를 들어, 텐서 데이터가 3차원 데이터이고 디스크립터가 상기 텐서 데이터의 주소를 지시하는 경우, 디스크립터의 콘텐츠는 예를 들어 텐서 데이터의 시작 주소와 같이 상기 텐서 데이터의 주소를 표시하는 하나의 주소 파라미터를 포함할 수 있고, 예를 들어 텐서 데이터의 시작 주소 + 주소 오프셋과 같이 상기 텐서 데이터 주소의 여러 주소 파라미터 또는 각 차원을 기반으로 하는 텐서 데이터의 주소 파라미터를 포함할 수도 있다. 당업자는 실제 필요에 따라 주소 파라미터를 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함한다. 여기서, 기준 주소는 데이터 기준점의 변화에 따라 다를 수 있으며, 본 발명은 데이터 기준점의 선택에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 기준 주소는 상기 데이터 저장 공간의 시작 주소를 포함할 수 있다. 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록인 경우, 디스크립터의 기준 주소는 데이터 저장 공간의 시작 주소이고, 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록을 제외한 다른 데이터인 경우, 디스크립터의 기준 주소는 상기 데이터 블록의 데이터 저장 공간 내 물리적 주소이다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 모양 파라미터는N개 차원 방향 중 적어도 하나의 방향에서의 상기 텐서 데이터의 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터에 의해 지시된 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함한다. 여기서, 데이터 설명 위치는 디스크립터가 지시하는 텐서 데이터 중의 포인트 또는 영역의 매핑 위치인데, 예를 들어, 텐서 데이터가 3차원 데이터인 경우, 디스크립터는 3차원 공간 좌표(x, y, z)를 사용하여 상기 텐서 데이터의 모양을 표시할 수 있고, 상기 텐서 데이터의 데이터 설명 위치는 3차원 공간 좌표(x, y, z)를 사용하여 표시하고 상기 텐서 데이터에 의해3차원 공간에 매핑된 포인트 또는 영역의 위치일 수 있다.
당업자는 실제 상황에 따라 텐서 데이터의 모양을 표시하는 파라미터를 선택할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
본 발명의 실시예의 데이터 동기화 방법에 따르면, 데이터 동기화의 수신자 공간이 부족한 경우에 텐서 데이터의 부분적 동기화가 가능하고, 여러번의 부분적 동기화를 통해 전체 텐서 데이터의 동기화를 구현함으로써 공간이 부족한 경우 전체 텐서 데이터의 동기화 실패 또는 동기화 지연 등 문제점을 방지하고, 데이터 동기화 효율을 향상시킨다. 텐서 데이터의 모양을 지시하는 디스크립터가 설정되어 데이터 동기화 과정에서 디스크립터에 따라 텐서 데이터를 결정함으로써 동기화 오버헤드 및 데이터 액세스의 복잡성을 감소시킨다.
설명의 편의를 위해 전술한 각 방법의 실시예는 모두 일련의 동작 조합으로 표현되었으나, 당업자는 본 발명에 따라 일부 단계는 다른 순서 또는 동시에 수행될 수 있음에 유의해야 한다. 따라서 본 발명은 설명된 동작 순서에 한정되지 않으며, 또한 명세서에 설명된 실시예는 모두 선택 가능한 실시예이고 언급된 동작 및 모듈은 본 개시에 반드시 필요한 것이 아님을 이해해야 한다.
추가로, 흐름도의 각 단계는 화살표 지시에 따라 순차적으로 표시되나 이러한 단계는 반드시 화살표로 지시된 순서에 따라 순차적으로 수행되는 것은 아니며, 본 명세서에 명확히 언급되지 않는 한 이러한 단계는 다른 순서로 수행될 수 있는 바, 이러한 단계의 수행은 엄격한 순서에 한정되지 않음에 유의해야 한다. 또한, 흐름도의 단계 중 적어도 일부는 복수의 서브 단계 또는 복수의 절차를 포함할 수 있고, 이러한 서브 단계 또는 절차는 반드시 동일한 시각에 수행 완료되는 것이 아니라 상이한 시각에 수행될 수 있으며, 이러한 서브 단계 또는 절차의 수행 순서 역시 반드시 순차적으로 수행되어야 하는 것이 아니라 다른 단계 또는 다른 단계의 서브 단계 또는 절차의 적어도 일부와 순번 또는 교대로 수행될 수 있다.
도 3cb는 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다. 상기 데이터 동기화 장치는 제1 프로세서에 응용되고, 도 3cb에 도시된 바와 같이, 상기 데이터 동기화 장치는,
동기화될 텐서 데이터의 디스크립터에 따라 상태 조회 명령을 생성하는 조회 명령 생성 모듈(51c) - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시하고, 상기 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하고 동기화 상태 명령을 생성하도록 지시하며, 상기 상태 조회 명령은 상기 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 포함함 - ; 및
제2 프로세서에 상기 상태 조회 명령을 송신하는 조회 명령 송신 모듈(52c)을 포함한다.
가능한 실시형태에 있어서, 상기 장치는,
상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령 중의 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 서브 데이터 결정 모듈 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 상기 디스크립터 동기화 명령을 상기 제2 프로세서에 송신하는 동기화 명령 생성 및 송신 모듈을 더 포함한다.
가능한 실시형태에 있어서, 상기 동기화 상태 명령은 디스크립터의 식별자를 포함하고, 상기 서브 데이터 결정 모듈은,
상기 동기화 상태 명령을 해석하여 상기 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하는 해석 서브 모듈; 및
상기 디스크립터의 식별자에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 디스크립터 결정 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 상기 서브 데이터 결정 모듈은,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 제1 결정 서브 모듈; 및
상기 제2 서브 데이터 및 상기 동기화 상태 명령 중의 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 제2 결정 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 상기 장치는,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 상태 변경 모듈을 더 포함한다.
도 3cc은 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다. 상기 데이터 동기화 장치는 제2 프로세서에 응용되고, 도 3cc에 도시된 바와 같이, 상기 데이터 동기화 장치는,
제1 프로세서로부터 상태 조회 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터를 결정하는 조회 명령 수신 모듈(61c) - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 데이터 양 결정 모듈(62c);
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 동기화 상태 명령을 생성하는 상태 명령 생성 모듈(63c) - 상기 동기화 상태 명령은 상기 제1 프로세서가 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제1 프로세서에 상기 동기화 상태 명령을 송신하는 상태 명령 송신 모듈(64c)을 포함한다.
가능한 실시형태에 있어서, 상기 장치는,
상기 제1 프로세서로부터 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하는 동기화 명령 수신 모듈; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 데이터 저장 모듈을 더 포함한다.
전술한 장치 실시예는 예시적인 것일 뿐 본 발명의 장치는 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 전술한 실시예에서 유닛/모듈의 분할은 논리적 기능 분할일 뿐 실제 구현시에는 별도의 분할 방식이 존재할 수 있는 바, 예를 들어, 복수의 유닛, 모듈 또는 구성 요소는 결합되거나 다른 시스템에 통합되거나 일부 특징이 생략되거나 수행되지 않을 수 있다.
이 밖에, 달리 명시되지 않는 한, 본 발명의 각 실시예에서 각각의 기능 유닛/모듈은 하나의 유닛/모듈에 통합될 수 있거나, 각 유닛/모듈은 별도로 물리적으로 존재할 수도 있고, 둘 또는 둘 이상의 유닛/모듈은 함께 통합될 수도 있다. 전술한 통합된 유닛/모듈은 하드웨어 형태로 구현되거나 소프트웨어 프로그램 모듈의 형태로 구현될 수도 있다.
상기 통합된 유닛/모듈이 하드웨어 형태로 구현되는 경우, 상기 하드웨어는 디지털 회로, 아날로그 회로 등일 수 있고, 하드웨어 구조의 물리적 구현에는 트랜지스터, 멤리스터 등이 포함되나 이에 한정되지 않는다. 달리 명시되지 않는 한, 상기 인공 지능 프로세서는 CPU, GPU, FPGA, DSP, ASIC 등과 같은 임의의 적절한 하드웨어 프로세서일 수 있고, 달리 명시되지 않는 한, 상기 저장 유닛은 저항 변화 메모리(RRAM, Resistive Random Access Memory), 동적 랜덤 액세스 메모리(DRAM, Dynamic Random Access Memory), 정적 랜덤 액세스 메모리(SRAM, Static Random-Access Memory), 임베디드 램(EDRAM, Enhanced Dynamic Random Access Memory), 고 대역폭 메모리(HBM, High-Bandwidth Memory), 하이브리드 메모리 큐브(HMC, Hybrid Memory Cube) 등과 같은 임의의 적절한 자기 저장 매체 또는 자기 광 저장 매체일 수 있다.
상기 통합된 유닛/모듈이 소프트웨어 프로그램 모듈의 형태로 구현되어 독립적인 제품으로 판매되거나 사용되는 경우, 하나의 컴퓨터 판독 가능 메모리에 저장될 수 있다. 이러한 이해에 기반하여, 본 발명의 기술적 해결수단은 본질적이거나 종래 기술에 기여하는 부분이거나 상기 기술적 해결수단의 전부 또는 일부가 소프트웨어 제품의 형태로 구현될 수 있다. 상기 컴퓨터 소프트웨어 제품은 하나의 메모리에 저장되고, 하나의 컴퓨터 기기(개인용 컴퓨터, 서버 또는 네트워크 기기 등일 수 있음)가 본 발명의 각 실시예에 따른 상기 방법의 전부 또는 일부를 수행하도록 하는 단수의 명령을 포함한다. 전술한 메모리는 U 디스크, 읽기 전용 메모리(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 모바일 하드 디스크, 자기 디스크 또는 광 디스크 등 프로그램 코드를 저장할 수 있는 다양한 매체를 포함한다.
가능한 실시형태에 있어서, 전술한 데이터 동기화 장치를 포함하는 인공 지능 칩을 더 개시한다.
가능한 실시형태에 있어서, 보드를 더 개시한다. 상기 보드는 메모리 소자, 인터페이스 장치 및 제어 소자 및 전술한 인공 지능 칩을 포함하고; 상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며; 상기 메모리 소자는 데이터를 저장하고; 상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며; 상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링한다.
전술한 실시예에서, 각 실시예에 대한 설명은 각자 모두 중점을 두고 있는 바, 어느 실시예에서 자세히 설명하지 않은 부분은 다른 실시예의 관련 설명을 참조할 수 있다. 전술한 실시예의 각 기술특징은 임의로 조합할 수 있으며, 설명의 간결성을 위해 전술한 실시예의 각 기술특징의 가능한 모든 조합을 설명하지 않았으나 이러한 기술특징의 조합에 모순이 없는 한 이는 모두 본 명세서에 기술된 범위로 간주되어야 한다.
전술한 내용은 하기와 같은 항에 따라 더 잘 이해할 수 있을 것이다.
제A1항, 제1 프로세서에 응용되는 데이터 동기화 방법으로서,
동기화될 텐서 데이터의 디스크립터에 따라 상태 조회 명령을 생성하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시하고, 상기 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하고 동기화 상태 명령을 생성하도록 지시하며, 상기 상태 조회 명령은 상기 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 포함함; 및
제2 프로세서에 상기 상태 조회 명령을 송신하는 단계를 포함하는 데이터 동기화 방법.
제A2항, 제A1항에 있어서, 상기 방법은,
상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령 중의 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 상기 디스크립터 동기화 명령을 상기 제2 프로세서에 송신하는 단계를 더 포함하는 데이터 동기화 방법.
제A3항, 제A2항에 있어서, 상기 동기화 상태 명령은 디스크립터의 식별자를 포함하고,
상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령 중의 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 동기화 상태 명령을 해석하여 상기 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하는 단계; 및
상기 디스크립터의 식별자에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계를 포함하는 데이터 동기화 방법.
제A4항, 제A2항 또는 제A3항에 있어서, 상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령 중의 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 단계; 및
상기 제2 서브 데이터 및 상기 동기화 상태 명령 중의 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함하는 데이터 동기화 방법.
제A5항, 제A2항 - 제A4항 중 어느 한 항에 있어서, 상기 방법은,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함하는 데이터 동기화 방법.
제A6항, 제2 프로세서에 응용되는 데이터 동기화 방법으로서,
제1 프로세서로부터 상태 조회 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터를 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계;
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 동기화 상태 명령을 생성하는 단계 - 상기 동기화 상태 명령은 상기 제1 프로세서가 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제1 프로세서에 상기 동기화 상태 명령을 송신하는 단계를 포함하는 데이터 동기화 방법.
제A7항, 제A6항에 있어서, 상기 방법은,
상기 제1 프로세서로부터 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함하는 데이터 동기화 방법.
제A8항, 제1 프로세서에 응용되는 데이터 동기화 장치로서,
동기화될 텐서 데이터의 디스크립터에 따라 상태 조회 명령을 생성하는 조회 명령 생성 모듈 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시하고, 상기 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하고 동기화 상태 명령을 생성하도록 지시하며, 상기 상태 조회 명령은 상기 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 포함함 - ; 및
제2 프로세서에 상기 상태 조회 명령을 송신하는 조회 명령 송신 모듈을 포함하는 데이터 동기화 장치.
제A9항, 제A8항에 있어서, 상기 장치는,
상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령 중의 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 서브 데이터 결정 모듈 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 상기 디스크립터 동기화 명령을 상기 제2 프로세서에 송신하는 동기화 명령 생성 및 송신 모듈을 더 포함하는 데이터 동기화 장치.
제A10항, 제A9항에 있어서, 상기 동기화 상태 명령은 디스크립터의 식별자를 포함하고, 상기 서브 데이터 결정 모듈은,
상기 동기화 상태 명령을 해석하여 상기 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하는 해석 서브 모듈; 및
상기 디스크립터의 식별자에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 디스크립터 결정 서브 모듈을 포함하는 데이터 동기화 장치.
제A11항, 제A9항 또는 제A10항에 있어서, 상기 서브 데이터 결정 모듈은,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 제1 결정 서브 모듈; 및
상기 제2 서브 데이터 및 상기 동기화 상태 명령 중의 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 제2 결정 서브 모듈을 포함하는 데이터 동기화 장치.
제A12항, 제A9항 - 제A11항 중 어느 한 항에 있어서, 상기 장치는,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 상태 변경 모듈을 더 포함하는 데이터 동기화 장치.
제A13항, 제2 프로세서에 응용되는 데이터 동기화 장치로서,
제1 프로세서로부터 상태 조회 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터를 결정하는 조회 명령 수신 모듈 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 데이터 양 결정 모듈 - ;
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 동기화 상태 명령을 생성하는 상태 명령 생성 모듈 - 상기 동기화 상태 명령은 상기 제1 프로세서가 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제1 프로세서에 상기 동기화 상태 명령을 송신하는 상태 명령 송신 모듈을 포함하는 데이터 동기화 장치.
제A14항, 제A13항에 있어서, 상기 장치는,
상기 제1 프로세서로부터 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하는 동기화 명령 수신 모듈; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 데이터 저장 모듈을 더 포함하는 데이터 동기화 장치.
제A15항, 제A8항 - 제A14항 중 어느 한 항에 따른 데이터 동기화 장치를 포함하는 인공 지능 칩.
제A16항, 제A15항에 따른 인공 지능 칩을 포함하는 전자 기기.
제A17항, 보드로서, 메모리 소자, 인터페이스 장치, 제어 소자 및 제A15항에 따른 인공 지능 칩을 포함하고; 상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며; 상기 메모리 소자는 데이터를 저장하고; 상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며; 상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링하는 보드.
제A18항, 제A17항에 있어서, 상기 메모리 소자는 복수 그룹의 저장 유닛을 포함하고, 각 그룹의 상기 저장 유닛은 버스를 통해 상기 인공 지능 칩에 연결되며, 상기 저장 유닛은 DDR SDRAM이고; 상기 칩은 각각의 상기 저장 유닛의 데이터 전송 및 데이터 저장을 제어하는 DDR 컨트롤러를 포함하며; 상기 인터페이스 장치는 표준 PCIE 인터페이스인 보드.
인공 지능 기술의 지속적인 발전에 따라 그 응용 분야가 갈수록 광범해져 이미지 인식, 음성 인식, 자연어 처리 등 분야에 잘 응용되고 있으나, 인공 지능 알고리즘의 복잡성이 증가함에 따라 처리해야 할 데이터 양 및 데이터 차원 모두 지속적으로 증가되므로 일반적으로 멀티 코어 및/또는 멀티 칩에 대한 데이터 처리가 필요하다. 코어 간 또는 칩 간의 데이터 동기화를 수행하는 경우, 관련 기술의 동기화 방식을 적용하면 동기화 오버헤드가 크므로 처리 효율이 낮다.
본 발명의 실시예에 따르면, 데이터 동기화 방법을 제공한다. 도 1f는 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시하는 것으로, 도 1f에 도시된 바와 같이, 상기 방법은 제1 프로세서(처리 시스템 중의 임의의 프로세서)에 응용되고, 상기 방법은 하기와 같은 단계를 포함한다.
단계 S11f에서, 동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 데이터 특징을 결정하되, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시한다.
단계 S12f에서, 상기 텐서 데이터의 데이터 특징에 따라 상태 조회 명령을 생성하고 상기 상태 조회 명령을 제2 프로세서에 송신하되, 상기 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하고 동기화 상태 명령을 생성하도록 지시한다.
예를 들어, 동기화될 데이터는 N 차원 텐서 데이터(N은 0보다 크거나 같은 정수임. 예를 들어, N=1, 2 또는 3)를 포함할 수 있다.
가능한 실시형태에 있어서, 데이터 처리 과정에서 복수의 프로세서(예를 들어, 인공 지능 칩의 복수의 코어) 간의 데이터 동기화를 수행해야 할 가능성이 있는데, 예를 들어, 프로세서 A1의 연산 결과를 다른 연산의 입력 데이터로서 프로세서 A2에 동기화될 수 있다. 이 경우, 디스크립터 기반 데이터 동기화 메커니즘을 적용하여 데이터 동기화를 구현할 수 있다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터에 할당 가능한 각 프로세서의 비 공용 저장 공간은 한정될 가능성이 있으므로 텐서 데이터의 전체 동기화를 구현할 수 없다. 이 경우, 텐서 데이터의 부분적 동기화를 수행할 수 있는 바, 여러 번의 부분적 동기화를 통해 전체 텐서 데이터의 동기화 과정을 구현한다.
가능한 실시형태에 있어서, 데이터 동기화의 송신자가 동기화될 텐서 데이터를 갖는 경우, 예를 들어, 하나의 연산을 완료하여 연산 결과(즉, 텐서 데이터)를 획득한 경우, 송신자는 텐서 데이터의 부분적 동기화를 수행하기 위해 수신자의 상태를 조회하고, 데이터 동기화의 수신자의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데이터 양을 결정할 수 있다.
가능한 실시형태에 있어서, 복수의 프로세서 중 제1 프로세서는 데이터 동기화의 송신자로, 제2 프로세서는 데이터 동기화의 수신자로 설정할 수 있다. 제1 프로세서와 제2 프로세서는 모두 복수의 프로세서 중 임의의 프로세서이고, 제2 프로세서의 유형은 제1 프로세서의 유형과 동일하거나 상이할 수 있으며, 본 발명은 제1 프로세서 및 제2 프로세서의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제1 프로세서가 동기화될 텐서 데이터가 존재하는 것으로 결정하면, 상기 텐서 데이터의 디스크립터를 획득할 수 있다. 상기 디스크립터는 상기 텐서 데이터의 모양을 지시하는 이미 등록(생성)된 디스크립터일 수 있고, 상기 텐서 데이터의 모양 파라미터에 따라 새로운 디스크립터를 등록(생성)할 수도 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 단계 S11f에서, 상기 텐서 데이터의 디스크립터에 따라 제1 프로세서는 상기 텐서 데이터의 데이터 특징을 결정할 수 있고, 상기 데이터 특징은 텐서 데이터의 식별자(예를 들어, 데이터 번호), 모양, 소스, 저장 주소 등 정보 중 적어도 하나를 포함할 수 있다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터의 데이터 특징은 텐서 데이터의 식별자, 모양, 소스, 주소 등 정보를 포함할 수 있다. 예를 들어, 상기 텐서 데이터의 데이터 소스는 K번째 송신자(K번째 프로세서)이고, 상기 텐서 데이터의 데이터 소스는 번호가 200인 컨볼루션 동작의 연산 결과이며, 상기 텐서 데이터의 주소는 특정된 주소 영역(예를 들어, 주소 ADDR0-ADDR127)이고, 상기 텐서 데이터의 모양은 지정된 모양(예를 들어, 20*10의 2차원 텐서) 등이다. 당업자는 실제 상황에 따라 동기화될 텐서 데이터의 데이터 특징을 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 단계 S12f에서, 상기 텐서 데이터의 데이터 특징에 따라 제1 프로세서는 상태 조회 명령을 생성하고 동기화될 제2 프로세서에 상기 상태 조회 명령을 송신할 수 있다. 제2 프로세서에 이미 상기 텐서 데이터의 정보가 구비된 경우(예를 들어, 상기 동기화될 텐서 데이터를 지시하는 디스크립터가 이미 등록됨), 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터의 식별자에 따라 동기화될 텐서 데이터의 디스크립터를 결정하도록 지시하기 위해, 턴서 데이터의 식별자와 같은 부분적 데이터 특징만 포함할 수 있다. 제2 프로세서에 상기 텐서 데이터의 정보가 구비되지 않은 경우, 동기화 명령은 제2 프로세서가 동기화될 텐서 데이터의 디스크립터를 결정하도록 지시하기 위해, 텐서 데이터의 식별자 및 저장 주소 등과 같은 더 많은 데이터 특징을 포함할 수 있으며, 본 발명은 상태 조회 명령에 포함되는 구체적인 콘텐츠에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상태 조회 명령이 텐서 데이터의 식별자를 포함하는 경우, 제2 프로세서는 상기 식별자에 따라 동기화될 텐서 데이터를 결정하고, 상기 동기화될 텐서 데이터를 지시하는 디스크립터를 등록 또는 획득할 수 있다. 상태 조회 명령이 더 많은 데이터 특징(식별자 및 저장 주소 등)을 포함하는 경우, 제2 프로세서는 명령 중의 데이터 특징에 따라 상기 텐서 데이터를 지시하는 디스크립터를 등록할 수 있다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터의 디스크립터를 결정한 후, 제2 프로세서는 디스크립터에 대응되는 텐서 데이터에 할당 가능한 공간을 결정하고, 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정할 수 있다. 동기화 가능한 데이터 양 및 데이터 특징에 따라 제2 프로세서는 제1 프로세서가 동기화될 텐서 데이터 및 이번에 동기화된 동기화 가능한 데이터 양을 결정할 수 있도록, 동기화 상태 명령을 생성 및 송신할 수 있다.
본 발명의 실시예의 데이터 동기화 방법에 따르면, 텐서 데이터의 모양을 지시하는 디스크립터를 설정함으로써, 송신자는 디스크립터에 따라 텐서 데이터의 데이터 특징을 결정하고, 수신자가 상태 조회 명령에 따라 자신의 상태(즉, 동기화 가능한 데이터 양)를 피드백하도록 지시하기 위해, 데이터 특징에 따라 상태 조회 명령을 생성 및 송신할 수 있으므로 텐서 데이터의 부분적 동기화를 구현하고, 명령 구조를 변경하지 않으면서 동기화 오버헤드를 감소시키며, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령을 해석하고 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 결정하는 단계;
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 단계;
상기 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 동기화 명령을 생성하고 상기 동기화 명령을 상기 제2 프로세서에 송신하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세서로부터 동기화 상태 명령을 수신하면, 상기 명령의 콘텐츠, 즉, 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 획득하기 위해 상기 명령을 해석할 수 있고, 상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정함으로써 동기화될 텐서 데이터를 결정할 수 있으며; 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정한다. 상기 제1 서브 데이터의 데이터 양은 동기화 가능한 데이터 양에 대응될 수 있는데, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 동기화 상태 명령은 동기화될 부분적 데이터를 획득하도록 지정하기 위해, 상기 부분적 서브 데이터의 저장 주소 범위 등과 같이 동기화될 텐서 데이터의 부분적 데이터의 범위를 포함할 수도 있으며, 제1 프로세서는 상기 부분적 데이터의 범위에 따라 동기화될 제1 서브 데이터를 직접 결정할 수 있다.
가능한 실시형태에 있어서, 제1 서브 프로세서는 제1 서브 데이터에 따라 동기화 명령을 생성하고 제2 프로세서에 동기화 명령을 송신할 수 있으며, 상기 명령은 동기화될 텐서 데이터의 데이터 특징 및 제1 서브 데이터를 포함할 수 있다. 제2 프로세서는 동기화 명령을 수신한 후, 동기화될 텐서 데이터의 데이터 특징 및 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하고, 데이터 특징에 따라 디스크립터를 결정하며, 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 송신자로부터의 동기화 상태 명령에 따라 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양을 결정하고, 동기화 가능한 데이터 양에 따라 이번에 동기화된 서브 데이터를 결정하며, 수신자가 이번에 동기화된 서브 데이터를 획득하도록, 상기 서브 데이터에 따라 동기화 명령을 생성 및 송신할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 디스크립터에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터 중 동기화될 상태의 제2 서브 데이터를 결정하는 단계; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함할 수 있다.
예를 들어, 텐서 데이터 내 데이터의 상태를 설정하고, 동기화된 부분적 데이터를 동기화된 데이터로 설정하며, 동기화되지 않은 부분적 데이터를 동기화될 데이터로 설정할 수 있다. 이 경우, 제1 프로세서는 제2 프로세서로부터 동기화 상태 명령을 수신하면, 텐서 데이터 내 데이터의 상태에 따라 동기화될 상태의 제2 서브 데이터를 결정할 수 있고; 제2 서브 데이터 및 동기화 상태 명령에 의해 지시된 동기화 가능한 데이터 양에 따라 이번에 동기화된 제1 서브 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많으면, 제2 서브 데이터에서 이번에 동기화된 제1 서브 데이터를 선택할 수 있고; 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같으면, 제2 서브 데이터를 제1 서브 데이터로서 사용할 수 있다.
이러한 방식을 통해, 텐서 데이터의 부분적 동기화를 구현하기 위해 이번에 동기화된 부분적 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 상기 방법은, 상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세가 텐서 데이터의 제1 서브 데이터의 동기화를 구현하도록, 텐서 데이터의 제1 서브 데이터에 따라 동기화 명령을 생성 및 송신한 후, 텐서 데이터 내 데이터의 상태, 즉 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경할 수 있다. 이에 따라, 다음번에 제2 프로세서의 상태를 조회하고 제2 프로세서의 동기화 상태 명령을 수신할 경우, 동기화될 상태의 부분적 데이터에서 다음번에 동기화될 데이터를 결정할 수 있으므로 데이터의 반복적 동기화를 방지하고, 데이터 동기화 효율을 향상시킨다.
도 3da은 본 발명의 일 실시예에 따른 데이터 동기화 방법의 흐름도를 도시하는 것으로, 도 3da에 도시된 바와 같이, 상기 방법은 2 프로세서에 응용되고, 상기 방법은 하기와 같은 단계를 포함한다.
단계 S31d에서, 제1 프로세서로부터 상태 조회 명령을 수신한 경우, 상기 상태 조회 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 획득한다.
단계 S32d에서, 상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하되, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시한다.
단계 S33d에서, 상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정한다.
단계 S34d에서, 상기 텐서 데이터의 데이터 특징 및 상기 동기화 가능한 데이터 양에 따라 동기화 상태 명령을 생성하고 상기 동기화 상태 명령을 상기 제1 프로세서에 송신하되, 상기 동기화 상태 명령은 상기 제1 프로세서가 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응된다.
예를 들어, 데이터 동기화의 송신자가 동기화될 텐서 데이터를 갖는 경우, 송신자는 수신자의 상태를 조회할 수 있다. 제1 프로세서(송신자)는 상태 조회 명령을 생성 및 송신할 수 있고, 제2 프로세서는 단계 S31d에서 상기 상태 조회 명령을 수신하면, 상기 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 결정할 수 있으며, 상기 데이터 특징은 텐서 데이터의 식별자(예를 들어, 데이터 번호), 모양, 소스, 저장 주소 등 정보 중 적어도 하나를 포함할 수 있다.
가능한 실시형태에 있어서, 단계 S32d에서, 제2 프로세서는 데이터 특징, 동기화될 텐서 데이터의 디스크립터를 결정할 수 있다. 상기 디스크립터는 상기 텐서 데이터의 모양을 지시하는 이미 등록(생성)된 디스크립터일 수 있고, 상기 텐서 데이터의 모양 파라미터에 따라 새로운 디스크립터를 등록(생성)할 수도 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 단계 S33d에서, 제2 프로세서는 상기 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 부분적 동기화를 수행하기 위해, 자체의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양, 즉 동기화 가능한 데이터 양을 결정할 수 있다.
가능한 실시형태에 있어서, 단계 S34d에서, 제2 프로세서는 제1 프로세서가 이번에 동기화된 동기화 가능한 데이터 양을 결정하도록 지시하기 위해, 결정된 동기화 가능한 데이터 양 및 상기 텐서 데이터의 데이터 특징에 따라 동기화 상태 명령을 생성하여 제1 프로세서에 송신할 수 있다. 제2 프로세서는 결정된 동기화 가능한 데이터 양 및 상기 텐서 데이터의 디스크립터에 따라 동기화 상태 명령을 생성하여 제1 프로세서에 송신할 수 있고, 동기화 명령을 생성하여 제2 프로세서에 송신할 수 있으며, 상기 명령은 동기화될 텐서 데이터의 데이터 특징 및 제1 서브 데이터를 포함할 수 있다.
이러한 방식을 통해, 송신자는 수신자의 상태를 조회하고, 수신자는 상태 조회 명령을 수신한 후 자체 상태(즉, 동기화 가능한 데이터 양)를 결정 및 회답할 수 있어, 상호 작용을 통해 데이터의 부분적 동기화를 구현하고, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제1 프로세서로부터 동기화 명령을 수신한 경우, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터의 제1 서브 데이터를 획득하는 단계;
상기 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 단계; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함한다.
예를 들어, 제2 프로세서는 동기화 명령을 수신하면, 동기화될 텐서 데이터의 데이터 특징 및 이번에 동기화된 상기 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하고; 상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 검색하며; 나아가 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 수신자가 동기화 명령에 따라 디스크립터를 결정하고 이번에 동기화된 서브 데이터를 획득할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 데이터 동기화의 수신자는 텐서 데이터에 대한 부분적 동기화 요청을 개시할 수도 있다. 즉, 수신자는 디스크립터 동기화 요청 명령을 송신하는데, 상기 명령은 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양, 즉, 수신자의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양을 지시할 수 있다.
가능한 실시형태에 있어서, 제1 프로세서에 응용되는 데이터 동기화 방법을 더 제공하고, 상기 방법은,
상기 제2 프로세서로부터 동기화 요청 명령을 수신한 경우, 상기 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 획득하는 단계;
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 동기화 명령을 생성하고 상기 동기화 명령을 상기 제2 프로세서에 송신하는 단계를 포함한다.
예를 들어, 데이터 동기화의 수신자는 텐서 데이터에 대한 부분적 동기화 요청을 개시할 수 있다. 즉, 수신자는 동기화 요청 명령을 송신하되, 상기 명령은 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양, 즉, 수신자의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양을 지시할 수 있다.
가능한 실시형태에 있어서, 복수의 프로세서 중 제1 프로세서는 데이터 동기화의 송신자로, 제2 프로세서는 데이터 동기화의 수신자로 설정할 수 있다. 제1 프로세서와 제2 프로세서는 모두 복수의 프로세서 중 임의의 프로세서이고, 제2 프로세서의 유형은 제1 프로세서의 유형과 동일하거나 상이할 수 있으며, 본 발명은 제1 프로세서 및 제2 프로세서의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제1 프로세서는 제2 프로세서로부터 동기화 요청 명령을 수신하면, 상기 명령의 콘텐츠, 즉, 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 획득하기 위해 상기 명령을 해석할 수 있고, 상기 데이터 특징은 텐서 데이터의 식별자(예를 들어, 데이터 번호), 모양, 소스, 저장 주소 등 정보 중 적어도 하나를 포함할 수 있다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터의 데이터 특징은 텐서 데이터의 식별자, 모양, 소스, 주소 등 정보를 포함할 수 있다. 예를 들어, 상기 텐서 데이터의 데이터 소스는 K번째 송신자(K번째 프로세서)이고, 상기 텐서 데이터의 데이터 소스는 번호가 200인 컨볼루션 동작의 연산 결과이며, 상기 텐서 데이터의 주소는 특정된 주소 영역(예를 들어, 주소 ADDR0-ADDR127)이고, 상기 텐서 데이터의 모양은 지정된 모양(예를 들어, 20*10의 2차원 텐서) 등이다. 당업자는 실제 상황에 따라 동기화될 텐서 데이터의 데이터 특징을 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제1 프로세서는 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하며; 나아가 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정할 수 있다. 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응될 수 있는 바, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 동기화 요청 명령은 동기화될 부분적 데이터를 획득하도록 지정하기 위해, 상기 부분적 서브 데이터의 저장 주소 범위와 같이 동기화될 텐서 데이터의 부분적 데이터의 범위를 포함할 수 있으며, 제1 프로세서는 상기 부분적 데이터의 범위에 따라 동기화될 제1 서브 데이터를 직접 결정할 수 있다.
가능한 실시형태에 있어서, 제1 서브 프로세서는 제1 서브 데이터에 따라 동기화 명령을 생성하고 제2 프로세서에 동기화 명령을 송신할 수 있으며, 상기 명령은 동기화될 텐서 데이터의 데이터 특징 및 제1 서브 데이터를 포함할 수 있다. 제2 프로세서는 동기화 명령을 수신한 후, 상기 데이터 특징 및 제1 서브 데이터를 결정하기 위해 상기 명령을 해석할 수 있다. 따라서 상기 데이터 특징에 따라 디스크립터를 결정하고, 디스크립터에 따라 동기화될 텐서 데이터를 결정하며, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 수신자는 부분적 데이터에 대한 동기화를 능동적으로 요청하기 위해 동기화 요청 명령을 송신할 수 있고, 송신자는 수신자의 동기화 가능한 데이터 양에 따라 이번에 동기화된 서브 데이터를 결정할 수 있으며, 수신자가 이번에 동기화된 서브 데이터를 획득하도록, 상기 서브 데이터에 따라 동기화 명령을 생성 및 송신할 수 있으므로, 명령 구조를 변경하지 않으면서 동기화 오버헤드를 감소시키며, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 단계; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함할 수 있다.
예를 들어, 텐서 데이터 내 데이터의 상태를 설정하고, 동기화된 부분적 데이터를 동기화된 데이터로 설정하며, 동기화되지 않은 부분적 데이터를 동기화될 데이터로 설정할 수 있다. 이 경우, 제1 프로세서는 제2 프로세서로부터 동기화 요청 명령을 수신하면, 텐서 데이터 내 데이터의 상태에 따라 동기화될 상태의 제2 서브 데이터를 결정할 수 있고; 제2 서브 데이터 및 동기화 요청 명령에 의해 지시된 동기화 가능한 데이터 양에 따라 이번에 동기화된 제1 서브 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많으면, 제2 서브 데이터에서 이번에 동기화된 제1 서브 데이터를 선택할 수 있고; 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같으면, 제2 서브 데이터를 제1 서브 데이터로서 사용할 수 있다.
이러한 방식을 통해, 텐서 데이터의 부분적 동기화를 구현하기 위해 이번에 동기화된 부분적 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 상기 방법은, 상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세가 텐서 데이터의 제1 서브 데이터의 동기화를 구현하도록, 텐서 데이터의 제1 서브 데이터에 따라 동기화 명령을 생성 및 송신한 후, 텐서 데이터 내 데이터의 상태, 즉 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경할 수 있다. 이에 따라, 다음번에 제2 프로세서의 동기화 요청 명령을 수신하면, 동기화될 상태의 부분적 데이터에서 다음번에 동기화될 데이터를 결정할 수 있으므로 데이터의 반복적 동기화를 방지하고, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 제2 프로세서에 응용되는 데이터 동기화 방법을 더 제공한다. 상기 방법은,
동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및
상기 데이터 특징 및 상기 동기화 가능한 데이터 양에 따라 동기화 요청 명령을 생성하고 상기 동기화 요청 명령을 제1 프로세서에 송신하는 단계 - 상기 동기화 요청 명령은 제1 프로세서가 상기 동기화 요청 명령에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ;을 포함한다.
예를 들어, 데이터 동기화의 수신자(즉, 제2 프로세서)는 텐서 데이터에 대한 부분적 동기화 요청을 개시할 수 있다. 제2 프로세서에 동기화될 텐서 데이터가 존재하는 경우, 텐서 데이터의 디스크립터를 결정할 수 있다. 상기 디스크립터는 상기 텐서 데이터의 모양을 지시하는 이미 등록(생성)된 디스크립터일 수 있고, 상기 텐서 데이터의 모양 파라미터에 따라 새로운 디스크립터를 등록(생성)할 수도 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제2 프로세서는 상기 디스크립터에 따라 텐서 데이터의 식별자(예를 들어, 데이터 번호), 모양, 소스, 저장 주소 등 정보 중 적어도 하나와 같은 텐서 데이터의 데이터 특징을 결정할 수 있다. 또한, 제2 프로세서는 자체의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양, 즉, 동기화 가능한 데이터 양을 결정할 수 있다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양에 따라, 제2 프로세서는 동기화 요청 명령을 생성하고 상기 명령을 송신할 수 있고, 상기 동기화 요청 명령은 제1 프로세서가 상기 명령에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시할 수 있다.
가능한 실시형태에 있어서, 데이터 동기화의 수신자(즉, 제1 프로세서)는 동기화 요청 명령을 수신하면, 상기 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 결정하며; 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하고; 디스크립터에 따라 동기화될 텐서 데이터를 결정하며, 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정할 수 있다. 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응될 수 있는 바, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 동기화 요청 명령은 동기화될 부분적 데이터를 획득하도록 지정하기 위해, 상기 부분적 서브 데이터의 디스크립터 콘텐츠 또는 저장 주소 범위 등과 같은 동기화될 텐서 데이터의 부분적 데이터의 범위를 포함할 수도 있다.
이러한 방식을 통해, 수신자는 송신자가 이번에 동기화된 서브 데이터를 결정하도록, 텐서 데이터에 대한 부분적 동기화 요청을 개시할 수 있으므로 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제1 프로세서로부터 동기화 명령을 수신한 경우, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터의 제1 서브 데이터를 획득하는 단계;
상기 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 단계; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 텐서 데이터의 데이터 특징 및 제1 서브 데이터에 따라 동기화 명령을 생성 및 송신할 수 있다. 제2 프로세서는 상기 동기화 명령을 수신하면, 동기화될 텐서 데이터의 데이터 특징 및 이번에 동기화된 상기 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하고; 데이터 특징에 따라 디스크립터를 결정하며, 나아가 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 수신자가 동기화 명령에 따라 디스크립터를 결정하고 이번에 동기화된 서브 데이터를 획득할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시키고, 또한 명령 전달 및 처리 과정에서 명령 호환성을 구현한다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 디스크립터 저장 공간에 저장될 수 있고, 상기 디스크립터 저장 공간은 프로세서의 내부 메모리(예를 들어, 레지스터, 온칩 SRAM 또는 기타 미디어 캐시 등)의 저장 공간일 수 있으며, 디스크립터에 의해 지시된 텐서 데이터의 데이터 저장 공간은 프로세서의 내부 메모리(예를 들어, 온칩 캐시) 또는 프로세서에 연결된 외부 메모리(오프칩 메모리)의 저장 공간일 수 있다. 데이터 저장 공간 내의 데이터 주소는 실제 물리적 주소 또는 가상 주소일 수 있으며, 본 발명은 디스크립터 저장 공간, 데이터 저장 공간의 위치 및 데이터 주소의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 동일한 영역에 위치할 수 있다. 예를 들어, 온칩에 캐시된 하나의 연속 영역을 사용하여 디스크립터의 관련 콘텐츠를 저장할 수 있으며, 그 주소는 ADDR0-ADDR1023이다. 여기서, 주소 ADDR0-ADDR31은 디스크립터의 식별자를 저장할 수 있고, 주소 ADDR32-ADDR63은 디스크립터의 콘텐츠를 저장할 수 있으며, 주소 ADDR64-ADDR1023은 디스크립터에 의해 지시된 텐서 데이터를 저장할 수 있다. 여기서, 주소 ADDR은 1 비트 또는 1 바이트로 한정되지 않으며 여기서는 하나의 주소를 표시하는 하나의 주소 단위이다. 당업자는 실제 상황에 따라 저장 영역 및 그 주소를 결정할 수 있으며 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 내부 메모리의 상이한 영역에 별도로 저장될 수 있다. 예를 들어, 레지스터를 디스크립터 저장 공간으로 사용하여 레지스터에 디스크립터의 식별자 및 콘텐츠를 저장하고, 온칩 캐시를 데이터 저장 공간으로 사용하여 디스크립터가 지시하는 텐서 데이터를 저장할 수 있다.
가능한 실시형태에 있어서, 디스크립터 전용인 전용 레지스터(SR)를 설치할 수도 있고, 디스크립터의 데이터는 즉치 값이거나 전용 레지스터에서 획득할 수도 있다. 레지스터를 사용하여 디스크립터의 식별자 및 콘텐츠를 저장하는 경우, 레지스터의 번호를 사용하여 디스크립터의 식별자를 표시할 수 있는데, 예를 들어, 레지스터의 번호가 0인 경우, 저장된 디스크립터의 식별자는 0이다. 레지스터 내의 디스크립터가 유효한 경우, 디스크립터가 지시하는 텐서 데이터의 크기에 따라 캐시 공간에 상기 텐서 데이터를 저장하기 위한 하나의 영역(예를 들어, 캐시에서 각각의 텐서 데이터에 하나의 텐서 캐시 유닛을 생성함)을 할당할 수 있다. 기설정된 캐시 공간을 적용하여 상기 텐서 데이터를 저장할 수도 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 내부 메모리에 저장될 수 있고, 디스크립터에 의해 지시된 텐서 데이터는 외부 메모리에 저장될 수 있다. 예를 들어, 온칩에 디스크립터의 식별자 및 콘텐츠를 저장하고, 오프칩에 디스크립터가 지시하는 텐서 데이터를 저장하는 방식을 적용할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소는 고정 주소일 수 있다. 예를 들어, 텐서 데이터에 별도의 데이터 저장 공간을 분할할 수 있고, 데이터 저장 공간에서 각각의 텐서 데이터의 시작 주소는 디스크립터의 식별자와 일대일로 대응된다. 이 경우, 프로세서는 디스크립터의 콘텐츠에 따라 텐서 데이터의 데이터 주소를 바로 결정할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소가 가변 주소인 경우, 상기 디스크립터는 N 차원 텐서 데이터의 주소를 지시할 수도 있으며, 여기서, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함할 수 있다. 예를 들어, 텐서 데이터가 3차원 데이터이고 디스크립터가 상기 텐서 데이터의 주소를 지시하는 경우, 디스크립터의 콘텐츠는 예를 들어 텐서 데이터의 시작 주소와 같이 상기 텐서 데이터의 주소를 표시하는 하나의 주소 파라미터를 포함할 수 있고, 예를 들어 텐서 데이터의 시작 주소 + 주소 오프셋과 같이 상기 텐서 데이터 주소의 여러 주소 파라미터 또는 각 차원을 기반으로 하는 텐서 데이터의 주소 파라미터를 포함할 수도 있다. 당업자는 실제 필요에 따라 주소 파라미터를 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함한다. 여기서, 기준 주소는 데이터 기준점의 변화에 따라 다를 수 있으며, 본 발명은 데이터 기준점의 선택에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 기준 주소는 상기 데이터 저장 공간의 시작 주소를 포함할 수 있다. 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록인 경우, 디스크립터의 기준 주소는 데이터 저장 공간의 시작 주소이고, 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록을 제외한 다른 데이터인 경우, 디스크립터의 기준 주소는 상기 데이터 블록의 데이터 저장 공간 내 물리적 주소이다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 모양 파라미터는 N개 차원 방향 중 적어도 하나의 방향에서의 상기 텐서 데이터의 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터에 의해 지시된 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함한다. 여기서, 데이터 설명 위치는 디스크립터가 지시하는 텐서 데이터 중의 포인트 또는 영역의 매핑 위치인데, 예를 들어, 텐서 데이터가 3차원 데이터인 경우, 디스크립터는 3차원 공간 좌표(x, y, z)를 사용하여 상기 텐서 데이터의 모양을 표시할 수 있고, 상기 텐서 데이터의 데이터 설명 위치는 3차원 공간 좌표(x, y, z)를 사용하여 표시하고 상기 텐서 데이터에 의해3차원 공간에 매핑된 포인트 또는 영역의 위치일 수 있다.
당업자는 실제 상황에 따라 텐서 데이터의 모양을 표시하는 파라미터를 선택할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
본 발명의 실시예의 데이터 동기화 방법에 따르면, 데이터 동기화의 수신자 공간이 부족한 경우에 텐서 데이터의 부분적 동기화가 가능하고, 여러번의 부분적 동기화를 통해 전체 텐서 데이터의 동기화를 구현함으로써 공간이 부족한 경우 전체 텐서 데이터의 동기화 실패 또는 동기화 지연 등 문제점을 방지하고, 텐서 데이터의 모양을 지시하는 디스크립터가 설정되어 데이터 동기화 과정에서 디스크립터에 따라 텐서 데이터를 결정함으로써 동기화 오버헤드 및 데이터 액세스의 복잡성을 감소시키고, 또한 명령 전달 및 처리 과정에서 명령 호환성을 구현한다.
설명의 편의를 위해 전술한 각 방법의 실시예는 모두 일련의 동작 조합으로 표현되었으나, 당업자는 본 발명에 따라 일부 단계는 다른 순서 또는 동시에 수행될 수 있음에 유의해야 한다. 따라서 본 발명은 설명된 동작 순서에 한정되지 않으며, 또한 명세서에 설명된 실시예는 모두 선택 가능한 실시예이고 언급된 동작 및 모듈은 본 개시에 반드시 필요한 것이 아님을 이해해야 한다.
추가로, 흐름도의 각 단계는 화살표 지시에 따라 순차적으로 표시되나 이러한 단계는 반드시 화살표로 지시된 순서에 따라 순차적으로 수행되는 것은 아니며, 본 명세서에 명확히 언급되지 않는 한 이러한 단계는 다른 순서로 수행될 수 있는 바, 이러한 단계의 수행은 엄격한 순서에 한정되지 않음에 유의해야 한다. 또한, 흐름도의 단계 중 적어도 일부는 복수의 서브 단계 또는 복수의 절차를 포함할 수 있고, 이러한 서브 단계 또는 절차는 반드시 동일한 시각에 수행 완료되는 것이 아니라 상이한 시각에 수행될 수 있으며, 이러한 서브 단계 또는 절차의 수행 순서 역시 반드시 순차적으로 수행되어야 하는 것이 아니라 다른 단계 또는 다른 단계의 서브 단계 또는 절차의 적어도 일부와 순번 또는 교대로 수행될 수 있다.
도 3db는 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다. 상기 데이터 동기화 장치는 제1 프로세서에 응용되고, 도 3db에 도시된 바와 같이, 상기 데이터 동기화 장치는,
동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 데이터 특징을 결정하는 특징 결정 모듈(51d) - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및
상기 텐서 데이터의 데이터 특징에 따라 상태 조회 명령을 생성하고 상기 상태 조회 명령을 제2 프로세서에 송신하는 조회 명령 생성 및 송신 모듈(52d) - 상기 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하고 동기화 상태 명령을 생성하도록 지시함 - ;을 포함한다.
가능한 실시형태에 있어서, 상기 장치는,
상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령을 해석하고 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 결정하는 상태 명령 해석 모듈;
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 제1 디스크립터 결정 모듈;
상기 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 데이터 결정 모듈 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 동기화 명령을 생성하고 상기 동기화 명령을 상기 제2 프로세서에 송신하는 동기화 명령 생성 및 송신 모듈을 더 포함한다.
가능한 실시형태에 있어서, 상기 데이터 결정 모듈은,
상기 디스크립터에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터 중 동기화될 상태의 제2 서브 데이터를 결정하는 제1 결정 서브 모듈; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 제2 결정 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 상기 장치는,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 상태 변경 모듈을 더 포함한다.
도 3dc은 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다. 상기 데이터 동기화 장치는 제2 프로세서에 응용되고, 도 3dc에 도시된 바와 같이, 상기 데이터 동기화 장치는,
제1 프로세서로부터 상태 조회 명령을 수신한 경우, 상기 상태 조회 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 획득하는 조회 명령 해석 모듈(61d);
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 제2 디스크립터 결정 모듈(62d) - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 데이터 양 결정 모듈(63d); 및
상기 텐서 데이터의 데이터 특징 및 상기 동기화 가능한 데이터 양에 따라 동기화 상태 명령을 생성하고 상기 동기화 상태 명령을 상기 제1 프로세서에 송신하는 상태 명령 생성 및 송신 모듈(64d) - 상기 동기화 상태 명령은 상기 제1 프로세서가 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ;을 포함한다.
가능한 실시형태에 있어서, 상기 장치는,
상기 제1 프로세서로부터 동기화 명령을 수신한 경우, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터의 제1 서브 데이터를 획득하는 동기화 명령 해석 모듈;
상기 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 제3 디스크립터 결정 모듈; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 데이터 저장 모듈을 더 포함한다.
전술한 장치 실시예는 예시적인 것일 뿐 본 발명의 장치는 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 전술한 실시예에서 유닛/모듈의 분할은 논리적 기능 분할일 뿐 실제 구현시에는 별도의 분할 방식이 존재할 수 있는 바, 예를 들어, 복수의 유닛, 모듈 또는 구성 요소는 결합되거나 다른 시스템에 통합되거나 일부 특징이 생략되거나 수행되지 않을 수 있다.
이 밖에, 달리 명시되지 않는 한, 본 발명의 각 실시예에서 각각의 기능 유닛/모듈은 하나의 유닛/모듈에 통합될 수 있거나, 각 유닛/모듈은 별도로 물리적으로 존재할 수도 있고, 둘 또는 둘 이상의 유닛/모듈은 함께 통합될 수도 있다. 전술한 통합된 유닛/모듈은 하드웨어 형태로 구현되거나 소프트웨어 프로그램 모듈의 형태로 구현될 수도 있다.
상기 통합된 유닛/모듈이 하드웨어 형태로 구현되는 경우, 상기 하드웨어는 디지털 회로, 아날로그 회로 등일 수 있고, 하드웨어 구조의 물리적 구현에는 트랜지스터, 멤리스터 등이 포함되나 이에 한정되지 않는다. 달리 명시되지 않는 한, 상기 인공 지능 프로세서는 CPU, GPU, FPGA, DSP, ASIC 등과 같은 임의의 적절한 하드웨어 프로세서일 수 있고, 달리 명시되지 않는 한, 상기 저장 유닛은 저항 변화 메모리(RRAM, Resistive Random Access Memory), 동적 랜덤 액세스 메모리(DRAM, Dynamic Random Access Memory), 정적 랜덤 액세스 메모리(SRAM, Static Random-Access Memory), 임베디드 램(EDRAM, Enhanced Dynamic Random Access Memory), 고 대역폭 메모리(HBM, High-Bandwidth Memory), 하이브리드 메모리 큐브(HMC, Hybrid Memory Cube) 등과 같은 임의의 적절한 자기 저장 매체 또는 자기 광 저장 매체일 수 있다.
상기 통합된 유닛/모듈이 소프트웨어 프로그램 모듈의 형태로 구현되어 독립적인 제품으로 판매되거나 사용되는 경우, 하나의 컴퓨터 판독 가능 메모리에 저장될 수 있다. 이러한 이해에 기반하여, 본 발명의 기술적 해결수단은 본질적이거나 종래 기술에 기여하는 부분이거나 상기 기술적 해결수단의 전부 또는 일부가 소프트웨어 제품의 형태로 구현될 수 있다. 상기 컴퓨터 소프트웨어 제품은 하나의 메모리에 저장되고, 하나의 컴퓨터 기기(개인용 컴퓨터, 서버 또는 네트워크 기기 등일 수 있음)가 본 발명의 각 실시예에 따른 상기 방법의 전부 또는 일부를 수행하도록 하는 단수의 명령을 포함한다. 전술한 메모리는 U 디스크, 읽기 전용 메모리(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 모바일 하드 디스크, 자기 디스크 또는 광 디스크 등 프로그램 코드를 저장할 수 있는 다양한 매체를 포함한다.
가능한 실시형태에 있어서, 전술한 데이터 동기화 장치를 포함하는 인공 지능 칩을 더 개시한다.
가능한 실시형태에 있어서, 보드를 더 개시한다. 상기 보드는 메모리 소자, 인터페이스 장치 및 제어 소자 및 전술한 인공 지능 칩을 포함하고; 상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며; 상기 메모리 소자는 데이터를 저장하고; 상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며; 상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링한다.
전술한 실시예에서, 각 실시예에 대한 설명은 각자 모두 중점을 두고 있는 바, 어느 실시예에서 자세히 설명하지 않은 부분은 다른 실시예의 관련 설명을 참조할 수 있다. 전술한 실시예의 각 기술특징은 임의로 조합할 수 있으며, 설명의 간결성을 위해 전술한 실시예의 각 기술특징의 가능한 모든 조합을 설명하지 않았으나 이러한 기술특징의 조합에 모순이 없는 한 이는 모두 본 명세서에 기술된 범위로 간주되어야 한다.
전술한 내용은 하기와 같은 항에 따라 더 잘 이해할 수 있을 것이다.
제A1항, 제1 프로세서에 응용되는 데이터 동기화 방법으로서,
동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 데이터 특징을 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및
상기 텐서 데이터의 데이터 특징에 따라 상태 조회 명령을 생성하고 상기 상태 조회 명령을 제2 프로세서에 송신하는 단계 - 상기 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하고 동기화 상태 명령을 생성하도록 지시함 - ;을 포함하는 데이터 동기화 방법.
제A2항, 제A1항에 있어서, 상기 방법은,
상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령을 해석하고 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 결정하는 단계; 및
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 단계;
상기 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 동기화 명령을 생성하고 상기 동기화 명령을 상기 제2 프로세서에 송신하는 단계를 더 포함하는 데이터 동기화 방법.
제A3항, 제A2항에 있어서, 상기 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 디스크립터에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터 중 동기화될 상태의 제2 서브 데이터를 결정하는 단계; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함하는 데이터 동기화 방법.
제A4항, 제A2항 또는 제A3항에 있어서, 상기 방법은,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함하는 데이터 동기화 방법.
제A5항, 제2 프로세서에 응용되는 데이터 동기화 방법으로서,
제1 프로세서로부터 상태 조회 명령을 수신한 경우, 상기 상태 조회 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 획득하는 단계;
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계; 및
상기 텐서 데이터의 데이터 특징 및 상기 동기화 가능한 데이터 양에 따라 동기화 상태 명령을 생성하고 상기 동기화 상태 명령을 상기 제1 프로세서에 송신하는 단계 - 상기 동기화 상태 명령은 상기 제1 프로세서가 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ;를 포함하는 데이터 동기화 방법.
제A6항, 제A5항에 있어서, 상기 방법은,
상기 제1 프로세서로부터 동기화 명령을 수신한 경우, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터의 제1 서브 데이터를 획득하는 단계;
상기 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 단계; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함하는 데이터 동기화 방법.
제A7항, 제1 프로세서에 응용되는 데이터 동기화 장치로서,
동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 데이터 특징을 결정하는 특징 결정 모듈 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및
상기 텐서 데이터의 데이터 특징에 따라 상태 조회 명령을 생성하고 상기 상태 조회 명령을 제2 프로세서에 송신하는 조회 명령 생성 및 송신 모듈 - 상기 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하고 동기화 상태 명령을 생성하도록 지시함 - ;을 포함하는 데이터 동기화 장치.
제A8항, 제A7항에 있어서, 상기 장치는,
상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령을 해석하고 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 결정하는 상태 명령 해석 모듈;
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 제1 디스크립터 결정 모듈;
상기 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 데이터 결정 모듈 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 동기화 명령을 생성하고 상기 동기화 명령을 상기 제2 프로세서에 송신하는 동기화 명령 생성 및 송신 모듈을 더 포함하는 데이터 동기화 장치.
제A9항, 제A8항에 있어서, 상기 데이터 결정 모듈은,
상기 디스크립터에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터 중 동기화될 상태의 제2 서브 데이터를 결정하는 제1 결정 서브 모듈; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 제2 결정 서브 모듈을 포함하는 데이터 동기화 장치.
제A10항, 제A8항 또는 제A9항에 있어서, 상기 장치는,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는상태 변경 모듈을 더 포함하는 데이터 동기화 장치.
제A11항, 제2 프로세서에 응용되는 데이터 동기화 장치로서,
제1 프로세서로부터 상태 조회 명령을 수신한 경우, 상기 상태 조회 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 획득하는 조회 명령 해석 모듈;
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 제2 디스크립터 결정 모듈 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 데이터 양 결정 모듈; 및
상기 텐서 데이터의 데이터 특징 및 상기 동기화 가능한 데이터 양에 따라 동기화 상태 명령을 생성하고 상기 동기화 상태 명령을 상기 제1 프로세서에 송신하는 상태 명령 생성 및 송신 모듈 - 상기 동기화 상태 명령은 상기 제1 프로세서가 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ;을 포함하는 데이터 동기화 장치.
제A12항, 제A11항에 있어서, 상기 장치는,
상기 제1 프로세서로부터 동기화 명령을 수신한 경우, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터의 제1 서브 데이터를 획득하는 동기화 명령 해석 모듈;
상기 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 제3 디스크립터 결정 모듈; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 데이터 저장 모듈을 더 포함하는 데이터 동기화 장치.
제A13항, 제A7항 - 제A12 항 중 어느 한 항에 따른 데이터 동기화 장치를 포함하는 인공 지능 칩.
제A14항, 제A13항에 따른 인공 지능 칩을 포함하는 전자 기기.
제A15항, 보드로서, 메모리 소자, 인터페이스 장치, 제어 소자 및 제A13항에 따른 인공 지능 칩을 포함하고;
상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며;
상기 메모리 소자는 데이터를 저장하고;
상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며;
상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링하는 보드.
제A16항, 제A15항에 있어서,
상기 메모리 소자는 복수 그룹의 저장 유닛을 포함하고, 각 그룹의 상기 저장 유닛은 버스를 통해 상기 인공 지능 칩에 연결되며, 상기 저장 유닛은 DDR SDRAM이고;
상기 칩은 각각의 상기 저장 유닛의 데이터 전송 및 데이터 저장을 제어하는 DDR 컨트롤러를 포함하며;
상기 인터페이스 장치는 표준 PCIE 인터페이스인 보드.
인공 지능 기술의 지속적인 발전에 따라 그 응용 분야가 갈수록 광범해져 이미지 인식, 음성 인식, 자연어 처리 등 분야에 잘 응용되고 있으나, 인공 지능 알고리즘의 복잡성이 증가함에 따라 처리해야 할 데이터 양 및 데이터 차원 모두 지속적으로 증가되므로 일반적으로 멀티 코어 및/또는 멀티 칩에 대한 데이터 처리가 필요하다. 코어 간 또는 칩 간의 데이터 동기화를 수행하는 경우, 관련 기술의 동기화 방식을 적용하면 동기화 오버헤드가 크므로 처리 효율이 낮다.
본 발명의 실시예에 따르면, 데이터 동기화 방법을 제공한다. 도 1g는 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시하는 것으로, 도 1g에 도시된 바와 같이, 상기 방법은 제1 프로세서(처리 시스템 중의 임의의 프로세서)에 응용되고, 상기 방법은 하기와 같은 단계를 포함한다.
단계 S11g에서, 상기 제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하되, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시한다.
단계 S12g에서, 상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하되, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응된다.
단계 S13g에서, 상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 상기 디스크립터 동기화 명령을 상기 제2 프로세서에 송신한다.
예를 들어, 동기화될 데이터는 N 차원 텐서 데이터(N은 0보다 크거나 같은 정수임. 예를 들어, N=1, 2 또는 3)를 포함할 수 있다.
가능한 실시형태에 있어서, 데이터 처리 과정에서 복수의 프로세서(예를 들어, 인공 지능 칩의 복수의 코어) 간의 데이터 동기화를 수행해야 할 가능성이 있는데, 예를 들어, 프로세서 A1의 연산 결과를 다른 연산의 입력 데이터로서 프로세서 A2에 동기화될 수 있다. 이 경우, 디스크립터 기반 데이터 동기화 메커니즘을 적용하여 데이터 동기화를 구현할 수 있다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터에 할당 가능한 각 프로세서의 비 공용 저장 공간은 한정될 가능성이 있으므로 텐서 데이터의 전체 동기화를 구현할 수 없다. 이 경우, 텐서 데이터의 부분적 동기화를 수행할 수 있는 바, 여러 번의 부분적 동기화를 통해 전체 텐서 데이터의 동기화 과정을 구현한다.
가능한 실시형태에 있어서, 데이터 동기화의 수신자는 텐서 데이터에 대한 부분적 동기화 요청을 개시할 수 있다. 즉, 수신자는 디스크립터 동기화 요청 명령을 송신하는데, 상기 명령은 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양, 즉, 수신자의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양을 지시할 수 있다.
가능한 실시형태에 있어서, 복수의 프로세서 중 제1 프로세서는 데이터 동기화의 송신자로, 제2 프로세서는 데이터 동기화의 수신자로 설정할 수 있다. 제1 프로세서와 제2 프로세서는 모두 복수의 프로세서 중 임의의 프로세서이고, 제2 프로세서의 유형은 제1 프로세서의 유형과 동일하거나 상이할 수 있으며, 본 발명은 제1 프로세서 및 제2 프로세서의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제1 프로세서는 단계 S11g에서 제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신하면, 상기 명령의 콘텐츠(예를 들어, 동기화될 텐서 데이터의 디스크립터의 식별자, 동기화될 텐서 데이터의 데이터 특징, 동기화 가능한 데이터 양 등)를 획득하기 위해 상기 명령을 해석하여 동기화될 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양을 결정할 수 있다.
가능한 실시형태에 있어서, 단계 S12g에서, 제1 프로세서는 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정할 수 있다. 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응될 수 있는 바, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 단계 S13g에서, 제1 프로세서는 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 제2 프로세서에 디스크립터 동기화 명령을 송신할 수 있다. 상기 명령에는 동기화될 텐서 데이터의 디스크립터의 식별자 및 제1 서브 데이터가 포함될 수 있고, 제2 프로세서는 디스크립터 동기화 명령을 수신한 후, 동기화될 텐서 데이터의 디스크립터 및 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하며, 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
본 발명의 실시예의 데이터 동기화 방법에 따르면, 텐서 데이터의 모양을 지시하는 디스크립터를 설정하고, 디스크립터 동기화 요청 명령 중의 디스크립터에 따라 텐서 데이터를 결정하며, 수신자의 동기화 가능한 데이터 양에 따라 이번에 동기화된 서브 데이터를 결정하고, 수신자가 이번에 동기화된 서브 데이터를 획득하도록, 상기 서브 데이터에 따라 디스크립터 동기화 명령을 생성 및 송신할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 디스크립터 동기화 요청 명령은 디스크립터의 식별자를 포함할 수 있고, 단계 S11g는,
상기 디스크립터 동기화 요청 명령을 해석하여 상기 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하는 단계; 및
상기 디스크립터의 식별자에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계를 포함할 수 있다.
예를 들어, 제1 프로세서와 제2 프로세서에 모두 상기 동기화될 텐서 데이터를 지시하는 디스크립터가 등록된 경우, 디스크립터 동기화 명령은 디스크립터의 식별자(예를 들어, 디스크립터의 식별자가 TR1인 경우, 디스크립터 동기화 명령을 Send TR1로 표시함) 및 동기화 가능한 데이터 양만 포함할 수 있다. 제1 프로세서는 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하기 위해 디스크립터 동기화 요청 명령을 해석하고, 나아가 디스크립터의 식별자에 따라 동기화될 텐서 데이터의 디스크립터를 결정할 수 있다.
이러한 방식을 통해, 동기화시 전송되는 데이터 양을 감소시키고 처리 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 디스크립터 동기화 요청 명령은 동기화될 텐서 데이터의 데이터 특징을 포함하고, 단계 S11g는,
상기 디스크립터 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 획득하는 단계; 및
상기 텐서 데이터의 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 단계를 포함할 수 있다.
예를 들어, 제1 프로세서에 상기 동기화될 텐서 데이터를 지시하는 디스크립터가 등록되지 않았거나 디스크립터의 식별자가 대응되지 않는 경우, 디스크립터 동기화 명령은 동기화될 텐서 데이터의 데이터 특징을 포함할 수 있다. 상기 데이터 특징은 텐서 데이터의 식별자, 모양, 소스, 주소 등 정보를 포함할 수 있고, 예를 들어, 상기 텐서 데이터의 데이터 소스는 K번째 송신자(K번째 프로세서)이고, 상기 텐서 데이터의 데이터 소스는 번호가 200인 컨볼루션 동작의 연산 결과이며, 상기 텐서 데이터의 주소는 특정된 주소 영역(예를 들어, 주소 ADDR0-ADDR127)이고, 상기 텐서 데이터의 모양은 지정된 모양(예를 들어, 20*10의 2차원 텐서) 등이다. 당업자는 실제 상황에 따라 동기화될 텐서 데이터의 데이터 특징을 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 데이터 특징에 따라 제1 프로세서는 동기화될 텐서 데이터를 검색하고, 상기 동기화될 텐서 데이터의 디스크립터를 결정할 수 있는데, 예를 들어, 대응되는 디스크립터를 직접 획득하거나 새로 등록하며, 상기 동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터를 결정하고, 나아가 동기화 가능한 데이터 양에 따라 이번에 동기화된 서브 데이터를 결정할 수 있다.
이러한 방식을 통해, 텐서 데이터의 부분적 동기화를 구현하기 위해, 디스크립터 동기화 요청 명령 중의 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정할 수 있다. 따라서 동기화시 텐서 데이터 자체를 전송할 필요가 없으므로 전송되는 데이터 양 및 동기화 오버헤드를 감소시키고 처리 효율을 향상시킨다.
가능한 실시형태에 있어서, 단계 S12g는,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 단계; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함할 수 있다.
예를 들어, 텐서 데이터 내 데이터의 상태를 설정하고, 동기화된 부분적 데이터를 동기화된 데이터로 설정하며, 동기화되지 않은 부분적 데이터를 동기화될 데이터로 설정할 수 있다. 이 경우, 제1 프로세서는 제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신하면, 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터 내 데이터의 상태에 따라 동기화될 상태의 제2 서브 데이터를 결정하며; 제2 서브 데이터 및 디스크립터 동기화 요청 명령에 의해 지시된 동기화 가능한 데이터 양에 따라 이번에 동기화된 제1 서브 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많으면, 제2 서브 데이터에서 이번에 동기화된 제1 서브 데이터를 선택할 수 있고; 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같으면, 제2 서브 데이터를 제1 서브 데이터로서 사용할 수 있다.
이러한 방식을 통해, 텐서 데이터의 부분적 동기화를 구현하기 위해 이번에 동기화된 부분적 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 상기 방법은, 상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세가 텐서 데이터의 제1 서브 데이터의 동기화를 구현하도록, 텐서 데이터의 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성 및 송신한 후, 텐서 데이터 내 데이터의 상태, 즉 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경할 수 있다. 이에 따라, 다음번에 제2 프로세서의 동기화 요청을 수신할 경우, 동기화될 상태의 부분적 데이터에서 다음번에 동기화될 데이터를 결정할 수 있으므로 데이터의 반복적 동기화를 방지하고, 데이터 동기화 효율을 향상시킨다.
도 3ea은 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시하는 것으로, 도 3ea에 도시된 바와 같이, 상기 방법은 2 프로세서에 응용되고, 상기 방법은 하기와 같은 단계를 포함한다.
단계 S31e에서, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양에 따라 디스크립터 동기화 요청 명령을 생성하되, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시하고, 상기 디스크립터 동기화 요청 명령은 제1 프로세서가 상기 디스크립터 동기화 요청 명령에 따라 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하며, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응된다.
단계 S32e에서, 상기 제1 프로세서에 상기 디스크립터 동기화 요청 명령을 송신한다.
예를 들어, 복수의 프로세서 중의 제2 프로세서는 데이터 동기화의 수신자이고, 제2 프로세서가 텐서 데이터에 대한 부분적 동기화 요청을 개시하도록 설정할 수 있다. 단계 S31e에서, 제2 프로세서에 동기화될 텐서 데이터가 존재하는 경우, 텐서 데이터의 디스크립터 및 제2 프로세서 자체의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양, 즉, 동기화 가능한 데이터 양을 결정할 수 있다. 상기 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라, 제2 프로세서는 디스크립터 동기화 요청 명령을 생성하고 단계 S32e에서 상기 명령을 송신할 수 있다. 상기 디스크립터 동기화 요청 명령은 디스크립터의 식별자, 디스크립터의 콘텐츠 및 텐서 데이터의 데이터 특징 중 적어도 하나를 포함할 수 있고, 제1 프로세서가 상기 명령에 따라 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시한다.
가능한 실시형태에 있어서, 제1 프로세서는 디스크립터 동기화 요청 명령을 수신하면, 상기 명령을 해석하여 동기화될 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양을 결정하고; 디스크립터에 따라 동기화될 텐서 데이터를 결정하며, 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정할 수 있다. 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응될 수 있는 바, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터 동기화 요청 명령은 동기화될 부분적 데이터를 획득하도록 지정하기 위해, 상기 부분적 서브 데이터의 디스크립터 콘텐츠 또는 저장 주소 범위 등과 같이 동기화될 텐서 데이터의 부분적 데이터의 범위를 포함할 수도 있다.
이러한 방식을 통해, 수신자는 송신자가 이번에 동기화된 서브 데이터를 결정하도록, 텐서 데이터에 대한 부분적 동기화 요청을 개시할 수 있으므로 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제1 프로세서로부터 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 텐서 데이터의 디스크립터 및 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성 및 송신할 수 있다. 제2 프로세서는 상기 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 이번에 동기화된 상기 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하며; 나아가 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 수신자는 디스크립터 동기화 명령에 따라 디스크립터를 결정하고 이번에 동기화된 서브 데이터를 결정할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 데이터 동기화의 송신자가 동기화될 텐서 데이터를 갖는 경우, 예를 들어, 제1 프로세서가 하나의 연산을 완료하고 연산 결과(텐서 데이터)를 획득하면, 송신자는 텐서 데이터의 부분적 동기화를 수행하기 위해 수신자의 상태를 조회하고, 데이터 동기화의 수신자의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데이터 양을 결정할 수 있다.
가능한 실시형태에 있어서, 제1 프로세서에 응용되는 데이터 동기화 방법을 더 제공하고, 상기 방법은, 동기화될 텐서 데이터의 디스크립터에 따라 상태 조회 명령을 생성하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시하고, 상기 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하고 동기화 상태 명령을 생성하도록 지시하며, 상기 상태 조회 명령은 상기 디스크립터의 식별자 및/또는 상기 디스크립터의 콘텐츠를 포함함 - ; 및 제2 프로세서에 상기 상태 조회 명령을 송신하는 단계를 포함한다.
예를 들어, 데이터 동기화의 송신자가 동기화될 텐서 데이터를 갖는 경우, 예를 들어, 제1 프로세서가 하나의 연산을 완료하고 연산 결과(텐서 데이터)를 획득한 경우, 송신자는 텐서 데이터의 부분적 동기화를 수행하기 위해 수신자의 상태를 조회하고, 데이터 동기화의 수신자의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데이터 양을 결정할 수 있다. 복수의 프로세서 중 제1 프로세서는 데이터 동기화의 송신자로, 제2 프로세서는 데이터 동기화의 수신자로 설정할 수 있다. 제1 프로세서와 제2 프로세서는 모두 복수의 프로세서 중 임의의 프로세서이고, 제2 프로세서의 유형은 제1 프로세서의 유형과 동일하거나 상이할 수 있으며, 본 발명은 제1 프로세서 및 제2 프로세서의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제1 프로세서는 동기화될 텐서 데이터의 디스크립터에 따라 상태 조회 명령을 생성할 수 있다. 상기 상태 조회 명령은 동기화될 텐서 데이터의 디스크립터의 식별자 및/또는 디스크립터의 콘텐츠를 포함할 수 있으며, 이는 제2 프로세서가 자신의 상태(즉, 텐서 데이터에 대해 동기화 가능한 데이터 양)를 결정하고 회답하도록 지시한다.
가능한 실시형태에 있어서, 제1 프로세서는 상태 조회 명령을 제2 프로세서에 송신할 수 있다. 제2 프로세서는 상기 상태 조회 명령을 수신한 후, 상기 명령을 해석하여 디스크립터의 식별자 및/또는 디스크립터의 콘텐츠를 결정할 수 있다. 디스크립터의 식별자 및/또는 디스크립터의 콘텐츠에 따라, 제2 프로세서는 동기화될 텐서 데이터를 결정하고, 나아가 상기 텐서 데이터에 할당 가능한 공간을 결정하며, 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정한다. 제1 프로세서가 동기화될 텐서 데이터의 디스크립터 및 이번에 동기화된 동기화 가능한 데이터 양을 결정할 수 있도록, 상기 텐서 데이터에 대한 동기화 가능한 데이터 양 및 디스크립터에 따라, 제2 프로세서는 동기화 상태 명령을 생성 및 송신할 수 있다.
이러한 방식을 통해, 송신자와 수신자 간의 부분적 데이터 동기화를 구현하기 위해 데이터 동기화의 송신자가 수신자의 상태를 능동적으로 조회할 수 있으므로, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령 중의 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 상기 디스크립터 동기화 명령을 상기 제2 프로세서에 송신하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세서로부터 동기화 상태 명령을 수신하면, 상기 명령의 콘텐츠(예를 들어, 디스크립터의 식별자, 동기화 가능한 데이터 양 등)를 획득하기 위해 상기 명령을 해석하고, 디스크립터의 식별자에 따라 동기화될 텐서 데이터의 디스크립터를 결정함으로써 동기화될 텐서 데이터를 결정하며 동기화될 텐서 데이터를 결정할 수 있고; 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정한다. 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응될 수 있는 바, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 동기화 상태 명령은 동기화될 부분적 데이터를 획득하도록 지정하기 위해, 상기 부분적 서브 데이터의 디스크립터 콘텐츠 또는 저장 주소 범위 등과 같이 동기화될 텐서 데이터의 부분적 데이터의 범위를 포함할 수도 있으며, 제1 프로세서는 상기 부분적 데이터의 범위에 따라 동기화될 제1 서브 데이터를 직접 결정할 수 있다.
가능한 실시형태에 있어서, 제1 프로세서는 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 제2 프로세서에 디스크립터 동기화 명령을 송신할 수 있다. 상기 명령에는 동기화될 텐서 데이터의 디스크립터의 식별자 및 제1 서브 데이터가 포함될 수 있고, 제2 프로세서는 디스크립터 동기화 명령을 수신한 후, 동기화될 텐서 데이터의 디스크립터 및 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하며, 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 동기화 상태 명령 중의 디스크립터에 따라 텐서 데이터를 결정하고, 수신자의 동기화 가능한 데이터 양에 따라 이번에 동기화된 서브 데이터를 결정하며, 수신자가 이번에 동기화된 서브 데이터를 획득하도록, 상기 서브 데이터에 따라 디스크립터 동기화 명령을 생성 및 송신할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 동기화 상태 명령은 디스크립터의 식별자를 포함하고, 상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령 중의 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 동기화 상태 명령을 해석하여 상기 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하는 단계; 및
상기 디스크립터의 식별자에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계를 포함할 수 있다.
예를 들어, 동기화 상태 명령에는 디스크립터의 식별자(예를 들어, 식별자는 TR1임) 및 동기화 가능한 데이터 양이 포함될 수 있다. 제1 프로세서는 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하기 위해 동기화 상태 명령을 해석하고, 나아가 디스크립터의 식별자에 따라 동기화될 텐서 데이터의 디스크립터를 결정할 수 있다.
이러한 방식을 통해, 동기화시 전송되는 데이터 양을 감소시키고 처리 효율을 향상시킬 수 있다.
가능한 실시형태에 있어서, 상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령 중의 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 단계; 및
상기 제2 서브 데이터 및 상기 동기화 상태 명령 중의 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함할 수 있다.
예를 들어, 텐서 데이터 내 데이터의 상태를 설정하고, 동기화된 부분적 데이터를 동기화된 데이터로 설정하며, 동기화되지 않은 부분적 데이터를 동기화될 데이터로 설정할 수 있다. 이 경우, 제1 프로세서는 제2 프로세서로부터 동기화 상태 명령을 수신하면, 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터 내 데이터의 상태에 따라 동기화될 상태의 제2 서브 데이터를 결정하며, 제2 서브 데이터 및 동기화 상태 명령에 의해 지시된 동기화 가능한 데이터 양에 따라 이번에 동기화된 제1 서브 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많으면, 제2 서브 데이터에서 이번에 동기화된 제1 서브 데이터를 선택할 수 있고; 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같으면, 제2 서브 데이터를 제1 서브 데이터로서 사용할 수 있다.
이러한 방식을 통해, 텐서 데이터의 부분적 동기화를 구현하기 위해 이번에 동기화된 부분적 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 상기 방법은, 상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세가 텐서 데이터의 제1 서브 데이터의 동기화를 구현하도록, 텐서 데이터의 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성 및 송신한 후, 텐서 데이터 내 데이터의 상태, 즉 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경할 수 있다. 이에 따라, 다음번에 제2 프로세서의 상태를 조회하고 제2 프로세서의 동기화 상태 명령을 수신할 경우, 동기화될 상태의 부분적 데이터에서 다음번에 동기화될 데이터를 결정할 수 있으므로 데이터의 반복적 동기화를 방지하고, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 제1 프로세서에 응용되는 데이터 동기화 방법을 더 제공하고, 상기 방법은,
제1 프로세서로부터 상태 조회 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터를 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계;
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 동기화 상태 명령을 생성하는 단계 - 상기 동기화 상태 명령은 상기 제1 프로세서가 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제1 프로세서에 상기 동기화 상태 명령을 송신하는 단계를 포함한다.
예를 들어, 데이터 동기화의 송신자가 동기화될 텐서 데이터를 갖는 경우, 송신자가 수신자의 상태를 조회할 수도 있다. 제1 프로세서(송신자)는 상태 조회 명령을 생성 및 송신할 수 있고, 제2 프로세서 상기 상태 조회 명령을 수신하면, 상기 명령을 해석하여 동기화될 텐서 데이터의 디스크립터를 결정할 수 있다.
가능한 실시형태에 있어서, 제2 프로세서는 상기 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 부분적 동기화를 수행하기 위해, 자체의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양, 즉 동기화 가능한 데이터 양을 결정할 수 있다.
가능한 실시형태에 있어서, 제2 프로세서는 제1 프로세서가 동기화될 텐서 데이터의 디스크립터 및 이번에 동기화된 동기화 가능한 데이터 양을 결정하도록 지시하기 위해, 결정된 동기화 가능한 데이터 양 및 상기 텐서 데이터의 디스크립터에 따라 동기화 상태 명령을 생성하여 제1 프로세서에 송신할 수 있다. 제2 프로세서는 결정된 동기화 가능한 데이터 양 및 상기 텐서 데이터의 디스크립터에 따라 동기화 상태 명령을 생성하여 제1 프로세서에 송신할 수 있으며, 디스크립터 동기화 명령을 생성하고 제2 프로세서에 디스크립터 동기화 명령을 송신할 수 있으며, 상기 명령에는 동기화될 텐서 데이터의 디스크립터의 식별자 및 제1 서브 데이터가 포함될 수 있다.
이러한 방식을 통해, 송신자는 수신자의 상태를 조회하고, 수신자는 상태 조회 명령을 수신한 후 자체 상태(즉, 동기화 가능한 데이터 양)를 결정 및 회답할 수 있어, 상호 작용을 통해 데이터의 부분적 동기화를 구현하고, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제1 프로세서로부터 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함한다.
예를 들어, 제2 프로세서는 스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 이번에 동기화된 상기 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하며; 나아가 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 수신자는 디스크립터 동기화 명령에 따라 디스크립터를 결정하고 이번에 동기화된 서브 데이터를 결정할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 디스크립터 저장 공간에 저장될 수 있고, 상기 디스크립터 저장 공간은 프로세서의 내부 메모리(예를 들어, 레지스터, 온칩 SRAM 또는 기타 미디어 캐시 등)의 저장 공간일 수 있으며, 디스크립터에 의해 지시된 텐서 데이터의 데이터 저장 공간은 프로세서의 내부 메모리(예를 들어, 온칩 캐시) 또는 프로세서에 연결된 외부 메모리(오프칩 메모리)의 저장 공간일 수 있다. 데이터 저장 공간 내의 데이터 주소는 실제 물리적 주소 또는 가상 주소일 수 있으며, 본 발명은 디스크립터 저장 공간, 데이터 저장 공간의 위치 및 데이터 주소의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 동일한 영역에 위치할 수 있다. 예를 들어, 온칩에 캐시된 하나의 연속 영역을 사용하여 디스크립터의 관련 콘텐츠를 저장할 수 있으며, 그 주소는 ADDR0-ADDR1023이다. 여기서, 주소 ADDR0-ADDR31은 디스크립터의 식별자를 저장할 수 있고, 주소 ADDR32-ADDR63은 디스크립터의 콘텐츠를 저장할 수 있으며, 주소 ADDR64-ADDR1023은 디스크립터에 의해 지시된 텐서 데이터를 저장할 수 있다. 여기서, 주소 ADDR은 1 비트 또는 1 바이트로 한정되지 않으며 여기서는 하나의 주소를 표시하는 하나의 주소 단위이다. 당업자는 실제 상황에 따라 저장 영역 및 그 주소를 결정할 수 있으며 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 내부 메모리의 상이한 영역에 별도로 저장될 수 있다. 예를 들어, 레지스터를 디스크립터 저장 공간으로 사용하여 레지스터에 디스크립터의 식별자 및 콘텐츠를 저장하고, 온칩 캐시를 데이터 저장 공간으로 사용하여 디스크립터가 지시하는 텐서 데이터를 저장할 수 있다.
가능한 실시형태에 있어서, 디스크립터 전용인 전용 레지스터(SR)를 설치할 수도 있고, 디스크립터의 데이터는 즉치 값이거나 전용 레지스터에서 획득할 수도 있다. 레지스터를 사용하여 디스크립터의 식별자 및 콘텐츠를 저장하는 경우, 레지스터의 번호를 사용하여 디스크립터의 식별자를 표시할 수 있는데, 예를 들어, 레지스터의 번호가 0인 경우, 저장된 디스크립터의 식별자는 0이다. 레지스터 내의 디스크립터가 유효한 경우, 디스크립터가 지시하는 텐서 데이터의 크기에 따라 캐시 공간에 상기 텐서 데이터를 저장하기 위한 하나의 영역(예를 들어, 캐시에서 각각의 텐서 데이터에 하나의 텐서 캐시 유닛을 생성함)을 할당할 수 있다. 기설정된 캐시 공간을 적용하여 상기 텐서 데이터를 저장할 수도 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 내부 메모리에 저장될 수 있고, 디스크립터에 의해 지시된 텐서 데이터는 외부 메모리에 저장될 수 있다. 예를 들어, 온칩에 디스크립터의 식별자 및 콘텐츠를 저장하고, 오프칩에 디스크립터가 지시하는 텐서 데이터를 저장하는 방식을 적용할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소는 고정 주소일 수 있다. 예를 들어, 텐서 데이터에 별도의 데이터 저장 공간을 분할할 수 있고, 데이터 저장 공간에서 각각의 텐서 데이터의 시작 주소는 디스크립터의 식별자와 일대일로 대응된다. 이 경우, 프로세서는 디스크립터의 콘텐츠에 따라 텐서 데이터의 데이터 주소를 바로 결정할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소가 가변 주소인 경우, 상기 디스크립터는 N 차원 텐서 데이터의 주소를 지시할 수도 있으며, 여기서, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함할 수 있다. 예를 들어, 텐서 데이터가 3차원 데이터이고 디스크립터가 상기 텐서 데이터의 주소를 지시하는 경우, 디스크립터의 콘텐츠는 예를 들어 텐서 데이터의 시작 주소와 같이 상기 텐서 데이터의 주소를 표시하는 하나의 주소 파라미터를 포함할 수 있고, 예를 들어 텐서 데이터의 시작 주소 + 주소 오프셋과 같이 상기 텐서 데이터 주소의 여러 주소 파라미터 또는 각 차원을 기반으로 하는 텐서 데이터의 주소 파라미터를 포함할 수도 있다. 당업자는 실제 필요에 따라 주소 파라미터를 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함한다. 여기서, 기준 주소는 데이터 기준점의 변화에 따라 다를 수 있으며, 본 발명은 데이터 기준점의 선택에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 기준 주소는 상기 데이터 저장 공간의 시작 주소를 포함할 수 있다. 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록인 경우, 디스크립터의 기준 주소는 데이터 저장 공간의 시작 주소이고, 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록을 제외한 다른 데이터인 경우, 디스크립터의 기준 주소는 상기 데이터 블록의 데이터 저장 공간 내 물리적 주소이다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 모양 파라미터는 N개 차원 방향 중 적어도 하나의 방향에서의 상기 텐서 데이터의 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터에 의해 지시된 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함한다. 여기서, 데이터 설명 위치는 디스크립터가 지시하는 텐서 데이터 중의 포인트 또는 영역의 매핑 위치인데, 예를 들어, 텐서 데이터가 3차원 데이터인 경우, 디스크립터는 3차원 공간 좌표(x, y, z)를 사용하여 상기 텐서 데이터의 모양을 표시할 수 있고, 상기 텐서 데이터의 데이터 설명 위치는 3차원 공간 좌표(x, y, z)를 사용하여 표시하고 상기 텐서 데이터에 의해3차원 공간에 매핑된 포인트 또는 영역의 위치일 수 있다.
당업자는 실제 상황에 따라 텐서 데이터의 모양을 표시하는 파라미터를 선택할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
본 발명의 실시예의 데이터 동기화 방법에 따르면, 데이터 동기화의 수신자 공간이 부족한 경우에 텐서 데이터의 부분적 동기화가 가능하고, 여러번의 부분적 동기화를 통해 전체 텐서 데이터의 동기화를 구현함으로써 공간이 부족한 경우 전체 텐서 데이터의 동기화 실패 또는 동기화 지연 등 문제점을 방지하고, 텐서 데이터의 모양을 지시하는 디스크립터가 설정되어 데이터 동기화 과정에서 디스크립터에 따라 텐서 데이터를 결정함으로써 동기화 오버헤드 및 데이터 액세스의 복잡성을 감소시킨다.
설명의 편의를 위해 전술한 각 방법의 실시예는 모두 일련의 동작 조합으로 표현되었으나, 당업자는 본 발명에 따라 일부 단계는 다른 순서 또는 동시에 수행될 수 있음에 유의해야 한다. 따라서 본 발명은 설명된 동작 순서에 한정되지 않으며, 또한 명세서에 설명된 실시예는 모두 선택 가능한 실시예이고 언급된 동작 및 모듈은 본 개시에 반드시 필요한 것이 아님을 이해해야 한다.
추가로, 흐름도의 각 단계는 화살표 지시에 따라 순차적으로 표시되나 이러한 단계는 반드시 화살표로 지시된 순서에 따라 순차적으로 수행되는 것은 아니며, 본 명세서에 명확히 언급되지 않는 한 이러한 단계는 다른 순서로 수행될 수 있는 바, 이러한 단계의 수행은 엄격한 순서에 한정되지 않음에 유의해야 한다. 또한, 흐름도의 단계 중 적어도 일부는 복수의 서브 단계 또는 복수의 절차를 포함할 수 있고, 이러한 서브 단계 또는 절차는 반드시 동일한 시각에 수행 완료되는 것이 아니라 상이한 시각에 수행될 수 있으며, 이러한 서브 단계 또는 절차의 수행 순서 역시 반드시 순차적으로 수행되어야 하는 것이 아니라 다른 단계 또는 다른 단계의 서브 단계 또는 절차의 적어도 일부와 순번 또는 교대로 수행될 수 있다.
도 3eb는 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다. 상기 데이터 동기화 장치는 제1 프로세서에 응용되고, 도 3eb에 도시된 바와 같이, 상기 데이터 동기화 장치는,
상기 제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 디스크립터 및 데이터 양 결정 모듈(51e) - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 서브 데이터 결정 모듈(52e) - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 상기 디스크립터 동기화 명령을 상기 제2 프로세서에 송신하는 동기화 명령 생성 및 송신 모듈(53e)을 포함한다.
가능한 실시형태에 있어서, 상기 서브 데이터 결정 모듈은,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 제1 결정 서브 모듈; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 제2 결정 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 상기 장치는,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 상태 변경 모듈을 더 포함한다.
가능한 실시형태에 있어서, 상기 디스크립터 동기화 요청 명령은 디스크립터의 식별자를 포함하고, 상기 디스크립터 및 데이터 양 결정 모듈은,
상기 디스크립터 동기화 요청 명령을 해석하여 상기 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하는 제1 해석 서브 모듈; 및
상기 디스크립터의 식별자에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 제1 디스크립터 결정 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 상기 디스크립터 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징을 포함하고, 상기 디스크립터 및 데이터 양 결정 모듈은,
상기 디스크립터 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 획득하는 제2 해석 서브 모듈; 및
상기 텐서 데이터의 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 제2 디스크립터 결정 서브 모듈을 포함한다.
도 3ec은 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다. 상기 데이터 동기화 장치는 제2 프로세서에 응용되고, 도 3ec에 도시된 바와 같이, 상기 데이터 동기화 장치는,
동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양에 따라 디스크립터 동기화 요청 명령을 생성하는 요청 명령 생성 모듈(61e) - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시하고, 상기 디스크립터 동기화 요청 명령은 제1 프로세서가 상기 디스크립터 동기화 요청 명령에 따라 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하며, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제1 프로세서에 상기 디스크립터 동기화 요청 명령을 송신하는 요청 명령 송신 모듈(62e)를 포함한다.
가능한 실시형태에 있어서, 상기 장치는,
상기 제1 프로세서로부터 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하는 디스크립터 및 서브 데이터 결정 모듈; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 데이터 저장 모듈을 더 포함한다.
전술한 장치 실시예는 예시적인 것일 뿐 본 발명의 장치는 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 전술한 실시예에서 유닛/모듈의 분할은 논리적 기능 분할일 뿐 실제 구현시에는 별도의 분할 방식이 존재할 수 있는 바, 예를 들어, 복수의 유닛, 모듈 또는 구성 요소는 결합되거나 다른 시스템에 통합되거나 일부 특징이 생략되거나 수행되지 않을 수 있다.
이 밖에, 달리 명시되지 않는 한, 본 발명의 각 실시예에서 각각의 기능 유닛/모듈은 하나의 유닛/모듈에 통합될 수 있거나, 각 유닛/모듈은 별도로 물리적으로 존재할 수도 있고, 둘 또는 둘 이상의 유닛/모듈은 함께 통합될 수도 있다. 전술한 통합된 유닛/모듈은 하드웨어 형태로 구현되거나 소프트웨어 프로그램 모듈의 형태로 구현될 수도 있다.
상기 통합된 유닛/모듈이 하드웨어 형태로 구현되는 경우, 상기 하드웨어는 디지털 회로, 아날로그 회로 등일 수 있고, 하드웨어 구조의 물리적 구현에는 트랜지스터, 멤리스터 등이 포함되나 이에 한정되지 않는다. 달리 명시되지 않는 한, 상기 인공 지능 프로세서는 CPU, GPU, FPGA, DSP, ASIC 등과 같은 임의의 적절한 하드웨어 프로세서일 수 있고, 달리 명시되지 않는 한, 상기 저장 유닛은 저항 변화 메모리(RRAM, Resistive Random Access Memory), 동적 랜덤 액세스 메모리(DRAM, Dynamic Random Access Memory), 정적 랜덤 액세스 메모리(SRAM, Static Random-Access Memory), 임베디드 램(EDRAM, Enhanced Dynamic Random Access Memory), 고 대역폭 메모리(HBM, High-Bandwidth Memory), 하이브리드 메모리 큐브(HMC, Hybrid Memory Cube) 등과 같은 임의의 적절한 자기 저장 매체 또는 자기 광 저장 매체일 수 있다.
상기 통합된 유닛/모듈이 소프트웨어 프로그램 모듈의 형태로 구현되어 독립적인 제품으로 판매되거나 사용되는 경우, 하나의 컴퓨터 판독 가능 메모리에 저장될 수 있다. 이러한 이해에 기반하여, 본 발명의 기술적 해결수단은 본질적이거나 종래 기술에 기여하는 부분이거나 상기 기술적 해결수단의 전부 또는 일부가 소프트웨어 제품의 형태로 구현될 수 있다. 상기 컴퓨터 소프트웨어 제품은 하나의 메모리에 저장되고, 하나의 컴퓨터 기기(개인용 컴퓨터, 서버 또는 네트워크 기기 등일 수 있음)가 본 발명의 각 실시예에 따른 상기 방법의 전부 또는 일부를 수행하도록 하는 단수의 명령을 포함한다. 전술한 메모리는 U 디스크, 읽기 전용 메모리(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 모바일 하드 디스크, 자기 디스크 또는 광 디스크 등 프로그램 코드를 저장할 수 있는 다양한 매체를 포함한다.
가능한 실시형태에 있어서, 전술한 데이터 동기화 장치를 포함하는 인공 지능 칩을 더 개시한다.
가능한 실시형태에 있어서, 보드를 더 개시한다. 상기 보드는 메모리 소자, 인터페이스 장치 및 제어 소자 및 전술한 인공 지능 칩을 포함하고; 상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며; 상기 메모리 소자는 데이터를 저장하고; 상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며; 상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링한다.
전술한 실시예에서, 각 실시예에 대한 설명은 각자 모두 중점을 두고 있는 바, 어느 실시예에서 자세히 설명하지 않은 부분은 다른 실시예의 관련 설명을 참조할 수 있다. 전술한 실시예의 각 기술특징은 임의로 조합할 수 있으며, 설명의 간결성을 위해 전술한 실시예의 각 기술특징의 가능한 모든 조합을 설명하지 않았으나 이러한 기술특징의 조합에 모순이 없는 한 이는 모두 본 명세서에 기술된 범위로 간주되어야 한다.
전술한 내용은 하기와 같은 항에 따라 더 잘 이해할 수 있을 것이다.
제A1항, 제1 프로세서에 응용되는 데이터 동기화 방법으로서,
제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 상기 디스크립터 동기화 명령을 상기 제2 프로세서에 송신하는 단계를 포함하는 데이터 동기화 방법.
제A2항, 제A1항에 있어서, 상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 단계;
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함하는 데이터 동기화 방법.
제A3항, 제A1항 또는 제A2항에 있어서, 상기 방법은,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함하는 데이터 동기화 방법.
제A4항, 제A1항 - 제A3항 중 어느 한 항에 있어서, 상기 디스크립터 동기화 요청 명령은 디스크립터의 식별자를 포함하고,
상기 제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계는,
상기 디스크립터 동기화 요청 명령을 해석하여 상기 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하는 단계; 및
상기 디스크립터의 식별자에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 단계를 포함하는 데이터 동기화 방법.
제A5항, 제A1항 - 제A3항 중 어느 한 항에 있어서, 상기 디스크립터 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징을 포함하고,
상기 제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신한 경우, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계는,
상기 디스크립터 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 획득하는 단계; 및
상기 텐서 데이터의 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 단계를 포함하는 데이터 동기화 방법.
제A6항, 제2 프로세서에 응용되는 데이터 동기화 방법으로서,
동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양에 따라 디스크립터 동기화 요청 명령을 생성하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시하고, 상기 디스크립터 동기화 요청 명령은 제1 프로세서가 상기 디스크립터 동기화 요청 명령에 따라 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하며, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제1 프로세서에 상기 디스크립터 동기화 요청 명령을 송신하는 단계를 포함하는 데이터 동기화 방법.
제A7항, 제A6항에 있어서, 상기 방법은,
상기 제1 프로세서로부터 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함하는 데이터 동기화 방법.
제A8항, 제1 프로세서에 응용되는 데이터 동기화 장치로서,
제2 프로세서로부터 디스크립터 동기화 요청 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 디스크립터 및 데이터 양 결정 모듈 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 서브 데이터 결정 모듈 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 디스크립터 동기화 명령을 생성하고 상기 디스크립터 동기화 명령을 상기 제2 프로세서에 송신하는 동기화 명령 생성 및 송신 모듈을 포함하는 데이터 동기화 장치.
제A9항, 제A8항에 있어서, 상기 서브 데이터 결정 모듈은,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 제1 결정 서브 모듈; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 제2 결정 서브 모듈을 포함하는 데이터 동기화 장치.
제A10항, 제A8항 또는 제A9항에 있어서, 상기 장치는,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 상태 변경 모듈을 더 포함하는 데이터 동기화 장치.
제A11항, 제A8항 - 제A10항 중 어느 한 항에 있어서, 상기 디스크립터 동기화 요청 명령은 디스크립터의 식별자를 포함하고, 상기 디스크립터 및 데이터 양 결정 모듈은,
상기 디스크립터 동기화 요청 명령을 해석하여 상기 디스크립터의 식별자 및 동기화 가능한 데이터 양을 획득하는 제1 해석 서브 모듈; 및
상기 디스크립터의 식별자에 따라 상기 동기화될 텐서 데이터의 디스크립터를 결정하는 제1 디스크립터 결정 서브 모듈을 포함하는 데이터 동기화 장치.
제A12항, 제A8항 - 제A10항 중 어느 한 항에 있어서, 상기 디스크립터 동기화 요청 명령은 상기 동기화될 텐서 데이터의 데이터 특징을 포함하고, 상기 디스크립터 및 데이터 양 결정 모듈은,
상기 디스크립터 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 획득하는 제2 해석 서브 모듈; 및
상기 텐서 데이터의 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 제2 디스크립터 결정 서브 모듈을 포함하는 데이터 동기화 장치.
제A13항, 제2 프로세서에 응용되는 데이터 동기화 장치로서,
동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양에 따라 디스크립터 동기화 요청 명령을 생성하는 요청 명령 생성 모듈 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시하고, 상기 디스크립터 동기화 요청 명령은 제1 프로세서가 상기 디스크립터 동기화 요청 명령에 따라 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하며, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제1 프로세서에 상기 디스크립터 동기화 요청 명령을 송신하는 요청 명령 송신 모듈을 포함하는 데이터 동기화 장치.
제A14항, 제A13항에 있어서, 상기 장치는,
상기 제1 프로세서로부터 디스크립터 동기화 명령을 수신하면, 동기화될 텐서 데이터의 디스크립터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하는 디스크립터 및 서브 데이터 결정 모듈; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 데이터 저장 모듈을 더 포함하는 데이터 동기화 장치.
제A15항, 제A8항 - 제A14항 중 어느 한 항에 따른 데이터 동기화 장치를 포함하는 인공 지능 칩.
제A16항, 제A15항에 따른 인공 지능 칩을 포함하는 전자 기기.
제A17항, 보드로서, 메모리 소자, 인터페이스 장치, 제어 소자 및 제A15항에 따른 인공 지능 칩을 포함하고; 상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며; 상기 메모리 소자는 데이터를 저장하고; 상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며; 상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링하는 보드.
제A18항, 제A17항에 있어서, 상기 메모리 소자는 복수 그룹의 저장 유닛을 포함하고, 각 그룹의 상기 저장 유닛은 버스를 통해 상기 인공 지능 칩에 연결되며, 상기 저장 유닛은 DDR SDRAM이고; 상기 칩은 각각의 상기 저장 유닛의 데이터 전송 및 데이터 저장을 제어하는 DDR 컨트롤러를 포함하며; 상기 인터페이스 장치는 표준 PCIE 인터페이스인 보드.
인공 지능 기술의 지속적인 발전에 따라 그 응용 분야가 갈수록 광범해져 이미지 인식, 음성 인식, 자연어 처리 등 분야에 잘 응용되고 있으나, 인공 지능 알고리즘의 복잡성이 증가함에 따라 처리해야 할 데이터 양 및 데이터 차원 모두 지속적으로 증가되므로 일반적으로 멀티 코어 및/또는 멀티 칩에 대한 데이터 처리가 필요하다. 코어 간 또는 칩 간의 데이터 동기화를 수행하는 경우, 관련 기술의 동기화 방식을 적용하면 동기화 오버헤드가 크므로 처리 효율이 낮다.
본 발명의 실시예에 따르면, 데이터 동기화 방법을 제공한다. 도 1h는 본 발명의 실시예에 따른 데이터 동기화 방법의 흐름도를 도시하는 것으로, 도 1h에 도시된 바와 같이, 상기 방법은 제1 프로세서(처리 시스템 중의 임의의 프로세서)에 응용되고, 상기 방법은 하기와 같은 단계를 포함한다.
단계 S11h에서, 제2 프로세서로부터 동기화 요청 명령을 수신한 경우, 상기 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 획득한다.
단계 S12h에서, 상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하되, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시한다.
단계 S13h에서, 상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하되, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응된다.
단계 S14h에서, 상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 동기화 명령을 생성하고 상기 동기화 명령을 상기 제2 프로세서에 송신한다.
예를 들어, 동기화될 데이터는 N 차원 텐서 데이터(N은 0보다 크거나 같은 정수임. 예를 들어, N=1, 2 또는 3)를 포함할 수 있다.
가능한 실시형태에 있어서, 데이터 처리 과정에서 복수의 프로세서(예를 들어, 인공 지능 칩의 복수의 코어) 간의 데이터 동기화를 수행해야 할 가능성이 있는데, 예를 들어, 프로세서 A1의 연산 결과를 다른 연산의 입력 데이터로서 프로세서 A2에 동기화될 수 있다. 이 경우, 디스크립터 기반 데이터 동기화 메커니즘을 적용하여 데이터 동기화를 구현할 수 있다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터에 할당 가능한 각 프로세서의 비 공용 저장 공간은 한정될 가능성이 있으므로 텐서 데이터의 전체 동기화를 구현할 수 없다. 이 경우, 텐서 데이터의 부분적 동기화를 수행할 수 있는 바, 여러 번의 부분적 동기화를 통해 전체 텐서 데이터의 동기화 과정을 구현한다.
가능한 실시형태에 있어서, 데이터 동기화의 수신자는 텐서 데이터에 대한 부분적 동기화 요청을 개시할 수 있다. 즉, 수신자는 동기화 요청 명령을 송신하되, 상기 명령은 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양, 즉, 수신자의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양을 지시할 수 있다.
가능한 실시형태에 있어서, 복수의 프로세서 중 제1 프로세서는 데이터 동기화의 송신자로, 제2 프로세서는 데이터 동기화의 수신자로 설정할 수 있다. 제1 프로세서와 제2 프로세서는 모두 복수의 프로세서 중 임의의 프로세서이고, 제2 프로세서의 유형은 제1 프로세서의 유형과 동일하거나 상이할 수 있으며, 본 발명은 제1 프로세서 및 제2 프로세서의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제1 프로세서는 단계 S11h에서 제2 프로세서로부터의 동기화 요청 명령을 수신하면, 상기 명령의 콘텐츠, 즉, 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 획득하기 위해 상기 명령을 해석할 수 있고, 상기 데이터 특징은 텐서 데이터의 식별자(예를 들어, 데이터 번호), 모양, 소스, 저장 주소 등 정보 중 적어도 하나를 포함할 수 있다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터의 데이터 특징은 텐서 데이터의 식별자, 모양, 소스, 주소 등 정보를 포함할 수 있다. 예를 들어, 상기 텐서 데이터의 데이터 소스는 K번째 송신자(K번째 프로세서)이고, 상기 텐서 데이터의 데이터 소스는 번호가 200인 컨볼루션 동작의 연산 결과이며, 상기 텐서 데이터의 주소는 특정된 주소 영역(예를 들어, 주소 ADDR0-ADDR127)이고, 상기 텐서 데이터의 모양은 지정된 모양(예를 들어, 20*10의 2차원 텐서) 등이다. 당업자는 실제 상황에 따라 동기화될 텐서 데이터의 데이터 특징을 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제1 프로세서는 단계 S12h에서 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하며; 나아가 단계 S13h에서 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정할 수 있다. 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응될 수 있는 바, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 동기화 요청 명령은 동기화될 부분적 데이터를 획득하도록 지정하기 위해, 상기 부분적 서브 데이터의 저장 주소 범위와 같이 동기화될 텐서 데이터의 부분적 데이터의 범위를 포함할 수 있으며, 제1 프로세서는 상기 부분적 데이터의 범위에 따라 동기화될 제1 서브 데이터를 직접 결정할 수 있다.
가능한 실시형태에 있어서, 단계 S14h에서, 제1 서브 프로세서는 제1 서브 데이터에 따라 동기화 명령을 생성하고 제2 프로세서에 동기화 명령을 송신할 수 있으며, 상기 명령은 동기화될 텐서 데이터의 데이터 특징 및 제1 서브 데이터를 포함할 수 있다. 제2 프로세서는 동기화 명령을 수신한 후, 상기 데이터 특징 및 제1 서브 데이터를 결정하기 위해 상기 명령을 해석할 수 있다. 따라서 상기 데이터 특징에 따라 디스크립터를 결정하고, 디스크립터에 따라 동기화될 텐서 데이터를 결정하며, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 수신자는 부분적 데이터에 대한 동기화를 능동적으로 요청하기 위해 동기화 요청 명령을 송신할 수 있고, 송신자는 수신자의 동기화 가능한 데이터 양에 따라 이번에 동기화된 서브 데이터를 결정할 수 있으며, 수신자가 이번에 동기화된 서브 데이터를 획득하도록, 상기 서브 데이터에 따라 동기화 명령을 생성 및 송신할 수 있으므로, 명령 구조를 변경하지 않으면서 동기화 오버헤드를 감소시키며, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 단계 S13h는,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 단계; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함할 수 있다.
예를 들어, 텐서 데이터 내 데이터의 상태를 설정하고, 동기화된 부분적 데이터를 동기화된 데이터로 설정하며, 동기화되지 않은 부분적 데이터를 동기화될 데이터로 설정할 수 있다. 이 경우, 제1 프로세서는 제2 프로세서로부터 동기화 요청 명령을 수신하면, 텐서 데이터 내 데이터의 상태에 따라 동기화될 상태의 제2 서브 데이터를 결정할 수 있고; 제2 서브 데이터 및 동기화 요청 명령에 의해 지시된 동기화 가능한 데이터 양에 따라 이번에 동기화된 제1 서브 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많으면, 제2 서브 데이터에서 이번에 동기화된 제1 서브 데이터를 선택할 수 있고; 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같으면, 제2 서브 데이터를 제1 서브 데이터로서 사용할 수 있다.
이러한 방식을 통해, 텐서 데이터의 부분적 동기화를 구현하기 위해 이번에 동기화된 부분적 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 상기 방법은, 상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세가 텐서 데이터의 제1 서브 데이터의 동기화를 구현하도록, 텐서 데이터의 제1 서브 데이터에 따라 동기화 명령을 생성 및 송신한 후, 텐서 데이터 내 데이터의 상태, 즉 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경할 수 있다. 이에 따라, 다음번에 제2 프로세서의 동기화 요청 명령을 수신하면, 동기화될 상태의 부분적 데이터에서 다음번에 동기화될 데이터를 결정할 수 있으므로 데이터의 반복적 동기화를 방지하고, 데이터 동기화 효율을 향상시킨다.
도 3fa은 본 발명의 일 실시예에 따른 데이터 동기화 방법의 흐름도를 도시하는 것으로, 도 3fa에 도시된 바와 같이, 상기 방법은 2 프로세서에 응용되고, 상기 방법은 하기와 같은 단계를 포함한다.
단계 S31f에서, 동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하되, 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시한다.
단계 S32f에서, 상기 데이터 특징 및 상기 동기화 가능한 데이터 양에 따라 동기화 요청 명령을 생성하고 상기 동기화 요청 명령을 제1 프로세서에 송신하되, 상기 동기화 요청 명령은 제1 프로세서가 상기 동기화 요청 명령에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응된다.
예를 들어, 데이터 동기화의 수신자(즉, 제2 프로세서)는 텐서 데이터에 대한 부분적 동기화 요청을 개시할 수 있다. 제2 프로세서에 동기화될 텐서 데이터가 존재하는 경우, 텐서 데이터의 디스크립터를 결정할 수 있다. 상기 디스크립터는 상기 텐서 데이터의 모양을 지시하는 이미 등록(생성)된 디스크립터일 수 있고, 상기 텐서 데이터의 모양 파라미터에 따라 새로운 디스크립터를 등록(생성)할 수도 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 단계 S31f에서, 제2 프로세서는 상기 디스크립터에 따라 텐서 데이터의 식별자(예를 들어, 데이터 번호), 모양, 소스, 저장 주소 등 정보 중 적어도 하나와 같은 텐서 데이터의 데이터 특징을 결정할 수 있다. 또한, 제2 프로세서는 자체의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양, 즉, 동기화 가능한 데이터 양을 결정할 수 있다.
가능한 실시형태에 있어서, 단계 S32f에서, 상기 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양에 따라, 제2 프로세서는 동기화 요청 명령을 생성하고 상기 명령을 송신할 수 있고, 상기 동기화 요청 명령은 제1 프로세서가 상기 명령에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시할 수 있다.
가능한 실시형태에 있어서, 데이터 동기화의 수신자(즉, 제1 프로세서)는 동기화 요청 명령을 수신하면, 상기 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 결정하고; 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하며; 디스크립터에 따라 동기화될 텐서 데이터를 결정하며, 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정할 수 있다. 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응될 수 있는 바, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 동기화 요청 명령은 동기화될 부분적 데이터를 획득하도록 지정하기 위해, 상기 부분적 서브 데이터의 디스크립터 콘텐츠 또는 저장 주소범위 등과 같은 동기화될 텐서 데이터의 부분적 데이터의 범위를 포함할 수도 있다.
이러한 방식을 통해, 수신자는 송신자가 이번에 동기화된 서브 데이터를 결정하도록, 텐서 데이터에 대한 부분적 동기화 요청을 개시할 수 있으므로 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제1 프로세서로부터 동기화 명령을 수신한 경우, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터의 제1 서브 데이터를 획득하는 단계;
상기 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 단계; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 텐서 데이터의 데이터 특징 및 제1 서브 데이터에 따라 동기화 명령을 생성 및 송신할 수 있다. 제2 프로세서는 상기 동기화 명령을 수신하면, 동기화될 텐서 데이터의 데이터 특징 및 이번에 동기화된 상기 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하고; 데이터 특징에 따라 디스크립터를 결정하며, 나아가 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 수신자가 동기화 명령에 따라 디스크립터를 결정하고 이번에 동기화된 서브 데이터를 획득할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시키고, 또한 명령 전달 및 처리 과정에서 명령 호환성을 구현한다.
가능한 실시형태에 있어서, 데이터 동기화의 송신자가 동기화될 텐서 데이터를 갖는 경우, 예를 들어, 하나의 연산을 완료하여 연산 결과(텐서 데이터)를 획득한 경우, 송신자는 텐서 데이터의 부분적 동기화를 수행하기 위해 수신자의 상태를 조회하고, 데이터 동기화의 수신자의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데이터 양을 결정할 수도 있다.
가능한 실시형태에 있어서, 제1 프로세서에 응용되는 데이터 동기화 방법을 더 제공하고, 상기 방법은,
동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 데이터 특징을 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및
상기 텐서 데이터의 데이터 특징에 따라 상태 조회 명령을 생성하고 상기 상태 조회 명령을 제2 프로세서에 송신하는 단계 - 상기 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하고 동기화 상태 명령을 생성하도록 지시함 - ;을 포함한다.
예를 들어, 제1 프로세서가 동기화될 텐서 데이터가 존재하는 것으로 결정하면, 상기 텐서 데이터의 디스크립터를 획득할 수 있다. 상기 디스크립터는 상기 텐서 데이터의 모양을 지시하는 이미 등록(생성)된 디스크립터일 수 있고, 상기 텐서 데이터의 모양 파라미터에 따라 새로운 디스크립터를 등록(생성)할 수도 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 디스크립터에 따라 제1 프로세서는 상기 텐서 데이터의 데이터 특징을 결정할 수 있고, 상기 데이터 특징은 텐서 데이터의 식별자(예를 들어, 데이터 번호), 모양, 소스, 저장 주소 등 정보 중 적어도 하나를 포함할 수 있다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터의 데이터 특징은 텐서 데이터의 식별자, 모양, 소스, 주소 등 정보를 포함할 수 있다. 예를 들어, 상기 텐서 데이터의 데이터 소스는 K번째 송신자(K번째 프로세서)이고, 상기 텐서 데이터의 데이터 소스는 번호가 200인 컨볼루션 동작의 연산 결과이며, 상기 텐서 데이터의 주소는 특정된 주소 영역(예를 들어, 주소 ADDR0-ADDR127)이고, 상기 텐서 데이터의 모양은 지정된 모양(예를 들어, 20*10의 2차원 텐서) 등이다. 당업자는 실제 상황에 따라 동기화될 텐서 데이터의 데이터 특징을 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 데이터 특징에 따라 제1 프로세서는 상태 조회 명령을 생성하고 동기화될 제2 프로세서에 상기 상태 조회 명령을 송신할 수 있다. 제2 프로세서에 이미 상기 텐서 데이터의 정보가 구비된 경우(예를 들어, 상기 동기화될 텐서 데이터를 지시하는 디스크립터가 이미 등록됨), 상태 조회 명령은 제2 프로세서가 상기 텐서 데이터의 식별자에 따라 동기화될 텐서 데이터의 디스크립터를 결정하도록 지시하기 위해, 턴서 데이터의 식별자와 같은 부분적 데이터 특징만 포함할 수 있다.제2 프로세서에 상기 텐서 데이터의 정보가 구비되지 않은 경우, 동기화 명령은 제2 프로세서가 동기화될 텐서 데이터의 디스크립터를 결정하도록 지시하기 위해, 텐서 데이터의 식별자 및 저장 주소 등과 같은 더 많은 데이터 특징을 포함할 수 있으며, 본 발명은 상태 조회 명령에 포함되는 구체적인 콘텐츠에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상태 조회 명령이 텐서 데이터의 식별자를 포함하는 경우, 제2 프로세서는 상기 식별자에 따라 동기화될 텐서 데이터를 결정하고, 상기 동기화될 텐서 데이터를 지시하는 디스크립터를 등록 또는 획득할 수 있다. 상태 조회 명령이 더 많은 데이터 특징(식별자 및 저장 주소 등)을 포함하는 경우, 제2 프로세서는 명령 중의 데이터 특징에 따라 상기 텐서 데이터를 지시하는 디스크립터를 등록할 수 있다.
가능한 실시형태에 있어서, 동기화될 텐서 데이터의 디스크립터를 결정한 후, 제2 프로세서는 디스크립터에 대응되는 텐서 데이터에 할당 가능한 공간을 결정하고, 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정할 수 있다. 동기화 가능한 데이터 양 및 데이터 특징에 따라 제2 프로세서는 제1 프로세서가 동기화될 텐서 데이터 및 이번에 동기화된 동기화 가능한 데이터 양을 결정할 수 있도록, 동기화 상태 명령을 생성 및 송신할 수 있다.
본 발명의 실시예의 데이터 동기화 방법에 따르면, 텐서 데이터의 모양을 지시하는 디스크립터를 설정함으로써, 송신자는 디스크립터에 따라 텐서 데이터의 데이터 특징을 결정하고, 수신자가 상태 조회 명령에 따라 자신의 상태(즉, 동기화 가능한 데이터 양)를 피드백하도록 지시하기 위해, 데이터 특징에 따라 상태 조회 명령을 생성 및 송신할 수 있으므로 텐서 데이터의 부분적 동기화를 구현하고, 명령 구조를 변경하지 않으면서 동기화 오버헤드를 감소시키며, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제2 프로세서로부터 동기화 상태 명령을 수신한 경우, 상기 동기화 상태 명령을 해석하고 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 결정하는 단계;
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 단계;
상기 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 동기화 명령을 생성하고 상기 동기화 명령을 상기 제2 프로세서에 송신하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세서로부터 동기화 상태 명령을 수신하면, 상기 명령의 콘텐츠, 즉, 동기화될 텐서 데이터의 데이터 특징 및 동기화 가능한 데이터 양을 획득하기 위해 상기 명령을 해석할 수 있고, 상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정함으로써 동기화될 텐서 데이터를 결정할 수 있으며; 동기화 가능한 데이터 양에 따라 상기 텐서 데이터에서 이번에 동기화될 수 있는 부분적 데이터, 즉 제1 서브 데이터를 결정한다. 상기 제1 서브 데이터의 데이터 양은 동기화 가능한 데이터 양에 대응될 수 있는데, 예를 들어, 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양보다 작거나 같다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 전체 데이터가 모두 동기화되지 않은 경우, 상기 텐서 데이터에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있고; 상기 텐서 데이터의 부분적 데이터가 동기화되지 않고 또한 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많은 경우, 동기화되지 않은 부분적 데이터(즉, 상기 텐서 데이터의 제2 서브 데이터)에서 동기화 가능한 데이터 양의 데이터를 제1 서브 데이터로서 선택할 수 있으며; 동기화되지 않은 부분적 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같은 경우, 동기화되지 않은 부분적 데이터를 제1 서브 데이터로서 직접 사용할 수 있다. 당업자는 실제 상황에 따라 제1 서브 데이터를 결정할 수 있으며, 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 동기화 상태 명령은 동기화될 부분적 데이터를 획득하도록 지정하기 위해, 상기 부분적 서브 데이터의 저장 주소 범위 등과 같은 동기화될 텐서 데이터의 부분적 데이터의 범위를 포함할 수도 있고, 제1 프로세서는 상기 부분적 데이터의 범위에 따라 동기화될 제1 서브 데이터를 직접 결정할 수 있다.
가능한 실시형태에 있어서, 제1 서브 프로세서는 제1 서브 데이터에 따라 동기화 명령을 생성하고 제2 프로세서에 동기화 명령을 송신할 수 있으며, 상기 명령은 동기화될 텐서 데이터의 데이터 특징 및 제1 서브 데이터를 포함할 수 있다. 제2 프로세서는 동기화 명령을 수신한 후, 동기화될 텐서 데이터의 데이터 특징 및 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하고, 데이터 특징에 따라 디스크립터를 결정하며, 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 송신자로부터의 동기화 상태 명령에 따라 텐서 데이터의 디스크립터 및 동기화 가능한 데이터 양을 결정하고, 동기화 가능한 데이터 양에 따라 이번에 동기화된 서브 데이터를 결정하며, 수신자가 이번에 동기화된 서브 데이터를 획득하도록, 상기 서브 데이터에 따라 동기화 명령을 생성 및 송신할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 디스크립터에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터 중 동기화될 상태의 제2 서브 데이터를 결정하는 단계; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함할 수 있다.
예를 들어, 텐서 데이터 내 데이터의 상태를 설정하고, 동기화된 부분적 데이터를 동기화된 데이터로 설정하며, 동기화되지 않은 부분적 데이터를 동기화될 데이터로 설정할 수 있다. 이 경우, 제1 프로세서는 제2 프로세서로부터 동기화 상태 명령을 수신하면, 텐서 데이터 내 데이터의 상태에 따라 동기화될 상태의 제2 서브 데이터를 결정할 수 있고; 제2 서브 데이터 및 동기화 상태 명령에 의해 지시된 동기화 가능한 데이터 양에 따라 이번에 동기화된 제1 서브 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 많으면, 제2 서브 데이터에서 이번에 동기화된 제1 서브 데이터를 선택할 수 있고; 제2 서브 데이터의 데이터 양이 동기화 가능한 데이터 양보다 적거나 같으면, 제2 서브 데이터를 제1 서브 데이터로서 사용할 수 있다.
이러한 방식을 통해, 텐서 데이터의 부분적 동기화를 구현하기 위해 이번에 동기화된 부분적 데이터를 결정할 수 있다.
가능한 실시형태에 있어서, 상기 방법은, 상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함한다.
예를 들어, 제1 프로세서는 제2 프로세가 텐서 데이터의 제1 서브 데이터의 동기화를 구현하도록, 텐서 데이터의 제1 서브 데이터에 따라 동기화 명령을 생성 및 송신한 후, 텐서 데이터 내 데이터의 상태, 즉 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경할 수 있다. 이에 따라, 다음번에 제2 프로세서의 상태를 조회하고 제2 프로세서의 동기화 상태 명령을 수신할 경우, 동기화될 상태의 부분적 데이터에서 다음번에 동기화될 데이터를 결정할 수 있으므로 데이터의 반복적 동기화를 방지하고, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 제2 프로세서에 응용되는 데이터 동기화 방법을 더 제공한다. 상기 방법은,
제1 프로세서로부터 상태 조회 명령을 수신한 경우, 상기 상태 조회 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 획득하는 단계;
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계; 및
상기 텐서 데이터의 데이터 특징 및 상기 동기화 가능한 데이터 양에 따라 동기화 상태 명령을 생성하고 상기 동기화 상태 명령을 상기 제1 프로세서에 송신하는 단계 - 상기 동기화 상태 명령은 상기 제1 프로세서가 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ;를 포함한다.
예를 들어, 데이터 동기화의 송신자가 동기화될 텐서 데이터를 갖는 경우, 송신자는 수신자의 상태를 조회할 수 있다. 제1 프로세서(송신자)는 상태 조회 명령을 생성 및 송신할 수 있고, 제2 프로세서가 상기 상태 조회 명령을 수신하면, 상기 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징을 결정할 수 있으며, 상기 데이터 특징은 텐서 데이터의 식별자(예를 들어, 데이터 번호), 모양, 소스, 저장 주소 등 정보 중 적어도 하나를 포함할 수 있다.
가능한 실시형태에 있어서, 제2 프로세서는 데이터 특징, 동기화될 텐서 데이터의 디스크립터를 결정할 수 있다. 상기 디스크립터는 상기 텐서 데이터의 모양을 지시하는 이미 등록(생성)된 디스크립터일 수 있고, 상기 텐서 데이터의 모양 파라미터에 따라 새로운 디스크립터를 등록(생성)할 수도 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 제2 프로세서는 상기 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 부분적 동기화를 수행하기 위해, 자체의 비 공용 저장 공간에서 상기 텐서 데이터에 할당 가능한 공간의 수용 가능한 데어터 양, 즉 동기화 가능한 데이터 양을 결정할 수 있다.
가능한 실시형태에 있어서, 제2 프로세서는 제1 프로세서 결정 이번에 동기화된 동기화 가능한 데이터 양을 지시하기 위해, 결정된 동기화 가능한 데이터 양 및 상기 텐서 데이터의 데이터 특징에 따라 동기화 상태 명령을 생성하여 제1 프로세서에 송신할 수 있다. 제2 프로세서는 결정된 동기화 가능한 데이터 양 및 상기 텐서 데이터의 디스크립터에 따라 동기화 상태 명령을 생성하여 제1 프로세서에 송신하고, 동기화 명령을 생성하여 제2 프로세서에 송신할 수 있으며, 상기 명령은 동기화될 텐서 데이터의 데이터 특징 및 제1 서브 데이터를 포함할 수 있다.
이러한 방식을 통해, 송신자는 수신자의 상태를 조회하고, 수신자는 상태 조회 명령을 수신한 후 자체 상태(즉, 동기화 가능한 데이터 양)를 결정 및 회답할 수 있어, 상호 작용을 통해 데이터의 부분적 동기화를 구현하고, 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 상기 방법은,
상기 제1 프로세서로부터 동기화 명령을 수신한 경우, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터의 제1 서브 데이터를 획득하는 단계;
상기 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 단계; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함한다.
예를 들어, 제2 프로세서는 동기화 명령을 수신하면, 동기화될 텐서 데이터의 데이터 특징 및 이번에 동기화된 상기 텐서 데이터의 제1 서브 데이터를 결정하기 위해 상기 명령을 해석하고; 상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 검색하며; 나아가 디스크립터에 따라 동기화될 텐서 데이터를 결정하고, 텐서 데이터의 제1 서브 데이터를 자체 비 공용 저장 공간에 저장할 수 있다.
이러한 방식을 통해, 수신자가 동기화 명령에 따라 디스크립터를 결정하고 이번에 동기화된 서브 데이터를 획득할 수 있으므로, 동기화 오버헤드를 감소시키고 데이터 동기화 효율을 향상시킨다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 디스크립터 저장 공간에 저장될 수 있고, 상기 디스크립터 저장 공간은 프로세서의 내부 메모리(예를 들어, 레지스터, 온칩 SRAM 또는 기타 미디어 캐시 등)의 저장 공간일 수 있으며, 디스크립터에 의해 지시된 텐서 데이터의 데이터 저장 공간은 프로세서의 내부 메모리(예를 들어, 온칩 캐시) 또는 프로세서에 연결된 외부 메모리(오프칩 메모리)의 저장 공간일 수 있다. 데이터 저장 공간 내의 데이터 주소는 실제 물리적 주소 또는 가상 주소일 수 있으며, 본 발명은 디스크립터 저장 공간, 데이터 저장 공간의 위치 및 데이터 주소의 유형에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 동일한 영역에 위치할 수 있다. 예를 들어, 온칩에 캐시된 하나의 연속 영역을 사용하여 디스크립터의 관련 콘텐츠를 저장할 수 있으며, 그 주소는 ADDR0-ADDR1023이다. 여기서, 주소 ADDR0-ADDR31은 디스크립터의 식별자를 저장할 수 있고, 주소 ADDR32-ADDR63은 디스크립터의 콘텐츠를 저장할 수 있으며, 주소 ADDR64-ADDR1023은 디스크립터에 의해 지시된 텐서 데이터를 저장할 수 있다. 여기서, 주소 ADDR은 1 비트 또는 1 바이트로 한정되지 않으며 여기서는 하나의 주소를 표시하는 하나의 주소 단위이다. 당업자는 실제 상황에 따라 저장 영역 및 그 주소를 결정할 수 있으며 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 디스크립터의 식별자, 콘텐츠 및 디스크립터에 의해 지시된 텐서 데이터는 내부 메모리의 상이한 영역에 별도로 저장될 수 있다. 예를 들어, 레지스터를 디스크립터 저장 공간으로 사용하여 레지스터에 디스크립터의 식별자 및 콘텐츠를 저장하고, 온칩 캐시를 데이터 저장 공간으로 사용하여 디스크립터가 지시하는 텐서 데이터를 저장할 수 있다.
가능한 실시형태에 있어서, 디스크립터 전용인 전용 레지스터(SR)를 설치할 수도 있고, 디스크립터의 데이터는 즉치 값이거나 전용 레지스터에서 획득할 수도 있다. 레지스터를 사용하여 디스크립터의 식별자 및 콘텐츠를 저장하는 경우, 레지스터의 번호를 사용하여 디스크립터의 식별자를 표시할 수 있는데, 예를 들어, 레지스터의 번호가 0인 경우, 저장된 디스크립터의 식별자는 0이다. 레지스터 내의 디스크립터가 유효한 경우, 디스크립터가 지시하는 텐서 데이터의 크기에 따라 캐시 공간에 상기 텐서 데이터를 저장하기 위한 하나의 영역(예를 들어, 캐시에서 각각의 텐서 데이터에 하나의 텐서 캐시 유닛을 생성함)을 할당할 수 있다. 기설정된 캐시 공간을 적용하여 상기 텐서 데이터를 저장할 수도 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
가능한 실시형태에 있어서, 디스크립터의 식별자 및 콘텐츠는 내부 메모리에 저장될 수 있고, 디스크립터에 의해 지시된 텐서 데이터는 외부 메모리에 저장될 수 있다. 예를 들어, 온칩에 디스크립터의 식별자 및 콘텐츠를 저장하고, 오프칩에 디스크립터가 지시하는 텐서 데이터를 저장하는 방식을 적용할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소는 고정 주소일 수 있다. 예를 들어, 텐서 데이터에 별도의 데이터 저장 공간을 분할할 수 있고, 데이터 저장 공간에서 각각의 텐서 데이터의 시작 주소는 디스크립터의 식별자와 일대일로 대응된다. 이 경우, 프로세서는 디스크립터의 콘텐츠에 따라 텐서 데이터의 데이터 주소를 바로 결정할 수 있다.
가능한 실시형태에 있어서, 디스크립터에 대응되는 데이터 저장 공간의 데이터 주소가 가변 주소인 경우, 상기 디스크립터는 N 차원 텐서 데이터의 주소를 지시할 수도 있으며, 여기서, 상기 디스크립터의 콘텐츠는 텐서 데이터의 주소를 표시하는 적어도 하나의 주소 파라미터를 더 포함할 수 있다. 예를 들어, 텐서 데이터가 3차원 데이터이고 디스크립터가 상기 텐서 데이터의 주소를 지시하는 경우, 디스크립터의 콘텐츠는 예를 들어 텐서 데이터의 시작 주소와 같이 상기 텐서 데이터의 주소를 표시하는 하나의 주소 파라미터를 포함할 수 있고, 예를 들어 텐서 데이터의 시작 주소 + 주소 오프셋과 같이 상기 텐서 데이터 주소의 여러 주소 파라미터 또는 각 차원을 기반으로 하는 텐서 데이터의 주소 파라미터를 포함할 수도 있다. 당업자는 실제 필요에 따라 주소 파라미터를 설정할 수 있으며, 본 발명은 이에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 주소 파라미터는 상기 데이터 저장 공간에서 상기 디스크립터의 데이터 기준점의 기준 주소를 포함한다. 여기서, 기준 주소는 데이터 기준점의 변화에 따라 다를 수 있으며, 본 발명은 데이터 기준점의 선택에 대해 한정하지 않는다.
가능한 실시형태에 있어서, 상기 기준 주소는 상기 데이터 저장 공간의 시작 주소를 포함할 수 있다. 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록인 경우, 디스크립터의 기준 주소는 데이터 저장 공간의 시작 주소이고, 디스크립터의 데이터 기준점이 데이터 저장 공간의 첫번째 데이터 블록을 제외한 다른 데이터인 경우, 디스크립터의 기준 주소는 상기 데이터 블록의 데이터 저장 공간 내 물리적 주소이다.
가능한 실시형태에 있어서, 상기 텐서 데이터의 모양 파라미터는 N개 차원 방향 중 적어도 하나의 방향에서의 상기 텐서 데이터의 데이터 저장 공간의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 크기, N개 차원 방향 중 적어도 하나의 방향에서의 상기 저장 영역의 오프셋, N개 차원 방향의 대각선 위치에 있는 적어도 두개의 정점이 상기 데이터 기준점에 대한 위치, 상기 디스크립터에 의해 지시된 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계 중 적어도 하나를 포함한다. 여기서, 데이터 설명 위치는 디스크립터가 지시하는 텐서 데이터 중의 포인트 또는 영역의 매핑 위치인데, 예를 들어, 텐서 데이터가 3차원 데이터인 경우, 디스크립터는 3차원 공간 좌표(x, y, z)를 사용하여 상기 텐서 데이터의 모양을 표시할 수 있고, 상기 텐서 데이터의 데이터 설명 위치는 3차원 공간 좌표(x, y, z)를 사용하여 표시하고 상기 텐서 데이터에 의해3차원 공간에 매핑된 포인트 또는 영역의 위치일 수 있다.
당업자는 실제 상황에 따라 텐서 데이터의 모양을 표시하는 파라미터를 선택할 수 있으며 본 발명은 이에 대해 한정하지 않음을 이해해야 한다.
본 발명의 실시예의 데이터 동기화 방법에 따르면, 데이터 동기화의 수신자 공간이 부족한 경우에 텐서 데이터의 부분적 동기화가 가능하고, 여러번의 부분적 동기화를 통해 전체 텐서 데이터의 동기화를 구현함으로써 공간이 부족한 경우 전체 텐서 데이터의 동기화 실패 또는 동기화 지연 등 문제점을 방지하고, 텐서 데이터의 모양을 지시하는 디스크립터가 설정되어 데이터 동기화 과정에서 디스크립터에 따라 텐서 데이터를 결정함으로써 동기화 오버헤드 및 데이터 액세스의 복잡성을 감소시킨다, 또한 명령 전달 및 처리 과정에서 명령 호환성을 구현한다.
설명의 편의를 위해 전술한 각 방법의 실시예는 모두 일련의 동작 조합으로 표현되었으나, 당업자는 본 발명에 따라 일부 단계는 다른 순서 또는 동시에 수행될 수 있음에 유의해야 한다. 따라서 본 발명은 설명된 동작 순서에 한정되지 않으며, 또한 명세서에 설명된 실시예는 모두 선택 가능한 실시예이고 언급된 동작 및 모듈은 본 개시에 반드시 필요한 것이 아님을 이해해야 한다.
추가로, 흐름도의 각 단계는 화살표 지시에 따라 순차적으로 표시되나 이러한 단계는 반드시 화살표로 지시된 순서에 따라 순차적으로 수행되는 것은 아니며, 본 명세서에 명확히 언급되지 않는 한 이러한 단계는 다른 순서로 수행될 수 있는 바, 이러한 단계의 수행은 엄격한 순서에 한정되지 않음에 유의해야 한다. 또한, 흐름도의 단계 중 적어도 일부는 복수의 서브 단계 또는 복수의 절차를 포함할 수 있고, 이러한 서브 단계 또는 절차는 반드시 동일한 시각에 수행 완료되는 것이 아니라 상이한 시각에 수행될 수 있으며, 이러한 서브 단계 또는 절차의 수행 순서 역시 반드시 순차적으로 수행되어야 하는 것이 아니라 다른 단계 또는 다른 단계의 서브 단계 또는 절차의 적어도 일부와 순번 또는 교대로 수행될 수 있다.
도 3fb는 본 발명의 일 실시예에 따른 데이터 동기화 방법의 흐름도를 도시한다. 상기 데이터 동기화 장치는 제1 프로세서에 응용되고, 도 3fb에 도시된 바와 같이, 상기 데이터 동기화 장치는,
제2 프로세서로부터 동기화 요청 명령을 수신한 경우, 상기 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 획득하는 요청 명령 해석 모듈(51f);
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 제1 디스크립터 결정 모듈(52f) - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 데이터 결정 모듈(53f) - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 동기화 명령을 생성하고 상기 동기화 명령을 상기 제2 프로세서에 송신하는 동기화 명령 생성 및 송신 모듈(54f)을 포함한다.
가능한 실시형태에 있어서, 상기 데이터 결정 모듈은,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 제1 결정 서브 모듈; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 제2 결정 서브 모듈을 포함한다.
가능한 실시형태에 있어서, 상기 장치는,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 상태 변경 모듈을 더 포함한다.
도 3fc은 본 발명의 실시예에 따른 데이터 동기화 장치의 블록도를 도시한다. 상기 데이터 동기화 장치는 제2 프로세서에 응용되고, 도 3fc에 도시된 바와 같이, 상기 데이터 동기화 장치는,
동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 특징 및 데이터 양 결정 모듈(61f) - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및
상기 데이터 특징 및 상기 동기화 가능한 데이터 양에 따라 동기화 요청 명령을 생성하고 상기 동기화 요청 명령을 제1 프로세서에 송신하는 요청 명령 생성 및 송신 모듈(62f) - 상기 동기화 요청 명령은 제1 프로세서가 상기 동기화 요청 명령에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ;을 포함한다.
가능한 실시형태에 있어서, 상기 장치는,
상기 제1 프로세서로부터 동기화 명령을 수신한 경우, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터의 제1 서브 데이터를 획득하는 동기화 명령 해석 모듈;
상기 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 제2 디스크립터 결정 모듈; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 데이터 저장 모듈을 더 포함한다.
전술한 장치 실시예는 예시적인 것일 뿐 본 발명의 장치는 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 전술한 실시예에서 유닛/모듈의 분할은 논리적 기능 분할일 뿐 실제 구현시에는 별도의 분할 방식이 존재할 수 있는 바, 예를 들어, 복수의 유닛, 모듈 또는 구성 요소는 결합되거나 다른 시스템에 통합되거나 일부 특징이 생략되거나 수행되지 않을 수 있다.
이 밖에, 달리 명시되지 않는 한, 본 발명의 각 실시예에서 각각의 기능 유닛/모듈은 하나의 유닛/모듈에 통합될 수 있거나, 각 유닛/모듈은 별도로 물리적으로 존재할 수도 있고, 둘 또는 둘 이상의 유닛/모듈은 함께 통합될 수도 있다. 전술한 통합된 유닛/모듈은 하드웨어 형태로 구현되거나 소프트웨어 프로그램 모듈의 형태로 구현될 수도 있다.
상기 통합된 유닛/모듈이 하드웨어 형태로 구현되는 경우, 상기 하드웨어는 디지털 회로, 아날로그 회로 등일 수 있고, 하드웨어 구조의 물리적 구현에는 트랜지스터, 멤리스터 등이 포함되나 이에 한정되지 않는다. 달리 명시되지 않는 한, 상기 인공 지능 프로세서는 CPU, GPU, FPGA, DSP, ASIC 등과 같은 임의의 적절한 하드웨어 프로세서일 수 있고, 달리 명시되지 않는 한, 상기 저장 유닛은 저항 변화 메모리(RRAM, Resistive Random Access Memory), 동적 랜덤 액세스 메모리(DRAM, Dynamic Random Access Memory), 정적 랜덤 액세스 메모리(SRAM, Static Random-Access Memory), 임베디드 램(EDRAM, Enhanced Dynamic Random Access Memory), 고 대역폭 메모리(HBM, High-Bandwidth Memory), 하이브리드 메모리 큐브(HMC, Hybrid Memory Cube) 등과 같은 임의의 적절한 자기 저장 매체 또는 자기 광 저장 매체일 수 있다.
상기 통합된 유닛/모듈이 소프트웨어 프로그램 모듈의 형태로 구현되어 독립적인 제품으로 판매되거나 사용되는 경우, 하나의 컴퓨터 판독 가능 메모리에 저장될 수 있다. 이러한 이해에 기반하여, 본 발명의 기술적 해결수단은 본질적이거나 종래 기술에 기여하는 부분이거나 상기 기술적 해결수단의 전부 또는 일부가 소프트웨어 제품의 형태로 구현될 수 있다. 상기 컴퓨터 소프트웨어 제품은 하나의 메모리에 저장되고, 하나의 컴퓨터 기기(개인용 컴퓨터, 서버 또는 네트워크 기기 등일 수 있음)가 본 발명의 각 실시예에 따른 상기 방법의 전부 또는 일부를 수행하도록 하는 단수의 명령을 포함한다. 전술한 메모리는 U 디스크, 읽기 전용 메모리(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 모바일 하드 디스크, 자기 디스크 또는 광 디스크 등 프로그램 코드를 저장할 수 있는 다양한 매체를 포함한다.
가능한 실시형태에 있어서, 전술한 데이터 동기화 장치를 포함하는 인공 지능 칩을 더 개시한다.
가능한 실시형태에 있어서, 보드를 더 개시한다. 상기 보드는 메모리 소자, 인터페이스 장치 및 제어 소자 및 전술한 인공 지능 칩을 포함하고; 상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며; 상기 메모리 소자는 데이터를 저장하고; 상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며; 상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링한다.
전술한 실시예에서, 각 실시예에 대한 설명은 각자 모두 중점을 두고 있는 바, 어느 실시예에서 자세히 설명하지 않은 부분은 다른 실시예의 관련 설명을 참조할 수 있다. 전술한 실시예의 각 기술특징은 임의로 조합할 수 있으며, 설명의 간결성을 위해 전술한 실시예의 각 기술특징의 가능한 모든 조합을 설명하지 않았으나 이러한 기술특징의 조합에 모순이 없는 한 이는 모두 본 명세서에 기술된 범위로 간주되어야 한다.
전술한 내용은 하기와 같은 항에 따라 더 잘 이해할 수 있을 것이다.
제A1항, 제1 프로세서에 응용되는 데이터 동기화 방법으로서,
제2 프로세서로부터 동기화 요청 명령을 수신한 경우, 상기 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 획득하는 단계;
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 동기화 명령을 생성하고 상기 동기화 명령을 상기 제2 프로세서에 송신하는 단계를 포함하는 데이터 동기화 방법.
제A2항, 제A1항에 있어서, 상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 단계는,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 단계; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 단계를 포함하는 데이터 동기화 방법.
제A3항, 제A1항 또는 제A2항에 있어서, 상기 방법은,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 단계를 더 포함하는 데이터 동기화 벙법.
제A4항, 제2 프로세서에 응용되는 데이터 동기화 방법으로서,
동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 단계 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ; 및
상기 데이터 특징 및 상기 동기화 가능한 데이터 양에 따라 동기화 요청 명령을 생성하고 상기 동기화 요청 명령을 제1 프로세서에 송신하는 단계 - 상기 동기화 요청 명령은 제1 프로세서가 상기 동기화 요청 명령에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ;을 포함하는 데이터 동기화 방법.
제A5항, 제A4항에 있어서, 상기 방법은,
상기 제1 프로세서로부터 동기화 명령을 수신한 경우, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터의 제1 서브 데이터를 획득하는 단계;
상기 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 단계; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 단계를 더 포함하는 데이터 동기화 방법.
제A6항, 제1 프로세서에 응용되는 데이터 동기화 장치로서,
제2 프로세서로부터 동기화 요청 명령을 수신한 경우, 상기 동기화 요청 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 획득하는 요청 명령 해석 모듈;
상기 데이터 특징에 따라 동기화될 텐서 데이터의 디스크립터를 결정하는 제1 디스크립터 결정 모듈 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 텐서 데이터의 디스크립터 및 상기 동기화 가능한 데이터 양에 따라 상기 텐서 데이터의 제1 서브 데이터를 결정하는 데이터 결정 모듈 - 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ; 및
상기 제2 프로세서가 상기 제1 서브 데이터를 획득하도록 지시하기 위해, 상기 제1 서브 데이터에 따라 동기화 명령을 생성하고 상기 동기화 명령을 상기 제2 프로세서에 송신하는 동기화 명령 생성 및 송신 모듈을 포함하는 데이터 동기화 장치.
제A7항, 제A6항에 있어서, 상기 데이터 결정 모듈은,
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터 및 상기 텐서 데이터 중 동기화 상태의 제2 서브 데이터를 결정하는 제1 결정 서브 모듈; 및
상기 제2 서브 데이터 및 상기 동기화 가능한 데이터 양에 따라 제1 서브 데이터를 결정하는 제2 결정 서브 모듈을 포함하는 데이터 동기화 장치.
제A8항, 제A6항 또는 제A7항에 있어서, 상기 장치는,
상기 텐서 데이터의 제1 서브 데이터의 상태를 동기화될 상태로부터 동기화된 상태로 변경하는 상태 변경 모듈을 더 포함하는 데이터 동기화 장치.
제A9항, 제2 프로세서에 응용되는 데이터 동기화 장치로서,
동기화될 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 데이터 특징 및 상기 텐서 데이터에 대한 동기화 가능한 데이터 양을 결정하는 특징 및 데이터 양 결정 모듈 - 상기 디스크립터는 동기화될 텐서 데이터의 모양을 지시함 - ;
상기 데이터 특징 및 상기 동기화 가능한 데이터 양에 따라 동기화 요청 명령을 생성하고 상기 동기화 요청 명령을 제1 프로세서에 송신하는 요청 명령 생성 및 송신 모듈 - 상기 동기화 요청 명령은 제1 프로세서가 상기 동기화 요청 명령에 따라 동기화될 텐서 데이터 및 상기 텐서 데이터의 제1 서브 데이터를 결정하도록 지시하고, 상기 제1 서브 데이터의 데이터 양은 상기 동기화 가능한 데이터 양에 대응됨 - ;을 포함하는 데이터 동기화 장치.
제A10항, 제A9항에 있어서, 상기 장치는,
상기 제1 프로세서로부터 동기화 명령을 수신한 경우, 상기 동기화 명령을 해석하여 동기화될 텐서 데이터의 데이터 특징 및 상기 텐서 데이터의 제1 서브 데이터를 획득하는 동기화 명령 해석 모듈;
상기 데이터 특징에 따라 상기 텐서 데이터의 디스크립터를 결정하는 제2 디스크립터 결정 모듈; 및
상기 텐서 데이터의 디스크립터에 따라 상기 텐서 데이터의 제1 서브 데이터를 저장하는 데이터 저장 모듈을 더 포함하는 데이터 동기화 장치.
제A11항, 제A6항 - 제A10항 중 어느 한 항에 따른 데이터 동기화 장치를 포함하는 인공 지능 칩.
제A12항, 제A11항에 따른 인공 지능 칩을 포함하는 전자 기기.
제A13항, 보드로서, 메모리 소자, 인터페이스 장치, 제어 소자 및 제A11항에 따른 인공 지능 칩을 포함하고;
상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며;
상기 메모리 소자는 데이터를 저장하고;
상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며;
상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링하는 보드.
제A14항, 제A13항에 있어서,
상기 메모리 소자는 복수 그룹의 저장 유닛을 포함하고, 각 그룹의 상기 저장 유닛은 버스를 통해 상기 인공 지능 칩에 연결되며, 상기 저장 유닛은 DDR SDRAM이고;
상기 칩은 각각의 상기 저장 유닛의 데이터 전송 및 데이터 저장을 제어하는 DDR 컨트롤러를 포함하고;
상기 인터페이스 장치는 표준 PCIE 인터페이스인 보드.
이상, 본 발명의 각 실시예를 설명하였으나 상기 설명은 제한적이 아닌 예시적인 것이며 개시된 각 실시예에 한정되지 않는다. 설명된 각 실시예의 범위 및 사상을 벗어나지 않으면서 이루어지는 많은 수정 및 변형은 당업자에게 있어서 자명한 것이다. 본 명세서에서 사용되는 용어는 각 실시예의 원리, 실제 응용 또는 시장에서 기술에 대한 개선을 가장 잘 해석하거나 당업자가 본 명세서에 개시된 각 실시예를 이해할 수 있도록 선택된다.

Claims (10)

  1. 데이터 처리 장치로서,
    제어 유닛 및 실행 유닛을 포함하고, 상기 제어 유닛은 텐서 제어 모듈을 포함하며, 상기 제어 유닛은,
    디코딩된 제1 처리 명령의 피연산자가 디스크립터의 식별자를 포함하는 경우, 상기 디스크립터의 식별자에 따라 상기 텐서 제어 모듈을 통해, 텐서의 모양을 지시하고 N 차원 텐서 데이터의 주소를 지시하기 위한 상기 디스크립터에 대응되는 디스크립터 저장 공간을 결정하고;
    상기 디스크립터 저장 공간으로부터 상기 디스크립터의 콘텐츠를 획득하며 ― 상기 디스크립터의 콘텐츠는 상기 텐서 데이터의 모양을 표시하는 모양 파라미터와 상기 텐서 데이터의 주소를 표시하는 하나 이상의 주소 파라미터를 포함함 ―;
    상기 디스크립터의 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 데이터 저장 공간에서 상기 제1 처리 명령의 피연산자에 대응되는 데이터의 데이터 주소를 결정하고 ― 상기 모양 파라미터는 상기 디스크립터가 지시하는 상기 텐서 데이터의 데이터 설명 위치와 데이터 주소 간의 매핑 관계를 포함하고, 상기 데이터 설명 위치는 상기 디스크립터가 지시하는 상기 텐서 데이터 중의 포인트 또는 영역의 매핑 위치임 ―;
    상기 데이터 주소에 따라 상기 제1 처리 명령에 대응되는 데이터 처리를 수행하도록 구성되는 것을 특징으로 하는 데이터 처리 장치.
  2. 제1항에 있어서,
    상기 제어 유닛은 또한,
    상기 제1 처리 명령이 디스크립터 등록 명령인 경우, 상기 제1 처리 명령 중 디스크립터의 등록 파라미터를 획득하되, 상기 등록 파라미터는 상기 디스크립터의 식별자, 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하고;
    상기 디스크립터의 등록 파라미터에 따라, 상기 텐서 제어 모듈을 통해 디스크립터 저장 공간에서 상기 디스크립터의 콘텐츠의 제1 저장 영역, 및 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 제2 저장 영역을 결정하며;
    상기 디스크립터와 상기 제2 저장 영역 간의 대응 관계를 구축하기 위해, 상기 디스크립터의 등록 파라미터 및 상기 제2 저장 영역에 따라 상기 디스크립터의 콘텐츠를 결정하고;
    상기 디스크립터의 콘텐츠를 상기 제1 저장 영역에 저장하도록 구성되는 것을 특징으로 하는 데이터 처리 장치.
  3. 제1항에 있어서,
    상기 제어 유닛은 또한,
    상기 제1 처리 명령이 디스크립터 취소 명령인 경우, 상기 제1 처리 명령에서 디스크립터의 식별자를 획득하고;
    상기 디스크립터의 식별자에 따라 디스크립터 저장 공간에서 상기 디스크립터의 저장 영역 및 상기 데이터 저장 공간에서 상기 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠의 저장 영역을 상기 텐서 제어 모듈을 통해 각각 해제하도록 구성되는 것을 특징으로 하는 데이터 처리 장치.
  4. 제1항에 있어서,
    상기 제어 유닛은 또한,
    상기 제1 처리 명령이 디스크립터 수정 명령인 경우, 상기 제1 처리 명령에서 디스크립터의 수정 파라미터를 획득하되, 상기 수정 파라미터는 상기 디스크립터의 식별자, 수정할 텐서 모양 및 디스크립터에 의해 지시된 텐서 데이터의 콘텐츠 중 적어도 하나를 포함하고;
    상기 디스크립터의 수정 파라미터에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터의 업데이트될 콘텐츠를 결정하며;
    업데이트될 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터 저장 공간 내의 상기 디스크립터의 콘텐츠 및 데이터 저장 공간 내 텐서 데이터의 콘텐츠 중 적어도 하나를 업데이트하도록 구성되는 것을 특징으로 하는 데이터 처리 장치.
  5. 제1항에 있어서,
    상기 제어 유닛은 의존 관계 판단 모듈을 더 포함하고, 상기 제어 유닛은 또한,
    상기 디스크립터의 식별자에 따라 의존 관계 판단 모듈을 통해 의존 관계가 있는 제2 처리 명령의 존재 여부를 결정하되, 상기 제2 처리 명령은 명령 큐에서 상기 제1 처리 명령 이전에 위치하고 또한 피연산자에 상기 디스크립터의 식별자가 구비된 처리 명령을 포함하고;
    의존 관계가 있고 또한 처리가 완료되지 않은 제2 처리 명령이 존재하는 경우, 상기 제1 처리 명령을 차단하거나 캐시하도록 구성되는 것을 특징으로 하는 데이터 처리 장치.
  6. 제1항에 있어서,
    상기 제어 유닛은 또한,
    상기 디스크립터의 식별자에 따라 상기 텐서 제어 모듈을 통해 상기 디스크립터의 현재 상태를 결정하되, 상기 디스크립터의 상태는 동작 가능 상태 또는 동작 불가능 상태를 포함하고;
    상기 디스크립터가 현재 동작 불가능 상태인 경우, 상기 제1 처리 명령을 차단하거나 캐시하도록 구성되는 것을 특징으로 하는 데이터 처리 장치.
  7. 제1항에 있어서,
    상기 제1 처리 명령은 데이터 액세스 명령을 포함하고, 상기 피연산자는 소스 데이터 및 목적 데이터를 포함하며,
    상기 제어 유닛은,
    (a) 상기 소스 데이터가 제1 디스크립터의 식별자를 포함하는 경우,
    상기 텐서 제어 모듈을 통해 상기 제1 디스크립터의 제1 디스크립터 저장 공간을 결정하고;
    상기 제1 디스크립터 저장 공간으로부터 상기 제1 디스크립터의 콘텐츠를 획득하며;
    상기 제1 디스크립터의 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 상기 소스 데이터의 제1 데이터 주소를 결정하며;
    상기 제1 데이터 주소로부터 데이터를 판독하여 상기 목적 데이터의 제2 데이터 주소에 기록하거나,
    (b) 상기 목적 데이터가 제2 디스크립터의 식별자를 포함하는 경우,
    상기 텐서 제어 모듈을 통해 상기 제2 디스크립터의 제2 디스크립터 저장 공간을 결정하고;
    상기 제2 디스크립터 저장 공간으로부터 상기 제2 디스크립터의 콘텐츠를 획득하며;
    상기 제2 디스크립터의 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 상기 목적 데이터의 제2 데이터를 결정하며;
    상기 소스 데이터의 제1 데이터 주소로부터 데이터를 판독하여 상기 제2 데이터 주소에 기록하거나,
    (c) 상기 소스 데이터가 제1 디스크립터의 식별자를 포함하고, 상기 목적 데이터가 제2 디스크립터의 식별자를 포함하는 경우,
    상기 텐서 제어 모듈을 통해 상기 제1 디스크립터의 제1 디스크립터 저장 공간 및 제2 디스크립터의 제2 디스크립터 저장 공간을 각각 결정하고;
    상기 제1 디스크립터 저장 공간 및 상기 제2 디스크립터 저장 공간으로부터 각각 상기 제1 디스크립터의 콘텐츠 및 상기 제2 디스크립터의 콘텐츠를 획득하며;
    상기 제1 디스크립터의 콘텐츠 및 제2 디스크립터의 콘텐츠에 따라 상기 텐서 제어 모듈을 통해 상기 소스 데이터의 제1 데이터 주소 및 상기 목적 데이터의 제2 데이터 주소를 각각 결정하며;
    상기 제1 데이터 주소로부터 데이터를 판독하여 상기 제2 데이터 주소에 기록하는
    데이터 처리 장치.
  8. 인공 지능 칩으로서,
    제1항 내지 제7항 중 어느 한 항에 따른 데이터 처리 장치를 포함하는 것을 특징으로 하는 인공 지능 칩.
  9. 전자 기기로서,
    제8항에 따른 인공 지능 칩을 포함하는 것을 특징으로 하는 전자 기기.
  10. 보드로서,
    메모리 소자, 인터페이스 장치, 제어 소자 및 제8항에 따른 인공 지능 칩을 포함하고;
    상기 인공 지능 칩은 상기 메모리 소자, 상기 제어 소자 및 상기 인터페이스 장치에 각각 연결되며;
    상기 메모리 소자는 데이터를 저장하고;
    상기 인터페이스 장치는 상기 인공 지능 칩과 외부 기기 간의 데이터 전송을 구현하며;
    상기 제어 소자는 상기 인공 지능 칩의 상태를 모니터링하는 것을 특징으로 하는 보드.
KR1020207036312A 2019-04-04 2020-04-01 데이터 처리 장치 및 관련 제품 KR102611162B1 (ko)

Applications Claiming Priority (18)

Application Number Priority Date Filing Date Title
CN201910272454.7 2019-04-04
CN201910272513.0A CN111782274B (zh) 2019-04-04 2019-04-04 数据处理装置及相关产品
CN201910272513.0 2019-04-04
CN201910272454.7A CN111783992A (zh) 2019-04-04 2019-04-04 数据处理装置及相关产品
CN201910319175.1 2019-04-19
CN201910319175.1A CN111831329B (zh) 2019-04-19 2019-04-19 数据处理方法及装置以及相关产品
CN201910694672.X 2019-07-30
CN201910694672.XA CN112306945B (zh) 2019-07-30 2019-07-30 数据同步方法及装置以及相关产品
CN201910735424.5A CN112347027A (zh) 2019-08-09 2019-08-09 数据同步方法及装置以及相关产品
CN201910735425.X 2019-08-09
CN201910735425.XA CN112347186B (zh) 2019-08-09 2019-08-09 数据同步方法及装置以及相关产品
CN201910734749.1A CN112347185A (zh) 2019-08-09 2019-08-09 数据同步方法及装置以及相关产品
CN201910734749.1 2019-08-09
CN201910735424.5 2019-08-09
CN201910735393.3 2019-08-09
CN201910735393.3A CN112347026B (zh) 2019-08-09 2019-08-09 数据同步方法及装置以及相关产品
PCT/CN2020/082803 WO2020200246A1 (zh) 2019-04-04 2020-04-01 数据处理装置及相关产品
KR1020207032017A KR20200142536A (ko) 2019-04-04 2020-04-01 데이터 처리 장치 및 관련 제품

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207032017A Division KR20200142536A (ko) 2019-04-04 2020-04-01 데이터 처리 장치 및 관련 제품

Publications (2)

Publication Number Publication Date
KR20200144153A KR20200144153A (ko) 2020-12-28
KR102611162B1 true KR102611162B1 (ko) 2023-12-06

Family

ID=72664997

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020207032017A KR20200142536A (ko) 2019-04-04 2020-04-01 데이터 처리 장치 및 관련 제품
KR1020207036316A KR102611169B1 (ko) 2019-04-04 2020-04-01 데이터 처리 장치 및 관련 제품
KR1020207036312A KR102611162B1 (ko) 2019-04-04 2020-04-01 데이터 처리 장치 및 관련 제품

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020207032017A KR20200142536A (ko) 2019-04-04 2020-04-01 데이터 처리 장치 및 관련 제품
KR1020207036316A KR102611169B1 (ko) 2019-04-04 2020-04-01 데이터 처리 장치 및 관련 제품

Country Status (5)

Country Link
US (3) US11385895B2 (ko)
EP (1) EP3951666A4 (ko)
JP (3) JP7073581B2 (ko)
KR (3) KR20200142536A (ko)
WO (1) WO2020200246A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782577B (zh) * 2019-04-04 2023-03-24 安徽寒武纪信息科技有限公司 数据处理装置及方法以及相关产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108364065A (zh) 2018-01-19 2018-08-03 上海兆芯集成电路有限公司 采布斯乘法的微处理器
WO2018193353A1 (en) * 2017-04-17 2018-10-25 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
US20180341484A1 (en) 2017-05-24 2018-11-29 Microsoft Technology Licensing, Llc Tensor Processor Instruction Set Architecture

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4227218B2 (ja) * 1997-04-30 2009-02-18 キヤノン株式会社 動的メモリ管理装置及びその制御方法
CN1388300A (zh) 2001-05-30 2003-01-01 深圳市中延实业有限公司 双帘面水平卷帘门
CN102682448B (zh) * 2012-03-14 2015-03-04 浙江大学 一种基于双三视张量的立体视觉快速导航定位方法
CN103310453B (zh) * 2013-06-17 2015-12-09 北京理工大学 一种基于子图像角点特征的快速图像配准方法
US9785565B2 (en) * 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
US9898292B2 (en) * 2015-02-25 2018-02-20 Mireplica Technology, Llc Hardware instruction generation unit for specialized processors
CN107103004B (zh) 2016-02-23 2020-11-06 创新先进技术有限公司 网页中的数据处理方法、装置及系统
CN106487911A (zh) 2016-10-25 2017-03-08 广东欧珀移动通信有限公司 一种数据同步方法、装置和系统
CN106970956A (zh) * 2017-03-16 2017-07-21 天津大学 一种基于张量的三维模型检索方法
US11488008B2 (en) * 2017-05-05 2022-11-01 Intel Corporation Hardware implemented point to point communication primitives for machine learning
US10534607B2 (en) * 2017-05-23 2020-01-14 Google Llc Accessing data in multi-dimensional tensors using adders
WO2019001418A1 (zh) * 2017-06-26 2019-01-03 上海寒武纪信息科技有限公司 数据共享系统及其数据共享方法
US20190179635A1 (en) * 2017-12-11 2019-06-13 Futurewei Technologies, Inc. Method and apparatus for tensor and convolution operations
US11132124B2 (en) * 2018-06-12 2021-09-28 Intel Corporation Memory subsystem operations with unaligned and scatter gather feature to support convolution and dimension shuffle
US10761757B2 (en) 2018-06-30 2020-09-01 Intel Corporation Apparatus and method for coherent, accelerated conversion between data representations
US20200042856A1 (en) * 2018-07-31 2020-02-06 International Business Machines Corporation Scheduler for mapping neural networks onto an array of neural cores in an inference processing unit
CN110825312B (zh) * 2018-08-10 2023-06-23 昆仑芯(北京)科技有限公司 数据处理装置、人工智能芯片及电子设备
CN109446147B (zh) 2018-11-09 2022-02-18 郑州云海信息技术有限公司 一种网络存储设备与pcie设备的数据交互方法
CN109543832B (zh) 2018-11-27 2020-03-20 中科寒武纪科技股份有限公司 一种计算装置及板卡

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018193353A1 (en) * 2017-04-17 2018-10-25 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
US20180341484A1 (en) 2017-05-24 2018-11-29 Microsoft Technology Licensing, Llc Tensor Processor Instruction Set Architecture
CN108364065A (zh) 2018-01-19 2018-08-03 上海兆芯集成电路有限公司 采布斯乘法的微处理器

Also Published As

Publication number Publication date
KR20200142536A (ko) 2020-12-22
JP7150803B2 (ja) 2022-10-11
US11385895B2 (en) 2022-07-12
US20220019439A1 (en) 2022-01-20
US11886880B2 (en) 2024-01-30
US20240111536A1 (en) 2024-04-04
KR20200143522A (ko) 2020-12-23
KR20200144153A (ko) 2020-12-28
KR102611169B1 (ko) 2023-12-06
JP2021120851A (ja) 2021-08-19
US20220334840A1 (en) 2022-10-20
JP2021120850A (ja) 2021-08-19
EP3951666A4 (en) 2022-12-21
JP7121103B2 (ja) 2022-08-17
EP3951666A1 (en) 2022-02-09
JP2021520592A (ja) 2021-08-19
WO2020200246A1 (zh) 2020-10-08
JP7073581B2 (ja) 2022-05-23

Similar Documents

Publication Publication Date Title
JP7239547B2 (ja) データ処理方法、装置、及び関連製品
US20240111536A1 (en) Data processing apparatus and related products
CN111831337A (zh) 数据同步方法及装置以及相关产品
CN111782274B (zh) 数据处理装置及相关产品
CN111783992A (zh) 数据处理装置及相关产品
CN115437603A (zh) 用于生成随机数的方法及其相关产品

Legal Events

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