`Device` management. A `Device` encapsulates the graph compiler and hardware support. Beyond the *type* `Device` itself, you will not likely need this module unless you are developing a custom plugin.
import public Compiler.MLIR.IR.DialectRegistry
import public Compiler.MLIR.IR.MLIRContext
import public Compiler.MLIR.Pass.PassManagerrecord Device : TypeA PJRT "device". These are required to run spidr graphs, and are provided by your plugin.
Plugin developers should create one via `createDevice`. Everyone else should use their plugin.
MkDevice : MLIRContext -> PassManager -> PjrtApi -> PjrtClient -> Device.api : Device -> PjrtApi.client : Device -> PjrtClient.mlirCtx : Device -> MLIRContext.passManager : Device -> PassManager.mlirCtx : Device -> MLIRContextmlirCtx : Device -> MLIRContext.passManager : Device -> PassManagerpassManager : Device -> PassManager.api : Device -> PjrtApiapi : Device -> PjrtApi.client : Device -> PjrtClientclient : Device -> PjrtClientcreateDevice : PjrtApi -> Pjrt DeviceCreate and initialize a `Device`. For use by plugin developers.