CPU, GPU, FPGA 및 가속기를위한 LLVM 기반 컴파일러 인 HPVM

프로젝트 개발자 LLVM 출시 최근에 이기종 병렬 가상 머신 컴파일러 출시 (HPVM) 1.0, 목표 이기종 시스템에 대한 프로그래밍을 단순화하고 CPU, GPU, FPGA 및 하드웨어 가속기를위한 코드 생성 도구를 제공합니다. 도메인 특정 (FGPA 및 가속기에 대한 지원은 버전 1.0에 포함되지 않음).

주요 아이디어 HPVM 뒤에 실행 가능한 프로그램의 통합 된 표현을 동시에 컴파일하는 것입니다. GPU, 벡터 명령어, 멀티 코어 프로세서, FPGA 및 다양한 특수 가속기 칩을 포함한 다양한 병렬 하드웨어에서 실행하는 데 사용할 수 있습니다.

이기종 병렬 시스템에 대한 프로그래밍은 병렬 처리, 다른 명령 세트 및 다른 메모리 계층을 달성하기 위해 다른 모델을 사용하는 구성 요소 시스템 (CPU 코어, 벡터 명령, GPU 등)이 존재하기 때문에 복잡하며 각 시스템은 이러한 구성 요소가 변경되고 있습니다.

일리노이 LLVM 컴파일러 연구 그룹은 HPVM (버전 1.0)의 오픈 소스 릴리스를 발표하게되어 기쁘게 생각합니다. HPVM은 CPU, GPU 및 가속기를 대상으로하는 재배 향 컴파일러 프레임 워크입니다 (이 릴리스에는 가속기 지원이 포함되지 않음) [1]. HPVM은 작업, 데이터 및 파이프 라인 병렬 처리를 캡처하는 명시적인 계층 적 데이터 흐름 표현으로 LLVM 9.0.0 컴파일러 IR을 확장하는 타겟 독립적 컴파일러 IR을 사용합니다.

이 버전은 선형 대수 텐서 연산, Pytorch 및 Keras 인터페이스, 컨볼 루션 연산자에 대한 근사, 근사 피팅을위한 효율적이고 유연한 프레임 워크에 대한 지원을 추가하는 첫 번째 버전 (버전 0.5)에 중요한 추가 기능입니다. 

의 사용에 유의해야합니다 HPVM은 상당한 성능 향상을 달성 할 수 있습니다. 으로 eHPVM 변환기의 출력 성능은 OpenCL 코드의 성능과 비슷합니다. GPU 및 벡터 컴퓨팅 장치 용으로 필기합니다. 다른 시스템과 달리 HPVM은 이기종 컴퓨팅을 구성하기 위해 언어 및 하드웨어 독립적 인 중간 표현, V-ISA (가상 명령 집합 아키텍처) 및 런타임 프로그래밍의 세 가지 가능성을 결합하려고 시도했습니다.

독립적 인 중간 표현 대상 시스템의 (IR) HPVM에서 사용되는 프로그래밍 언어는 LLVM 9.0 명령어의 중간 표현을 기반으로합니다. 계층 적 데이터 흐름 그래프로 확장하여 작업, 데이터 및 계산 파이프 라인 수준에서 병렬 처리를 처리합니다.

HPVM 중간에는 벡터 명령어와 공유 메모리도 포함됩니다. 중간 표현을 사용하는 주요 목표는 이기종 시스템을위한 효율적인 코드 생성 및 최적화입니다.

V-ISA (Virtual Instruction Set Architecture)는 낮은 수준의 하드웨어 기능을 추상화하고 기본 동시성 모델 인 데이터 흐름 그래프 만 사용하여 다양한 형태의 병렬 처리 및 메모리 아키텍처를 통합합니다. V-ISA를 사용하면 서로 다른 유형의 병렬 컴퓨팅 장비간에 이식성을 확보 할 수 있으며 이기종 시스템의 서로 다른 요소를 사용할 때 성능이 저하되지 않습니다. Virtual ISA는 또한 CPU, GPU, FPGA 및 다양한 가속기를 사용하여 실행할 수있는 범용 실행 프로그램 코드를 제공하는 데 사용할 수 있습니다.

현재 개발 단계에서 HPVM은 ISA에서 정의한 애플리케이션 노드를 변환 할 수있는 코드 생성기를 제공합니다. NVIDIA GPU (cuDNN 및 OpenCL), Intel AVX 벡터 명령어 및 멀티 코어 x86 CPU를 사용하여 실행하기위한 가상. }

실행 중에 HPVM은 프로그램에 대한 정보 (그래픽 구조)와 시스템에서 사용 가능한 모든 대상 컴퓨팅 장치에서 실행하기위한 개별 프로그램 노드의 컴파일을 통해 구현되는 컴퓨팅 프로세스에 유연한 스케줄링 정책을 적용합니다.

첫 번째 미리보기 버전과 비교하면 HPVM 1.0은 선형 대수 텐서 연산을 지원합니다. Pytorch 및 Keras 용 인터페이스와 특정 텐서 작업에 대한 최적의 근사치를 자동으로 선택하고 최적의 성능을위한 설정을 선택하는 근사 조정 프레임 워크입니다.

마지막으로이 컴파일러에 대해 더 많이 알고 싶다면 다음 링크에서 자세한 내용을 확인할 수 있습니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.