포커스 최근의 병렬 프로세서 기술 동향 * 정병권* 김영우** 김학영** 현재와 같은 디지털 환경에서 생성되는 데이터는 그 규모가 방대하며, 생성주기는 짧고, 형 태와 수치 데이터뿐 아니라 문자와 영상 데이터도 포함하고 있다. 이러한 데이터 환경은 과거 에 비해 데이터의 양이 폭증했을 뿐만 아니라 데이터의 종류도 다양하여 인간의 능력으로는 처리가 불가능하게 되었다. 이를 위한 적절한 해결방안으로서 막대한 데이터를 고속으로 처리 하기 위해 병렬 프로세서의 기술을 접목한 빅데이터, 클라우드 컴퓨팅과 같은 새로운 기술이 제시되고 있다. 본 고에서는 이러한 데이터를 고속으로 처리하기 위한 병렬 프로세서 기술과 최근 개발 동향에 대해 알아보고자 한다. 목 차 Ⅰ. 개 요 Ⅱ. 병렬 프로세서 정의 Ⅲ. 병렬 프로세서 기술 동향 IV. 결 언 I. 개 요 컴퓨터의 성능을 가늠하려면 중앙처리장 치(CPU) 성능을 보면 된다. 과거에는 프로 세서의 성능을 동작 주파수를 높이는 방법 에서 찾았지만 현재는 프로세서의 동작 주 파수를 높이는 방법이 아닌 다수의 프로세 서를 집적하는 멀티 프로세서로 기술 발전 이 이루어지고 있다. CPU 는 컴퓨터를 구동 할 때 가장 기본이 되는 두뇌로 막대한 양 의 데이터를 처리하기 위해 연구소나 슈퍼 * ETRI 서버플랫폼연구실/선임연구원 ** ETRI 클라우드컴퓨팅연구부/책임연구원 * 본 연구는 미래창조과학부 및 의 정보통 신ㆍ방송 연구개발 사업의 일환으로 수행하였음. [B0101-15-0548, 클라우드 인프라를 위한 초절전형 고집적 마이크로 서버 시스템 기술 개발] This work was supported by the ICT R&D program of MSIP/IITP. [B0101-15-0548, Low-power and Highdensity Micro Server System Development for Cloud Infrastructure] 1
주간기술동향 2015. 5. 27. 컴퓨터뿐만 아니라 제조업체의 산업 디자이너가 많이 쓰는 캐드(CAD) 데이터도 점차 실 제 사진과 가깝게 발전하고 있다. 그리고, 영화의 컴퓨터그래픽(CG)도 사실과 구분하기 어려울 정도로 그래픽 기술의 데이터 양이 많아졌다는 뜻이기도 하다. 이와 같이 다양한 분야에서 병렬 컴퓨팅 기술이 막대한 양의 데이터를 처리하기 위해 쓰이고 있다. 슈퍼컴 퓨터나 전문가용 워크스테이션 플랫폼에서 병렬 컴퓨팅 기술이 현재와 같은 방대한 양의 데이터를 빠르게 처리하기 위해서는 컴퓨터 구조의 혁신을 통한 컴퓨팅 설계가 필수 불가 결하다. 이러한 움직임은 병렬 컴퓨팅 기술을 통해 큰 변화가 예상된다. 본 고에서는 막대한 데이터를 고속으로 처리하기 위한 병렬 프로세서 기술이 중요한 부분임을 인지하고, 병렬 프로세서의 기술과 최근 개발 동향에 대해 알아보고자 한다. II. 병렬 프로세서 정의 병렬 프로세서란 동시에 많은 계산을 하는 연산의 한 방법이다. 크고 복잡한 연산을 작은 단위로 나누어 동시에 병렬적으로 해결하는 데 주로 사용되며, 컴퓨터 시스템의 성 능 향상을 위해 가장 널리 사용되고 있는 방법이다. 물론, 작은 단위로 나누어 분할된 부 분들에 대한 병렬처리 결과가 순차적 처리의 결과와 동일해야 한다. 병렬 프로세서 기술 은 오래 전부터 주로 고성능 연산에 이용되어 왔으며, 프로세서 주파수의 물리적인 한계 에 다가가면서 문제 의식이 높아진 이후에 더욱 주목 받게 되었다. 최근 컴퓨터 이용에서 발열과 전력 소모에 대한 관심이 높아지는 것과 더불어 멀티 코어 프로세서를 중심으로 컴퓨터 구조에서 강력한 패러다임으로 주목 받게 되었다. 병렬 컴퓨터 들은 대체적으로 하드웨어의 병렬화 방법에 따라 분류된다. 클러스터, MPP(Massively Parallel Processing), 그리드는 여러 컴퓨터에서 한 가지 작업을 하도록 설계되었다. 멀 티 코어나 멀티 프로세서 컴퓨터들은 여러 개의 처리 요소(CPU 등)를 한 기기에 탑재하 고 작업한다. 특수화된 병렬 컴퓨터 구조들은 가끔씩 고전적인 프로세서들과 함께 특정한 작업을 가속화시키는 목적으로도 사용된다. 병렬 컴퓨터 프로그램들은 순차적 프로그램보 다 난해하다. 왜냐하면 동시처리는 여러 종류의 새로운 잠재적 소프트웨어 버그를 가지고 있어, 특히 데이터 통신과 동기화를 요구하는 다른 하위 작업들은 병렬 프로그램 성능에 전형적인 저해요소가 되고 있다. 병렬 프로세서에는 여러 방법과 종류가 존재한다. 그 예로, 비트 수준, 명령어 수준, 데이터, 작업 병렬처리 방식 등이 있다. 다음에는 병렬처리 프로세 2 www.iitp.kr
서의 유형들에 대해 정리하였다[1]. - 단일 명령어, 단일 데이터 흐름(Single Instruction, Single Data stream: SISD): 한 번에 한 개씩의 명령어와 데이터를 순서대로 처리하는 단일 프로세서 방식으로 성능 향상을 위해 프로세서 내부 구조를 파이프라이닝(pipelining), 슈퍼스칼라(superscalar) 의 두 가지 형태의 구조를 이용하는 방식이 있다. - 단일 명령어, 다중 데이터 흐름(Single Instruction, Multiple Data stream: SIMD): 하나의 명령어가 서로 다른 프로세서에 의해 서로 다른 다수의 데이터들을 동시 (concurrent processing)에 제어하고 실행하는 방식이다. 프로세서에는 별도의 데이 터 기억장치를 갖고 있다. - 다중 명령어, 단일 데이터 흐름(Multiple Instruction, Single Data stream: MISD): 다수의 프로세서들이 서로 다른 명령어들을 실행 처리하지만 처리되는 데이터 스트 림은 한 가지이다. 비현실적이어서 실제적으로 구현된 경우 없다. - 다중 명령어, 다중 데이터 흐름(Multiple Instruction, Multiple Data stream: MIMD): 다수의 프로세서들이 서로 다른 명령어들을 서로 다른 데이터에 대해 동시에 병렬로 실행하며, 병렬 프로세서에서 일반목적용으로 사용된다. MIMD 에는 <표 1>과 같이 2 가지의 방식이 있다. 하나는 밀결합시스템(tightly-coupled system) 방식으로 프 로세서들이 공유 기억장치를 이용하여 데이터를 교환하는 방법이고, 다른 한 방법은 소결합시스템(loosely-coupled system) 방식으로 각 프로세서들이 별도의 기억장치 를 가지고 있어 프로세서들이 메시지 전송을 이용하여 데이터를 교환하는 방법이다. <표 1> 병렬 프로세서의 유형 구분 단일 명령어 복수명령어 단일자료 SISD MISD 복수자료 SIMD MIND III. 병렬 프로세서 기술 동향 1. Intel Xeon Phi Family[2] 인텔은 지난 2009 년 중단 이후 병렬 프로세서 시장인 GPU 를 외면하다가 GPGPU 시 3
주간기술동향 2015. 5. 27. 장을 꽉 잡고 있는 nvidia 를 상대로 도전장을 내밀었다. Intel 의 Xeon Phicoprocessor 는 1 세대 나이츠 코너(Knights Coner), 2 세대 나이츠랜딩(Knights Landing)에 이어 3 세대에는 나이츠힐(Knights Hill)을 2014 년 SC 컨퍼런스에 출시하였다. 인텔의 GPU 프 로젝트 라라비(Larrabee) 는 지난 2009 년 중단 이후, 5 년 만에 출시한 병렬 컴퓨팅 기 술이다. (그림 1) Intel Xeon Phi 제품군 (그림 2) Intel Xeon Processor Roadmap 4 www.iitp.kr
Intel 의 나이츠 코너는 22nm 프로세서 공정으로, 물리적으로 62 개의 CPU 코어를 탑재 하는 매니코어 프로세서이다. 1 개의 칩으로 단정밀도 부동 소수점 연산이라면 2TFLOPS 이 상, 배정밀도라면 1TFLOPS 이상의 성능을 내고 있다[3]. 나이츠 코너는 모든 x86 프로 그램을 구동하지 못해서 반드시 CPU 를 필요로 하지만 나이츠 랜딩은 스탠드 얼론으로 동 작이 가능해 CPU 로 사용 가능하다. 그래서 이번 나이츠 랜딩 제품은 CPU 소켓 형태와 PCIe 카드 형태로 출시하였다. 나이츠 랜딩은 14nm 공정이 사용되며, 1 세대 Omni path 아키텍처 기술이 사용되고, 첫 상업적인 판매는 2015 년에 될 예정이다. CPU 내에 캐시 역할을 하는 버퍼 메모리를 포함하고 있으며, 높은 대역폭을 제공하고 있다. 현재 전세계 슈퍼컴퓨터 Top500 랭크시스템 중 18%가 Xeon Phi 로 구축되고 있어 그 증가율이 높을 것으로 예상된다. 먼저 Xeon Phi 기술은 미래 엑사스케일(Exascale)의 HPC 의 초병렬처리를 위해 개발 한 인텔 최초의 MIC(Many Integrate Core) 아키텍처 프로세서이다. 칩당 성능은 하이엔 드 GPU 수준이며, CPU 의 명령세트를 갖춘 하이브리드 프로세서인 점이 특징이다. Intel 의 나이츠 코너는 HPC 시장에서 실적을 쌓고 있는 nvidia 의 Kepler GPU 와 IBM 의 매니코어 프로세서인 BlueGene/Q 를 대항마로 출시하였다. Intel 의 나이츠 코너 제품 은 5110 과 3100 두 제품군이 있으며, 22nm 공정으로 동일한 다이를 사용한다. Xeon Phi 5110 은 62 코어 중 60 코어가 활성화 되어 있으며, 동작 클럭은 1.053GHz, 칩 전체에서 제공하는 L2 캐시의 양은 30MB, 메모리 인터페이스는 512bit 의 GDDR5 에서 5Gtps 로 전송, 피크메모리 대역은 320Gb/sec 이다. Intel 의 나이츠 코너는 5110 과 3100 모두 호 스트 버스는 PCIe Gen2 를 제공하고 두 제품은 메모리 대역의 양과 TDP 로 차별화된 것 이다. 2012 년 말에 2 세대 MIC 제품은 나이츠 랜딩 제품으로 50 개 이상의 X86 코어를 내 장하여 단일 프로세서로는 처음으로 배정밀도 연산 1TFPLOS 를 달성했고, 2015 년 하반 기에 상용화 하여 출시할 것이다. 14nm 공정으로 제조되는 Knight landing 은 Silvermont 아키텍처 기반 CPU 코어에 HPC 를 위해 패키지에 60 개 이상 집적한 프로세서이다. 특징 적인 것은 Intel 의 MIC(many integrated cores) 아키텍처와 Micron 의 고성능 메모리 기 술로 개발된 Knight landing 은 메모리칩을 최대 16GB 탑재하고 있다. CPU 코어군과 메모리 및 칩셋 연결에는 Omni scale Fabric 이라는 고속 인터커넥터 기술을 사용하여 5
주간기술동향 2015. 5. 27. 독립적인 블록 설치와 컴퓨터 부품 감소로 공간과 에너지 효율을 높였다. 2014 년 4 월 Cray 에서 나이츠 랜딩을 채용한 Cray XC 슈퍼컴퓨터로 처음 출시했으며, 2015 년에 대 부분 HPC 분야에 사용될 것으로 예상된다. (그림 3)은 Intel Knights Landing 에 대한 설명 <표 2> Intel Xeon Phi Coprocessor 제품군[2] SKU# Form Factror, Thermal Peak Double Precision SE10P (special edition) PCIe Card, Passively Cooled SE10X (special edition) PCIe Card, No Thermal Solution 5110P PCIe Card, Passively Cooled PCIe Card, Actively Cooled 3100 Series PCIe Card, Passively Cooled 1073 GF 1073 GF 1011 GF >1 TF <1 TF Max # of Cores 61 61 60 Clock Speed (GHz) GDDR5 Memory Speeds(GT/s) Peak Memory BW Memory Capacity(GB) Total Cache(MB) Board TDP(Watts) Process (그림 3) Intel Knights Landing 1.1 1.1 1.053 Disclosed at 3100 series launch(h1 13) 5.5 5.5 5.0 5.0 5.0 352 352 320 240 240 8 8 8 6 6 30.5 30.5 30 28.5 28.5 300 300 225 300 300 22nm 6 www.iitp.kr
이고, <표 2>는 Intel Xeon Phi Coprocessor 제품군에 대해 정리한 것이다. 2. nvidia nvidia 에서 2009 년 개발한 CUDA 병렬 컴퓨팅 아키텍처는 컴퓨팅 패러다임의 이러 한 획기적인 변화를 주었다. nvidia 병렬 컴퓨팅 아키텍처에는 Tesla, Quadro 및 GeForce GPU 가 출시되고 있다. 그리고, 쿼드로(Quadro)와 테슬라(Tesla)를 통합하여 막시무스(Maximus) 기술을 공개했다. Siggraph 2011 에서 공개되었던 프로젝트 막시무스 의 실체로서, 지포스/Verde 처럼 GPU 쿼드로의 하이엔드 3D 그래픽 기능과 테슬라 C2075 컴패니언 프로세서의 병렬 컴퓨팅 성능을 결합하여 단일 시스템에서 동시에 처리할 수 있 어 더 많은 작업을 더 빨리 처리할 수 있게 하였다[4]. CUDA 가속을 사용하는 코드는 테슬라, OpenGL 이나 다이렉트 X 코드는 쿼드로가 처 리하는 구조이다. 이것은 2D 는 내장 그래픽, 3D 는 외장 그래픽이 담당하는 옵티머스와 같 은 개념이다. (그림 4)는 nvidia 의 GPU 제품군 와트 당 GFLOPS 를 비교하였다. 기존 케플러는 페르미에 적용한 32 개의 CUDA 코어 보다 무려 6 배나 많은 192 개의 CUDA 코어를 하나의 클러스터로 구성시켰지만, 너무 많은 CUDA 코어를 하나로 묶어 관리하다 보니 코어 당 작업량 기준의 효율이 떨어지는 문제가 있었다. 그 이유는 케플러 에 적용한 6 개의 CUDA 코어 당 한 개의 로드/스토어 유니트와 한 개의 스페셜 함수 유 니트의 조합은 2 개의 CUDA 코어의 작업 효율을 저하시키는 결과를 초래하였다. 그래서 이번 맥스웰 제품에는 4 개의 CUDA 코어 당 한 개의 로드/스토어 유니트와 스페셜 함수 유 GFLOPS per Watt 16 14 12 10 8 6 4 2 0 Maxwell Kepler Tesla Fermi 2008 2010 2012 2014 (그림 4) nvidia 의 GPU 제품군 와트 당 GFLOPS 비교 7
주간기술동향 2015. 5. 27. 니트을 조합했으며, CUDA 코어 당 성능을 35% 정도 향상시켰다. 그리고, 클러스터 당 CUDA 코어 개수를 192 개에서 128 개로 줄이고, 128 개의 CUDA 코어도 32 개씩 관리 할 수 있는 구조로 변경하여 전체 코어 개수를 크게 줄이면서, 케플러 SMX(192 개 CUDA 코어 기준) 성능의 90% 수준을 제공할 수 있게 설계를 하였다. 이 밖에 도맥스웰 GPU 아키텍처의 SMM 은 2 개의 CUDA 코어 블럭당 4 개의 텍스 처 필터링 유니트와 텍스처 캐시를 공유하여 사용하면서 L1 캐시에 텍스처 캐시 기능을 통합하고, 64KB 의 캐시 공간을 모든 블록이 공유할 수 있는 구조로 개선하였다. (그림 5)는 nvidia 의 GPU 제품군 watt 당 성능비교를 한 그림이다. 케플러 아키텍처 는 CPU 와 GPU 를 고려해 설계된 페르미 아키텍처의 비대해진 불필요한 유니트를 축소 해 낭비되는 부분을 줄였다. 이를 통해 트랜지스터 당 성능 효율을 개선했으며, CUDA 코 어의 와트당 성능비를 최대 2 배 이상 향상했다. Performance/Watt 5x 4x 3x 2x 1x 0x 2010 2012 2014 (그림 5) nvidia 의 GPU 제품군 와트 당 성능 비교 맥스웰의 기본 아키텍처는 nvidia GPU 프로세서 코어단위인 SM(Streaming Multiprocessor) 의 구조를 SMM 으로 새롭게 변화시켜 성능을 크게 향상시켰다. 좀더 쉽게 설 명하면 고성능 싱글 코어에서 고효율 쿼드 코어처럼 구조가 바뀌었다. CPU 와 달리 GPU 는 드라이브를 통해 모든 코어를 효율적으로 사용하도록 구현하여 다중화 모듈로 이루어 진 맥스웰 아키텍처가 단일모드의 케플러 아키텍처보다 더 효율적으로 설계되었다. CUDA 코어의 수를 줄여 32 개 CUDA 코어와 컨트롤 로직 1 개를 SMM 에 4 개 배치하여 총 128 CUDA 코어와 컨트롤러 로직 4 개를 하나의 처리 단위로 하였으며, 64KB 용량의 공유 메 8 www.iitp.kr
KEPLER MAXWELL 1 st Generation (그림 6) nvidia 의 맥스웰과 케플러 제품의 성능 비교 모리를 포함한 SMM(Streaming Multiprocessor Maxwell) 로 변화되었다. (그림 6)은 케플러와 맥스웰의 성능 및 전력 효율을 나타내었고, (그림 7) 왼쪽은 맥스 (그림 7) nvidia 의 맥스웰과 케플러 제품의 구조도 9
주간기술동향 2015. 5. 27. 웰 SMM 과 오른쪽은 케플러 SMX 에 대한 코어 구조에 대해 설명한 그림이다. 맥스웰의 SMM 구성은 쿼드코어처럼 각각의 모듈이 처리한 명령어를 공유하는 형태이며, 케플러의 SMX 구성은 모든 코어에 입력된 데이터를 할당하는 대규모 싱글코어 형태를 취한 모습 이다. 케플러와 맥스웰 아키텍처는 28nm 공정을 공통적으로 적용하고 있지만, 맥스웰 아 키텍처는 CUDA 코어와 유니트의 재배치를 통해 구조의 효율화를 꾀하고 있다[5]. L2 캐시도 8 배인 2048KB 로 늘어나 코어 효율 향상, 전력 효율 최적화, 메모리 대역 의존도를 줄였다. 내부 처리 과정에서 보다 여유롭고 L2 캐시 입출력 개선으로 그래픽 연 산과 GPGPU 연산의 효율을 높였으며, 이와 같은 변화는 GPU 의 CPU 화가 한발 더 다 가간 모습이다. IV. 결 언 본 고에서는 병렬 프로세서의 기술을 정리하고 최근 개발 동향, 다양한 기술과 제품들 에 대해서 살펴 보았다. 병렬 프로세서를 이용한 고성능 컴퓨팅에 대한 수요 확산은 과학 계산 영역에서 3D/CG, 바이오/신약, 첨단 기계/설비의 설계 및 시뮬레이션 등 산업 영역 으로 확대되고 있으며, 첨단산업 분야에서 대규모 데이터에 대한 고속 처리 요구가 급증 하는 추세이다. 연구과학용으로 한정되었던 고성능 컴퓨팅 기술은 3D 콘텐츠 제작, 생명 과학, 첨단 금융, 조선/자동차 설계 등 첨단산업 수요에 대응하여 시장진입을 시작으로, 산 업체의 활용비율이 점차 증가하고 있어 이에 대한 개발 및 대응이 필요하다. <참 고 문 헌> [1] 위키백과 병렬컴퓨팅: http://ko.wikipedia.org/wiki/%eb%b3%91%eb%a0%ac_%ec%bb%b4% ED%93%A8%ED%8C%85 [2] Intel white parer system administration for the intel Xeon Phhi Coprocessor: https://software. intel.com/sites/default/files/article/373934/system-administration-for-the-intel-xeon-phicoprocessor.pdf [3] 블로그: intel 60core Xeon Phi 를 정식발표 2012.11.16: http://avenuel.tistory.com/1577 [4] nividia whitepaper NVIDIA Next Generation CUDA Computer Architecture: Kepler GK110/210: http://international.download.nvidia.com/pdf/kepler/nvidia-kepler-gk110-gk210- Architecture-Whitepaper.pdf 10 www.iitp.kr
[5] NVIDIA Cuda Zone, 5 Things You Should Know About the New Maxwell GPU Architecture Feb 21, 2014: http://devblogs.nvidia.com/parallelforall/5-things-you-should-know-about-new-maxwell -gpu-architecture/ * 본 내용은 필자의 주관적인 의견이며 IITP 의 공식적인 입장이 아님을 밝힙니다. 11