Request for Proposal

Request for Proposal

View all RFPs

Khronos OpenCL LLVM SPIR-V Backend

Background

The SPIR-V target within LLVM, also known as the LLVM SPIR-V backend, facilitates code generation for the OpenCL SPIR-V binary format, as outlined in the SPIR-V specification. This backend was upstreamed into the LLVM repository in 2022 and is on track to become a stable, permanent target. Historically, the Khronos LLVM/SPIR-V Bi-Directional Translator has served as the official tool for generating SPIR-V from LLVM IR, however, due to ongoing developments and contributions from various SPIR-V vendors, the backend is anticipated to fully supplant the translator.

The goal of this project is to address and integrate specific functionalities that are currently available in the translator project but missing from the backend.

Summary

Contract Type: Fixed Budget
Contract Amount: Not to exceed $40,000 US dollars
Contract Duration: Anticipate 3 months

Scope and Deliverables

The scope of this Request for Proposals (RFP) is concentrated on aligning the capabilities of the experimental LLVM SPIR-V Backend with those currently supported by the Khronos LLVM/SPIR-V Bi-Directional Translator. This involves several main areas of work, outlined below (in the order of importance):

  1. Porting existing tests: Existing tests from the LLVM/SPIR-V Bi-Directional Translator are to be ported to the LLVM SPIR-V backend and current LITs in the backend contributed back. This will help identify future areas of work to ensure functional parity.
  2. Implementation or correction of LLVM intrinsics lowering methods: This work includes implementing the missing intrinsics or correcting current implementation, supporting the implementation with appropriate test cases, using the LLVM’s Integrated Testing (LIT) framework. Test cases should be sourced both from existing ones in the Khronos LLVM/SPIR-V Bi-Directional Translator repository and newly created tests, which shall be contributed back to the Khronos repository.
  3. Implementation of SPIR-V extensions:  Each implementation must be supported with test cases, using the LIT framework, and similar to the intrinsics, these must be both copied and newly created where necessary, with new tests also being pushed to the Khronos repository.
  4. Adding missing OpenCL builtin functions TableGen definitions: Fixes should be applied to the current LLVM SPIR-V backend’s implementation of the GlobalISel lowering flow, if these would impact the work mentioned above. However, no significant rework or refactor of the current CodeGen passes and lowering methods is expected.

Upon approval and acceptance of the work plan, the sequence in which the deliverables are completed may vary. Nevertheless, priority should be given to the work on LIT tests and LLVM intrinsics, ensuring the tasks are completed within the allocated budget and effort.

Responses Deadline: 5PM PT on Friday December 6th, 2024

Contact Email: .(JavaScript must be enabled to view this email address)

Bidders may update their bid as they wish before the submission deadline. In exceptional circumstances a requested submission deadline extension may be issued to all bidders at Khronos’ discretion.

Download PDF