Каковы / являются наиболее быстрыми альтернативами memset () для OpenCL?

Я использую OpenCL, и мне нужноmemset() некоторый массив в глобальной памяти устройства. CUDA имеетmemset()-подобна API-функция, но OpenCL нет. Я читаюэтогде я нашел две возможные альтернативы:

с помощьюmemset() на хосте с некоторым буфером нуля, затемclEnqueueWriteBuffer() скопировать это в буфер на устройстве.

Поставить в очередь (sp?) Следующее ядро:

__kernel void memset_uint4 (__ global uint4 * mem, __ private uint4 val) {mem [get_global_id (0)] = val; }

Как лучше? Или, скорее, при каких обстоятельствах / для каких платформ одна лучше другой?

Примечание: Если особый случай обнуления памяти заслуживает особого отношения, это тоже было бы полезно знать.

Ответы на вопрос(2)

Ваш ответ на вопрос