Repository metrics
- Stars
- (336 stars)
- PR merge metrics
- (Avg merge 2d 10h) (36 merged PRs in 30d)
Description
Julia 1.11 introduced Core.Memory and made Array a purely Julia type, which is nice for different optimization reasons. The interesting part for us is that GenericMemory has a parameter for kind and another for addrspace, which could potentially be exploited by us to store the memory managed by XLA.
This means that ConcreteRArrays could be managed by a simple Array instead, with the address space managed by Reactant.
Docs say the following:
addrspacecan currently only be set to Core.CPU. It is designed to permit extension by other systems such as GPUs, which might define values such as:module CUDA const Generic = bitcast(Core.AddrSpace{CUDA}, 0) const Global = bitcast(Core.AddrSpace{CUDA}, 1) endThe exact semantics of these other addrspaces is defined by the specific backend, but will error if the user is attempting to access these on the CPU.
A lot of info is missing on how to customize this behavior but we should keep an eye on it.