У меня был небольшой проект, в котором я использовал CUDA, и я помню, что float там тоже был быстрее, чем double. На этот раз трафик между Хостом и Устройством ниже (Хост - это ЦП, а «нормальная» ОЗУ, а Устройство - это ГП и соответствующая ОЗУ). Но даже если данные постоянно находятся на устройстве, это медленнее. Мне кажется, я где-то читал, что это недавно изменилось или должно измениться со следующим поколением, но я не уверен.
Так что кажется, что GPU просто не может обрабатывать двойную точность изначально в этих случаях, что также объясняет, почему обычно используется GLFloat, а не GLDouble.
(Как я уже сказал, это только насколько я помню, просто наткнулся на это во время поиска float против double на процессоре.)