MipMaps настраиваются при доступе / инициализации в OpenGL / DirectX. Ядро CUDA может делать то же самое, если вы выделяете текстуру на 50% шире (или выше), чем исходная текстура, и используете ядро для уменьшения текстуры и записи результата рядом с исходной текстурой. Ядро, вероятно, будет работать лучше всего, когда каждый поток оценивает пиксель в следующем уменьшенном изображении. Вы сами должны определить схему выборки и выбрать подходящие веса для объединения пикселей. Для начала попробуйте билинейный режим, затем, как только он заработает, вы можете настроить трилинейные (кубические) или другие схемы выборки, такие как анизотропные и т. Д. Простая выборка (линейная и кубическая), вероятно, будет более эффективной, поскольку произойдет объединенный доступ к памяти (см. Программирование CUDA SDK). руководство). Вероятно, вам нужно будет разбить выполнение ядра на части, так как количество потоков ограничено для параллельного вызова (слишком много пикселей, слишком мало потоков = используйте мозаику для параллельного выполнения чанков). Возможно, вы найдете Mesa3D полезным в качестве ссылки (это открытый исходный код) реализация OpenGL).