| 166 | } |
| 167 | |
| 168 | StatusOr<se::StreamExecutor*> Backend::stream_executor( |
| 169 | int device_ordinal) const { |
| 170 | if (device_ordinal < 0 || |
| 171 | device_ordinal > stream_executors_.back()->device_ordinal()) { |
| 172 | return InvalidArgument( |
| 173 | "Invalid device ordinal value (%d). Valid range is [0, %d].", |
| 174 | device_ordinal, stream_executors_.back()->device_ordinal()); |
| 175 | } |
| 176 | for (auto* executor : stream_executors_) { |
| 177 | if (executor->device_ordinal() == device_ordinal) { |
| 178 | return executor; |
| 179 | } |
| 180 | } |
| 181 | return InvalidArgument("device %s not supported by XLA service", |
| 182 | device_name(device_ordinal)); |
| 183 | } |
| 184 | |
| 185 | StatusOr<bool> Backend::devices_equivalent(int device_ordinal_a, |
| 186 | int device_ordinal_b) { |
no test coverage detected