|
| 1 | +SPV_INTEL_vector_compute |
| 2 | +======================== |
| 3 | + |
| 4 | +Name Strings |
| 5 | +------------ |
| 6 | + |
| 7 | +SPV_INTEL_vector_compute |
| 8 | + |
| 9 | +Contact |
| 10 | +------- |
| 11 | + |
| 12 | +To report problems or to provide input on this extension, please open a new issue at: |
| 13 | +https://github.com/intel/llvm/issues |
| 14 | + |
| 15 | +Contributors |
| 16 | +------------ |
| 17 | + |
| 18 | +- Gang Chen, Intel |
| 19 | +- Mariusz Merecki, Intel |
| 20 | +- Aleksandr Bezzubikov, Intel |
| 21 | +
|
| 22 | +
|
| 23 | +Notice |
| 24 | +------ |
| 25 | + |
| 26 | +Copyright (c) 2020 Intel Corporation. All rights reserved. |
| 27 | + |
| 28 | +Status |
| 29 | +------ |
| 30 | + |
| 31 | +Working Draft |
| 32 | + |
| 33 | +This is a preview extension specification, intended to provide early access to a feature for review and community feedback. When the feature matures, this specification may be released as a formal extension. |
| 34 | + |
| 35 | +Because the interfaces defined by this specification are not final and are subject to change they are not intended to be used by shipping software products. If you are interested in using this feature in your software product, please let us know! |
| 36 | + |
| 37 | + |
| 38 | +Version |
| 39 | +------- |
| 40 | + |
| 41 | +[width="40%",cols="25,25"] |
| 42 | +|======================================== |
| 43 | +| Last Modified Date | 2020-04-24 |
| 44 | +| Revision | 2 |
| 45 | +|======================================== |
| 46 | + |
| 47 | +Dependencies |
| 48 | +------------ |
| 49 | + |
| 50 | +This extension is written against the SPIR-V Specification, |
| 51 | +Version 1.5, Revision 2, Unified |
| 52 | + |
| 53 | +This extension requires SPIR-V 1.0. |
| 54 | + |
| 55 | +Overview |
| 56 | +-------- |
| 57 | + |
| 58 | +This extension adds new execution model, capability, execution modes and decorations |
| 59 | +to support INTEL vector compute specific features in SPIR-V. |
| 60 | + |
| 61 | + |
| 62 | +Extension Name |
| 63 | +-------------- |
| 64 | + |
| 65 | +To use this extension within a SPIR-V module, the following |
| 66 | +*OpExtension* must be present in the module: |
| 67 | + |
| 68 | +---- |
| 69 | +OpExtension "SPV_INTEL_vector_compute" |
| 70 | +---- |
| 71 | + |
| 72 | +Modifications to the SPIR-V Specification, Version 1.5, Revision 2, Unified |
| 73 | +--------------------------------------------------------------------------- |
| 74 | + |
| 75 | +Modify Section 3.3, Execution Model, add the following row to the Execution Model table: |
| 76 | + |
| 77 | +[cols="1,20,10",options="header",width = "60%"] |
| 78 | +|==== |
| 79 | +2+^| Execution Model | Enabling Capabilities |
| 80 | +| 5626 | *VectorComputeKernelINTEL* | *VectorComputeINTEL* |
| 81 | +|==== |
| 82 | + |
| 83 | +Modify Section 3.6, Execution Mode, add the following rows to the Execution Mode table: |
| 84 | + |
| 85 | +-- |
| 86 | +[cols="1,20,10,10",options="header",width = "80%"] |
| 87 | +|==== |
| 88 | + 2+^| Execution Mode | Enabling Capabilities | Extra Operands |
| 89 | +| 5618 | *SharedLocalMemorySizeINTEL* + |
| 90 | +Specifies the size of shared memory required by kernel, in bytes. |
| 91 | + |
| 92 | +'Size' is an unsigned 32-bit integer. |
| 93 | + |
| 94 | +See the client API specification for more detail. |
| 95 | +| *VectorComputeINTEL* | <<Literal, 'Literal'>> _Size_ |
| 96 | +|==== |
| 97 | +-- |
| 98 | + |
| 99 | +Modify Section 3.20, Decoration, add the following rows to the Decoration table: |
| 100 | + |
| 101 | +-- |
| 102 | +[cols="1,20,10,10",options="header",width = "80%"] |
| 103 | +|==== |
| 104 | + 2+^| Decoration | Enabling Capabilities | Extra Operands |
| 105 | +| 5624 | *KernelArgumentTypeINTEL* + |
| 106 | +Apply to a function parameter to provide information about high level language argument type. |
| 107 | + |
| 108 | +_Argument Type_ is an unsigned 32-bit integer. |
| 109 | + |
| 110 | +See the client API specification for more detail. |
| 111 | +| *VectorComputeINTEL* | <<Literal, 'Literal'>> _Argument Type_ |
| 112 | +| 5625 | *KernelArgumentDescINTEL* + |
| 113 | +Apply to a function parameter to provide a string description of the argument. |
| 114 | + |
| 115 | +'Description' is a literal string. |
| 116 | + |
| 117 | +See the client API specification for more detail. |
| 118 | +| *VectorComputeINTEL* | <<Literal, 'Literal'>> _Description_ |
| 119 | +| 5627 | *StackCallINTEL* + |
| 120 | +Apply to a function definition to specify that this function is a stack call function. |
| 121 | + |
| 122 | +See the client API specification for more detail. |
| 123 | +| *VectorComputeINTEL* | |
| 124 | +|==== |
| 125 | +-- |
| 126 | + |
| 127 | +Modify Section 3.31, Capability, add the following row the 'Capability' table: |
| 128 | +-- |
| 129 | +[cols="1,20,10,10",options="header",width = "80%"] |
| 130 | +|==== |
| 131 | + 2+^| Capability | Implicitly Declares | Enabled by Extension |
| 132 | +| 5617 | *VectorComputeINTEL* + |
| 133 | +Enables the use of *VectorComputeKernelINTEL* execution model, *SharedLocalMemorySizeINTEL* execution mode and *KernelArgumentTypeINTEL*, *KernelArgumentDescINTEL* and *StackCallINTEL* decorations. |
| 134 | + |
| 135 | +See the client API specification for more detail. |
| 136 | +|| *SPV_INTEL_vector_compute* |
| 137 | +|==== |
| 138 | +-- |
| 139 | + |
| 140 | +Issues |
| 141 | +------ |
| 142 | + |
| 143 | + |
| 144 | +Revision History |
| 145 | +---------------- |
| 146 | + |
| 147 | +[cols="5,15,15,70"] |
| 148 | +[grid="rows"] |
| 149 | +[options="header"] |
| 150 | +|======================================== |
| 151 | +|Rev|Date|Author|Changes |
| 152 | +|1|2020-04-17|Mariusz Merecki|Initial revision |
| 153 | +|2|2020-04-24|Mariusz Merecki|Assigned token number to *VectorComputeKernelINTEL* |
| 154 | +|======================================== |
0 commit comments