[IFRT] Add Client::GetAllDevices() #17728
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[IFRT] Add Client::GetAllDevices()
This defines
Client::GetAllDevices()
. It is similar toClient::devices()
,but it enumerates all devices available on the client, regardless of the
type/kind of devices. This multi-device behavior was implemented on certain
IFRT implementations, and PjRt-IFRT would return the same devices for now
because it has only one PjRt client. In the future, however, PjRt-IFRT would
support multiple device types and it
GetAllDevices()
will return more deviceswhile
devices()
may keep returning the devices of the primary devicetype/kind.
Client::GetAllDevices()
is essentially a transitional API in that its rolewill be absorbed back to
Client::devices()
by makingClient::devices()
alsoreturn all devices. However, this can only happen after the user code has been
updated to apply device filtering so that the legacy behavior around using
Client::devices()
remains unchanged. By having a separateClient::GetAllDevices()
while the transition happens, we can incrementallymigrate the user code to apply the device filtering.