kpet/clvk

Implementation of OpenCL 3.0 on Vulkan

해결하는 문제

clvk는 OpenCL 3.0 표준을 준수하는 구현체를 제공하여 Vulkan을 지원하는 모든 하드웨어에서 OpenCL 애플리케이션을 실행할 수 있게 합니다. 이는 OpenCL 프레임워크와 Vulkan 기반 GPU 사이의 격차를 해소하여, 컴퓨팅 워크로드에 대한 더 넓은 하드웨어 호환성을 가능하게 합니다.

작동 방식

clvk는 번역 계층으로 작동합니다. OpenCL 커널을 SPIR-V로 컴파일하기 위해 clspv 컴파일러를 사용하며, 이는 Vulkan에서 사용되는 바이너리 형식입니다. 이후 OpenCL API 호출을 해당하는 Vulkan 명령어로 매핑하여 GPU에서 이러한 커널을 실행합니다.

대상 사용자

  • 네이티브 OpenCL 드라이버가 부족하거나 부적절한 플랫폼에서 OpenCL 기반 소프트웨어를 실행하고자 하는 개발자.
  • Android나 Raspberry Pi와 같이 Vulkan 지원이 OpenCL보다 더 일반적인 플랫폼을 타겟으로 하는 시스템 통합자.

주요 특징

  • OpenCL 3.0 준수: 다양한 애플리케이션과의 호환성을 보장하기 위해 표준을 정확히 구현합니다.
  • 크로스플랫폼 지원: Linux, macOS, Windows, Android에서 빌드 가능합니다.
  • 성능 최적화: 명령어의 배치 및 그룹화를 구성 가능하여 지연 시간과 처리량을 최적화할 수 있습니다.
  • 관측성: 성능 분석을 위한 Perfetto 트레이스 및 전역 타이밍 정보 통합 지원이 제공됩니다.
  • ICD 로더 호환성: cl_khr_icd 확장 기능과 호환되어 OpenCL ICD 로더와 원활하게 사용할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트