벤치리뷰·뉴스·정보/아키텍처·정보분석

[분석정보] 2010년 이후의 Intel CPU가 보이는 Larrabee 신 명령

tware 2008. 10. 17. 18:30

 

Intel의 명령 아키텍쳐 확장의 흐름에 있는 Larrabee 신 명령

 Intel에 있어서 "Larrabee (라라비)"란 무엇인가? Larrabee가 throughput 컴퓨팅에 특화되어 벡터 연산과 멀티 쓰레드 성능에 초점을 맞춘 특수한 프로세서 제품인 것은 분명하다. 그러나 Larrabee의 새로운 명령 "Larrabee New Instructions (LNI)"자체는 더 범용적인 것이다. 아마 Intel의 메인스트림 CPU의 장기 명령 세트 로드맵 상에 위치한다. 그것 그대로 없더라도, 아마 Larrabee와 비슷한 명령 세트 확장이 PC & 서버 전용 CPU에도 구현 될 날이 올 것이다.  (Knights Landing 과 Core i 시리즈에서 AVX 512로 통합)

 Intel은 장기 비전으로 PC & 서버용 CPU에도 벡터 연산 기능을 높여갈 것을 밝혔다. 올해 (2008년) 봄 IDF 에서는 향후 CPU의 성능 향상은 명령 세트의 변화에​​ 의해 이뤄진다 설명했다. 그리고, 명령 세트 변혁의 핵심은 벡터 연산 명령의 강화다.

 

 

Patrick (Pat) P. Gelsinger 씨

 

 다만 Intel의 Patrick (Pat) P. Gelsinger (팻 P · 겔싱어) 씨 (Senior Vice President and General Manager, Digital Enterprise Group)에 따르면, 이것은 새로운 아이디어가 아니라 큰 흐름 속에 위치하는 트렌드라고 한다.

 "우리는 MMX 이후 서서히 벡터 기능과 명령 세트를 (PC & 서버용 CPU에) 도입해 왔다 .64-bit (벡터)를 MMX에서, 128-bit를 SSE에서, 그리고 256-bit를 AVX (Intel Advanced Vector Extensions)에서, Larrabee는 여기에 더욱 앞으로. 그런 의미에서 벡터 기능은 우리에게 특히 새로운 것이 아닌 점진적으로 대응을 진행 해온 것이다 "(Gelsinger 씨).

 Intel은 SIMD (Single Instruction, Multiple Data) 형태의 벡터 연산 유닛을 "97 년의 MMX Pentium에 실장했다. 이 때는 벡터 레지스터의 폭은 64 bit 였지만, 다음 SSE에서는 128-bit의 새로운 레지스터를 마련했다. SSE 에서는 32-bit 단정밀도 부동 소수점 연산에서 4wide 벡터 연산 명령 이었지만, 실제 (CPU에 구현된) 연산 유닛 자체는 64 bit 폭이었다 (두번에 걸친 전송및 처리). 연산 유닛을 128-bit 폭으로 확장한 것은 Core 2 (Merom : 메롬 = 콘로) 세대부터, 명령 세트 자체도 SSE에서 SSE2, SSE3, SSE4로 확장을 계속해왔다. SSE 명령에는 벡터 명령 이외의 명령도 다수 포함되지만, 확장의 핵이 벡터 연산에 있는 것은 변하지 않는다.

 Intel은 향후 256-bit 폭 32-bit 단정도 라면 8wide 벡터 연산이 가능한 "Intel Advanced Vector Extensions (Intel AVX)"을 2010년에서 2011년의 CPU"Sandy Bridge (샌디 브릿지)"에 실장 한다. 여기에 그 후의 CPU는 적화연산 "Fused Multiply Add (FMA)"를 실장한다. 이것이 메인 스트림 CPU 명령 세트의 벡터 연산 확장의 흐름이다. 그것과 병행하여 Intel은 Larrabee에서 512-bit 폭으로 단정도라면 16wide 벡터 연산이 가능한 Larrabee 신 명령을 도입한다.

 이렇게 보면, Intel은 SSE에서 128-bit 벡터를 도입한 이후, 일반적인 CPU 에서는 10년이나 벡터 폭 자체의 확장을 하지 않은 것이 여기에 와서 갑자기 확장하기 시작한 알 수있다. Gelsinger 씨는 PC & 서버용 CPU 어느쪽에도 512-bit 벡터로 나아가는 것을 시사하고 있다. Intel은 아무래도 진심으로 PC & 서버 CPU의 벡터 연산 기능을 확장 해 나갈 것 같다.

 다만 벡터 폭을 넓히면 그것을 채우는 것이 어렵기 때문에 Intel은 그에 대한 대책도 필요하다. 그 방책 하나는 Larrabee가 구현하는 벡터 조건 분기 명령과 마스크 레지스터와 같은 벡터 연산에 유연성을 갖게하는 새로운 장치이다. 새롭다 라고 말해도, GPU는 이미 사용되고 있는 기술로 그 의미에서는 GPU에 비슷해지고 있다.

 

CPU 명령 세트 아키텍처의 진화

 


멀티 스레드 + 벡터 연산의 시대로 들어간 Intel CPU

 Intel이 벡터 연산을 강화하려는 이유는 그 쪽이 효율이 좋기 때문이다. 현재 CPU는 명령어 수준의 병렬성인 ILP (Instruction-Level Parallelism)의 한계 "ILP 벽 (ILP Wall)"에 의해 CPU 코어의 연산 성능을 높이는 것이 어렵다(IPC 상승의 한계). ILP를 올리기 위해서 하드웨어를 추가해도 이전 정도의 ILP 향상은 얻을 수 없기 때문에 소비 전력의 벽 "파워 월 (Power Wall) "에 성능 향상이 막히게 된다.

 CPU 업계는 "86년부터 2002년까지 대략 1년에 52% 씩 단일 CPU 코어의 정수 연산 성능 (SPECint)을 향상시켜 왔다. 아래는 CPU 연구자로 유명한 David A. Patterson (데이비드 A 패터슨) 교수 (University of California at Berkeley)가 2006년 8월의 CPU 컨퍼런스 "HotChips 18"에서 설명한 프레젠테이션이다.

 

 

정수 연산 성능 향상의 이전

 

 

성능 향상의 몇 가지 "벽"

 

 

Intel 명령 세트의 변화와 성능의 관계

 

 

그러나 Intel은 올해 봄 IDF에서, 현재 CPU 코어의 성능 향상은 매년 약 15% 정도까지 떨어진 것을 밝혔다. CPU 코어 자체의 성능이 오르지 못하게 되었기 때문에, CPU 벤더는 CPU 코어 수를 늘리는 것으로 성능을 향상시켜왔다. 이것이 현재의 멀티 코어 CPU의 트랜드를 낳고있다.

 하지만 Intel은 2010년 이후에는 다시 CPU 코어의 성능이 크게 향상되기 시작한다고 설명했다. 다만 그것은 정수 연산이 아니라 위의 그림에 있는 것 같이 벡터 형의 부동 소수점 연산이다. AVX로 256-bit 벡터로 확장하는 것으로 벡터 연산의 처리량은 2 배가 된다. 다음에 1 명령으로 적화산을 행하는 FMA의 도입으로 처리량은 거듭 두배로 한다. 이 2 개의 확장으로 벡터 연산의 처리량은 단순 계산으로 4배가 된다. 만약 4년에 4배의 속도로 성능을 늘릴 수 있다면 일년에 40% 이상의 성능 / 코어의 향상을 실현 할 수 있게된다. Intel의 슬라이드가 보이고 있는 것은, 그런 흐름이다. 전체의 흐름을 그림으로 정리하면 아래와 같다.

 Intel이 이 흐름에서 AVX와 FMA 이후에도 CPU 코어 성능의 급피치 향상을 정말로 한려면, 선택은 하나 밖에 없다. 그것은 벡터 폭을 거듭 넓혀 Larrabee와 같은 512-bit로 가지고 가는 것이다. 따라서 2010년 이후는 벡터 연산 유닛과 명령 세트의 진화는 지금까지보다 급피치 될 것으로 추정된다.

 

Intel 명령 세트와 CPU 아키텍처의 방향성

 

 

명령 병렬과 데이터 병렬, 스레드 병렬의 균형을 잡다.

 벡터 연산으로 비중을 옮기는 ​​Intel. 그러면 Intel은 메인 스트림의 CPU를 벡터 연산 유닛 중심으로 다시 만드는 것인가? 그것은 아니라고 Gelsinger 씨는 말한다.

 "벡터 기능을 강화하며, 더 높은 수준에서는, 우리는 (CPU의) 세대간 호환성도 유지해 왔다. 고도의 벡터 어플리케이션이 등장해도, 여전히 스칼라 연산 부분이 남기 때문이다. 그래서 우리는 벡터 기능의 강화와 동시에 스칼라 성능도 필요하다고 생각한다.

 또한 우리는 (벡터의) 데이터 병렬 기능과 동시에 (멀티 코어 / 멀티 스레드에서의) 스레드 병렬 기능도 제공해 왔다. 즉, 훌륭한 벡터 기능을 가져오는 것과 동시에 높은 스레드 병렬성도 동시에 가져오고, 거듭 세대마다 스칼라 성능도 점진적으로 향상시킨다. 이것에 의해서 스칼라, 스레드, 데이터 병렬 (벡터)의 3가지 방향에서 아키텍처상에서 타협없는 성능을 제공한다고 생각한다.

 또한, 우리는 툴 세트도 제공한다. C 컴파일러, Integrated Performance Primitives (IPP), MPI, Threading Building Blocks, Open-MP 등. 이러한 툴에 의해서, 데이터와 스레드의 병렬화 된 환경에서도 모든 요구에 대해 호환성을 유지하면서 잘 정리된 소프트웨어 개발 환경을 제공하는 것이다. "

 Intel의 전략은 명확하다. 벡터 연산의 강화에 의해 "데이터 레벨의 병렬성 (DLP : Data-Level Parallelism)"을 올리지만, 여전히 스칼라 연산의  "명령 레벨의 병렬성 (ILP : Instruction-Level Parallelism)"도 유지하고 멀티코어화와 멀티 스레딩(HT) 구현에 의한 "스레드 수준의 병렬성 (TLP : Thread-Level Parallelism)"도 높여 간다. DLP와 ILP, TLP의 3가지 방향의 균형을 취한다고 Gelsinger 씨는 보이고 있다.


 반대로 말하면, 벡터 연산의 강화를 위해, 스칼라 연산 성능을 희생하지 않는다. 물론 성능 향상의 대부분은 벡터 연산에 의한 것이 되지만, 소프트웨어 측이 100% 벡터 코드가 되는 것은 있을 수 없기 때문에 스칼라 연산 성능은 지키는 사상이다. 벡터 유닛이 대형화하는 만큼, 멀티코어화의 기세는 꺾이게 되지만, CPU 전체의 성능은 멀티 코어 및 멀티 스레드와 더 강력한 벡터 연산 유닛의 조합 쪽이 향상 된다 예상하고 있다고 생각된다. 또한 스레드 병렬성을 늘려가도, 그것만으로는 성능을 얻을 수 있는 응용 프로그램이 한정되어 버린다. 스레드 병렬보다 데이터 병렬이 적합한 처리도 많기 때문에, 그 양자의 균형을 취하는 의도라고 예상한다.

 Intel은 항상 메인 스트림 CPU 에서는 극단으로는 아키텍처를 기울이지 않는다. 과거 5 ~ 6년의 멀티 코어 / 멀티 스레드화의 흐름에서도, Intel은 Sun Microsystems와 Cell Broadband Engine (Cell BE) 진영 처럼, 멀티 코어 / 멀티 스레드로 단번에 기울지 않았다. 물론, 그것은 PC & 서버에 막대한 레거시 소프트웨어 자산을 안고 있기 때문으로, 그것이 Intel의 무거운 짐으로도 있고 유리한 점으로도 있다.

 


Larrabee는 같은 명령 세트의 안에서의 구현을 극단으로 기울였다?

 그러면, 이러한 전체 구도 속에서 Larrabee는 어디에 위치 하는가? Gelsinger 씨가 말하는, Intel의 명령 세트와 CPU 아키텍처의 진화의 도식 속에서 Larrabee는 메인 스트림 CPU보다 무게 중심이 어긋나 있다. 메인 스트림의 PC & 서버 CPU가 스칼라 연산 성능은 희생하지 않을 방침인 반면, Larrabee에서는 스칼라 연산 성능은 어느 정도 희생하고 벡터 연산과 멀티 코어 및 멀티 스레드로 충분히 기울어 있다.

 스칼라 연산 유닛은 Pentium (P5)를 기반으로 발전시킨 것이며, 2-way의 In-Order 파이프 라인도 Atom과 같은 수준. 그러나 벡터 유닛은 16wide로 SSE의 4배로, FMA 명령도 지원한다. 연산 유닛 당 처리량은 8배가 되는 셈이다. CPU 코어 수는 동 세대의 동 사이즈의 PC & 서버 전용 CPU의 약 4배로 알려져 있다. 즉, ILP는 한층 낮지만, DLP와 TLP는 PC & 서버 전용 CPU의 4배 정도에서 그것 이상으로, CPU 전체의 연산 성능은 PC & 서버용 CPU 보다 1 자리 높은 레인지. 이것이 Larrabee의 구현이다.

 

Pentium 및 Larrabee 코어의 비교

 

 아마도 어느정도 공통적인 명령 세트 아키텍처의 확장 테두리 안에서, 구현을 범용의 PC & 서버 전용 CPU와는 크게 바꾼 실험이 Larrabee이다. 명령 로드맵을 선취해서 작은 CPU 코어와 조합했다고 바꿔 말해도 좋을지도 모른다. 여기서 중요한 점은 Intel이 Larrabee에서 PC & 서버용 CPU와 가능한한 프로그래밍 모델의 통일성을 도모하려는 점이다.

 Larrabee에 실장되는 Larrabee NI 자체는 사실상 x86의 새로운 명령 세트 확장에 지나지 않는다. 완전히 새로운 명령어 세트를 처음부터 만든 것은 아니다. 메모리 모델도, 칩 전체에서 일관성을 취한 캐시 아키텍처로 일반적인 CPU처럼 보인다. 벡터 머신적인 기술도 집어넣지만, 기본은 메인 스트림 CPU의 테두리에 알맞다. Gelsinger 씨는 다음과 같이 설명했다.

 "벡터 머신은 과거에 (벡터 슈퍼 컴퓨터 등에서) 뛰어난 피크 성능을 실현했다.그러나 범용성은 매우 나쁘고, 데이터 센터의 일부 이외에는 보급되지 않았다. 우리가 취하는 것은 (벡터 머신에) 어쩌면 비슷한 급진적인 아키텍쳐이지만, 캐시 코히런시의 유지와 같은, 보다 범용적이며 호환성이 있는 아키텍처를 계승하는 것이 좋다고 생각한다.

 

Larrabee의 블록 다이어그램

 

 예를 들어, Cell BE 아키텍처 등은 그 점 (캐시 일관성 등)에서 뒤떨어져 있다. 또한 GPGPU 아키텍처처럼, 매우 전문화 된 하드웨어 프로그램에 대해서도 널리 성공해서 보급되는 것은 없을 것으로 예상하고 있다.

 우리의 접근 방식은 그러한 (벡터 머신적인) 기능을 (기존의 CPU와) 호환성이 있는 방식으로 만들어 혁신적인 처리량과 비주얼 컴퓨팅 어플리케이션을 실현하는 것이다. "

 Intel의 Larrabee 방식에는 장점과 단점이 있다. 장점은 명령어 세트의 어느정도의 통일성이 유지되기 때문에 소프트웨어의 이식이 용이하게 되는 것이다. 예를 들어, 만약 미래의 Intel의 PC & 서버 전용 CPU가 Larrabee NI를 실장한 경우, 최초의 세대의 Larrabee 칩 용으로 작성된 코드를 실행하는 것이 가능할 것이다. Intel은 기본적으로 이 방법으로 IA-32 / Intel 64 아키텍처를 발전시켜 성공해 왔다. 그 구도를, throughput 컴퓨팅에도 가져온 것이 Larrabee와 Larrabee NI의 목적이라고 추측된다.

 그러나, 명령 세트의 통일성은 CPU 실장에 의해 제약도 있다. Intel 등 x86 계열 CPU는 x86 명령 세트의 속박에 의해서, 매우 복잡하고 규모가 큰 명령 디코더나 레지스터 수의 적음에 의한 캐쉬 대역 압박와 같은 CPU 구현상의 어려움을 안고있다. 같은 것이 향후의 벡터 확장에서도 발생할 가능성이 있다. 명령 세트 아키텍쳐도 일신하는 것이 더 최적화된 CPU를 만들 수 있다.

 Intel의 명령 아키텍쳐 확장의 전략이 보이는 Intel의 Larrabee NI. 가장 큰 의문은 Intel이 최초의 제품인 Larrabee를 잘 일으켜 세우는 것이 가능한가 여부. 그것이 Intel의 벡터 확장 전략의 미래를 점 치는 중요한 열쇠가 된다.

 

 

2008년 10월 17일 기사.

 

 

[분석정보] TOP500 슈퍼컴퓨터 순위 2015년 6월

 

 

[분석정보] TOP500 슈퍼컴퓨터 순위 2014년 11월

 

 

[분석정보] TOP500 슈퍼컴퓨터 순위 2014년 06월

 

 

[제품정보] Intel 차세대 Xeon Phi Knights Landing

 

 

[분석정보] 전환기를 맞이한 2014년 인텔의 서버 프로세서

 

 

[분석정보] TOP500 슈퍼컴퓨터 순위 2013년 11월

 

 

[분석정보] 매니코어 프로세서로 손바닥 슈퍼 컴퓨터를 실현

 

 

[분석정보] 4만 8000개의 제온파이로 중국 톈허2 세계에서 가장 빠른 슈퍼 컴퓨터

 

 

[분석정보] TOP500 슈퍼컴퓨터 순위 2013년 6월

 

 

[벤치리뷰] N형 문제 프로그램의 인텔 제온 파이 이식 평가

 

 

[벤치리뷰] 인텔 제온 파이 5110P와 엔비디아 테슬라 K20 행렬 곱 실효 성능 비교

 

 

[정보분석] 인텔 60코어 매니코어 "Xeon Phi" 정식발표

 

 

[분석정보] 2013년에 출시되는 Intel의 새로운 서버용 프로세서

 

 

[분석정보] 인텔 슈퍼컴퓨터용 가속기 Xeon Phi 5110P 발표

 

 

[분석정보] Intel, HPC 전용 보조 프로세서 Xeon Phi 2013년 1월부터 일반용으로 출시

 

 

[아키텍처] IDF 2012에서 주목한 한가지, 매니 코어 "Knights Corner"

 

 

[분석정보] Intel 매니코어 MIC 와 Atom SoC Medfield 를 발표

 

 

[정보분석] IDF 2011 Justin Rattner 기조연설 매니코어 시대가 다가옴 2/2부

 

 

[정보분석] IDF 2011 Justin Rattner 기조연설 매니코어 시대가 다가옴 1/2부

 

 

[Research @ Intel 2011] 인텔 HD Graphics로 오픈CL 시현 및 저전력 회로 설계

 

 

[분석정보] Intel 래트너 CTO에게 듣는 Atom 탄생 비화

 

 

[정보분석] 같은 무렵에 시작된 Nehalem과 Larrabee와 Atom

 

 

[분석정보] Intel 48코어 매니코어 연구 칩 기술 공개

 

 

[분석정보] Intel은 Larrabee 계획과 아키텍처를 어떻게 바꾸나?

 

 

[분석정보] 다시 처음부터 시작된 라라비 무엇이 문제였나?

 

 

[분석정보] Intel 48 코어 IA 프로세서를 개발

 

 

[분석정보] 라라비 (Larrabee)의 비장의 카드 공유 가상 메모리

 

 

[분석정보] 인텔의 스칼라 CPU + 라라비의 이기종 CPU 비전

 

 

[분석정보] Larrabee는 SIMD와 MIMD의 균형 - Intel CTO가 말한다.

 

 

[분석정보](암달의 법칙) 2010년대 100 코어 CPU 시대를 향해서 달리는 CPU 제조사

 

 

[분석정보] 인텔 GDC에서 라라비 명령 세트의 개요를 공개

 

 

[분석정보] GDC 2009 드디어 소프트 개발자 정보도 나온 "Larrabee"

 

 

[분석정보] 그래픽 및 DirectX 로드맵을 정리

 

 

[정보분석] Intel 힐스보로가 개발하는 CPU 아키텍처의 방향성

 

 

[분석정보] SSE와는 근본적으로 다른 Larrabee의 벡터 프로세서

 

 

 

[정보분석] 팀스위니 미래의 게임 개발 기술. 소프트웨어 렌더링으로 회귀

 

 

[분석정보] 정식 발표된 라라비(Larrabee) 아키텍처

 

 

[아키텍처] 베일을 벗은 인텔 CPU & GPU 하이브리드 라라비(Larrabee)

 

 

[분석정보] 9년전의 아이디어에서 태어난 아톰. 리서치 @ 인텔

 

 

[분석정보] 왜 인텔은 샌디브릿지에 AVX를 구현하는가?

 

 

[분석정보] x86에서의 탈피를 도모 Intel의 새로운 로드맵

 

 

[분석정보] Intel의 Larrabee에 대항하는 AMD와 NVIDIA

 

 

[분석정보] 상변화 메모리 PRAM의 제품화, 2TFLOPS달성을 데모

 

 

[분석정보] 고기능 고성능 + 에너지 절약 저비용을 양립시키는 Intel의 대처

 

 

[분석정보] Intel CPU의 미래가 보이는 80코어 TFLOPS 칩

 

 

[분석정보] SSE4 명령어와 가속기에서 보이는 Intel CPU의 방향성

 

 

[분석정보] 래트너 CTO 기조 강연 보고서 차세대 데이터 센터 기술을 소개

 

 

[분석정보] 심플 코어로 향하는 차세대 CPU 아키텍처

 

 

[분석정보] Intel CTO 래트너 Tera-Scale Computing에 대해 설명

 

 

[분석정보] 보이는 인텔의 5~10년 후 CPU 아키텍처

 

 

[아키텍처] 폴락의 법칙에 찢어지고 취소된 테하스(Tejas)

 

 

[분석정보] Many-Core CPU로 향하는 Intel. CTO Gelsinger 인터뷰 1/2부

 

 

[분석정보] 폴락의 법칙을 깨뜨리기 위한 멀티 코어

 

 

[고전 2001.02.08] 서버용 CPU는 멀티 CPU 온 다이, PC용은 통합화? Intel 겔싱어 CTO ISSCC강연

 

 

[고전 2001.02.07] 인텔 폴락의 법칙이 등장 Intel 겔싱어 CTO의 ISSCC 강연

 

 

[고전 2001.02.06] 2010년 CPU 전력은 600W?