Apenas uma nota, a ideia do kernel ter que virtualizar e contextualizar centenas de registros de GPU é horripilante e o kernel não está fazendo nada que possa se beneficiar de usá-los. Há código no kernel para gerenciar o compartilhamento de recursos da GPU entre processos (mais do que esse código está migrando para o kernel constantemente), e os processos que compartilham a GPU para computação fazem isso via opencl e cuda e afins, mas qualquer contexto da GPU Comutação eles não serão vinculados a qualquer segmento de CPU porque veja acima. Eu suspeito strongmente que a GPU é executada de forma totalmente independente e relata seus resultados com um relatório de barramento de algum tipo, leitura de registro voltada para a CPU ou interrupção ou outros enfeites.