KR20220117433A - 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템 - Google Patents

인공지능 반도체에 최적화된 개방형 메모리 서브 시스템 Download PDF

Info

Publication number
KR20220117433A
KR20220117433A KR1020210020814A KR20210020814A KR20220117433A KR 20220117433 A KR20220117433 A KR 20220117433A KR 1020210020814 A KR1020210020814 A KR 1020210020814A KR 20210020814 A KR20210020814 A KR 20210020814A KR 20220117433 A KR20220117433 A KR 20220117433A
Authority
KR
South Korea
Prior art keywords
memory
artificial intelligence
data
threads
memory subsystem
Prior art date
Application number
KR1020210020814A
Other languages
English (en)
Inventor
박성호
박장호
Original Assignee
코싸인온 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 코싸인온 주식회사 filed Critical 코싸인온 주식회사
Priority to KR1020210020814A priority Critical patent/KR20220117433A/ko
Publication of KR20220117433A publication Critical patent/KR20220117433A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)

Abstract

고성능 서버 또는 저전력 모바일향 인공지능 어플리케이션(application)에 모두 연동될 수 있도록 개방형 메모리 구조를 형성하되, 범용/다중 메모리 액세스 프로토콜을 구성하고, 해당 프로토콜에 따라 스위치 기반으로 메모리에 연결되는, 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템에 관한 것으로서, 메모리 서브 장치를 포함하고, 상기 메모리 서브 장치는, 연산 데이터를 저장하는 메모리; 연산 데이터를 다수의 쓰레드로 분할하고, 분할된 쓰레드 데이터에 대한 연산을 수행하고, 각 쓰레드에서 처리된 데이터를 합성하여 최종 데이터를 출력하는 메인 연산기; 및, 상기 메인 연산기의 명령에 따라, 상기 메모리에 저장된 쓰레드 데이터의 처리를 수행하는 메모리 제어기를 포함하고, 상기 메인 연산기는 자신의 연산 기능을 나누어 연산 기능의 일부를 상기 메모리 제어기로 분담시키는 구성을 마련하여, 메모리 사용에 구애 받지 않고 플랫폼에 구성된 모든 메모리를 사용할 수 있으므로, 고속 연산과 대용량의 데이터가 필요한 인공지능 반도체에서의 효율을 극대화 할 수 있다.

Description

인공지능 반도체에 최적화된 개방형 메모리 서브 시스템 { A open memory sub-system optimized for artificial intelligence semiconductors }
본 발명은 고성능 서버 또는 저전력 모바일향 인공지능 어플리케이션(application)에 모두 연동될 수 있도록 개방형 메모리 구조를 형성하되, 범용/다중 메모리 액세스 프로토콜을 구성하고, 해당 프로토콜에 따라 스위치 기반으로 메모리에 연결되는, 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템에 관한 것이다.
최근 4차 산업혁명으로 인하여 반도체 산업은 인공지능, IoT, 클라우드, 빅데이터, 가상현실, 자율주행 등의 수요가 반영되는 지능형 반도체 중심으로 성장하고 기술이 발전할 전망이다. 즉, 인터넷, 스마트 폰을 통한 데이터 수가 급격히 증가하고, 이를 수집/분석하기 위한 빅데이터 처리 환경이 발전하고 있다. 또한, 딥러닝 등 기계학습 알고리즘 기술의 진화로 인하여 인공지능의 정확도가 급격히 향상되고 있으며 자율주행차, IoT 등 타 산업의 적용이 확대되고 있다.
이런 전망에 따라, 인공지능, IoT, 클라우드, 빅데이터, 가상현실, 자율주행 등의 4차 산업혁명을 구현할 수 있는 새로운 패러다임의 반도체 기술이 필요하다. 특히 로봇, 자동차, PC, 서버, 스마트폰, 가전 등 모든 사물(제품)에는 인공지능 서비스를 구현할 수 있도록 지능형 반도체가 탑재될 전망이다. 지능형 반도체 또는 인공지능 반도체는 인식, 추론, 학습, 판단 등 인공지능 서비스에 최적화(지능화, 저전력화, 안정화)된 소프트웨어와 시스템 반도체가 융합된 반도체를 말한다.
이러한 인공지능 반도체는 개인형 인공지능 디바이스, 자율이동체, 지능형 헬스케어, 빅데이터 처리, 차세대 통신 서비스, 스마트 시티, 증강현실, 인간형 지능로봇, 신약 개발, 에너지 등 사회, 경제, 국방 등 전 분야에 응용될 수 있다. 또한, 4차 산업혁명의 구현을 위한 인공지능 반도체는 기존 메모리 및 시스템 반도체를 능가하는 기술적인 요구사항을 충족시킬 전망이다.
인공지능 반도체는 학습, 추론 등 인공지능 구현에 요구되는 대규모 데이터 처리를 위한 기존 반도체의 한계점을 극복하기 위해 고성능, 저전력 기술 중심으로 발전되고 있다. 다양한 인공지능 SW가 개발되고 있으나, 기존 반도체에서 이를 실행시키기 위해서는 대규모, 대용량 연산 장치가 필요하다.
특히, 데이터 입력 순서에 따라 순차적으로 처리하는 기존 반도체(CPU)는 기계학습, 추론과 같은 대규모 데이터를 처리하기에는 연산 속도 등의 한계가 존재한다. 특히, CPU 등 메인 프로세서가 중앙에서 모든 데이터를 처리, 제어하므로 연산량이 많아질수록 CPU와 메모리 사이의 병목현상이 발생하여 대규모 데이터를 처리 할 경우 속도 저하가 발생한다.
전영득 외 1인, "저전력 메모리 인터페이스 구현을 위한 옵셋 및 feedback coefficient 조절 가능한 DFE 설계", 대한전자공학회 학술 대회 (추계) 2019.11, pp.132-133. 조민형 외 1인, "고속 메모리 인터페이스를 위한 6.4Gbps Low Voltage-Swing Terminated Logic 구동 회로 설계", 대한전자공학회 학술 대회 (추계) 2019, pp.136-137. Youngbog Yoon, Chulwoo Kim, "An Area-efficient and Wide-range Inter-signal Skew Compensation Scheme with the Embedded Bypass Control Register Operating as a Binary Search Algorithm for DRAM Applications", IEEE Transactions on Circuits and Systems II: Express Briefs, 1 - 1, 12 November 2019.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 인공지능 연산기가 메모리 제어기를 통해서 외부 메모리로 데이터를 분산 로드시키되, 범용/다중 메모리 액세스 프로토콜을 구성하고, 해당 프로토콜에 따라 스위치 기반으로 메모리에 연결하는, 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템에 관한 것으로서, 메모리 서브 장치를 포함하고, 상기 메모리 서브 장치는, 연산 데이터를 저장하는 메모리; 연산 데이터를 다수의 쓰레드로 분할하고, 분할된 쓰레드 데이터에 대한 연산을 수행하고, 각 쓰레드에서 처리된 데이터를 합성하여 최종 데이터를 출력하는 메인 연산기; 및, 상기 메인 연산기의 명령에 따라, 상기 메모리에 저장된 쓰레드 데이터의 처리를 수행하는 메모리 제어기를 포함하고, 상기 메인 연산기는 자신의 연산 기능을 나누어 연산 기능의 일부를 상기 메모리 제어기로 분담시키는 것을 특징으로 한다.
또, 본 발명은 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템에 있어서, 상기 메모리는 3세대 고대역폭메모리(HBM3) 규격에 의해 설계되는 것을 특징으로 한다.
또, 본 발명은 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템에 있어서, 상기 메모리 서브 시스템은, 하나의 쓰레드를 처리하는 스트림 프로세서(SP)를 다수 구비하고, 하나의 공유메모리를 구비한 다수의 스트림 멀티프로세서(SM); 및, 상기 SM이 공유하는 하나의 상수메모리를 포함하고, 상기 메인 제어기는 상기 단위 연산을 하나의 쓰레드로 정하여 상기 메모리 서브 시스템으로 하여금 병렬 연산을 수행하게 하는 것을 특징으로 한다.
또, 본 발명은 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템에 있어서, 상기 메인 제어기는, 블록당 쓰레드의 개수의 정수배가 SM 당 최대 쓰레드의 개수가 되고, 블록당 쓰레드의 개수가 블록당 최대 쓰레드의 개수보다 작도록, 상기 블록당 쓰레드의 개수를 정하는 것을 특징으로 한다.
또, 본 발명은 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템에 있어서, 상기 쓰레드의 개수는 SM당 할당한 쓰레드와 상기 메모리 서브 시스템 내의 총 SM의 개수의 곱으로 구하는 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템에 의하면, 메모리 사용에 구애 받지 않고 플랫폼에 구성된 모든 메모리를 사용할 수 있으므로, 고속 연산과 대용량의 데이터가 필요한 인공지능 반도체에서의 효율을 극대화 할 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템에 의하면, 범용/다중 메모리 액세스 프로토콜을 구성하고 해당 프로토콜에 따라 스위치 기반으로 메모리에 연결함으로써, 데이터를 다양한 서브 메모리로 분산시켜 병목현상을 줄이고, 고성능 서버 또는 저전력 모바일향 인공지능 어플리케이션(application)에 모두 연동될 수 있는 효과가 얻어진다.
도 1은 본 발명의 일실시예에 따른 연산 특성에 기반하여 내부와 외부 메모리 간의 데이터 전송을 위한 인공지능 연산기에 대한 구성도.
도 2는 본 발명의 일실시예에 따른 메인 제어기의 구성도.
도 3은 본 발명의 일실시예에 따라 처리되는 연산 단위의 예시도.
도 4는 본 발명의 일실시예에 따른 메모리의 실행 스케쥴의 예시도.
도 5는 본 발명의 일실시예에 따른 메모리 서브 시스템의 구성도.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명의 일실시예에 따른 연산 특성에 기반하여 내부와 외부 메모리 간의 데이터 전송을 위한 인공지능 연산기의 구성에 대하여 도 1을 참조하여 설명한다.
도 1에서 보는 바와 같이, 본 발명의 일실시예에 따른 연산 특성에 기반하여 내부와 외부 메모리 간의 데이터 전송을 위한 인공지능 연산기(1)는 메인 연산기(30) 및 적어도 하나의 메모리 서브 시스템(40)으로 구성된다.
메모리 서브 시스템(40)은 하나의 분할 데이터를 저장하고 처리하는 메모리들을 다수 구비하여, 다수의 데이터 쓰레드를 처리하는 통상의 메모리 제어기이다.
메인 연산기(30)는 빅데이터를 입력받아 범용 CPU를 통해 인공지능 연산 처리를 위한 데이터를 처리한다. 빅데이터 생성 수식은 빅데이터 영상의 한 화소의 강도를 구하는 수식으로서, 빅데이터 화소의 강도는 모든 광원 각각에 대한 연산을 누적하여 계산한다. 이때, 각 광원에 대한 연산을 단위 연산, 단위 빅데이터 연산 등이라 부르기로 한다.
메인 연산기(30)는 단위 연산을 하나의 빅데이터 쓰레드로 정하여 메모리 서브 시스템(40)에게 처리하도록 한다. 이때, 메인 연산기(30)는 빅데이터 생성 수식을 처리하기 위한 많은 수의 단위 연산들을 각각 다수의 빅데이터 쓰레드에 할당하여, 병렬로 처리하게 한다.
또한, 메인 연산기(30)는 입출력의 양이 최소가 되고, 전체 연산이 효율적으로 처리되도록, 단위 연산들에 필요한 상수, 변수값들을 메모리 서브 시스템(40)의 메모리에 입출력하게 하거나, 단위 연산들을 블록의 쓰레드로 할당하는 등의 병렬 연산을 위한 스케쥴링을 수행한다.
다음으로, 본 발명에 사용되는 메모리 서브 시스템의 구성을 도 2를 참조하여 설명한다.
먼저, 메모리 서브 시스템의 구조에 대하여 도 2를 참조하여 설명한다.
고성능 제어기와 적은 ALU(Arithmetic and Logic Unit)을 가지는 CPU의 구조와는 달리 서브 시스템은 작은 컨트롤 유닛과 다수의 ALU를 포함하고 있어 연산 능력에서 병렬 화에 유리한 구조를 가진다.
즉, 도 2와 같이 하나의 메모리 서브 시스템 내에는 하나의 DRAM(Global Memory, 전역 메모리)과 여러 개의 SM(Streaming Multiprocessor) 및 Load/Store 유닛 등을 가지고 있다. 하나의 SM은 여러 개의 SP(Streaming Processor)와 캐시메모리 등으로 이루어져 있으며, SP에서는 하나의 데이터의 연산을 처리할 수 있는 능력을 가지게 된다.
서브 시스템 내의 DRAM은 저장할 수 있는 데이터량은 크지만 여러 SM에서 동시 접근에 대한 병목 현상 및 접근에 대한 대기지연 등의 이유로 접근 속도는 느리다. 하지만 캐시 형태로 되어 있는 상수메모리(Constant Memory)나 SM 내부의 공유 메모리(Shared Memory, Parallel Data Cache)는 저장할 수 있는 데이터 량은 적지만 접근 속도가 빠르다. 따라서 일반적으로 많이 사용되는 파라미터는 상수 메모리나 공유 메모리를 사용하는 것이 유리하다.
다음으로, 범용 메모리 서브 시스템의 동작에 대하여 도 3과 도 4를 참조하여 설명한다.
병렬 프로그래밍을 위해, 앞에서 설명한 메모리 서브 시스템내의 연산 단위인 SP 또는 SM을 할당하는 단위로 쓰레드(thread)와 블록(block), 및 그리드(grid)로 나눈다. 이때, 바람직하게는, 메모리 서브 시스템의 커널 코드의 변수를 설정할 수 있는 CUDA 등과 같은 프로그래밍 도구를 이용할 수 있다.
도 3과 같이 하나의 블록은 3차원의 쓰레드로 이루어져 있고, 또한 하나의 그리드는 3차원의 블록으로 이루어진다. 각 쓰레드는 메모리 서브 시스템내의 SP에 맵핑되며 연산하는 최소 단위로 하나의 블록내의 최대 쓰레드의 개수는 메모리 서브 시스템의 성능에 따라 결정된다. 또한 블록은 하나의 스트림 멀티프로세서(SM 또는 MP)에서만 구성된다. 즉, 하나의 블록이 동시에 2개 이상의 SM에서 구성될 수 없다.
또한 각 쓰레드는 블록 내에서의 인덱스를 가지게 되며 도 4와 같이 워프(Warp) 단위로 동시에 실행된다. 따라서 모든 쓰레드를 효율적으로 실행시키기 위해서는 블록당 쓰레드의 개수를 워프의 배수로 하는 것이 유리하다. 또한 예외처리가 필요한 부분에서는 워프 단위 내에서는 같은 조건으로 예외 처리하는 것이 동시 실행의 병렬성을 유지할 수 있다.
워프는 동시에 스트림 프로세서(SP)가 동작할 수 있는 단위이다. 예를 들어, 워프의 단위가 4이면, 5개의 쓰레드를 동작시키기 위해서는 2개의 워프가 동작을 하게 된다. 그런데, 워프는 동시에 동작할 수 있는 스트림 프로세서(SP)의 단위이기 때문에, 블록당 쓰레드의 개수를 워프의 배수로 해야 최대 SP의 효율을 나타낼 수 있다.
예를 들어, 메모리 서브 시스템의 특성이 SM 내에 SP의 개수가 12개이고 워프 단위가 4일 때 블록당 쓰레드를 8개로 할당하는 경우를 살펴보자, 이때, 하나의 스트림 멀티프로세서(SM)는 하나의 블록을 처리하기 때문에, 하나의 SM에 8개의 쓰레드가 배정된다. 그리고 8개의 쓰레드에 대하여 2개의 워프로 수행되고, 각 워프는 각각 4개의 SP를 사용한다. 따라서 SM 내에 나머지 4개의 SP는 사용되지 않고 낭비된다.
이 경우, 블록당 쓰레드의 개수를 4개로 할당하는 것이 유리하다.
앞서의 예에서, 블록당 쓰레드를 8개로 설정하고 3개의 블록을 동작할 경우 하나의 SM내에 8개씩 SP가 동작을 하게 되고 3개의 SM을 동작하게 된다. 만약 SM이 1개 있는 메모리 서브 시스템일 경우에는 8개씩 3번의 동작을 하게 된다. 반면 블록당 쓰레드를 4개로 하고 6개의 블록을 설정하면 하나의 SM내에 SP 12개 모두 동작을 하며 2번의 반복 동작만 하면 된다.
따라서 현재 장착되어 있는 메모리 서브 시스템의 HW적인 특성(SM,SP 등)을 확인 후 최대 효율을 낼 수 있는 블록과 쓰레드의 개수를 설정해야 한다.
또한, 각 블록은 블록 내의 쓰레드에 따라서 하나 혹은 그 이상의 블록이 하나의 SM으로 맵핑되어 동작한다. 블록 내의 모든 쓰레드 내에 할당된 레지스터의 개수가 SM 내의 총 레지스터의 개수 이하로 될 경우 최대의 블록으로 할당할 수 있다. 즉, SM내에 구성되어 있는 SP의 개수를 확인하여 블록당 쓰레드의 개수를 결정하여 하나의 SM내에 구성할 수 있는 최대 블록을 할당한다.
또한 블록도 쓰레드와 같이 인덱스를 가지게 되며 모든 SM에 할당된 블록의 개수가 그리드당 총 블록의 수보다 적을 경우 모든 할당된 블록의 동작이 끝난 뒤 남은 블록들이 동작이 이루어진다.
다음으로, 본 발명의 일실시예에 따른 개방형 메모리 서비스 시스템의 구조에 대하여 도 5를 참조하여 설명한다.
도 5에서 보는 바와 같이, 고성능 서버 혹은 저전력 모바일향 인공지능 어플리케이션(Application)에 모두 연동될 수 있는 개방형 메모리 서브시스템 인터페이스로 구성된다.
또한, 수십 GByte 이상의 대용량 인공지능 연산 데이터 저장 및 수십 GByte/s 이상의 초고속 데이터 전송대역폭 요구에 유기적으로 대응할 수 있는 메모리 토폴로지(topology)로 구성된다.
또한, 메모리의 명령어/데이터 전송 방식을 위한 메모리 접근 프로토콜은, 범용/다중 메모리 액세스 프로토콜로 구성된다. 즉, 메모리 접근 방식은 기존의 단일 메모리 특정(specific) 명령어/데이터 전송 방식을 탈피한다.
또한, 도 5에서 보는 바와 같이, 스위치 기반의 메모리 서브 시스템은 네트워크 연결형 플랫폼으로 구성된다. 또한, 차세대 메모리의 고속 데이터 처리를 위한 메모리 서브 시스템으로 구성된다.
즉, 어느 인공지능 한 쪽 반도체에서 사용할 수 있도록 연결되어 있는 메모리(DRAM)을 다른 인공지능 반도체에 메모리 서브시스템도 사용할 수 있도록 네트워크 연결형으로 구성된다.
상기와 같이 구성함으로써, 메모리 사용에 구애 받지 않고, 플랫폼에 구성된 모든 메모리를 사용할 수 있으므로, 고속 연산과 대용량의 데이터가 필요한 인공지능 반도체에서의 효율을 극대화 할 수 있다.
이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
10 : 빅데이터 30 : 메인 프로세서
40 : 메모리 서브 시스템

Claims (5)

  1. 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템에 있어서,
    네트워크 형태로 연결되는 다수의 인공지능 반도체로 구성되고,
    상기 인공지능 반도체는 인공지능 프로세서; 및,
    메모리 서브 장치를 포함하고,
    상기 메모리 서브 장치는,
    연산 데이터를 저장하는 메모리;
    연산 데이터를 다수의 쓰레드로 분할하고, 분할된 쓰레드 데이터에 대한 연산을 수행하고, 각 쓰레드에서 처리된 데이터를 합성하여 최종 데이터를 출력하는 메인 연산기; 및,
    상기 메인 연산기의 명령에 따라, 상기 메모리에 저장된 쓰레드 데이터의 처리를 수행하는 메모리 제어기를 포함하고,
    상기 메인 연산기는 자신의 연산 기능을 나누어 연산 기능의 일부를 상기 메모리 제어기로 분담시키는 것을 특징으로 하는 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템.
  2. 제1항에 있어서,
    상기 메모리는 3세대 고대역폭메모리(HBM3) 규격에 의해 설계되는 것을 특징으로 하는 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템.
  3. 제1항에 있어서,
    상기 메모리 서브 시스템은, 하나의 쓰레드를 처리하는 스트림 프로세서(SP)를 다수 구비하고, 하나의 공유메모리를 구비한 다수의 스트림 멀티프로세서(SM); 및, 상기 SM이 공유하는 하나의 상수메모리를 포함하고, 상기 메인 제어기는 상기 단위 연산을 하나의 쓰레드로 정하여 상기 메모리 서브 시스템으로 하여금 병렬 연산을 수행하게 하는 것을 특징으로 하는 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템.
  4. 제1항에 있어서,
    상기 메인 제어기는, 블록당 쓰레드의 개수의 정수배가 SM 당 최대 쓰레드의 개수가 되고, 블록당 쓰레드의 개수가 블록당 최대 쓰레드의 개수보다 작도록, 상기 블록당 쓰레드의 개수를 정하는 것을 특징으로 하는 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템.
  5. 제1항에 있어서,
    상기 쓰레드의 개수는 SM당 할당한 쓰레드와 상기 메모리 서브 시스템 내의 총 SM의 개수의 곱으로 구하는 것을 특징으로 하는 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템.
KR1020210020814A 2021-02-17 2021-02-17 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템 KR20220117433A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210020814A KR20220117433A (ko) 2021-02-17 2021-02-17 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210020814A KR20220117433A (ko) 2021-02-17 2021-02-17 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템

Publications (1)

Publication Number Publication Date
KR20220117433A true KR20220117433A (ko) 2022-08-24

Family

ID=83111756

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210020814A KR20220117433A (ko) 2021-02-17 2021-02-17 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템

Country Status (1)

Country Link
KR (1) KR20220117433A (ko)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
6.4Gbps Low Voltage-Swing Terminated Logic 2019, pp.136-137.
fedback coefficient 2019.11, pp.132-133.
Youngbog Yoon, Chulwoo Kim, "An Area-efficient and Wide-range Inter-signal Skew Compensation Scheme with the Embedded Bypass Control Register Operating as a Binary Search Algorithm for DRAM Applications", IEEE Transactions on Circuits and Systems II: Express Briefs, 1 - 1, 12 November 2019.

Similar Documents

Publication Publication Date Title
US11288221B2 (en) Graph processing optimization method based on multi-FPGA accelerator interconnection
US11562213B2 (en) Methods and arrangements to manage memory in cascaded neural networks
US11442786B2 (en) Computation method and product thereof
EP3786786A1 (en) Processing device, processing method, chip, and electronic apparatus
Pereira et al. PSkel: A stencil programming framework for CPU‐GPU systems
Pei et al. Iteration time prediction for cnn in multi-gpu platform: modeling and analysis
Du et al. Model parallelism optimization for distributed inference via decoupled CNN structure
US20160203401A1 (en) Electronic circuit, in particular capable of implementing a neural network, and neural system
Bayatpour et al. Salar: Scalable and adaptive designs for large message reduction collectives
EP4020209A1 (en) Hardware offload circuitry
Chen et al. Towards efficient allocation of graph convolutional networks on hybrid computation-in-memory architecture
CN105260342A (zh) 一种对称正定线性方程组的求解方法与系统
KR20210113762A (ko) 연산량에 따른 가변 데이터 동작 주파수 기반 인공지능 연산기 시스템
KR20210113761A (ko) 인공지능 연산기에 의한 내부와 외부 메모리 간의 연산 특성 기반 데이터 전송 방법
Zarrabi et al. Gravitational search algorithm using CUDA: a case study in high-performance metaheuristics
KR20220117433A (ko) 인공지능 반도체에 최적화된 개방형 메모리 서브 시스템
Chu et al. Dynamic kernel fusion for bulk non-contiguous data transfer on GPU clusters
Chu et al. High-performance adaptive MPI derived datatype communication for modern Multi-GPU systems
US10915470B2 (en) Memory system
KR20210113760A (ko) 메모리 제어기에서 연산 기능을 분담하는 인공지능 프로세서 시스템
Li et al. Dual buffer rotation four-stage pipeline for CPU–GPU cooperative computing
CN114595813A (zh) 异构加速处理器及数据计算方法
US20210295145A1 (en) Digital-analog hybrid system architecture for neural network acceleration
Aher et al. Accelerate the execution of graph processing using GPU
Xuebin et al. Fast algorithm for parallel solving inversion of large scale small matrices based on GPU