#opencl #c99 #memcpy
#opencl #c99 #memcpy
Вопрос:
Язык OpenCL, который расширяет C99, не предоставляет функцию memcpy. Что следует использовать вместо этого?
Ответ №1:
Насколько я знаю, в OpenCL нет ничего подобного, определенного. OpenCL не предоставляет такой концепции, как динамическая память, и, следовательно, такая функциональность не нужна.
Вы могли бы просто запустить свой массив с помощью for и скопировать данные поэлементно. Но целевой массив имеет фиксированный размер из-за необходимости указывать длину массива во время компиляции.
С другой стороны, OpenCL (и OpenGL как своего рода источник) был определен более статичным способом. Данные должны быть предоставлены графическому процессору и размер результата должен быть определен. Графический процессор вычисляет входные данные в предварительно определенном местоположении вывода. Это не предназначено для создания большего количества процессов в графическом процессоре, а также не предназначено для динамического выделения памяти, чтобы не беспокоить хост, выполняющий это.