SPIR intermediate representation
E653477
SPIR intermediate representation is a standardized, portable intermediate language based on LLVM IR used to enable cross-platform compilation and execution of OpenCL kernels and other heterogeneous compute workloads.
Observed surface forms (1)
| Surface form | Occurrences |
|---|---|
| SPIR | 0 |
Statements (46)
| Predicate | Object |
|---|---|
| instanceOf |
intermediate representation
ⓘ
portable intermediate language ⓘ |
| allows | kernel compilation without device-specific source code ⓘ |
| basedOn | LLVM IR NERFINISHED ⓘ |
| designedFor | device-independent representation of compute kernels ⓘ |
| domain |
GPGPU
ⓘ
GPU computing ⓘ parallel computing ⓘ |
| ecosystem |
OpenCL toolchains
ⓘ
heterogeneous compute runtimes ⓘ |
| enables |
offline compilation of OpenCL kernels
ⓘ
portability of compiled kernels across devices ⓘ separation of front-end and back-end compilation in OpenCL toolchains ⓘ |
| fileType |
LLVM bitcode
ⓘ
binary module ⓘ |
| focusesOn |
data-parallel computation
ⓘ
kernel-based execution model ⓘ |
| fullName | Standard Portable Intermediate Representation NERFINISHED ⓘ |
| goal |
enable vendor-independent kernel distribution
ⓘ
improve portability of OpenCL programs ⓘ |
| hasConstraint |
restricted set of LLVM intrinsics
ⓘ
well-defined data layout for OpenCL ⓘ |
| introducedBy | Khronos OpenCL working group NERFINISHED ⓘ |
| isNot |
hardware instruction set architecture
ⓘ
high-level programming language ⓘ |
| mapsTo |
OpenCL C language constructs
ⓘ
OpenCL address spaces ⓘ OpenCL built-in functions ⓘ |
| predecessorOf | SPIR-V NERFINISHED ⓘ |
| relatedStandard |
OpenCL C
NERFINISHED
ⓘ
OpenCL runtime API NERFINISHED ⓘ |
| relatedTo | SPIR-V NERFINISHED ⓘ |
| representationLevel | LLVM-based intermediate level ⓘ |
| specifiedAs | subset of LLVM IR with additional constraints ⓘ |
| standardizedBy | Khronos Group NERFINISHED ⓘ |
| status | largely superseded by SPIR-V for new designs ⓘ |
| successor | SPIR-V NERFINISHED ⓘ |
| supports | OpenCL NERFINISHED ⓘ |
| targetEnvironment |
OpenCL 1.2
NERFINISHED
ⓘ
OpenCL 2.0 NERFINISHED ⓘ |
| type | language-agnostic IR for compute kernels ⓘ |
| usedFor |
cross-platform compilation of OpenCL kernels
ⓘ
execution of OpenCL kernels ⓘ heterogeneous compute workloads ⓘ |
| versioning |
SPIR 1.2
ⓘ
SPIR 2.0 NERFINISHED ⓘ |
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.