[HAL] Add missing bufferUsage for Mapping in tryAddSharedUsageBits (#24549)
- Map persistently to support sharing via export/import.
- Persistent mapping in turn requires host-visible memory.
Signed-off-by: Tobias Fuchs <fuchs@roofline.ai>
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Transforms/ResolveTopologyQueries.cpp b/compiler/src/iree/compiler/Dialect/HAL/Transforms/ResolveTopologyQueries.cpp
index 7ce5422..b1d3647 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Transforms/ResolveTopologyQueries.cpp
+++ b/compiler/src/iree/compiler/Dialect/HAL/Transforms/ResolveTopologyQueries.cpp
@@ -132,6 +132,12 @@
for (auto affinity : optimalAttr.getAffinities()) {
if (hasTransparentAccessToAll(topology, affinity, optimalAttr)) {
bufferUsage = bufferUsage | IREE::HAL::BufferUsageBitfield::Mapping;
+ // This buffer is shared across devices. Map persistently to
+ // support sharing via export/import.
+ // Persistent mapping in turn requires host-visible memory.
+ bufferUsage =
+ bufferUsage | IREE::HAL::BufferUsageBitfield::MappingPersistent;
+ memoryTypes = memoryTypes | IREE::HAL::MemoryTypeBitfield::HostVisible;
return true;
}
}