```
backendA= MyUMABackendA()
backendB= MyUMABackendB()

backendA.register()
backendB.register()
mod = backendA.partition(mod)
mod = backendB.partition(mod)
```
Ah, that's the example I was missing (sorry!). After registration I think 
calling backend.partition or letting CollagePartition 'do it for you' seems 
like a free choice, and all we have to do is make sure Collage respects all the 
existing pass hooks (which, since I'm moving CUTLASS over the TargetHooks it 
has been forced to do anyway!).

> As it is now, they would not fall under the UMA integration API. 
> Only when the partitioning annotates a subgraph for the backend, it is 
> 'activated'.

Given above I don't think either of these points is an issue: Collage will 
pickup both 'low level' and 'UMA-style' integrations without prejudice. There 
may be a temptation from users to add compiler-configuration into the backend 
ctor, but it sounds like we agree we'll keep that in the Target object 
instances, in which case everything blends nicely.

So all LGTM from me, thanks for the extra explanation, and if any 
Collage-introduced friction shows up please just let me know and we can adjust 
mid-flight.

Best, -m 

-- 
Reply to this email directly or view it on GitHub:
https://github.com/apache/tvm-rfcs/pull/60#issuecomment-1134975629
You are receiving this because you are subscribed to this thread.

Message ID: <apache/tvm-rfcs/pull/60/c1134975...@github.com>

Reply via email to