Resource Specifications Should Be Per-Architecture
Currently the end user specifies resource use for a task independent of the architecture used. This doesn't make practical sense since if something runs on a CPU it may use an entirely different set of resources than if it runs on a GPU.
It's also unclear how to specify resources for a task that wants to utilize multiple devices.
:-/ This is frustrating to me. We spent 2 years talking about architecture independent kernels. I think it's a useful idea even if it's not universal. I would propose that we support both universal and architecture specific resource specifications. I don't think it should be too hard to allow either.
As for implementing this, it shouldn't actually be super hard. You would just need to setup the resources to be reported to the scheduler based on the architecture of the device being considered. The scheduler doesn't make a huge amount of assumptions about the resources and how they are chosen.
Yah, the idea is to allow this, not require it. It's one of those "you can tune this if you need to" kind of stories. I haven't given a lot of thought to what the interface should look like yet. I'm just documenting this now since slack doesn't work for issue tracking.
If someone wants to take the lead on this, it may be a good way to get familiar with the internals of the current scheduler.