| Commit message (Collapse) | Author | Age |
... | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This CL teaches XLA:GPU to use "normal" buffer assignment for constant
instructions. Constant instructions are mapped to a BufferAllocation, like all
other instructions, except the storage for this buffer is allocated statically
as a global in the generated PTX.
This CL does not change how we access the constants -- in
IrEmitterUnnested::BuildKernelThunk (used for top level computations) and in
HloToIrBindings::EmitBasePointersForHlos (used for nested computations) we bind
the kConstant instructions to the llvm::GlobalVariable backing them. So users
of constant instructions still access the globals corresponding to the constants
directly.
However, we no longer emit the constant literals inline. Instead we emit a
constant with a zero initializer and then memcpy in the contents of the literal
when we load the CUBIN/PTX. This works around compile time issues in LLVM and
ptxas caused by large constants.
We also populate `BufferAllocations` with the device pointers for the constant
globals. This is at least needed for TupleThunk today because TupleThunk wants
the addresses for the sub-buffers on the host. I'm not sure if there are other
places in XLA:GPU that rely on there being an entry in BufferAllocations for
every BufferAllocation.
PiperOrigin-RevId: 206243319
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
so that we do not require sample_weight to be set during training/eval
PiperOrigin-RevId: 206242625
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206240947
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Eventually (when TuplePointsToAnalysis is removed), there will be only one implementation left.
Also, use early return instead of else-if to make the code less indented.
PiperOrigin-RevId: 206240067
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206238991
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206237934
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This change also switches `padded_batch_and_drop_remainder` to use the corresponding fused op.
PiperOrigin-RevId: 206236616
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206236233
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206235660
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206235264
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206224062
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
as the Cast op.
PiperOrigin-RevId: 206218592
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
AllUsersConsumeBF16() incorrectly used ValueTypeAfterChange() for the current value being checked, but it should be the original type.
Also fusion computation should be adjusted as soon as the fusion root is adjusted.
There was also redundant work for while computations. Now removed.
PiperOrigin-RevId: 206216822
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Only transpose and broadcast are valid. I think this used to work because we
didn't emit cublas calls for fused dots until recently.
PiperOrigin-RevId: 206213730
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206211243
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is safe because all ops which write to resource variables check whether
there are other outstanding references to the buffer and copy if that's the
case. So we can safely reuse the buffer of initializer tensors even in weird
cases such as initializing from a constant (which should never be mutated)
or using the same tensor to initialize multiple variables.
PiperOrigin-RevId: 206211065
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206209252
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206208637
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
tf.estimator.EstimatorSpec.
PiperOrigin-RevId: 206208119
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206204159
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206202981
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Instructions for using the Plugin are contained in
the readme @ TensorFlowLitePlugin/README.md
PiperOrigin-RevId: 206201614
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206197083
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206196742
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
estimator
PiperOrigin-RevId: 206193733
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Teach the routines to create the dump directories if they don't exist. I
routinely forget to create the dump directory before launching the model.
- Print out the file locations on LOG(INFO) and the error messages on
LOG(WARNING).
PiperOrigin-RevId: 206192822
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206192038
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206191743
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This code hs been here since 2014, now the oldest supported version of CUDA is
8 so cuGetErrorName should always be available. Also the list of errors is
(of course) out of sync with upstream CUDA.
Also surface the description of the error to the user, if available.
PiperOrigin-RevId: 206191424
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
@bazel_tools//tools/cpp:current_cc_toolchain //tools/defaults will be removed soon
PiperOrigin-RevId: 206187625
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206185190
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206183643
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is analogous to cr/188117187, but for constants.
PiperOrigin-RevId: 206179508
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206179345
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
functool.partial.
PiperOrigin-RevId: 206175973
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
PiperOrigin-RevId: 206171508
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 206169769
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 206166233
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Remove flag tf_enable_prng_ops_gpu. Pass Tensorflow random number generation ops
to the GPU backend.
PiperOrigin-RevId: 206165176
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 206163905
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 206162326
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 206160001
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This requires a slight modification in the emitted compare loop: now, we use
another if to check if we need to swap instead of two selects. Speed is mostly
the same, possibly even a little bit faster.
PiperOrigin-RevId: 206148647
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 206139578
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 206125313
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
interpolation.
PiperOrigin-RevId: 206120307
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 206112531
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Streams have a monotonic state machine; if a stream encounters any
error, it will remain in an error state forever. Without this change,
a previously failed sub-stream will be put back on sub_streams_, only
to cause the next usage of the sub-stream to trivially fail.
PiperOrigin-RevId: 206112024
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
PiperOrigin-RevId: 206111380
|