CUDA и тому подобное на самом деле являются просто языками высокого уровня для программирования шейдеров, поэтому любая платформа, которая поддерживает программируемые шейдеры, дает вам возможность выполнять вычисления общего назначения на графическом процессоре.
К сожалению, похоже, что Windows Phone 7 не поддерживает настраиваемые программируемые шейдеры , поэтому ускорение графического процессора для трассировщика лучей в настоящее время не представляется возможным. Даже если бы это было так, очень сложно эффективно использовать GPU для трассировки лучей из-за нескольких очень анти-GPU характеристик:
- Плохая когерентность памяти (каждый луч может легко взаимодействовать с совершенно другой геометрией)
- Высокий коэффициент ветвления (шейдеры лучше всего работают с кодом, который последовательно следует по одному пути)
- Большой рабочий набор (в любой момент времени в памяти должно быть доступно много геометрии, чтобы вычислить результат даже одного луча)
Если ваша цель - написать raytracer, вероятно, было бы гораздо проще полностью выполнить работу с ЦП, и только тогда следует рассмотреть более эзотерические оптимизации.