JUST THE FACTS

우리가 몰랐던 사실들

가속컴퓨팅은 고성능 컴퓨팅(HPC)분야에 엄청난 혁신을 가져다 주고 있습니다. 가속 시스템이 오늘날 HPC에 최고의 성능과 에너지 효율적인 컴퓨팅 능력을 제공하고 있다는 것은 이미 널리 알려진 사실입니다. 가속 시스템은 현재 거대한 스케일의 HPC산업과 이를 이끄는 슈퍼컴퓨팅의 새로운 표준이 되었습니다. 이제는 업계의 관심사가 "만약에"가 아니라 "언제, 어떻게?"에 모아지고 있습니다.

가능성과 과대포장을 쏙 빼고, 가속 컴퓨팅을 위한 옵션을 평가할 때 알아둬야 할 몇 가지 사실들을 공유할까 합니다. 무엇보다, Intel의 Xeon Phi 가속기는 GPU와 달리 Phi 상에서 간단한 리컴파일과 기본적인 코드 실행만으로 충분한 애플리케이션 성능을 구현할 수 있다거나, GPU보다 Phi 상에서 보다 쉽게 성능 최적화가 가능하다는 주장은 전혀 사실에 근거한 내용이 아닙니다.

사실: 실제 HPC애플리케이션에서 인텔의 Xeon Phi 보다 훨씬 빠른 GPU
주요 과학 응용분야에서 Xeon Phi 보다 2배에서 5배 이상의 속도를 내다

자세히 보기
사실: Phi 상에서의 "리컴파일&실행"이 실제로는 어플리케이션 속도를 감소시킵니다.
CPU코드에 대한 어떠한 변화 없이, 개발자가 Phi 상에서 어플리케이션을 간단히 "리컴파일 및 실행" 할 수 있다는 주장은 매력적이기는 하지만 오해의 소지가 있는 방법입니다. 측정된 성능은 보통 CPU 성능에 비해 많이 느려지는데, 말 그대로 가속화와는 정반대입니다.
Phi 작업에서 리컴파일 및 실행은 (때로는)간단하지만, CPU 상에서 코드 실행은 훨씬 더 느려집니다. 시스템 및 환경구성 세부사항2 (2013년 8월 현재)

기본적인 실행을 위한 간편한 리컴파일이 진행되는 동안 Phi는 많은 코드를 작업하게 되고, 이는 위에서 볼 수 있듯이 CPU와 비교할 때 최대 5배까지 어플리케이션의 속도를 떨어뜨리게 됩니다.

"리컴파일 및 실행"은 코드의 시리얼 부분에 대한 암달의 법칙(Amdahl's Law)을 비롯하여, "공짜는 없다" 라는 엔비디아 블로그 포스팅에서 묘사된 것과 같은 상당한 기술적인 도전에 맞닥뜨리게 됩니다. 왜냐하면 최신 CPU 코어에 비해 뒤떨어지는 (구식 펜티엄 설계에 기반한)Phi 코어의 시리얼 성능 때문에, 근본적으로 Phi 상에서의 시리얼 코드 실행은 속도 저하를 가져올 수 있습니다.

실제로, 한 개발자는 먼저 Phi에서 리컴파일을 하기 위해 코드를 얻어야 하는 작업을 해야만 했고, 그 다음으로 성능 향상을 위해 코드의 리팩터와 최적화 작업을 하게 되었는데, 단지 CPU 성능과 동등한 수준으로 돌아왔을 뿐이었습니다.

마지막엔 Phi로 가속하든 GPU로 가속하든 병렬 압축을 풀기 위한 몇 가지 노력이 필요합니다. "리컴파일 및 실행"은 잘 되었을 경우 개발자에게 약간 편리한 첫 번째 단계일 뿐이고, 안 되면 실망을 부를 뿐입니다.

적게 보기
자세히 보기
사실: GPU와 Phi 프로그래밍에는 비슷한 노력이 필요합니다. 하지만 그 결과는 GPU가 더욱 나은 모습을 보여줍니다.
동일한 최적화 기법과 비슷한 수준의 개발자 노력으로 GPU에서 2배 더 빠른 가속을.
방식 GPU Phi
라이브러리
CUDA 라이브러리 + 기타

Intel MKL + 기타
디렉티브
오픈ACC

오픈MP + Phi 디렉티브
네이티브 프로그래밍 모델
CUDA

Vector Intrinsics
개발자는 라이브러리, 지시문 또는 언어 확장을 통해 가속기를 프로그래밍하고 성능을 최적화 .(2013년 8월 현재)
GPU와 Phi는 몇 가지 면에서 차이점이 있지만 둘다 병렬 프로세서라는 점에서 공통점을 가지고 있습니다. 비슷한 수준의 개발자 노력이 들어가고 비슷한 최적화 기법을 사용할 만큼 GPU나 Phi 모두 유사한 면이 많이 있습니다.

위 표에서 보듯이, 개발자들은 코드 가속화를 위해 똑 같이 3가지 방법론을 사용합니다. GPU용 CUDA C또는 Phi 상에서의 벡터 내장함수 같은 라이브러리, 지시문 그리고 언어 확장이 그것입니다.

그리고 Phi와 GPU에 들어가는 프로그래밍 노력은 사람들이 생각하는 것보다 훨씬 더 비슷합니다.

아래, N-body 커널 코드는 가속화를 위한 최적화에 필요한 최적화 기법과 이를 위한 노력이 비슷하다고 설명하고 있습니다. 기본적인 코드 변화가 같아지는 동안 GPU 성능은 Phi의 그것을 크게 추월하게 됩니다. 최적화 예시를 다운로드 하세요
간단한 N-body 코드를 비교해 보면, 비슷한 최적화 기법이 사용되어야 하지만 GPU가 훨씬 더 빠르다는 것을 알 수 있습니다.시스템 및 환경설정 세부사항 3 (2013년 8월 현재)
자세히 보기
적게 보기
"당신은 쉽게 포팅할 수 있지만, 코드를 벡터화하기 위해 CUDA에서 당신이 한 일들은 Phi에 대해서도 똑같이 수행되어야 합니다."
Dr. Karl Schultz
Texas Advanced Computing Center(TACC)의
과학 어플리케이션 부문 책임자(Director of Scientific Applications)
출처: HPCWire, 2013년 5월 17일
"Intel의 Xeon Phi에 수집된 결과는 놀라울 정도로 실망스러웠습니다. Xeon Phi가 프로그래밍이 용이하다고 선전하지만, 성능 좋은 솔루션을 개발하려면 벡터화 조정(vectorization tuning) 때문에 적지 않은 노력이 들어가야 합니다.
"우리의 GPU 코드는 SIMD 작업과 SIMT 작업의 교체를 제외하면 Xeon Phi 코드와 꽤 비슷합니다."
이러한 사실을 알게 되면 가속 컴퓨팅에 대해 더 잘 이해할 수 있습니다. 오늘날, GPU는 똑같은 개발 노력을 들여서 무려 2배에 이르는 성능을 얻을 수 있게 해줍니다. GPU는 가속화된 병렬 코드를 위한 합리적인 선택입니다. 어떤 부분에서는 왜 과학자들이 올해 Phi보다 GPU를 10배나 더 많이 활용했는지에 대한 반증이 될 것입니다.4 그리고 왜 NVIDIA GPU가 오늘날의 HPC 시스템에서 Intel Phi보다 20배나 더 많이 쓰이고 있는지에 대한 설명이 될 것입니다.5
grey-line.png

벤치마크 설정에 대한 각주:
AMBER: SPFP-Cellulose_production_NPT, 1x E5-2697v2 + Xeon Phi 7120P, 1x E5-2697v2 @ 2.70GHz + Tesla K40
MiniMD: KokkosArray- LJ forces, 864k 원자, 배정밀도, 2x Xeon E5-2667 + Xeon Phi 7120, 2x Xeon E5-2667 + Tesla K40
Monte Carlo RNG DP: 유럽식 옵션 가격, 2x Intel® Xeon® Processor E5-2697 v3 + Tesla K40 GPU, 인텔은 Xeon Phi 성능 결과를 웹사이트에 공개했습니다.
tHogbomClean: 2x Xeon E5-2697 v2 + Xeon Phi 7120, 2x Xeon E5-2697 v2 + Tesla K40c
이항 옵션 SP: 2x Xeon Processor E5-2697 v3 + Tesla K40 GPU, 인텔이 Xeon Phi 성능 결과를 웹사이트에 공개했습니다.
NAMD: APOA1, 2x Xeon E5-2697v2 + Xeon Phi 7120, 2x Xeon E5-2697v2 +Tesla K40
STAC-A2: Warm Greek, 2x E5-2699v3 CPUs + Xeon Phi 7120A, 2x Intel Xeon E5-2690v2 + Tesla K80