1 **Supported operators for device: XLA_GPU_JIT** 2 3 Operator | Type Constraint 4 ------------------------------------- | --------------- 5 `Abs` | `T={double,float,int32,int64}` 6 `Acosh` | `T={complex64,double,float}` 7 `Add` | `T={complex64,double,float,int32,int64}` 8 `AddN` | `T={complex64,double,float,int32,int64,uint32,uint64}` 9 `AdjustContrastv2` | 10 `AdjustHue` | 11 `AdjustSaturation` | 12 `All` | `Tidx={int32,int64}` 13 `Angle` | `Tout={double,float}`<br>`T={complex64}` 14 `Any` | `Tidx={int32,int64}` 15 `ApproximateEqual` | `T={complex64,double,float,int32,int64,uint32,uint64}` 16 `ArgMax` | `Tidx={int32,int64}`<br>`output_type={int32,int64}`<br>`T={complex64,double,float,int32,int64,uint32,uint64}` 17 `ArgMin` | `Tidx={int32,int64}`<br>`output_type={int32,int64}`<br>`T={complex64,double,float,int32,int64,uint32,uint64}` 18 `Asinh` | `T={complex64,double,float}` 19 `AssignAddVariableOp` | `dtype={complex64,double,float,int32,int64,uint32,uint64}` 20 `AssignSubVariableOp` | `dtype={complex64,double,float,int32,int64,uint32,uint64}` 21 `AssignVariableOp` | `dtype={bool,complex64,double,float,int32,int64,uint32,uint64}` 22 `Atan2` | `T={double,float}` 23 `Atanh` | `T={complex64,double,float}` 24 `AvgPool` | `T={double,float}` 25 `AvgPool3D` | `T={double,float}` 26 `AvgPool3DGrad` | `T={double,float}` 27 `AvgPoolGrad` | `T={double,float}` 28 `BatchMatMul` | `T={complex64,double,float,int32}` 29 `BatchToSpace` | `Tidx={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 30 `BatchToSpaceND` | `Tcrops={int32,int64}`<br>`Tblock_shape={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 31 `BiasAdd` | `T={complex64,double,float,int32,int64,uint32,uint64}` 32 `BiasAddGrad` | `T={complex64,double,float,int32,int64,uint32,uint64}` 33 `BiasAddV1` | `T={complex64,double,float,int32,int64,uint32,uint64}` 34 `BitwiseAnd` | `T={int32,int64,uint32,uint64}` 35 `BitwiseOr` | `T={int32,int64,uint32,uint64}` 36 `BroadcastArgs` | `T={int32,int64}` 37 `BroadcastGradientArgs` | `T={int32,int64}` 38 `Cast` | `DstT={bool,complex64,double,float,int32,int64,uint32,uint64}`<br>`SrcT={bool,complex64,double,float,int32,int64,uint32,uint64}` 39 `Ceil` | `T={double,float}` 40 `Cholesky` | `T={double,float}` 41 `Complex` | `Tout={complex64}`<br>`T={double,float}` 42 `ComplexAbs` | `Tout={double,float}`<br>`T={complex64}` 43 `Concat` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 44 `ConcatOffset` | 45 `ConcatV2` | `Tidx={int32}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 46 `Conj` | `T={complex64}` 47 `Const` | `dtype={bool,complex64,double,float,int32,int64,uint32,uint64}` 48 `ControlTrigger` | 49 `Conv2D` | `T={float}` 50 `Conv2DBackpropFilter` | `T={float}` 51 `Conv2DBackpropInput` | `T={float}` 52 `Conv3D` | `T={double,float}` 53 `Conv3DBackpropFilterV2` | `T={double,float}` 54 `Conv3DBackpropInputV2` | `T={double,float}` 55 `Cos` | `T={complex64,double,float}` 56 `Cosh` | `T={complex64,double,float}` 57 `Cross` | `T={double,float,int32,int64,uint32,uint64}` 58 `Cumprod` | `Tidx={int32,int64}`<br>`T={float}` 59 `Cumsum` | `Tidx={int32,int64}`<br>`T={float}` 60 `DepthToSpace` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 61 `DepthwiseConv2dNative` | `T={double,float}` 62 `DepthwiseConv2dNativeBackpropFilter` | `T={double,float}` 63 `DepthwiseConv2dNativeBackpropInput` | `T={double,float}` 64 `Diag` | `T={complex64,double,float,int32,int64}` 65 `DiagPart` | `T={complex64,double,float,int32,int64}` 66 `Div` | `T={complex64,double,float,int32,int64}` 67 `DynamicStitch` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 68 `Elu` | `T={double,float}` 69 `EluGrad` | `T={double,float}` 70 `Equal` | `T={bool,complex64,double,float,int32,int64}` 71 `Exp` | `T={complex64,double,float}` 72 `ExpandDims` | `Tdim={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 73 `Expm1` | `T={complex64,double,float}` 74 `ExtractImagePatches` | `T={double,float,int32,int64,uint32,uint64}` 75 `FFT` | 76 `FFT2D` | 77 `FFT3D` | 78 `Fill` | `index_type={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 79 `Floor` | `T={double,float}` 80 `FloorDiv` | `T={complex64,double,float,int32,int64}` 81 `FloorMod` | `T={double,float,int32,int64}` 82 `FusedBatchNorm` | `T={float}` 83 `FusedBatchNormGrad` | `T={float}` 84 `FusedBatchNormGradV2` | `U={float}`<br>`T={float}` 85 `FusedBatchNormV2` | `U={float}`<br>`T={float}` 86 `Gather` | `Tindices={int32,int64}`<br>`Tparams={bool,complex64,double,float,int32,int64,uint32,uint64}` 87 `GatherV2` | `Taxis={int32,int64}`<br>`Tindices={int32,int64}`<br>`Tparams={bool,complex64,double,float,int32,int64,uint32,uint64}` 88 `Greater` | `T={double,float,int32,int64,uint32,uint64}` 89 `GreaterEqual` | `T={double,float,int32,int64,uint32,uint64}` 90 `HSVToRGB` | `T={double,float}` 91 `IFFT` | 92 `IFFT2D` | 93 `IFFT3D` | 94 `IRFFT` | 95 `IRFFT2D` | 96 `IRFFT3D` | 97 `Identity` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 98 `IdentityN` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 99 `Imag` | `Tout={double,float}`<br>`T={complex64}` 100 `Inv` | `T={complex64,double,float,int32,int64}` 101 `Invert` | `T={int32,int64,uint32,uint64}` 102 `InvertPermutation` | `T={int32}` 103 `IsFinite` | `T={double,float}` 104 `IsInf` | `T={double,float}` 105 `IsNan` | `T={double,float}` 106 `L2Loss` | `T={double,float}` 107 `LRN` | `T={float}` 108 `LRNGrad` | `T={float}` 109 `LeftShift` | `T={int32,int64,uint32,uint64}` 110 `Less` | `T={double,float,int32,int64,uint32,uint64}` 111 `LessEqual` | `T={double,float,int32,int64,uint32,uint64}` 112 `LinSpace` | `Tidx={int32,int64}`<br>`T={double,float}` 113 `Log` | `T={complex64,double,float}` 114 `Log1p` | `T={complex64,double,float}` 115 `LogSoftmax` | `T={double,float}` 116 `LogicalAnd` | 117 `LogicalNot` | 118 `LogicalOr` | 119 `MatMul` | `T={complex64,double,float}` 120 `MatrixDiag` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 121 `MatrixDiagPart` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 122 `MatrixTriangularSolve` | `T={complex64,double,float}` 123 `Max` | `Tidx={int32,int64}`<br>`T={complex64,double,float,int32,int64,uint32,uint64}` 124 `MaxPool` | `T={double,float,int32,int64}` 125 `MaxPool3D` | `T={float}` 126 `MaxPool3DGrad` | `TInput={float}`<br>`T={float}` 127 `MaxPoolGrad` | `T={double,float,int32,int64,uint32,uint64}` 128 `MaxPoolGradV2` | `T={double,float,int32,int64,uint32,uint64}` 129 `MaxPoolV2` | `T={double,float,int32,int64}` 130 `Maximum` | `T={double,float,int32,int64}` 131 `Mean` | `Tidx={int32,int64}`<br>`T={complex64,double,float,int32,int64,uint32,uint64}` 132 `Min` | `Tidx={int32,int64}`<br>`T={complex64,double,float,int32,int64,uint32,uint64}` 133 `Minimum` | `T={double,float,int32,int64}` 134 `MirrorPad` | `Tpaddings={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 135 `Mod` | `T={double,float,int32,int64}` 136 `Mul` | `T={complex64,double,float,int32,int64}` 137 `Multinomial` | `output_dtype={int32,int64}`<br>`T={double,float,int32,int64,uint32,uint64}` 138 `Neg` | `T={complex64,double,float,int32,int64}` 139 `NoOp` | 140 `NotEqual` | `T={bool,complex64,double,float,int32,int64}` 141 `OneHot` | `TI={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 142 `OnesLike` | `T={bool,complex64,double,float,int32,int64}` 143 `Pack` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 144 `Pad` | `Tpaddings={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 145 `PadV2` | `Tpaddings={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 146 `ParallelDynamicStitch` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 147 `Pow` | `T={complex64,double,float,int32,int64}` 148 `PreventGradient` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 149 `Prod` | `Tidx={int32,int64}`<br>`T={complex64,double,float,int32,int64,uint32,uint64}` 150 `QuantizeAndDequantizeV2` | `T={double,float}` 151 `RFFT` | 152 `RFFT2D` | 153 `RFFT3D` | 154 `RGBToHSV` | `T={double,float}` 155 `Range` | `Tidx={double,float,int32,int64}` 156 `Rank` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 157 `ReadVariableOp` | `dtype={bool,complex64,double,float,int32,int64,uint32,uint64}` 158 `Real` | `Tout={double,float}`<br>`T={complex64}` 159 `RealDiv` | `T={complex64,double,float,int32,int64}` 160 `Reciprocal` | `T={complex64,double,float,int32,int64}` 161 `ReciprocalGrad` | `T={complex64,double,float}` 162 `Relu` | `T={double,float,int32,int64,uint32,uint64}` 163 `Relu6` | `T={double,float,int32,int64,uint32,uint64}` 164 `Relu6Grad` | `T={double,float,int32,int64,uint32,uint64}` 165 `ReluGrad` | `T={double,float,int32,int64,uint32,uint64}` 166 `Reshape` | `Tshape={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 167 `ResizeBilinear` | `T={double,float,int32,int64}` 168 `ResizeBilinearGrad` | `T={double,float}` 169 `ResourceApplyAdagrad` | `T={double,float}` 170 `ResourceApplyAdam` | `T={double,float}` 171 `ResourceApplyFtrl` | `T={double,float}` 172 `ResourceApplyFtrlV2` | `T={double,float}` 173 `ResourceApplyGradientDescent` | `T={double,float}` 174 `ResourceApplyMomentum` | `T={double,float}` 175 `ResourceApplyRMSProp` | `T={double,float}` 176 `ResourceGather` | `Tindices={int32,int64}`<br>`dtype={complex64,double,float,int32,int64,uint32,uint64}` 177 `ResourceStridedSliceAssign` | `Index={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 178 `Reverse` | `T={bool,complex64,double,float,int32,int64}` 179 `ReverseSequence` | `Tlen={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 180 `ReverseV2` | `T={bool,complex64,double,float,int32,int64}`<br>`Tidx={int32,int64}` 181 `RightShift` | `T={int32,int64,uint32,uint64}` 182 `Rint` | `T={double,float}` 183 `Round` | `T={complex64,double,float,int32,int64}` 184 `Rsqrt` | `T={complex64,double,float}` 185 `RsqrtGrad` | `T={complex64,double,float}` 186 `Select` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 187 `Selu` | `T={double,float}` 188 `SeluGrad` | `T={double,float}` 189 `Shape` | `out_type={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 190 `ShapeN` | `out_type={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 191 `Sigmoid` | `T={complex64,double,float}` 192 `SigmoidGrad` | `T={complex64,double,float}` 193 `Sign` | `T={complex64,double,float,int32,int64}` 194 `Sin` | `T={complex64,double,float}` 195 `Sinh` | `T={complex64,double,float}` 196 `Size` | `out_type={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 197 `Slice` | `Index={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 198 `Softmax` | `T={double,float}` 199 `SoftmaxCrossEntropyWithLogits` | `T={double,float}` 200 `Softplus` | `T={double,float,int32,int64,uint32,uint64}` 201 `SoftplusGrad` | `T={double,float,int32,int64,uint32,uint64}` 202 `Softsign` | `T={double,float,int32,int64,uint32,uint64}` 203 `SoftsignGrad` | `T={double,float,int32,int64,uint32,uint64}` 204 `SpaceToBatch` | `Tpaddings={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 205 `SpaceToBatchND` | `Tblock_shape={int32,int64}`<br>`Tpaddings={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 206 `SpaceToDepth` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 207 `SparseMatMul` | `Tb={float}`<br>`Ta={float}` 208 `SparseSoftmaxCrossEntropyWithLogits` | `Tlabels={int32,int64}`<br>`T={double,float}` 209 `Split` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 210 `SplitV` | `Tlen={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 211 `Sqrt` | `T={complex64,double,float}` 212 `SqrtGrad` | `T={complex64,double,float}` 213 `Square` | `T={complex64,double,float,int32,int64}` 214 `SquaredDifference` | `T={complex64,double,float,int32,int64}` 215 `Squeeze` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 216 `StackCloseV2` | 217 `StackPopV2` | `elem_type={bool,complex64,double,float,int32,int64,uint32,uint64}` 218 `StackPushV2` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 219 `StackV2` | `elem_type={bool,complex64,double,float,int32,int64,uint32,uint64}` 220 `StatelessRandomNormal` | `Tseed={int32}`<br>`T={int32,int64}`<br>`dtype={float}` 221 `StatelessRandomUniform` | `Tseed={int32}`<br>`T={int32,int64}`<br>`dtype={float}` 222 `StopGradient` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 223 `StridedSlice` | `Index={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 224 `StridedSliceGrad` | `Index={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 225 `Sub` | `T={complex64,double,float,int32,int64}` 226 `Sum` | `Tidx={int32,int64}`<br>`T={complex64,double,float,int32,int64,uint32,uint64}` 227 `SymbolicGradient` | `Tout={bool,complex64,double,float,int32,int64,uint32,uint64}`<br>`Tin={bool,complex64,double,float,int32,int64,uint32,uint64}` 228 `Tan` | `T={complex64,double,float,int32,int64}` 229 `Tanh` | `T={complex64,double,float}` 230 `TanhGrad` | `T={complex64,double,float}` 231 `TensorArrayCloseV3` | 232 `TensorArrayConcatV3` | `dtype={bool,complex64,double,float,int32,int64,uint32,uint64}` 233 `TensorArrayGatherV3` | `dtype={bool,complex64,double,float,int32,int64,uint32,uint64}` 234 `TensorArrayGradV3` | 235 `TensorArrayReadV3` | `dtype={bool,complex64,double,float,int32,int64,uint32,uint64}` 236 `TensorArrayScatterV3` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 237 `TensorArraySizeV3` | 238 `TensorArraySplitV3` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 239 `TensorArrayV3` | `dtype={bool,complex64,double,float,int32,int64,uint32,uint64}` 240 `TensorArrayWriteV3` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 241 `Tile` | `Tmultiples={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 242 `Transpose` | `Tperm={int32,int64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 243 `TruncateDiv` | `T={complex64,double,float,int32,int64}` 244 `TruncateMod` | `T={double,float,int32,int64}` 245 `Unpack` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 246 `UnsortedSegmentSum` | `Tnumsegments={int32,int64}`<br>`Tindices={int32,int64}`<br>`T={complex64,double,float,int32,int64,uint32,uint64}` 247 `VarIsInitializedOp` | 248 `VariableShape` | `out_type={int32,int64}` 249 `XlaWhile` | `T={bool,complex64,double,float,int32,int64,resource,uint32,uint64}` 250 `ZerosLike` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 251 `_Arg` | `T={bool,complex64,double,float,int32,int64,resource,uint32,uint64}` 252 `_ArrayToList` | `out_types={bool,complex64,double,float,int32,int64,uint32,uint64}`<br>`T={bool,complex64,double,float,int32,int64,uint32,uint64}` 253 `_ListToArray` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}`<br>`Tin={bool,complex64,double,float,int32,int64,uint32,uint64}` 254 `_Retval` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 255 `_XLARecv` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 256 `_XLASend` | `T={bool,complex64,double,float,int32,int64,uint32,uint64}` 257 258 To regenerate this table, run: 259 260 ```shell 261 bazel run -c opt -- tensorflow/compiler/tf2xla:tf2xla_supported_ops --device=XLA_GPU_JIT 262 ``` 263