The problem is not caused by mono kernel. Just because AMDGPU driver was developed in mono style. i.e. they include the code of all generations in one driver. In monolithic kernel, the developer can develop drivers with “micro” style. e.g. Intel’s GPU driver doesn’t use mono style, they created a new driver when they changed GPU hardware architecture.
Monolithic kernel is a concept about address space. If all parts of a kernel are running in the same address space, this is a monolithic kernel, otherwise it’s a micro kernel.
This problem is about how to split parts, but not how to place parts in memory.
Just run it as systemd service on my server.