본문 바로가기
IT/Hardware/CPU/MB

[ADFS 12] ARM과 PowerVR를 참여시킨 HSA 구상

by 에비뉴엘 2012. 6. 29.
반응형
●HSA의 생태계를 스타트시키는 AMD 
 GPU를 CPU와(할 수 있는 한) 같은 간단하고 쉬움으로 프로그램 할 수 있도록(듯이) 한다.이것이 AMD의 제시하는프로그래밍&실행 체제 「HSA(Heterogeneous System Architecture)」의 골이다.AMD는 작년(2011년)의 동사의 기술 컨퍼런스 「AMD Fusion Developer Summit(AFDS)」로, HSA(당시는 Fusion System Architecture(FSA)으로 불리고 있었다)의 개요를 분명히 했다.그리고, 지난 주 개최된 1년 후의 AFDS에서는, AMD로 HSA를 담당하는 Phil Rogers씨(AMD Corporate Fellow)가, 동구상이 거의 순조롭게 진척 하고 있는 것을 나타냈다.


HSA Foundation의 창업멤버



 이번 AFDS 2012에서는, 우선, AMD는 작년의 단계에서는 청사진에 지나지 않았던 HSA의 각 요소의 상세를 분명히 했다.그리고, 구상 뿐이었던 HSA의 얼라이언스에 참가하는 메이커를 소개했다.구체적으로는, HSA로 하드웨어를 추상화 하는 중간 언어 「HSAIL」라고, CPU와 GPU의 메모리를 통합하는 메모리모델, 그리고 HSA로의 실행/디스팟치모델에 대해보다 자세하게 설명했다.얼라이언스에서는, 「HSA Foundation」를 설립해, ARM, Imagination Technologies, MediaTek, Texas Instruments가 창업자로서 이름을 늘어 놓았다. 
 순조롭게 가면, AMD GPU 코어 뿐만이 아니라, ARM Mali 코어나 PowerVR등의 코어가, 기본적으로는 HSA의 중간 코드(HSAIL)에 떨어뜨려진 프로그램을 공통에 실행(HSA의 파이나라이자콘파이라가 각 프로세서의 native code으로 변환한다)할 수 있게 된다.AMD는, HSA를 보다 구체적으로 나타내 보여, HSA를 지지하는 생태계의 수립을 선언한 것이 된다.HSA Foundation를 통해서 오픈화하는 것으로, 생태계를 기르는 것이 AMD의 전략이다.


●엔비디아와 승부는 지금부터다.
 
 HSA는, AMD가 살아 남아, 발전하기 위한 열쇠가 되는 소프트웨어 모델이다.AMD는, 헤테로지니아스(Heterogeneous:이종 혼합) 컴퓨팅이, 향후의 컴퓨팅의 모델이라고 강조하고 있다.그러나, GPU를 범용에 사용하게 하는 GPU 컴퓨팅에서는, 지금까지, NVIDIA에 대해서 뒤쳐지고 있었다.

 그러나, AMD는 현재의 GPU 컴퓨팅의 침투도는, 아직 지극히 한정된 스킬의 높은 프로그래머(AMD는 닌쟈와 이 층을 부르고 있다)에 대하는 것이라고 보고 있다.보다 넓은프로그래밍 커뮤니티에 침투하기 위해서는,프로그래밍과 실행의 전체의 구조를 변혁할 필요가 있다는 것이 AMD의 주장이다.또, 보다 열린 체제로 하기 위해서는, 폭넓은 파트너를 말려 들게 하고 생태계를 재배할 필요가 있다고 생각하고 있다.

 AMD의 주장을 거칠게 말하면, 「NVIDIA의 고객층은, 아직 극히 일부로, 승부는 지금부터.보다 넓은 일반적인 프로그래머층을 잡은 사람이 진정한 승자」가 된다.그 때문에, 종래의 GPU 컴퓨팅 커뮤니티에서, 일반적인 프로그래머층이, 보다 많은 디바이스에 대해서, 보다 간단하고 쉽게 병렬프로그래밍을 할 수 있도록(듯이) 하려고 하고 있다.

 구체적으로는, 몇백만명의 일반적인 프로그래머가, AMD 뿐만이 아니라 ARM의 CPU나 GPU, PowerPC GPU, TI의 DSP 등 많은 코어에 대해서, 공통된프로그래밍 플랫폼에서, 보다 CPU에 가까운 수법으로 프로그램을 쓰고, 하드의 차이를 거의 의식하지 않고 실행할 수 있도록 한다.그렇게 되면, 다양한 분야에서 GPU 어플리케이션이 흘러넘치게 된다, 라고 하는 것이 AMD의 비전이다.그 때문에, AMD는, 보다 능숙하게 GPU 하드웨어를 추상화 할 수 있는 소프트웨어층을 구축할 필요가 있다.그것을 실현하는 것이 HSA의 체제이며, 그 HSA의 눈은 CPU와 GPU로 메모리어드레스를 공유시키는 것에 있다.

 NVIDIA와의 승부를 말한다면, 현재의 GPU프로그래밍의 다음의 스텝에 초점을 맞추는 것으로, NVIDIA의 지금의 어드밴티지를 얇게만들려고 하고 있다.GPU 컴퓨팅이 본격적으로 침투하는 시대를 향해서, 승부를 걸려 하고 있다.그리고, PC시장에서는 CPU를 가지지 않는 NVIDIA에는 할 수 없는, CPU와 GPU의 메모리어드레스의 통합으로, 차별화하려고 하고 있다.

 Intel과의 승부에서는, Larrabee의 포기선언이후, 뒤쳐 지고 있는 Intel에, 소프트웨어 체제의 구축으로 한층 더 차이를 내려 하고 있다.모바일계의 GPU 코어나 DSP, 가속기를 가지는 벤더를 HSA의 생태계에 구슬리는 것으로, Intel이 공격하려 하고 있는 모바일 어플리케이션 프로세서 시장에, HSA의 생태계를 침투시키는 일도 목적이다.물론, NVIDIA와 Intel이 불꽃을 튀기고 있는 HPC(High Performance Computing)의 시장에도 HSA를 무기로 침투하려고 듣고 있다.다만, 이것은, HPC 전용의 APU(Accelerated Processing Unit)가 등장하고 나서 본격화하게 될 것이다.

●수백만의 프로그래머를 GPU로 끌여들인다 
 AMD는, 이번, HSA가 노리는 곳(중)을, 누구라도 알기 쉽게 설명했다.아래의 슬라이드는, 세로축을 소프트웨어에 의해서 얻을 수 있는 퍼포먼스나 전력 삭감등의 이점으로, 위에 가면 갈수록 이점이 많다.횡축은 그에 대한 소프트웨어 개발에 필요한 노력이나 시간, 스킬 등.좌하의, 전통적인 CPU 베이스의 소프트웨어 개발은 노력도 적지만, 그 대신해 얻을 수 있는 퍼포먼스는 적고 전력 효율등도 나쁘다.그에 대한 우상의 현행의 GPU 베이스의 소프트웨어 개발은, 얻을 수 있는 퍼포먼스나 전력 효율은 크지만, 개발에 노력이나 스킬이 걸린다.


개발자의 투자나 노력과 이익이나 전력 삭감

 
 그 때문에, CPU 소프트웨어에는 1,000만 이상의 프로그래머가 있어 400만의 어플리가 있는데, GPU 소프트웨어는 「프로그래머의 수는 훨씬 적고, 아마 토탈로 10만 정도일 것이다」(Rogers씨)이라고 하는 상태로 어플리는 수백 정도 밖에 없다고 AMD는 말한다.그러나, 좌상의 그린의 테두리와 같이, HSA 체제와 라이브러리를 사용하면, 최종적으로 개발 노력은 훨씬 적게 된다.그 결과, 수백만의 프로그래머가 코딩 하게 되어, 수십만의 어플리가 등장할 것이라고 AMD는 보고 있다.그린의 HSA의 테두리가 조금 오른쪽으로 어긋나 있는 것이 미소로, AMD는 CPU와 같을 간단하고 쉬움은 되지 않지만, 거기에 가까운 레벨에 가지고 갈 수 있으면 AMD는 말하고 싶다는 것을 알 수 있다.

 어플리케이션 분야는, 내츄럴 휴먼 인터페이스나 생체 인증, AR(확장 현실), 화상이나 영상 등 AV컨텐츠의 검색, HD이상의 해상도의 영상이나 3 D그래픽스, 컨텐츠를 디바이스를 선택하지 않고 심리스에 재생할 수 있도록 하는 것 등.GPU 컴퓨팅으로 잘 말해지는,"RMS"로 불리는 「Recognition(인식)」, 「Mining(분석&추출)」, 「Synthesis(합성)」의 어플리케이션군이다.

 




●내년에 메모리 통합, 2014년에 컨텍스트 스윗치 
 
 위의 도식을 성공시키기 위한 열쇠가 HSA 체제의 다양한 요소다.AMD의 Rogers씨는, 이번은 AMD의 개발의 스타일을 역전시켰다고 설명한다.지금까지는, 우선 하드웨어를 개발해, 그 하드하게 액세스 할 수 있는 API를 제공해, 소프트웨어에는 새롭게 API에 대응받는다고 하는 차례였다.그러나, 이번은, 기존의프로그래밍 모델이나 기존의 언어, 기존의 코드를 가능한 한 살릴 수 있도록(듯이) 하고 가지 않으면 안 된다고 판단해, 게다가 맞추어 소프트웨어와 하드웨어의 양쪽 모두를 동기 시켜 개발하고 있다고 한다.

 그리고, HSA로 가장 중요한 포인트는, CPU와 GPU의 메모리의 통합에 있다.「소프트웨어 플랫폼에 대한 희망 리스트의 톱에 오르고 있는 것은, CPU와 GPU의, 유니파이드메모리아드레스스페이스다.coherency가 유지된 공유 메모리를 실현될 수 있으면, GPU의프로그래밍은 용이하게 되어, 쓸데 없는 데이터 카피를 완전하게 삭감하는 것으로 전력도 저감 할 수 있다」라고 Rogers씨는 말한다.

 HSA의 로드맵아래의 슬라이드와 같이, 현재는 GPU 아키텍쳐가 GCN(Graphics Core Next)에 확장되고, C++의 서포트나 HSA 소프트웨어 스택으로부터의 다이렉트인 태스크의 디스팟치등이 가능하게 되었다.내년(2013년)이 되면, 드디어 HSA의 메모리 통합의 페이즈에 들어간다.CPU와 GPU의 주소 스페이스를 통합해, CPU 포인터 베이스로 시스템메모리에 액세스 할 수 있도록(듯이) 해, 하드웨어로 CPU와 GPU의 메모리 공간의 coherency를 유지한다.


헤테로지니어스의 로드맵
 
 다만, 이 차트로 나타나고 있는 것은, 어디까지나 이론적인 통합이며, 물리적으로 완전하게 GPU와 CPU의 사이에서의 메모리엑세스의 패널티가 없어지는 것은 약속은 되어 있지 않다.현재의 AMD APU에서는, 각각의 코어로부터 서로의 메모리 공간에 액세스 하는 경우에, 대역면에서 큰 패널티가 있다.아래의 그림은 1세대전의 Llano(라노)의 것으로, 레드의 화살표는 메모리아크세스의 대역을 나타내고 있어 상당한 제약이 있는 것을 알 수 있다.Trinity의 수치는 분명하지 않지만, Llano와 내부 버스의 구조가 닮고 있기 때문에 페날티가 있을 것이다.이것이 완전하게 해소될지 어떨지는, 2013년의 APU를 기다리지 않으면 모른다.

 덧붙여서, GPU의 컴퓨트콘테크스트스잇팅이나, 그래픽스 처리의 비선점형인 태스크 변환은, 한층 더 그 앞의 2014년이 되고 있다.현재의 AMD GPU에서는, 시다코드를 실행하고 있는 한중간에 콘텍스트를 스윗치 하지 못하고, CPU와 같은 세입도로의 변환은 할 수 없다.2014년에, 거기까지를 실현하고, HSA는 일응의 완성을 보게 된다.

●2 계층에 헤어진 HSA의 런타임 스택 
 HSA에서는, 종래의 그래픽스 드라이버와는 다른 루트에서, GPU나 다른 가속기에 액세스 하는 소프트웨어층을 준비한다.그래픽스 드라이버는 오버헤드가 크지만, HSA 스택은 보다 적은 오버헤드로 GPU에 곧 재적으로 태스크를 디스팟치 할 수 있도록(듯이) 한다.그렇다고는 해도, GPU의 네이티브 명령 세트를 런타임 컴파일러로 은폐 하는 것은 변하지 않다.

 아래와 같이 HSA에서는 런타임이 2 계층으로 나누어져 있다.그림중으로 HSA 런타임으로 되어 있는 스택안의 HLC(High Level Compiler)와 HSA 파이나라자(HSA Finalizer)다.HLC로, 중간 언어의 HSAIL에 떨어뜨려, 파이나라이자가 하드웨어의 네이티브 명령 세트로 변환한다.HSAIL는, NVIDIA의 소프트웨어 스택의 「PTX」에 해당되는 중간 언어로, 그 의미에서는 간신히 NVIDIA를 따라 잡았다고도 말할 수 있다.덧붙여서, 종래의 AMDIL 베이스의 드라이버측의 소프트웨어 스택도 병존 한다.
 


HSA 솔루션의 스택
 
 HSA Foundation의 참가 하드웨어 벤더는, 이 소프트웨어 스택에 자사의 프로세서를 자리잡을 수 있다.GPU 코어라면 HSAIL 코드를 컴파일 하는 파이나라이자를 실장하면 대응을 할 수 있다.HSAIL 자체도 벤다스페시픽크인 확장을 인정하는 사양이 되고 있다.만약, HSAIL로 커버할 수 없는 가속기가 있었을 경우도, 상위의 HSA 런타임으로 서포트할 수 있다.AMD는, HSA 스택을 오픈 소스화할 것을 약속하고 있다.
 


HSA에의 오픈소스화
 
 상위에서는, OpenCL와 C++ AMP를 위한 병렬 원시적 라이브러리인 HSA BOLT를 준비한다.프로그래밍을 용이하게 하기 위해서는, 리치한 라이브러리를 빠뜨릴 수 없기 때문에, AMD는 서두르고 있다.또, AMD는, C++ AMP나 HSA Bolt로의 퍼포먼스 게인의 차트도 나타내 보였다.

병렬 원시적 라이브러리 「HSA Bolt」 

C++ AMP, HSA Bolt로의 성능 상승 차트 


Java, APARAPI와 HSA 런타임의 전개 

APARAPI에 의한 Java의 동작 


 Java로의 GPU 컴퓨팅을 위한 API 세트인 「APARAPI」라고 HSA의 향후의 전개도 나타내 보였다.이 로드맵에서는, 최종적으로 Java 버추얼 머신에의 HSA 런타임의 통합을 목표로 하고 있는 것을 알 수 있다.즉, Java VM로부터 다이렉트에 HSAIL를 입기 시작하고, 얇은 파이나라이자 넘어로 타겟 하드웨어로 실행 시키려고 하고 있다.오버헤드를 최소화하려는 비전이다.
●유력소프트웨어 메이커가 빠져 있다 
 쫙 본 것만으로도, AMD의 HSA는 매우 야심적인 체제로, AMD가 꽤 장기적인 비전을 가지고 있는 일도 안다.그러나, 아직, HSA의 완성계에는, 부족한 요소가 있다.예를 들면, HSA를 업계의 표준적인 테스크 디스크팻쳐에 통합시킨다고 하는 비전은, 아직 진전이 없다.이것이 실현되면, CPU와 GPU의 양쪽 모두의 태스크를, 심리스에 디스파체로부터 발행할 수 있게 된다.아래는, HSA의 비전을 발표한 2010년의 Analyst Day로 AMD가 나타내 보인 슬라이드다.Apple의 「Grand Central Dispatch(GCD)」, Microsoft의 「Concurrency Runtime (ConcRT)」, Intel의 「Threading Building Blocks(TBB)」등의 이름이 있다.

2010년의 Analyst Day로 나타내 보인 HSA 구상
 

그러나, 이번도 이 부분은 공백인 채로, HSA Foundation의 설립 멤버에게도 유력 OS벤더나 소프트웨어 벤더의 모습이 없다.작년의 AFDS로 키노트 스피치를 행한 Microsoft도 멤버가 되지 않았다.소프트웨어 체제를 만들어 가려는 이야기인 것에도 불구하고, 아직 유력한 소프트웨어 파트너를 끌어 들이는 것이 되어 있지 않다.이 점은, 향후의 진전을 볼 필요가 있다.

 
반응형

댓글