매니코어 프로세서

매니코어 프로세서(manycore processor)는 높은 수준의 병렬 처리를 위해 설계된 특별한 종류의 멀티 코어 프로세서로, 수십 개에서 수천 개 이상의 단순하고 독립적인 프로세서 코어를 포함한다. 매니코어 프로세서는 임베디드 시스템과 고성능 컴퓨팅 분야에서 광범위하게 사용된다.

 멀티코어 아키텍처와의 대조 
매니코어 프로세서는 멀티 코어 프로세서와 달리 처음부터 높은 수준의 명시적 병렬성과 지연 시간 및 낮은 단일 스레드 성능을 희생하면서도 높은 처리량(또는 낮은 전력 소비)을 위해 최적화되었다.

반면, 광범위한 범주의 멀티 코어 프로세서는 일반적으로 병렬 및 직렬 코드를 모두 효율적으로 실행하도록 설계되었으며, 따라서 높은 단일 스레드 성능에 더 중점을 둔다(예: 비순차적 명령어 처리, 더 깊은 파이프라인, 더 많은 슈퍼스칼라 실행 장치, 더 크고 일반적인 캐시에 더 많은 실리콘을 할당하고 공유 메모리를 사용). 이러한 기술은 단일 스레드에서 내재된 병렬성을 파악하는 데 런타임 자원을 투입한다. 이들은 단일 코어 프로세서에서 (하위 호환성을 유지하며) 지속적으로 발전해 온 시스템에 사용된다. 이들은 일반적으로 '소수의' 코어(예: 2, 4, 8)를 가지며, 이기종 시스템에서 매니코어 가속기(예: GPU)로 보완될 수 있다.

 동기 
캐시 일관성은 멀티코어 프로세서의 확장성을 제한하는 문제이다. 매니코어 프로세서는 메시지 전달, 스크래치패드 메모리, DMA, 분할 전역 주소 공간 또는 읽기 전용/비일관성 캐시와 같은 방법을 통해 이를 우회할 수 있다. 네트워크 온 칩과 로컬 메모리를 사용하는 매니코어 프로세서는 소프트웨어에게 태스크의 공간적 레이아웃을 명시적으로 최적화할 기회를 제공한다(예: 트루노스를 위해 개발된 툴링에서 볼 수 있듯이).

매니코어 프로세서는 고성능 컴퓨팅에서 유래한 클러스터 및 벡터 프로세서와 같은 기술과 (개념적으로) 더 많은 공통점을 가질 수 있다."The Cell architecture is like nothing we have ever seen in commodity microprocessors, it is closer in design to multiprocessor vector supercomputers"

GPU는 여러 셰이더 처리 장치를 가지며, 고도로 병렬적인 코드에만 적합한(높은 처리량, 그러나 매우 낮은 단일 스레드 성능) 매니코어 프로세서의 한 형태로 간주될 수 있다.

 프로그래밍 모델 
 메시지 전달 인터페이스
 OpenCL 또는 컴퓨트 커널을 지원하는 다른 API
 분할 전역 주소 공간
 행위자 모델
 OpenMP
 데이터 흐름

 매니코어 시스템의 분류 
 GPU, 매니코어 벡터 프로세서로 설명될 수 있다.
 대규모 병렬 프로세서 배열
 비동기 단순 프로세서 배열
 공간 아키텍처

 특정 매니코어 아키텍처 
 ZettaScaler , 일본 PEZY Computing의 2,048코어 모듈
 제온 파이 코프로세서 (MIC(Many Integrated Cores) 아키텍처)
 틸레라
 아답테바 에피파니 아키텍처, PGAS 스크래치패드 메모리를 사용하는 매니코어 칩
 코히런트 로직스 hx3100 프로세서, 하이퍼X 아키텍처 기반 100코어 DSP/GPP 프로세서
 모비디우스 마이리아드 2, 매니코어 비전 처리 장치 (VPU)
 칼레이, 데이터 집약적인 작업을 위한 매니코어 PCI-e 가속기
 테라플롭스 연구 칩, 메시지 전달을 사용하는 매니코어 프로세서
 트루노스, 매니코어 네트워크 온 칩 아키텍처를 가진 AI 가속기
 그린 어레이, 저전력 애플리케이션을 목표로 메시지 전달을 사용하는 매니코어 프로세서
 Sunway SW26010, 당시 세계 1위 슈퍼컴퓨터인 선웨이 타이후라이트에 사용된 260코어 매니코어 프로세서
 SW52020, SW26010의 개선된 520코어 변형으로 512비트 SIMD를 지원하며(하프 정밀도 지원 추가), 엑사스케일 시스템(향후 10 엑사스케일 시스템)을 위한 프로토타입에 사용되었다. datacenterdynamics에 따르면 중국은 이미 두 개의 별도 엑사스케일 시스템을 비밀리에 보유하고 있다는 소문이 있다.
 아이어리스, 임베디드 비전 애플리케이션을 위한 컨볼루션 신경망 실행을 위해 설계된 매니코어 프로세서
 그래프코어, 매니코어 AI 가속기

 100만 개 이상의 CPU 코어를 가진 특정 매니코어 컴퓨터 
멀티코어 프로세서로 구축된 많은 컴퓨터들이 100만 개 이상의 개별 CPU 코어를 가지고 있다. 다음은 그 예시이다:

 교코 (일본어: 暁光 헵번: gyōkō, 새벽 빛), ExaScaler와 PEZY Computing이 개발한 슈퍼컴퓨터로, 총 20,480,000개의 처리 요소와 1,250개의 인텔 제온 D 호스트 프로세서를 포함한다.
 스피나커, 인간 뇌 프로젝트의 일환으로 구축된 대규모 병렬 (100만 CPU 코어) 매니코어 프로세서(ARM 기반).

 5백만 개 이상의 CPU 코어를 가진 특정 컴퓨터 
꽤 많은 슈퍼컴퓨터가 5백만 개 이상의 CPU 코어를 가지고 있다. 코프로세서, 예를 들어 GPU가 함께 사용될 경우 해당 코어는 코어 수에 포함되지 않으므로, 더 많은 컴퓨터가 이러한 목표를 달성할 수 있다.

 프론티어
 후가쿠, 후지쯔 A64FX ARM 기반 코어를 사용하는 일본 슈퍼컴퓨터로 총 7,630,848개 코어.

 선웨이 타이후라이트, 대규모 병렬 (1천만 CPU 코어) 중국 슈퍼컴퓨터로, 한때 세계에서 가장 빠른 슈퍼컴퓨터 중 하나였으며, 커스텀 매니코어 아키텍처를 사용한다. 2018년 11월 기준으로 TOP500 목록에서 세계에서 세 번째로 빠른 슈퍼컴퓨터였으며, 각각 256개의 코어를 포함하는 40,960개의 SW26010 매니코어 프로세서에서 성능을 얻었다.

 같이 보기 
 벡터 프로세서
 SIMD
 고성능 컴퓨팅
 컴퓨터 클러스터
 멀티프로세서 시스템 온 칩
 비전 처리 장치
 메모리 접근 패턴
 캐시 일관성
 처치 곤란 병렬
 대규모 병렬 컴퓨터
 CUDA

 각주 

 외부 링크 
 Architecting solutions for the Manycore future, 2010년 2월 19일 게시 (슬라이드에 유효하지 않은 링크가 하나 이상 있음)
 Eyeriss architecture

분류:컴퓨터 구조
분류:병렬 컴퓨팅