이기종 시스템 아키텍처

이기종 시스템 아키텍처(Heterogeneous System Architecture, HSA)는 공유 메모리와 태스크를 가지고 중앙 처리 장치와 그래픽 처리 장치가 동일한 버스에 연동될 수 있게 하는 업체들 간 사양의 집합이다. HSA는 HSA 재단에 의해 개발되고 있으며, 여기에는 AMD와 ARM 등이 참여한다. 플랫폼의 명시된 목표는 CPU, GPU 및 기타 컴퓨팅 장치 간의 통신 대기 시간을 줄이고 프로그래머의 관점에서 이러한 다양한 장치의 호환성을 높이는 것이다. (현재 OpenCL 또는 CUDA를 사용하여 수행해야 하는 것처럼)

CUDA와 OpenCL뿐 아니라 다른 대부분의 고급 프로그래밍 언어들은 HSA를 사용하여 실행 성능을 높일 수 있다. 이기종 컴퓨팅은 태블릿, 스마트폰, 기타 모바일 장치, 비디오 게임 콘솔과 같은 시스템온칩 장치에 널리 사용된다. HSA를 사용하면 프로그램이 별도의 메모리나 스케줄링 없이 부동 소수점 계산을 위해 그래픽 프로세서를 사용할 수 있다.

 원리 
HSA의 원리는 계산을 GPU에 맡길 때 프로그래머의 짐을 덜어주는 것이다. 원래 AMD가 홀로 주도하여 FSA로 불렸던 이 개념은 GPU 이상의 처리 단위(예를 들어, 다른 하드웨어 설계 기업의 DSP)까지 아우르도록 확장되었다.

현대의 GPU들은 SIMD와 SIMT를 수행하기에 매우 적절하지만 현대의 CPU들은 브랜치 등의 최적화가 진행되고 있다.

 개요 
원래 셀 브로드밴드 엔진(Cell Broadband Engine)과 같은 임베디드 시스템에 의해 도입된 여러 시스템 행위자 간에 시스템 메모리를 직접 공유함으로써 이기종 컴퓨팅이 더욱 주류를 이루게 되었다. 이기종 컴퓨팅 자체는 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 디지털 신호 프로세서(DSP) 또는 모든 유형의 ASIC(주문형 집적 회로) 등 여러 처리 장치를 포함하는 시스템을 의미한다. 시스템 아키텍처에서는 그래픽 프로세서와 같은 모든 가속기가 시스템 CPU와 동일한 처리 수준에서 작동할 수 있다.

주요 기능 중 HSA는 컴퓨팅 장치를 위한 통합 가상 주소 공간을 정의한다. GPU가 전통적으로 기본(CPU) 메모리와 별도로 자체 메모리를 갖는 경우 HSA는 장치가 포인터를 공유하여 데이터를 교환할 수 있도록 이러한 장치가 페이지 테이블을 공유하도록 요구한다. 이는 맞춤형 메모리 관리 장치에 의해 지원된다. 상호 운용성을 가능하게 하고 프로그래밍의 다양한 측면을 용이하게 하기 위해 HSA는 CPU와 가속기 모두에 대해 ISA에 구애받지 않고 고급 프로그래밍 언어를 지원하도록 고안되었다.

 같이 보기 
 OpenMP
 불균일 기억 장치 접근(NUMA)
 제로 카피
 공유 메모리
 GPGPU

 각주 

 외부 링크 

  by Vinod Tipparaju at SC13 in November 2013
  HSA and the software ecosystem
  2012 – HSA by Michael Houston 


분류:이기종 컴퓨팅