aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/compiler/xla/service/hlo_instructions.cc
Commit message (Collapse)AuthorAge
* [XLA] Add documentation and HLO-level support for multi-value sort.Gravatar Michael Kuperstein2018-10-09
| | | | | | No support in any of the backends, and not yet exposed through XlaBuilder. PiperOrigin-RevId: 216465753
* Add custom call with layout constraints.Gravatar Mark Heffernan2018-10-08
| | | | | | Add a variant of CustomCall which specifies arbitrary layout constraints on the operands and result. The existing non-layout-constrained CustomCall is changed to have no layout preference and can now be assigned arbitrary layouts by layout assignment. PiperOrigin-RevId: 216249615
* Remove CHECKs from HloInstruction constructors.Gravatar Mark Heffernan2018-10-04
| | | | | | | | Move these checks to RET_CHECKs in the HloVerifier. Added a new visitor class InstructionVerifier inside of hlo_verifier.cc for handling these random non-result-shape verifications. PiperOrigin-RevId: 215745043
* Add proto serialization/deserialization testing to the HLO parser tests.Gravatar Mark Heffernan2018-10-02
| | | | | | | | | | Many of the HLO parser tests verify that an text form of an HLO module preserves all information when running through ToString then parsing. It makes sense to also use these tests to exercise proto serialization/deserialization. This is done by adding additional instantiations of the parameterized parsing tests. This caught several bugs which are fixed in this CL: (1) Domain instructions were not being serialized properly. (2) Host send/recv instructions did not preserve the is_host_transfer bit. (3) Sparse literals could not be serialized or deserialized. PiperOrigin-RevId: 215445200
* [XLA] Migrate from gtl::FlatMap to absl::flat_hash_mapGravatar Benjamin Kramer2018-10-01
| | | | PiperOrigin-RevId: 215272497
* Name fusion parameters simply "param_X".Gravatar Mark Heffernan2018-10-01
| | | | | | | | Where "X" is the parameter number. Previously, fusion parameter names including the name of the original instruction which produced the value which was confusing. PiperOrigin-RevId: 215238171
* Add opaque field to custom call.Gravatar Mark Heffernan2018-09-27
| | | | | | The intent of this field is to enable more information to be encoded in the custom call and passed through to the backend. PiperOrigin-RevId: 214800539
* Global de-std::unique_ptr cleanup for xla::Literal.Gravatar A. Unique TensorFlower2018-09-10
| | | | PiperOrigin-RevId: 212313258
* [XLA] Sink PrecisionConfig into Hlo{Dot,Convolution}InstructionGravatar David Majnemer2018-09-07
| | | | | | | | This field only makes sense on kDot & kConvolution. This should shave a few more bytes off of HloInstruction and remove methods that aren't applicable on many HLOs. PiperOrigin-RevId: 211985502
* Split out HloDomainInstruction as subclass form HloInstruction.Gravatar A. Unique TensorFlower2018-09-06
| | | | PiperOrigin-RevId: 211916428
* Split out HloDotInstruction as subclass from HloInstruction.Gravatar A. Unique TensorFlower2018-09-06
| | | | PiperOrigin-RevId: 211912785
* [XLA] Rename PrecisionConfigProto to PrecisionConfigGravatar David Majnemer2018-09-05
| | | | | | The "Proto" suffix adds little clarity but makes a long type name even longer. PiperOrigin-RevId: 211693871
* [XLA] Don't show trivial feature_group_count attributesGravatar David Majnemer2018-09-04
| | | | | | | | If the feature_group_count is 1, don't bother showing it as it is not very informative and a very common scenario. This is consistent with the HloCustomCall's feature_group_count attribute. PiperOrigin-RevId: 211560372
* [XLA] Make kConvolution, kDot HLO attributes mandatoryGravatar David Majnemer2018-09-04
| | | | | | | | HLO transformations would forget to propagate the feature depth attribute. Making these attributes mandatory, while slightly less convenient for tests, makes HLO transformations more robust. PiperOrigin-RevId: 211490160
* Call Cudnn also for grouped convolutions.Gravatar Adrian Kuegel2018-09-03
| | | | | | | | Cudnn supports grouped convolutions, so we don't need the ConvolutionFeatureGroupConverter pass and can instead set the group_count parameter on the cudnn custom calls. PiperOrigin-RevId: 211339551
* [XLA] Rename all (Mutable)ArraySlice to absl::Span.Gravatar Tim Shen2018-08-30
| | | | PiperOrigin-RevId: 210998142
* [XLA] xla::ContainersEqual -> absl::c_equalGravatar Benjamin Kramer2018-08-30
| | | | | | The replacement for the initializer_list overload is a bit sad because MakeSpan doesn't understand initializer_list (and we don't have CTAD yet) PiperOrigin-RevId: 210974939
* Automated rollback of commit 065f9b833ffbb3b2f03d63febb186275674ba133Gravatar Michael Kuperstein2018-08-29
| | | | PiperOrigin-RevId: 210816152
* Automated rollback of commit 150dee25d82589ca109957cc996efbd2a236e044Gravatar Michael Kuperstein2018-08-29
| | | | PiperOrigin-RevId: 210778248
* [XLA] Implement variadic reduce in the evaluator. It is currently supported ↵Gravatar Michael Kuperstein2018-08-29
| | | | | | only for the case where all of the inputs have the same element type. PiperOrigin-RevId: 210746149
* [XLA] Implement kIota for CPU & GPU, extend it w/ broadcast semanticsGravatar David Majnemer2018-08-28
| | | | | | | This extends the Iota HLO to have a broadcast field. This allows for higher rank kIota operations. PiperOrigin-RevId: 210600435
* [XLA] Add the xla interface for CollectivePermute.Gravatar A. Unique TensorFlower2018-08-28
| | | | PiperOrigin-RevId: 210576458
* [XLA] Unify spelling of 'fusible'Gravatar Benjamin Kramer2018-08-27
| | | | | | Of {fusable, fusile, fusible} my dictionary only knows about fusible. PiperOrigin-RevId: 210373347
* [XLA] Use "absl::" rather than "::absl".Gravatar Justin Lebar2018-08-23
| | | | | | Also move 'using' statements into namespaces. PiperOrigin-RevId: 210055083
* [XLA] Switch from tensorflow::str_util::Join to absl::StrJoin.Gravatar Justin Lebar2018-08-23
| | | | PiperOrigin-RevId: 210018843
* [XLA] Use absl string types and functions instead of the TF versions.Gravatar Justin Lebar2018-08-23
| | | | | | | Unfortunately this has to be one big patch, because e.g. absl::StrCat doesn't accept a TF StringPiece, but as soon as we switch to absl::string_view, we have to switch away from all of the TF functions. PiperOrigin-RevId: 209957896
* [XLA] Extract HloCollectiveInstruction as superclass of all collective ↵Gravatar A. Unique TensorFlower2018-08-22
| | | | | | | | instructions. This will make adding collective instructions slightly easier. PiperOrigin-RevId: 209864869
* [XLA] Cleanup Alltoall.Gravatar A. Unique TensorFlower2018-08-22
| | | | | | | | - Remove unused field 'cross_replica_sum_barrier' for Alltoall. - Update cost analysis. There's no computation in Alltoall. - Cleanup stale TODOs. PiperOrigin-RevId: 209814190
* Change subgroup interface for CrossReplicaSumGravatar HyoukJoong Lee2018-08-22
| | | | PiperOrigin-RevId: 209780185
* [XLA] gtl::optional->absl::optionalGravatar Yunxing Dai2018-08-21
| | | | PiperOrigin-RevId: 209686671
* Remove HostCompute HLO.Gravatar Tong Shen2018-08-21
| | | | | | Now for host compute, we just emit SendToHost & RecvFromHost pairs, and use token to ensure dependency. PiperOrigin-RevId: 209671416
* [XLA] Use absl::make_unique instead of xla::MakeUnique.Gravatar Justin Lebar2018-08-20
| | | | | | Same for WrapUnique. PiperOrigin-RevId: 209531124
* [XLA] Switch to absl versions of the c_foo functions.Gravatar Justin Lebar2018-08-20
| | | | PiperOrigin-RevId: 209502513
* Automated rollback of commit 4a41f50648929197954d892559587cb76458d306Gravatar A. Unique TensorFlower2018-08-17
| | | | PiperOrigin-RevId: 209248552
* [XLA] Switch to absl versions of the c_foo functions.Gravatar Justin Lebar2018-08-17
| | | | PiperOrigin-RevId: 209247783
* Improve gather ergonomics by renaming fields.Gravatar Sanjoy Das2018-08-16
| | | | | | | | | | | | | This CL renames the various inputs to the Gather HLO to be more mnemonic by making it more obviously a batch dynamic-slice. The replacements I made are: s/elided_window_dims/collapsed_slice_dims/g s/window_bounds/slice_sizes/g s/gather_dims_to_operand_dims/start_index_map/g s/gather_indices/start_indices/g s/output_window_dims/offset_dims/g PiperOrigin-RevId: 209051067
* Add a feature_group_size parameter to the Convolution HLO op.Gravatar Adrian Kuegel2018-08-16
| | | | | | | This is a first step towards supporting grouped convolutions, which are a generalization of depthwise convolution. PiperOrigin-RevId: 208950311
* Require token operand for infeed and outfeed.Gravatar Mark Heffernan2018-08-15
| | | | | | For expediency in rolling out support for tokens used for ordering side-effecting ops, infeed and outfeed *optionally* took a token operand. This CL removes that option so all infeed and outfeed instructions take a token operand. PiperOrigin-RevId: 208927968
* [XLA] Add the xla interface for AllToAll.Gravatar A. Unique TensorFlower2018-08-08
| | | | PiperOrigin-RevId: 207971529
* [XLA] Introduce variadic version of reduce.Gravatar Michael Kuperstein2018-08-02
| | | | | | This defines the semantics, and adds parser and shape inference support. Since support is not plumbed through the rest of the compiler here, multi-output reduce is still rejected by the HLO verifier, and is not exposed through XlaBuilder. PiperOrigin-RevId: 207148035
* [XLA] Add Scatter HLO.Gravatar A. Unique TensorFlower2018-08-01
| | | | PiperOrigin-RevId: 207045468
* Add single-sided host send and receive operations.Gravatar Mark Heffernan2018-07-17
| | | | | | | | Adds a bit on kSend/kReceive instructions and their Done variants indicated whether the operations communicates with the host or another device (the default). Host send/recv operations are single-sided without a complementary recv/send instruction in another module. Host send/recv operations are exposed in the XLA builder API as SendToHost and RecvFromHost. PiperOrigin-RevId: 205008138
* [XLA] Enable the semantic for cross-modeul AllReduce.Gravatar A. Unique TensorFlower2018-07-15
| | | | PiperOrigin-RevId: 204670087
* [XLA] Split out HloGatherInstruction as subclass from HloInstruction.Gravatar A. Unique TensorFlower2018-07-12
| | | | PiperOrigin-RevId: 204421652
* [XLA] Generalize sort semantics to Rk.Gravatar Michael Kuperstein2018-07-10
| | | | PiperOrigin-RevId: 203997296
* Fix crash when running with --v=2.Gravatar Adrian Kuegel2018-07-09
| | | | | | | | | | | When doing multi-output fusion and using sibling fusion, it can happen that we don't need to clone the 'instruction_to_fuse' argument. Right now, we clone, and then delete the clone again, and at the end of the function try to print the debug string for the clone (which then crashes). Instead, we can simply not generate the clone if it is not needed, and catch this case before printing the debug string. PiperOrigin-RevId: 203733796
* [TF:XLA] Split literal_util into {literal, literal_util}.Gravatar Kay Zhu2018-07-03
| | | | | | | | | Currently Literal classes sits in literal_util.{h,cc} instead of literal.{h,cc}. It also contains helper functions that are better fit to be their own separate class/namespace. This change starts this process by moving most static factory methods to LiteralUtil namespace. PiperOrigin-RevId: 203217065
* Change Send, SendDone, Recv and RecvDone to produce tokens.Gravatar Mark Heffernan2018-07-03
| | | | | | This is a follow up to cl/202069017 which added tokens as operands to Send and Recv. PiperOrigin-RevId: 203145403
* Change Send and Recv HLOs to take a token operand.Gravatar Mark Heffernan2018-07-02
| | | | | | Send and Recv HLOs now have an additional required operand which must be token-shaped. XLA client interface for these operations is unchanged and will be updated in follow up CLs. PiperOrigin-RevId: 202993121
* [XLA] Avoid fusion nodes to have duplicate operands during replacing uses.Gravatar Yuanzhong Xu2018-06-25
| | | | PiperOrigin-RevId: 202049336