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

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

tware 2009. 3. 30. 21:00

 

Larrabee 신명령의 정보만 공개

 Intel은 게임 개발자 컨퍼런스 "GDC (Game Developers Conference)" 기술 세션에서 새로운 아키텍처의 높은 스루풋 매니코어 CPU "Larrabee (라라비)" 의 명령어 세트의 개요를 밝혔다. Larrabee는 16 ~ 24개 (2세대째)의 CPU 코어를 탑재한다 말하는 x86계 매니코어 CPU다. CPU 코어는 Pentium (P54C) 상당의 In-Order 실행 2 명령 발행 파이프 라인에서 각각의 CPU 코어에 16-wide 벡터 유닛을 탑재한다. CPU로서 프로그램 할 수 있지만, GPU와 같은 수준의 그래픽 처리도 할 수 있는, 즉, CPU와 GPU를 겸할 수 있는 점이 Larrabee의 큰 특징이다.

 GDC에서는 x86 명령 세트 확장으로 더해진 100개 이상의 Larrabee 신 명령 (LRBni 또는 LNI)의 대략적인 개요와 LRBni (LNI)를 사용한 소프트웨어 기반의 래스터 라이저의 개요 등을 설명했다. 명령어 세트의 개요가 밝혀진 것은 이번이 처음이다. 다만 GDC에서도 Larrabee의 실제 칩의 밤 데모 등은 행해지지 않았다. 올봄쯤에는 공개된다던 소문이 있었던 Larrabee의 실물 모습은 이번 GDC에서도 기밀 유지로 끝냈다. 또한 제품화 시기의 공식적인 발표도 없고, 제품 수준에서는 정보에 진전은 없었다.

 Larrabee의 벡터 유닛은 기존의 Intel CPU에 탑재된 SSE 벡터 유닛의 확장판이다. 그러나 큰 차이점이 있다. 벡터 폭을 넓혀 더 많은 연산을 병렬로 할 수 있도록 한 점과 명령 포맷을 크게 바꾼 점, 적화산이나 (FMA) 그래픽 처리 명령어를 더한 점,​​ 그리고 벡터 형 슈퍼 컴퓨터나 최신 GPU가 채용하는 것과 같은 마스크 레지스터에 의한 벡터 분기를 가능하게 한 점. 이번 GDC에서는 LRBni (LNI)의 설명을 통해 이러한 차이를 설명했다.

 

Larrabee x86 Core Block Diagram_Pentium 비교판

 

 

Larrabee, CPU, GPU 프로그래밍

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

 


벡터 레지스터는 32개 / 스레드에서 합계 128개

 Larrabee의 벡터 유닛은 32-bit 단정밀도 부동 소수점 데이터 16개에 대해 적화산 (FMA) 연산을 포함 연산을 SIMD (Single Instruction, Multiple Data) 형으로 행할 수 있다. SSE 벡터 유닛의 4배의 SIMD 폭 벡터 유닛이다. 1사이클에 보다 많은 연산을 병렬로 행할 수 있기 때문에 Larrabee의 부동 소수점 연산 성능은 기존 CPU보다 1 자리수 높은 GDC에서는 1TFLOPS 이상으로 설명되었다. 각 CPU 코어는 적화산이 (FMA) 가능한 16-wide 벡터 유닛을 가지고 있기 때문에 16코어로 하면 Larrabee는 1.96GHz에서 1TFLOPS에 도달 (스칼라 파이프의 부동 소수점 연산은 포함하지 않는다). 이 때문에 Larrabee는 2GHz 이상으로 제품화 될 예정임을 짐작할 수있다.

 

 

 

 

 

 

 

 

intel Tom Forsyth 씨


 Larrabee의 각 CPU 코어의 벡터 유닛은 신설 벡터 레지스터를 사용한다. 벡터 레지스터는 32 - bit 데이터 슬롯을 16개 갖춘 512-bit 길이로 되어있다. 벡터 레지스터의 수는 각 스레드 32 개 (v0-v31) 씩. Intel의 명령 세트 아키텍처는 레지스터 갯수가 적은 (8 ~ 16) 것이 약점이었지만, Larrabee 신 명령 (LRBni 또는 LNI)에서는 드디어 레지스터 갯수를 32 개로 확장했다. Larrabee는 4way 하드웨어 멀티 스레딩을 지원하기 위해 "Larrabee의 각 CPU 코어는 총 128 개의 물리 벡터 레지스터를 가진다"(Tom Forsyth 씨, Intel )고 한다. Cell BE의 SPU (Synergistic Processor ​​Unit)도 128 개의 물리 레지스터를 가지지만, 이쪽은 128개 모두가 1 스레드에서 액세스 할 수 있다.

 Larrabee는 메모리 액세스 레이턴시나 실행 레이턴시의 은폐를 하드웨어 멀티 스레딩과 소프트웨어 멀티 스레딩의 조합으로 행한다. 수십 스레드 이상 하드웨어 멀티 스레딩을 지원하는 GPU와 비교하면 멀티 스레드 기능은 작다. 그러나 소프트웨어 멀티 스레딩도 L1 캐시가 매우 짧은 레이턴시로 멀티 포트이기 때문에 단시간에 대피 수 있다고 한다. "Larrabee 에서는 L1 캐시를 레지스터의 연장으로 생각할 수 있다"고 Intel의 Tom Forsyth 씨는 설명한다.

 

Larrabee Over View

 

 

 

 

 

 

 


마스크 레지스터에 의한 벡터 조건 분기가 가능

 LRBni (LNI)은 현대적인 3 피연산자 형식을 취한다. Intel의 전통적인 두 번째 피연산자 형식에서 확장 되었기 때문에 소스 피연산자의 데이터를 파괴하지 않고 연산 결과를 저장 할 수 있다. 또한 피연산자 중 하나는 메모리 주소로 할 수 있다. 레지스터 간 연산으로 짜내는 RISC 형의 포맷이 아니라 연산과 로드가 1 명령으로 포장된 Intel의 전통적인 스타일을 가지고 간다.

 LRBni (LNI)에서는 ,32-bit 정수 연산 (int32) ,32-bit 부동 소수점 연산 (float32) 64 bit 부동 소수점 연산 (float64)의 연산이 지원된다. mul, add, sub, abc, sbb, subr, and, or xor, madd (multiply-add), multiply-sub 같은 일반적인 연산 명령어가 포함 된것 외에  벡터 비교 명령, 정렬 / 비정렬의 스토어 /로드 , 분산 / 수집, bit 조작 등의 명령이 있다. 즉, 벡터 프로세서에서 필요한 명령어는 모두 갖췄다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 Larrabee의 벡터 유닛은 8개의 16-bit 길이의 마스크 레지스터를 갖춘다. 이것은 벡터 레지스터에 대한 쓰기 마스크를 제어하는​​ 레지스터로서 사용된다. 벡터 슈퍼 컴퓨터나  최신 GPU에서 일반적인 수법이다. 이에 따라 ,16-wide 벡터 프로세서의 각 레인마다 사실상의 조건​​ 분기를 실현하는 "프리디케이션 (Predication)"이 가능해진다. 프리디케이션은 현재의 GPU도 갖추고 있다.

 기존의 SSE 형의 벡터 유닛은 4개의 데이터 전부 대해서 동일한 작업을 실행해야 했다. 그러나 Larrabee의 벡터 유닛 에서는 16개의 데이터에 대해서 행한 연산의 결과를 각 레지스터에 기록하거나 기록하지 않는지 여부를 마스크 레지스터에 의해 제어한다. 이것에 의해 다른 프로그램 경로를 실행시킬 수있다. 즉, 벡터 프로세서에서 분기가 가능해진다.

 

벡터 조건 분기 흐름

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


SOA 형식의 데이터 배열을 표준으로 하는 Larrabee

 LRBni (LNI)는 프리디케이션이 가능하기 때문에, SSE와 다른 데이터 배열을 취하기 쉽다. SSE는 데이터를 "AOS (array of structure)" 라고 부르는 배열로 하는 것이 일반적이다. 그것에 비교해, LRBni 에서는 대부분의 경우 데이터를 "SOA (structure of array)"라고 부르는 배열로 하는 것을 전제로 하고있다. AOS는 "팩크드 (packed)"라고 ​​바꿔 말하는 것이 가능하고, SOA는"스칼라 (scalar) "라고 바꿔 말하는 것이 가능하다.

 AOS와 SOA는 큰 차이가 된다. 예를 들어, SSE에서 SOA의 경우 동일한 연산을 행하는 데이터 세트를 최대 4 데이터분 정리할 필요가 있다. 그래픽의 정점 처리를 예로 들면, 3차원 좌표의 xyz 각각의 값을 팩해 xyz에 대해 동일한 연산 처리를 행한다. 이것에 비해, LRBni에서 SOA의 경우 16 개의 데이터 세트를 갖추고 팩 할 필요는 없다. 정점 처리라면 많은 정점 xyz를 각각 정리해 처리한다. 예를 들어, 최초에 16개의 x를 처리하고 다음에 16 개의 y를 처리 마지막에 16개의 z를 처리한다.

 기존의 SSE 형식의 벡터 유닛의 경우 SOA를 취할 경우 특정 작업을 행하는 정점과 행하지 않는 정점을 혼합 하는 것이 가능하지 않았다. 그러나 LRBni 에서는 이 경우에도 프리디케이션에 의해 가각의 정점마다 특정 연산 경로를 실행할지 여부를 제어 할 수 있다. 예를 들어, 첫 번째 정점에는 프로그램 중의 경로 A를 실행하지 않는 경우에는 마스크 레지스터에 의해 레지스터에 연산 결과를 기록하지 않도록 제어한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 LRBni는 SOA를 기본으로 하기 때문에 메모리에서 레지스터로 데이터를 로드 할 때 분산된 데이터를 모으는 "개더 (gather)"를 수행해야 하는 경우가 많다. 스토어 때는 그 반대로 데이터를 분산하는 "스캐터 (scatter)"가 필요하게 되는 경우가 많다. 분산 / 수집도 LRBni는 마스크 레지스터를 사용하여 데이터 레인마다 로드 / 스토어 하는 데이터를 선택할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 Intel은 GDC에서 Larrabee의 이러한 명령 세트를 밝히는 동시에, 그래픽 처리 중의 래스터라이즈 에서 새로운 명령을 사용한 효율적인 알고리즘의 구현을 밝혔다. 통상 GPU는 래스터라이즈 위한 전용 하드웨어를 갖추지만, Larrabee는 래스터라이즈를 소프트웨어로 처리한다. 기존의 소프트웨어 솔루션은 라운드 로빈으로 스칼라 형식으로 행하고 있던 래스터 화를 Larrabee는 벡터 프로세서에서 어느 정도 효율적으로 행할 수 있다고 한다. 또한 Intel은 "C + + Larrabee Prototype Library"를 LRBni 이해를 위해 제공하는 것도 밝혔다.

 명령어 세트가 밝혀진 것으로, Larrabee의 성격은 더 선명 해졌다. CPU와 GPU의 중간 지점. 높은 스루풋 풀 프로그래머블 프로세서 인 Larrabee는 미래의 그래픽 아키텍쳐를 쇄신 할 가능성을 내포하고 있다. 그것은 그래픽 API에 묶이지 않는 소프트웨어 렌더러의 세계다. 그러나 거기에 이르기 위해 넘어야 할 벽이 높다.

 

CPU 아키텍처의 분화와 공통화

 

 

 

그래픽 소프트웨어 모델의 변화

 

 

2009년 3월 30일 기사 입니다.

 

 

 

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

 

 

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

 

 

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

 

 

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

 

 

[제품뉴스] Intel Xeon Phi 새로운 폼 팩터 채용 포함 5모델 추가

 

 

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

 

 

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

 

 

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

 

 

[분석정보] IDF 2012에서 주목한 한가지, 매니 코어 "Knights Corner"

 

 

[정보분석] 엔비디아 세계 최다 트렌지스터 칩 GK 110 공개

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

[분석정보] 라라비 (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)

 

 

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

 

 

[정보분석] 암달의 법칙(Amdahl's law)을 둘러싼 Intel과 AMD의 싸움

 

 

[정보분석] 모든 CPU는 멀티 스레드로, 명확하게 된 CPU의 방향

 

 

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

 

 

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

 

 

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

 

 

 

[분석정보] 5W 이하의 저전력 프로세서의 개발로 향하는 Intel