OpenCL 표준의 독립 실행 형 구현 인 PoCL 1.6

출시 프로젝트의 새 버전 PoCL 1.6 (Portable Computing Language OpenCL) 버전 1.6의 하이라이트는 Clang / LLVM 11.0에 대한 지원뿐 아니라 CUDA의 성능과 기능을 개선하기 위해 수행 한 작업, PowerPC와의 호환성 개선 및 OpenCL 디버깅 사용 개선입니다.

PoCL에 익숙하지 않은 사람들은 그것이 무엇인지 알아야합니다. 이식 가능한 오픈 소스 구현 (MIT 라이선스) OpenCL 표준의 (일부 1.2 기능이 지원되는 2.0). 뿐만 아니라 다중 장치 오픈 소스 OpenCL 구현 (진정한 이기종) 쉽게 이식 할 수있는이 프로젝트의 주요 목표는 OpenCL 호환 장치를 단일 중앙 조정 플랫폼으로 통합하여 다양한 OpenCL 호환 장치의 상호 운용성을 개선하는 것입니다.

또한 장기적인 주요 목표 중 하나는 런타임 및 컴파일 기술을 사용하는 장치 유형에서 OpenCL 프로그램의 성능 이식성을 향상시키는 것입니다.

OpenCL 커널 컴파일러는 LLVM을 기반으로하며 Clang은 OpenCL C에 대한 인터페이스로 사용됩니다. 적절한 이식성과 성능을 제공하기 위해 OpenCL 커널 컴파일러는 VLIW, 수퍼 스칼라와 같은 다양한 하드웨어 리소스를 사용하여 코드 실행을 병렬화 할 수있는 결합 된 함수를 생성 할 수 있습니다. , SIMD, SIMT, 멀티 코어 및 멀티 스레드. ICD (설치 가능한 클라이언트 드라이버) 드라이버가 지원됩니다. CPU, ASIP (TCE / TTA), HSA 아키텍처 기반 GPU 및 NVIDIA GPU (CUDA)를 통해 작업을 제공하는 백엔드가 있습니다.

PoCL 1.6의 주요 새로운 기능

이 새로운 PoCL 1.6 버전은 컴파일시 활성화 된 장치 드라이버를 사용하여이 구현을 컴파일 할 수있는 기능을 강조하며 장치의 가용성은 시작시 확인됩니다 (이전에는 PoCL이 구축되고 실행되어야하는 시스템 동일한 컨트롤러 지원). conda 패키지 관리자를 사용하여 Linux-x86_64 및 Linux-ppc64le 시스템에 대한 CUDA 지원을 통해 PoCL 바이너리 패키지를 배포하는 기능을 구현했습니다.

눈에 띄는 또 다른 변경 사항은 CPU 컨트롤러를 사용할 때 OpenCL 코드를 디버깅 할 수있는 확장 된 가능성과 함께 LLVM 11에 대한 지원입니다.

또한 CUDA 백엔드의 성능 최적화가 수행되어 로컬 메모리 (FFT, GEMM) 사용과 관련된 작업 속도를 크게 높일 수 있다는 점이 강조됩니다.

SHOC 벤치 마크를 사용하는 벤치 마크 (현재 지속적으로 테스트 됨)는 이러한 최적화가 특히 위의 참조 실행에 비해 FFT 및 GEMM과 같은 로컬 메모리와 관련된 벤치 마크에서 훨씬 더 나은 성능을 가져 왔음을 보여줍니다. 이제 PoCL은 종종 Nvidia의 독점 OpenCL로 경쟁력있는 성능을 달성합니다. 운전사). 나머지 문제 영역의 근본 원인을 식별하고 제거하기위한 기여를 환영합니다. 또한 OpenCL 1.2 / 3.0 표준의 기능 범위를 개선하기위한 기여를 환영합니다.

  • 많은 테스트에서 PoCL 성능은 이제 NVIDIA의 독점 OpenCL 드라이버에 가깝습니다.
  • 성능 저하 대신 컴파일러 옵션이보다 안전한 libpocl.so를 생성 할 수 있도록 HARDENING_ENABLE 컴파일 매개 변수를 추가했습니다.
  • pthread 및 CUDA 장치를 사용할 때 OpenCL 구현 수준이 x8_9 시스템의 CUDA 수준에 해당하는 PowerPC 86/64 시스템에 대한 지원이 반환되었습니다.
  • __ 로컬 블록을 사용하는 CUDA 커널의 ABI가 변경되었습니다. 업그레이드 후 사용자는 pocl 캐시를 지워야합니다.
  • 바인딩 할 라이브러리를 정의하기 위해 STATIC_LLVM 및 llvm-config를 사용하는 대신 SINGLE_LLVM_LIB 빌드 옵션에 대한 지원이 제거되었습니다.

마지막으로이 새 버전에 대해 더 알고 싶다면 세부 정보를 확인할 수 있습니다. 원래 광고에서. 

이 구현에 대해 더 많이 알고 싶은 사람들은 공식 웹 사이트 여기에서 설명서를 찾고 파일을 다운로드 할 수 있습니다.

프로젝트 코드는 MIT 라이선스에 따라 배포되며 작업은 플랫폼 X86_64, MIPS32, ARM v7, AMD HSA APU 및 VLIW 아키텍처를 사용하는 다양한 특수 TTA 프로세서에서 지원됩니다.


코멘트를 남겨주세요

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

*

*

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