엔비디아, 헤테로지니어스 슈퍼컴퓨팅용 최신 컴파일러 발표

by NVIDIA Korea

이제 PGI® 2017 컴파일러 및 툴 버전 17.7를 통해 멀티 코어 CPU 및 이기종(heterogeneous) GPU 가속 시스템 분야 고성능 컴퓨팅(HPC) 개발자들이 향상된 성능과 프로그래밍 단순성을 구현할 수 있게 됩니다.

PGI 17.7 컴파일러 및 툴이 지원하는 주요 새로운 기능은 다음과 같습니다.

  • 테슬라(Tesla) V100 GPU 지원 – PGI OpenACC 및 CUDA Fortran이 새로운 엔비디아 볼타 GV100 GPU(NVIDIA Volta GV100 GPU)를 지원하며, 확장된 메모리 대역폭과 더 많은 스트리밍 멀티 프로세서, 차세대 엔비디아 NVLink ™ 및 성능 개선과 프로그래밍 기능이 추가된 신규 마이크로 아키텍처 기능을 제공합니다.

 

  • CUDA 통합 메모리용 OpenACC – PGI 17.7 컴파일러는 CUDA 통합 메모리를 활용해 GPU 가속 시스템상에서 OpenACC 프로그래밍을 단순화합니다. 이 간단한 컴파일러 옵션을 통해 OpenACC 할당 가능 데이터가 CUDA 통합 메모리에 저장되면 별도로 명시된 데이터 이동 코드나 지시어가 필요하지 않습니다.

 

  • 멀티 코어 CPU용 OpenMP 4.5 – OpenMP 4.5 신택스(syntax) 및 기능에 대한 초기 지원을 통해 멀티 코어 CPU 시스템의 모든 코어에서는 병렬 실행을 위한 대부분의 OpenMP 4.5 프로그램을 컴파일할 수 있습니다. 타깃 영역은 멀티 코어 호스트에 대한 디폴트 지원을 대상으로 구현되며 병렬 실행 및 배포 루프는 모든 OpenMP 스레드에서 병렬 처리됩니다.

 

  • Fortran 파생 유형의 자동 딥 카피 – 포인터 기반 객체 순회 및 관리를 포함하는 CPU 호스트와 GPU 디바이스 메모리 간 전체, 또는 심층 중첩된 Fortran 데이터 객체의 이동이 OpenACC 지시어를 통해 지원됩니다.

 

  • C ++의 향상된 기능 – PGI 17.7 C ++ 컴파일러에는 증분 C ++ 17 기능이 포함되어 있으며, CUDA 9.0 NVCC 호스트 컴파일러로 지원됩니다. 이는 LCALS 루프 벤치 마크에서 평균 20 %의 성능 향상을 제공합니다.

 

  • OpenACC 영역에서 캡처 시 C ++ 14 람다 이용 – C ++ 람다 표현식은 익명 함수 객체가 적용, 또는 인수로 전달되는 위치에서 그것들을 정의하는 간편한 방법을 제시합니다. PGI 17.7 출시로, 람다는 C ++ 프로그램의 OpenACC 컴퓨트 영역에서 지원됩니다. 예를 들어, 다른 프로그래밍 모델이나 플랫폼에 맞는 맞춤형 코드 생성을 유도할 수도 있습니다. C++ 14는 보다 많은 람다 이용사례, 특히 다형성 람다(polymorphic lambdas)에 개방되어 있습니다. 그리고 이제 이러한 기능은 OpenACC 프로그램에서 사용 가능합니다.

 

  • cuSOLVER 라이브러리와의 상호 운용성 – PGI가 제공하는 인터페이스 모듈과 PGI 17.7에 번들로 제공되는 cuSOLVER 라이브러리의 PGI 컴파일 버전을 사용하면 CUDA Fortran 및 OpenACC Fortran, C 및 C ++에서 최적화된 cuSolverDN 루틴을 호출할 수 있습니다.

 

  • 엔비디아 테슬라 및 멀티 코어 CPU용 PGI 통합 바이너리 – OpenACC를 사용해 GPU 가속 및 멀티 코어 CPU에서 병렬 실행을 위한 애플리케이션을 구축할 수 있습니다. GPU 기반 시스템에서 실행될 때 OpenACC 영역은 GPU에서 오프로드되고 실행됩니다. GPU가 설치되지 않은 시스템에서 실행될 때 OpenACC 영역은 시스템의 모든 CPU 코어에서 병렬로 실행됩니다.

 

  • CUDA 통합 메모리 및 OpenACC를 위한 새로운 프로파일링 기능 – PGI 17.7 프로파일러에는 GPU가 추가되어 있거나 그렇지 않은 멀티코어 CPU를 지원하는 새로운 OpenACC 프로파일링 기능과 각 OpenACC 구성에 소요된 시간을 제시하는 새로운 요약 보기 기능이 추가되었습니다. 신규 CUDA 통합 메모리 기능에는 관련 데이터가 할당된 소스 코드 라인, CPU 페이지 오류를 연관시키는 기능, 새로운 CUDA 통합 메모리 페이지 스레싱 (thrashing), 부하 제한(throttling) 및 원격 맵 이벤트, NVLink 지원 등이 포함됩니다.

 

이 외에도 PGI 17.7은 지원 가능한 모든 플랫폼 모듈에 대한 종합적인 지원, 많이 사용되는 오픈 소스 라이브러리와 애플리케이션의 사전 구축된 버전 및 새로운 “OpenACC를 이용한 병렬 컴퓨팅 입문” 동영상 튜토리얼 시리즈 등의 기능을 갖추고 있습니다.

PGI 17.7의 전체 기능목록은 이곳(https://www.pgicompilers.com/products/new-in-pgi.htm)에서 확인할 수 있습니다.

PGI 17.7은 현재 PGI 웹사이트에서 다운로드 할 수 있습니다.

 

PGI 컴파일러 및 툴에 관하여

PGI는 엔비디아의 브랜드로, 고성능 병렬 Fortran, x86-64 와 OpenPOWER CPU 프로세서 기반 시스템을 위한 C / C++ 컴파일러 및 툴, 리눅스(Linux), 마이크로소프트 윈도(Microsoft Windows) 또는 애플(Apple) 맥OS(macOS) 운영체제를 구동하는 엔비디아 테슬라 GPU 가속기를 포함합니다. 보다 자세한 정보는 공식 웹사이트(www.pgicompilers.com)에서 확인하세요.