Графические процессоры только начинают поддерживать аппаратную двойную точность, хотя в ближайшем будущем она будет намного медленнее, чем одиночная точность. За последние годы было разработано множество методов для синтеза более высокой точности с плавающей запятой с использованием представления, состоящего из нескольких чисел с любой точностью, с быстрой аппаратной поддержкой, но накладные расходы довольно существенны. IIRC, руководство по crlibm довольно неплохо обсуждает некоторые из этих методов, с анализом ошибок и псевдокодом (CRLIBM использует их для представления чисел как более чем одного значения двойной точности, но одни и те же методы могут использоваться с одиночным)
Не зная больше о том, что вы пытаетесь сделать, трудно дать лучший ответ. Для некоторых алгоритмов только одна небольшая часть вычислений требует высокой точности; если вы находитесь в таком случае, вы можете получить приличную производительность на GPU, хотя код не обязательно будет очень красивым или простым для работы. Если вам нужна высокая точность повсеместно в вашем алгоритме, то графический процессор, вероятно, не является привлекательным вариантом для вас на данный момент.
Наконец, почему HLSL, а не язык, ориентированный на вычисления, такой как CUDA или OpenCL?