diff --git a/tensorboard/plugins/graph/tf_graph_common/op.ts b/tensorboard/plugins/graph/tf_graph_common/op.ts index 4f981a47a3..4ea3a70364 100644 --- a/tensorboard/plugins/graph/tf_graph_common/op.ts +++ b/tensorboard/plugins/graph/tf_graph_common/op.ts @@ -23,7 +23,8 @@ export interface CompatibilityProvider { } export class TpuCompatibilityProvider implements CompatibilityProvider { /** - * Whitelist of current Tensorflow ops valid on the TPU + * Allowed list of current Tensorflow ops valid on the TPU. + * Note that some data types may be unsupported. */ static readonly WHITELIST = [ 'Abs', @@ -31,10 +32,12 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'Acosh', 'Add', 'AddN', + 'AddV2', 'AdjustContrastv2', 'AdjustHue', 'AdjustSaturation', 'All', + 'AllToAll', 'Angle', 'Any', 'ApproximateEqual', @@ -54,8 +57,12 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'AvgPool3DGrad', 'AvgPoolGrad', 'BatchMatMul', + 'BatchMatMulV2', 'BatchToSpace', 'BatchToSpaceND', + 'BesselI0e', + 'BesselI1e', + 'Betainc', 'BiasAdd', 'BiasAddGrad', 'BiasAddV1', @@ -65,12 +72,15 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'BitwiseXor', 'BroadcastArgs', 'BroadcastGradientArgs', + 'BroadcastTo', 'Bucketize', + 'Case', 'Cast', 'Ceil', 'CheckNumerics', 'Cholesky', 'ClipByValue', + 'CollectivePermute', 'Complex', 'ComplexAbs', 'Concat', @@ -92,21 +102,31 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'CrossReplicaSum', 'Cumprod', 'Cumsum', + 'DataFormatDimMap', + 'DataFormatVecPermute', + 'DataFormatVecPermute', 'DepthToSpace', 'DepthwiseConv2dNative', 'DepthwiseConv2dNativeBackpropFilter', 'DepthwiseConv2dNativeBackpropInput', + 'Dequantize', + 'DeviceIndex', 'Diag', 'DiagPart', 'Digamma', 'Div', + 'DivNoNan', 'DynamicStitch', + 'Einsum', 'Elu', 'EluGrad', 'Empty', + 'EmptyTensorList', + 'EnsureShape', 'Equal', 'Erf', 'Erfc', + 'Erfinv', 'Exp', 'ExpandDims', 'Expm1', @@ -114,6 +134,7 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'FFT', 'FFT2D', 'FFT3D', + 'FakeParam', 'FakeQuantWithMinMaxArgs', 'FakeQuantWithMinMaxArgsGradient', 'FakeQuantWithMinMaxVars', @@ -125,7 +146,9 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'FusedBatchNorm', 'FusedBatchNormGrad', 'FusedBatchNormGradV2', + 'FusedBatchNormGradV3', 'FusedBatchNormV2', + 'FusedBatchNormV3', 'Gather', 'GatherNd', 'GatherV2', @@ -142,7 +165,11 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'Identity', 'IdentityN', 'If', + 'Igamma', + 'IgammaGradA', + 'Igammac', 'Imag', + 'InTopKV2', 'InfeedDequeue', 'InfeedDequeueTuple', 'InplaceAdd', @@ -153,9 +180,12 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'IsFinite', 'IsInf', 'IsNan', + 'KthOrderStatistic', 'L2Loss', 'LRN', 'LRNGrad', + 'LeakyRelu', + 'LeakyReluGrad', 'LeftShift', 'Less', 'LessEqual', @@ -168,11 +198,21 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'LogicalAnd', 'LogicalNot', 'LogicalOr', + 'LowerBound', + 'MakeUnique', 'MatMul', 'MatrixBandPart', 'MatrixDiag', 'MatrixDiagPart', + 'MatrixDiagPartV2', + 'MatrixDiagPartV3', + 'MatrixDiagV2', + 'MatrixDiagV3', + 'MatrixInverse', 'MatrixSetDiag', + 'MatrixSetDiagV2', + 'MatrixSetDiagV3', + 'MatrixSolve', 'MatrixTriangularSolve', 'Max', 'MaxPool', @@ -191,8 +231,11 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'MirrorPad', 'Mod', 'Mul', + 'MulNoNan', 'Multinomial', + 'Ndtri', 'Neg', + 'NextAfter', 'NoOp', 'NonMaxSuppressionV4', 'NotEqual', @@ -204,7 +247,10 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'Pad', 'PadV2', 'ParallelDynamicStitch', + 'ParameterizedTruncatedNormal', + 'PartitionedCall', 'PlaceholderWithDefault', + 'PopulationCount', 'Pow', 'PreventGradient', 'Prod', @@ -215,6 +261,7 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'RFFT2D', 'RFFT3D', 'RGBToHSV', + 'RandomGammaGrad', 'RandomShuffle', 'RandomStandardNormal', 'RandomUniform', @@ -226,7 +273,6 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'RealDiv', 'Reciprocal', 'ReciprocalGrad', - 'RecvTPUEmbeddingActivations', 'Relu', 'Relu6', 'Relu6Grad', @@ -234,16 +280,20 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'Reshape', 'ResizeBilinear', 'ResizeBilinearGrad', + 'ResizeNearestNeighbor', + 'ResizeNearestNeighborGrad', 'ResourceApplyAdaMax', 'ResourceApplyAdadelta', 'ResourceApplyAdagrad', 'ResourceApplyAdagradDA', + 'ResourceApplyAdagradV2', 'ResourceApplyAdam', 'ResourceApplyAddSign', 'ResourceApplyCenteredRMSProp', 'ResourceApplyFtrl', 'ResourceApplyFtrlV2', 'ResourceApplyGradientDescent', + 'ResourceApplyKerasMomentum', 'ResourceApplyMomentum', 'ResourceApplyPowerSign', 'ResourceApplyProximalAdagrad', @@ -256,6 +306,7 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'ResourceScatterMin', 'ResourceScatterMul', 'ResourceScatterNdAdd', + 'ResourceScatterNdSub', 'ResourceScatterNdUpdate', 'ResourceScatterSub', 'ResourceScatterUpdate', @@ -265,14 +316,16 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'ReverseV2', 'RightShift', 'Rint', + 'Roll', 'Round', 'Rsqrt', 'RsqrtGrad', 'ScatterNd', 'Select', + 'SelectV2', + 'SelfAdjointEigV2', 'Selu', 'SeluGrad', - 'SendTPUEmbeddingGradients', 'Shape', 'ShapeN', 'Sigmoid', @@ -306,9 +359,19 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'StackPopV2', 'StackPushV2', 'StackV2', + 'StatefulPartitionedCall', + 'StatefulStandardNormalV2', + 'StatefulTruncatedNormal', + 'StatefulUniform', + 'StatefulUniformFullInt', + 'StatefulUniformInt', + 'StatelessCase', 'StatelessIf', + 'StatelessMultinomial', 'StatelessRandomNormal', 'StatelessRandomUniform', + 'StatelessRandomUniformFullInt', + 'StatelessRandomUniformInt', 'StatelessTruncatedNormal', 'StatelessWhile', 'StopGradient', @@ -316,6 +379,7 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'StridedSliceGrad', 'Sub', 'Sum', + 'Svd', 'SymbolicGradient', 'TPUEmbeddingActivations', 'Tan', @@ -331,9 +395,27 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'TensorArraySplitV3', 'TensorArrayV3', 'TensorArrayWriteV3', + 'TensorListConcatV2', + 'TensorListElementShape', + 'TensorListFromTensor', + 'TensorListGather', + 'TensorListGetItem', + 'TensorListLength', + 'TensorListPopBack', + 'TensorListPushBack', + 'TensorListReserve', + 'TensorListSetItem', + 'TensorListSplit', + 'TensorListStack', + 'TensorScatterAdd', + 'TensorScatterSub', + 'TensorScatterUpdate', 'Tile', + 'TopKUnique', 'TopKV2', + 'TopKWithUnique', 'Transpose', + 'TridiagonalSolve', 'TruncateDiv', 'TruncateMod', 'TruncatedNormal', @@ -342,20 +424,47 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'UnsortedSegmentMin', 'UnsortedSegmentProd', 'UnsortedSegmentSum', + 'UpperBound', 'VarIsInitializedOp', 'VariableShape', + 'Where', 'While', + 'Xdivy', + 'XlaBroadcastHelper', + 'XlaConv', + 'XlaDequantize', + 'XlaDot', + 'XlaDynamicSlice', 'XlaDynamicUpdateSlice', + 'XlaEinsum', + 'XlaGather', 'XlaHostCompute', 'XlaIf', + 'XlaKeyValueSort', + 'XlaPad', 'XlaRecv', + 'XlaRecvFromHost', + 'XlaReduce', 'XlaReduceWindow', + 'XlaReplicaId', + 'XlaScatter', + 'XlaSelectAndScatter', + 'XlaSelfAdjointEig', 'XlaSend', + 'XlaSendToHost', + 'XlaSharding', 'XlaSort', + 'XlaSpmdFullToShardShape', + 'XlaSpmdShardToFullShape', + 'XlaSvd', 'XlaWhile', + 'Xlog1py', + 'Xlogy', 'ZerosLike', + // Ops below are manually whitelisted and should not be evaluated for // compatibility for various reasons. + // Control flow ops. 'Enter', 'Exit', @@ -365,10 +474,17 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'Switch', // Ops below are inserted by the compiler. '_Arg', + '_ArrayToList', + '_FusedBatchNormEx', + '_ListToArray', '_ParallelConcatUpdate', + '_RecvTPUEmbeddingActivations', + '_RecvTPUEmbeddingDeduplicationData', '_Retval', + '_SendTPUEmbeddingGradients', '_TPUCompile', '_TPUExecute', + '_UnaryOpsComposition', // Distributed TPU ops. 'TPUCompilationResult', 'TPUReplicatedInput', @@ -399,6 +515,7 @@ export class TpuCompatibilityProvider implements CompatibilityProvider { 'ScalarSummary', 'StatsAggregatorSummary', ]; + /** * Returns true if the node's inferred device is not the TPU. * Note that this is only a best-effort check.