Rust로 작성된 Mesa의 OpenCL 구현은 이미 CTS 테스트를 통과했습니다.

새로운 구현 OpenCL(소박한) Rust로 작성된 Mesa 프로젝트용으로 개발되었으며, CTS 테스트를 성공적으로 통과했습니다. (Kronos Conformance Test Suite) Khronos 컨소시엄에서 OpenCL 3.0 사양과의 호환성을 테스트하는 데 사용합니다.

»Rusticl»을 모르는 사람들을 위해 다음과 같이 출판되었다는 것을 알아야 합니다. 로 작성된 Mesa OpenCL의 새로운 구현 프로그래밍 언어 녹.

소박한 잘 알려진 Mesa 협력자 Karol Herbst에 의해 시작되었습니다. Red Hat에 있는 동안 NVIDIA의 "Nouveau" 오픈 소스 드라이버 엔지니어로 시작하여 Mesa의 Clover IT 지원 및 기타 노력에 참여한 Red Hat의. Rusticl은 Rust 프로그래밍 언어를 배우고 OpenCL의 새로운(그리고 더 나은) 구현을 제공하기 위한 Herbst의 시도입니다.

Rusticl은 OpenCL에 훨씬 더 현대적입니다. 이전 Clover 코드와 비교하면 눈에 띕니다. 그러나 이 시점에서 Rusticl은 여전히 ​​Clover의 또 다른 문제였던 OpenCL 이미지 지원을 제공하지 않습니다.

소박한 OpenCL 소스 코드를 SPIR-V로 컴파일하기 위해 clc에 의존합니다. Rusticl은 또한 NIR 호환 Mesa Gallium3D 드라이버에 의존하지만 모든 주요 드라이버는 이미 그렇습니다. Carol은 Rushl에서 OpenCL 3.0 호환성에 대한 공식 인증을 얻기 위해 Khronos에 연락했습니다.

이제, neil trevett이 Twitter에서 발표한 것처럼, 이제 Rustl은 OpenCL 3.0 사양과의 호환성을 평가하기 위해 Kronos Conformance Test Suite를 성공적으로 통과했습니다.

Khronos는 수년 동안 모든 MESA 채택 비용을 면제해 준 것을 자랑스럽게 생각하며 많은 MESA 구현이 공식적으로 준수합니다. MESA의 OpenCL 3.0이 CTS를 통과하게 되어 기쁩니다! MESA가 OCL 3.0 채택 계약을 실행할 준비가 되면 알려주시면 프로세스를 시작할 수 있습니다…

테스트는 12세대 Intel GPU가 탑재된 시스템에서 수행되었습니다. 빌드(Alder Lake)는 Iris Mesa 드라이버로 작업을 수행했지만 프로젝트는 NIR 셰이더의 유형이 지정되지 않은 중간(IR) 표현을 사용하는 다른 Mesa 드라이버와 함께 작동해야 한다고 언급되어 있습니다.

Rusticl은 Mesa의 OpenCL Clover 인터페이스에 대응하는 역할을 하며 Mesa의 Gallium 인터페이스를 사용하여 개발되었습니다. Clover는 오랫동안 방치되어 왔으며 Rustl은 미래의 대안으로 자리 잡고 있습니다. Rusticl 프로젝트는 OpenCL 3.0 호환성을 달성하는 것 외에도 이미지 처리를 위한 OpenCL 확장을 지원하지만 아직 FP16 형식을 지원하지 않는다는 점에서 Clover와 다릅니다.

Rusticl은 Rust-bindgen을 사용합니다. Rust 함수를 C 코드에서 또는 그 반대로 호출할 수 있도록 하는 Mesa 및 OpenCL용 바인딩을 생성합니다.

Mesa 프로젝트에서 Rust 언어를 사용할 가능성은 2020년부터 논의되었습니다. Rust 지원의 장점 중에는 메모리로 작업할 때 일반적인 문제를 제거함으로써 드라이버의 보안과 품질을 개선하고 개발을 포함할 가능성이 언급됩니다. Kazan(Rust의 Vulkan 구현)과 같은 Mesa의 타사.

단점으로는 빌드 시스템의 복잡성, 페이로드 패키지 시스템에 대한 바인딩의 꺼림, 빌드 환경에 대한 요구 사항의 증가, 제공되는 빌드 종속성에 Rust 컴파일러를 포함해야 하는 필요성이 있습니다. Linux에서 주요 데스크탑 구성 요소를 빌드합니다.

마지막으로, Rusticl과 Mesa의 병합 요청이 아직 보류 중이라고 언급되었습니다. 그리고 아직 Mesa에 Rust 언어 코드를 포함하는 것에 대한 결정이 내려지지 않았지만 Mesa 22.2 릴리스에 도착할 것으로 예상됩니다.

이것이 Rusticl이 메인 Mesa 구성으로 받아들여지기 전에 별도의 브랜치를 빌드하는 데 사용할 수 있는 이유입니다. 컴파일할 때 빌드 매개변수 "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader -cache=true -Dllvm = 사실».

낮잠 그것에 대해 더 알고 싶어 이 새로운 사양에 대해 세부 사항을 확인할 수 있습니다 다음 링크에서.


코멘트를 남겨주세요

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

*

*

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