Ruoxin Sang [Wed, 30 May 2018 23:38:59 +0000 (16:38 -0700)]
Regard a path as a directory if it ends with "/" in GCS. This implies the assumption that if a real GCS object has file name ending with "/", it is always a directory mark rather than an object carrying actual contents.
PiperOrigin-RevId:
198640604
Sanjoy Das [Wed, 30 May 2018 23:29:25 +0000 (16:29 -0700)]
Always delete old while loop after LICM
Right now the old while loop can stick around if it had side effects, which is
incorrect.
PiperOrigin-RevId:
198639203
A. Unique TensorFlower [Wed, 30 May 2018 23:27:26 +0000 (16:27 -0700)]
Add SerialDeviceBatchScheduler which offers similar performance as the AdaptiveSharedBatchScheduler, but increased reliablility and stability.
ASBS assumes request latency can be minimized at a specific number of batch processing threads. Under reasonable load, this is true and ASBS performs well, but under low load latency is basically unaffected by the number of threads, and ASBS can learn a wide variety of 'optimal' values. If load resumes suddenly, these values can give very poor latencies. In most cases, ASBS will recover, eventually rediscovering the correct value, but we have observed other cases where the latency is so large and noisy that ASBS can't get a good signal to guide its learning and the number of threads remains stuck at the bad value.
In addition, the incremental learning nature of this algorithm means that ASBS is always exploring to some extent, which can give rise to periods of non-optimal latency. This is most significant at high utilization where the wrong number of threads can potentially overload the system.
ASBS uses latency as a proxy for keeping the tensorflow processing pipeline optimally loaded. SDBS, on the other hand, uses a direct measurement of the pipeline fullness, and adjusts its number of batch processing threads accordingly. This solves the exploration problem. SDBS solves the low load problem by not adjusting its thread count when the threads pass some idleness threshold.
PiperOrigin-RevId:
198638918
Karmel Allison [Wed, 30 May 2018 23:25:00 +0000 (16:25 -0700)]
Add a convenience function, build_supervised_input_receiver_fn_from_input_fn,
that takes an Estimator input_fn and returns an input receiver function.
PiperOrigin-RevId:
198638593
A. Unique TensorFlower [Wed, 30 May 2018 23:17:45 +0000 (16:17 -0700)]
Automated g4 rollback of changelist
198444757
PiperOrigin-RevId:
198637528
A. Unique TensorFlower [Wed, 30 May 2018 23:01:05 +0000 (16:01 -0700)]
Makes empty() support uint8 on cpu.
PiperOrigin-RevId:
198634986
Skye Wanderman-Milne [Wed, 30 May 2018 23:00:26 +0000 (16:00 -0700)]
Remove environment variable to disable C API.
This is staging for removing the _USE_C_API toggle altogether.
PiperOrigin-RevId:
198634886
Alexandre Passos [Wed, 30 May 2018 22:50:43 +0000 (15:50 -0700)]
Makes most variable writes depend on the cached value.
This disallows some undefined behavior with unordered reads and writes.
PiperOrigin-RevId:
198633444
A. Unique TensorFlower [Wed, 30 May 2018 22:39:03 +0000 (15:39 -0700)]
Add HloProto support to replay_computation
PiperOrigin-RevId:
198631733
A. Unique TensorFlower [Wed, 30 May 2018 22:24:17 +0000 (15:24 -0700)]
Avoid recursion in ExpandDomain() as stack is not happy.
PiperOrigin-RevId:
198629366
A. Unique TensorFlower [Wed, 30 May 2018 22:03:25 +0000 (15:03 -0700)]
Add kwargs support for tpu.outside_compilation
PiperOrigin-RevId:
198625799
A. Unique TensorFlower [Wed, 30 May 2018 21:55:54 +0000 (14:55 -0700)]
Move RemoveInvolution optimization to optimizer stage.
PiperOrigin-RevId:
198624394
Brennan Saeta [Wed, 30 May 2018 22:25:46 +0000 (15:25 -0700)]
Add GCS configure ops.
PiperOrigin-RevId:
198624285
Joshua V. Dillon [Wed, 30 May 2018 21:52:57 +0000 (14:52 -0700)]
Add `fill_triangular_inverse`, which flattens a triangular matrix in a way such that:
# Lower triangular matrix
x = tf.matrix_band_part(x, -1, 0)
x == fill_triangular(fill_triangular_inverse(x))
Code by srvasude@ which I'm submitting on his behalf.
PiperOrigin-RevId:
198623887
Benoit Steiner [Wed, 30 May 2018 21:45:56 +0000 (14:45 -0700)]
Add control dependencies to the correct graph when simplifying packing ops.
PiperOrigin-RevId:
198622727
A. Unique TensorFlower [Wed, 30 May 2018 21:44:57 +0000 (14:44 -0700)]
Add `tf.contrib.distributions.bijectors.MatrixInverseTriL`: Bijector that inverts a lower-triangular matrix.
PiperOrigin-RevId:
198622553
A. Unique TensorFlower [Wed, 30 May 2018 21:33:54 +0000 (14:33 -0700)]
Add include file which provides the proper std::string mapping.
PiperOrigin-RevId:
198620715
A. Unique TensorFlower [Wed, 30 May 2018 18:48:43 +0000 (11:48 -0700)]
Skip errors in function optimizer if optimized graph was not modified before error happened.
Currently error can happen if function can't be instantiated as GrapplerFunctionItem.
PiperOrigin-RevId:
198595096
Jiri Simsa [Wed, 30 May 2018 18:30:23 +0000 (11:30 -0700)]
[tf.data] change batch dataset op test size to large to prevent timeout
PiperOrigin-RevId:
198592202
A. Unique TensorFlower [Wed, 30 May 2018 18:12:26 +0000 (11:12 -0700)]
Let the swig wrapped builder to return the HloModuleProto.
PiperOrigin-RevId:
198588920
Rob Sloan [Wed, 30 May 2018 17:56:02 +0000 (10:56 -0700)]
Add an option to propagate Status in GraphOptimizerStagePipelines.
PiperOrigin-RevId:
198585886
A. Unique TensorFlower [Wed, 30 May 2018 17:40:39 +0000 (10:40 -0700)]
Internal change
PiperOrigin-RevId:
198582954
Gunhan Gulsoy [Wed, 30 May 2018 17:35:57 +0000 (10:35 -0700)]
Disable flaky fused_rnn_cell_test
PiperOrigin-RevId:
198582181
A. Unique TensorFlower [Wed, 30 May 2018 16:39:57 +0000 (09:39 -0700)]
KL divergence for two Dirichlet distributions.
PiperOrigin-RevId:
198573236
A. Unique TensorFlower [Wed, 30 May 2018 16:14:12 +0000 (09:14 -0700)]
Adding tf.name_scope blocks to make the TensorBoard graph visualization usable.
PiperOrigin-RevId:
198569786
Jiri Simsa [Wed, 30 May 2018 15:53:16 +0000 (08:53 -0700)]
[tf.data] Adding a concurrency stress test for `map_and_batch`.
PiperOrigin-RevId:
198566777
Mustafa Ispir [Wed, 30 May 2018 15:00:34 +0000 (08:00 -0700)]
internal
PiperOrigin-RevId:
198560342
A. Unique TensorFlower [Wed, 30 May 2018 14:13:33 +0000 (07:13 -0700)]
beautify test output file name.
PiperOrigin-RevId:
198555383
A. Unique TensorFlower [Wed, 30 May 2018 07:58:29 +0000 (00:58 -0700)]
Remove unused Make variables from tf_py_wrap_cc.
PiperOrigin-RevId:
198518885
Brian Patton [Wed, 30 May 2018 07:14:37 +0000 (00:14 -0700)]
Adds GPU kernel registration for igamma, igammac.
Switches use_gpu=True to force_gpu=True for cwise_ops_test.
PiperOrigin-RevId:
198515293
A. Unique TensorFlower [Wed, 30 May 2018 07:06:26 +0000 (00:06 -0700)]
Improve error message when a missing feature name is passed as a unicode string.
PiperOrigin-RevId:
198514621
Smit Hinsu [Wed, 30 May 2018 06:52:59 +0000 (23:52 -0700)]
Fix GPU build on windows
PiperOrigin-RevId:
198513480
A. Unique TensorFlower [Wed, 30 May 2018 04:39:20 +0000 (21:39 -0700)]
internal cleanup
PiperOrigin-RevId:
198504528
A. Unique TensorFlower [Wed, 30 May 2018 04:24:36 +0000 (21:24 -0700)]
Introduced kDomain HLO instruction set isolation to bound connected sets of instructions with similar attributes (ie, sharding).
This CL simply adds the infrastructure, but leaves the wire-on to a separate CL.
PiperOrigin-RevId:
198503625
Bjarke Hammersholt Roune [Wed, 30 May 2018 04:10:43 +0000 (21:10 -0700)]
Add features to HloRunner for running while leaving buffers on the device and add option to test_utils for generating more-boring data much faster.
PiperOrigin-RevId:
198502753
A. Unique TensorFlower [Wed, 30 May 2018 02:50:19 +0000 (19:50 -0700)]
Do not allow cross computation instruction lookups in HLO parser.
PiperOrigin-RevId:
198496653
Justin Lebar [Wed, 30 May 2018 02:07:32 +0000 (19:07 -0700)]
[XLA] Minor HloSharding cleanups.
Delete dead code in HloSharding::ToString(), and add and use proper
hasher struct.
PiperOrigin-RevId:
198493972
James Qin [Wed, 30 May 2018 01:17:19 +0000 (18:17 -0700)]
Remove unnecessary shape registration fn from cudnn rnn ops.
The registered ones are the same as default.
PiperOrigin-RevId:
198489529
Jiri Simsa [Wed, 30 May 2018 01:10:27 +0000 (18:10 -0700)]
Making RPC op handle the case where cancellation manager is not initialized in OpKernelContext.
Fixes #19496
PiperOrigin-RevId:
198488860
Alexander Gorban [Wed, 30 May 2018 00:51:13 +0000 (17:51 -0700)]
Convenience functions to create TensorProto directly from data (std::vector).
PiperOrigin-RevId:
198486802
Joshua V. Dillon [Wed, 30 May 2018 00:42:37 +0000 (17:42 -0700)]
Use absolute indexing in `fill_triangular`.
PiperOrigin-RevId:
198485926
Jiri Simsa [Wed, 30 May 2018 00:08:59 +0000 (17:08 -0700)]
Fixing a bug in `map_and_batch_fusion` and improving test coverage.
PiperOrigin-RevId:
198481898
Francois Chollet [Tue, 29 May 2018 23:57:17 +0000 (16:57 -0700)]
Add tf.keras programmer's guide.
PiperOrigin-RevId:
198480159
A. Unique TensorFlower [Tue, 29 May 2018 23:47:59 +0000 (16:47 -0700)]
Fix documented numpy equivalent of matrix_triangular_solve.
PiperOrigin-RevId:
198478933
Justin Lebar [Tue, 29 May 2018 23:41:00 +0000 (16:41 -0700)]
Automated g4 rollback of changelist
198137414
PiperOrigin-RevId:
198477942
Russell Power [Tue, 29 May 2018 23:36:16 +0000 (16:36 -0700)]
Adjust TPUEstimator timeout for worker shutdown to 60 seconds.
PiperOrigin-RevId:
198477309
Jianwei Xie [Tue, 29 May 2018 23:33:25 +0000 (16:33 -0700)]
Wraps the FinalOp exection with a user-friendly error mssage.
PiperOrigin-RevId:
198476911
Yifei Feng [Tue, 29 May 2018 23:22:46 +0000 (16:22 -0700)]
Update setup.py with project description and development status.
PiperOrigin-RevId:
198475440
Derek Murray [Tue, 29 May 2018 23:22:22 +0000 (16:22 -0700)]
Add microbenchmarks for the executor.
PiperOrigin-RevId:
198475385
A. Unique TensorFlower [Tue, 29 May 2018 22:56:42 +0000 (15:56 -0700)]
streaming trace viewer need to filter host.
PiperOrigin-RevId:
198471853
Rohan Jain [Tue, 29 May 2018 22:31:04 +0000 (15:31 -0700)]
Adding a check in eager metrics to make sure that the shapes of labels and predictions are exactly the same. The issue is that math_ops.equal would do broadcasting and so even if the shapes weren't entirely equal it'll produce an output which would be incorrect rather that reporting an error.
PiperOrigin-RevId:
198468251
A. Unique TensorFlower [Tue, 29 May 2018 21:28:59 +0000 (14:28 -0700)]
In TPUEstimator.export_savedmodel(), if saving TPU metegraph fails, issue a warning instead so that user can still use the CPU metagraph.
PiperOrigin-RevId:
198458571
Rachel Lim [Tue, 29 May 2018 21:22:18 +0000 (14:22 -0700)]
[tf.data] better benchmarking code in tests for measuring improvements to csv parsing
PiperOrigin-RevId:
198457501
Peter Hawkins [Tue, 29 May 2018 20:53:17 +0000 (13:53 -0700)]
[TF:XLA] Implement Bucketize.
PiperOrigin-RevId:
198452289
A. Unique TensorFlower [Tue, 29 May 2018 20:44:28 +0000 (13:44 -0700)]
Make the quantize_and_dequantize op use the full quantized range when possible.
PiperOrigin-RevId:
198450816
A. Unique TensorFlower [Tue, 29 May 2018 20:06:57 +0000 (13:06 -0700)]
Automated g4 rollback of changelist
198421828
PiperOrigin-RevId:
198444757
Justin Lebar [Tue, 29 May 2018 19:05:19 +0000 (12:05 -0700)]
Increase tolerances in depthwise_conv_op_test.
PiperOrigin-RevId:
198434814
Sanjoy Das [Tue, 29 May 2018 19:02:57 +0000 (12:02 -0700)]
Use target machine features to determine max vectorization width for GEMM
PiperOrigin-RevId:
198434296
A. Unique TensorFlower [Tue, 29 May 2018 19:01:11 +0000 (12:01 -0700)]
L2HMC trained with strongly correlated Gaussian. Simple testing
and benchmark with eager and graph mode execution.
PiperOrigin-RevId:
198433911
A. Unique TensorFlower [Tue, 29 May 2018 18:55:17 +0000 (11:55 -0700)]
Extracts the 'remove split or splitv nodes' optimization into its own method.
PiperOrigin-RevId:
198432976
Sanjoy Das [Tue, 29 May 2018 18:51:20 +0000 (11:51 -0700)]
[TF:XLA] Bump open source llvm revision to r333395
PiperOrigin-RevId:
198432337
A. Unique TensorFlower [Tue, 29 May 2018 18:46:26 +0000 (11:46 -0700)]
Go: Update generated wrapper functions for TensorFlow ops.
PiperOrigin-RevId:
198431534
A. Unique TensorFlower [Tue, 29 May 2018 18:32:25 +0000 (11:32 -0700)]
Add note to bijector_impl.py explaining that `log_det_jacobian` is `log(*abs*(det(Jacobian)))`.
PiperOrigin-RevId:
198428995
Justin Lebar [Tue, 29 May 2018 18:19:19 +0000 (11:19 -0700)]
[XLA] Clarify that options passed to LocalService override legacy_flags values.
PiperOrigin-RevId:
198426696
A. Unique TensorFlower [Tue, 29 May 2018 18:18:54 +0000 (11:18 -0700)]
Update ops-related pbtxt files.
PiperOrigin-RevId:
198426617
Sanjoy Das [Tue, 29 May 2018 18:14:43 +0000 (11:14 -0700)]
Tile on the M dimension in GEBP.
After this change the inner reduction loop in GEBP multiplies a tile from the
LHS and a tile from the RHS to get a result tile.
PiperOrigin-RevId:
198425769
A. Unique TensorFlower [Tue, 29 May 2018 18:13:36 +0000 (11:13 -0700)]
[tpu:profiler] Add a new field to the statistics collected at each step.
PiperOrigin-RevId:
198425588
A. Unique TensorFlower [Tue, 29 May 2018 18:12:22 +0000 (11:12 -0700)]
Extracts the 'remove shuffle or transpose node' optimization into its own method.
PiperOrigin-RevId:
198425354
Frank Chen [Tue, 29 May 2018 17:57:01 +0000 (10:57 -0700)]
Add security notices for recently discovered and patched vulnerabilities.
PiperOrigin-RevId:
198422244
A. Unique TensorFlower [Tue, 29 May 2018 17:54:51 +0000 (10:54 -0700)]
[TF/XLA] Add validation to find ops incompatible with the given device type at the beginning of graph compilation.
PiperOrigin-RevId:
198421828
A. Unique TensorFlower [Tue, 29 May 2018 17:53:40 +0000 (10:53 -0700)]
Support NHWC_VECT_W in MakeShapeFromFormat.
PiperOrigin-RevId:
198421617
Allen Lavoie [Tue, 29 May 2018 17:34:20 +0000 (10:34 -0700)]
Add AnonymousIteratorHandleOp for non-shared Iterator resources
Fixes Iterator cleanup when executing eagerly. DestroyResourceOp will now remove the last reference from the Iterator resource when it runs (after the last Python reference to an EagerIterator is removed).
Previously EagerIterator used IteratorHandleOp to create resource handles, which used one kernel per (unique) shared name since the shared name was an attribute. These kernels each held a reference to their resource, which kept it alive indefinitely.
Fixes #19499.
PiperOrigin-RevId:
198417997
A. Unique TensorFlower [Tue, 29 May 2018 17:17:39 +0000 (10:17 -0700)]
Clarify argument types and relationships in docstrings of statistical_testing.py.
PiperOrigin-RevId:
198414898
A. Unique TensorFlower [Tue, 29 May 2018 16:49:42 +0000 (09:49 -0700)]
Eliminate self.test_session in favor of self.evaluate in statistical_testing_test.py.
PiperOrigin-RevId:
198410306
Dan Moldovan [Tue, 29 May 2018 16:46:21 +0000 (09:46 -0700)]
Clean up: handle the hidden additional clause on for loops in a way that's clearer about what it does.
PiperOrigin-RevId:
198409797
Dan Moldovan [Tue, 29 May 2018 16:15:44 +0000 (09:15 -0700)]
Clean up: remove useless super delegation.
PiperOrigin-RevId:
198405670
Dan Moldovan [Tue, 29 May 2018 15:45:28 +0000 (08:45 -0700)]
Allow assignment to subscripts in static analysis.
Move the handling of syntactic unpackings to a generic helper function since the pattern is used in multiple places. Update the type info analyzer to correctly process function arguments.
PiperOrigin-RevId:
198401368
A. Unique TensorFlower [Tue, 29 May 2018 15:36:14 +0000 (08:36 -0700)]
Generalize assert_true_mean_equal and assert_true_mean_equal_two_sample to assert_true_mean_in_interval.
PiperOrigin-RevId:
198400265
Asim Shankar [Tue, 29 May 2018 07:50:34 +0000 (00:50 -0700)]
Re-apply #18192.
PiperOrigin-RevId:
198358055
Sanjoy Das [Tue, 29 May 2018 06:55:19 +0000 (23:55 -0700)]
Fix an incorrect precondition check in IndexedArrayAnalysis
PiperOrigin-RevId:
198354001
Sanjoy Das [Tue, 29 May 2018 06:03:39 +0000 (23:03 -0700)]
Pass HloOpcode instead of HloInstruction; NFC
Minor code cleanup change.
PiperOrigin-RevId:
198351045
Sanjoy Das [Tue, 29 May 2018 05:16:46 +0000 (22:16 -0700)]
Make IndexedArrayAnalysis behave well around StatusOr
PiperOrigin-RevId:
198348355
Jiri Simsa [Mon, 28 May 2018 16:33:49 +0000 (09:33 -0700)]
Adding tf.data optimization for rewriting `map(...).batch(...)` to `map_and_batch(...)`.
PiperOrigin-RevId:
198310806
Tom Hennigan [Mon, 28 May 2018 13:32:04 +0000 (06:32 -0700)]
Sort variables in C++ instead of Python.
PiperOrigin-RevId:
198298103
A. Unique TensorFlower [Mon, 28 May 2018 12:21:13 +0000 (05:21 -0700)]
Relax compatibility checks for Protocol Buffer classes, to not rely on the exact layout of the generated classes. The definition of the message is checked instead.
PiperOrigin-RevId:
198292780
Justin Lebar [Sun, 27 May 2018 20:27:28 +0000 (13:27 -0700)]
[XLA] Don't display metadata inline in HLO graph dump.
We only want to display it in the tooltip.
PiperOrigin-RevId:
198235268
A. Unique TensorFlower [Sun, 27 May 2018 17:49:12 +0000 (10:49 -0700)]
TPUEstimator.export_savedmodel() saves a SavedModel with both TPU and CPU graphs.
PiperOrigin-RevId:
198229550
A. Unique TensorFlower [Sat, 26 May 2018 15:25:12 +0000 (08:25 -0700)]
Extracts the 'remove random shuffle node' optimization into its own method.
PiperOrigin-RevId:
198169790
Guangda Lai [Sat, 26 May 2018 06:44:11 +0000 (23:44 -0700)]
Fix the issue where returned Status is not used.
PiperOrigin-RevId:
198146500
A. Unique TensorFlower [Sat, 26 May 2018 05:46:46 +0000 (22:46 -0700)]
DepthwiseConv Optimizations
PiperOrigin-RevId:
198144118
A. Unique TensorFlower [Sat, 26 May 2018 04:38:56 +0000 (21:38 -0700)]
Use dict(locals()) instead of distribution_util.parent_frame_arguments. This will be much
faster at object construction time (going forward we'll figure out a way to make this a function to call).
PiperOrigin-RevId:
198141184
Justin Lebar [Sat, 26 May 2018 03:23:31 +0000 (20:23 -0700)]
[XLA] Don't compute relative error when the expected value is 0.
In literal_comparison, don't try to compute a relative error when the
expected value is 0, because doing so would mean that the only
acceptable value *is* zero, which probably isn't what you mean.
PiperOrigin-RevId:
198137414
Sanjoy Das [Sat, 26 May 2018 02:21:57 +0000 (19:21 -0700)]
Add support for unary and binary ops to indexed tensor analysis
I've added a TODO to clean up the use of ValueOrDie which I will address in an
immediately following CL.
PiperOrigin-RevId:
198134579
Yunxing Dai [Sat, 26 May 2018 02:18:30 +0000 (19:18 -0700)]
[Hlo Graphviz] Always show metadata as tooltips
Always show metadata as tooltips.
PiperOrigin-RevId:
198134430
Sanjoy Das [Sat, 26 May 2018 00:46:19 +0000 (17:46 -0700)]
Add a type-erased broadcast implementation to xla::Literal
And use this in HLO evaluator. Since broadcast only moves bytes around we don't
need a type specialized implementation.
I'll use this in a later change.
PiperOrigin-RevId:
198128524
Akshay Modi [Sat, 26 May 2018 00:37:01 +0000 (17:37 -0700)]
Minor eager performance improvements
- remove linear regression dependence on global step.
This speeds things up a lot for the benchmark (since it removes a bunch of
unnecessary code), but is obviously not a fair comparison.
I think its worth doing, since I don't see any reason to have a global step
in eager.
- nn_ops dropout had an unnecessary convert_to_tensor, convert back to numpy
(with a GPU this would copy out, copy back).
- cudnn_recurrent reshape would always fallback to the slow path - so I just
converted it to be in the fastpath - this will be low impact.
- tensor_shape should not generate a new object every time
- remove unnecessary list creation and searching in some dtypes functions
PiperOrigin-RevId:
198127757
Peter Hawkins [Sat, 26 May 2018 00:29:37 +0000 (17:29 -0700)]
[TF:XLA] Add direct implementation of AssignVariableOp for XLA devices.
This allows us to avoid an XLA compilation and tensor copies when assigning to a variable placed on an XLA device.
PiperOrigin-RevId:
198127062
A. Unique TensorFlower [Sat, 26 May 2018 00:22:17 +0000 (17:22 -0700)]
Turn on heuristic (mostly-NHWC) convolution layout assignment for (V100, fp16) by default.
Also increase the column reduction tile size to reduce atomic operations.
PiperOrigin-RevId:
198126505
Sanjoy Das [Sat, 26 May 2018 00:22:11 +0000 (17:22 -0700)]
Enable while loop constant sinking for GPU
To avoid keeping constants in while loop bodies after optimization (where they
may cause extra copies) we run a late pass of LICM that has been asked to hoist
constants when it can.
PiperOrigin-RevId:
198126497
Akshay Agrawal [Sat, 26 May 2018 00:12:49 +0000 (17:12 -0700)]
Provide a step container to OpKernelContexts when running eagerly.
This lets us run some ops that require step containers (e.g.
TensorArray-related ops).
Before change:
Benchmark Time(ns) CPU(ns) Iterations
-------------------------------------------------------------------
BM_CreateGraph 61292 80915 8581
BM_RunGraph 7899 13398 51251
BM_CreateAndDestroySession 2588 2594 269838
BM_KernelAndDeviceInit 2971 2976 235908
BM_KernelAndDeviceRun 505 506 1000000
After change:
Benchmark Time(ns) CPU(ns) Iterations
-------------------------------------------------------------------
BM_CreateGraph 78295 105539 8698
BM_RunGraph 9907 16988 47908
BM_CreateAndDestroySession 2773 2778 247635
BM_KernelAndDeviceInit 2678 2682 270054
BM_KernelAndDeviceRun 553 554 1000000
PiperOrigin-RevId:
198125630