Где вы берёте библиотеки для рутинных задач в OpenCL? Конечно, при желании (и наличии времени) можно написать всё самому, но если есть что-то готовое и проверенное - проще взять это и использовать.
CUDA поставляется с «батарейками» - cublas (матричные операции), curand (генераторы случайных чисел), cusparse (операции с разрежёнными матрицами), cufft (преобразование Фурье), npp - (пока не понял что, какие-то performance primitives).
Вот мне, например, нужны случайные числа для моделирования случайного процесса. Удобнее было бы генерировать их на device, чем на host, чтобы снизить задержку на копирование (возможно на практике это миллисекунды и я рано думаю об «оптимизации», но всё-таки).
К сожалению, в стандарте OpenCL ничего такого не описано, что плохо. Есть наверное куча библиотек - но где гарантия, что они заведутся как под CUDA OpenCL, так и под AMD APP OpenCL? и есть ещё Intel OpenCL...
Писать свой генератор - это уже крайняя мера =) (скорее уж обойдусь java.util.Random или rand из stdlib.h), тем более думать о том как это делать параллельно...