Вы можете просто написать разные ядра и решить, какие из них вызывать во время выполнения.
Вы также можете использовать API запроса устройства или выполнить некоторый микро-бенчмаркинг, чтобы выяснить размеры разделяемой / постоянной памяти во время выполнения,Это, вероятно, необходимо, если вы не хотите использовать конкретную модель графического процессора.