Мне необходимо обрабатывать N строк фиксированной длины параллельно на устройстве OpenCL.
Обработка строки включает в себя вызываемую функцию, которая принимает строку в качестве входных данных, представленную в виде буфера, и длину строки в этом буфере.
void Function(const char *input_buffer, const int string_length, const char *output_buffer)
Внутри хост-приложенияЯ объединил N строк в большой буфер символов без разделителя между ними.
Я хотел бы создать ядро с определением, аналогичным
__kernel void myKernel(global char *buffer_of_strings, char length_of_string, global char *output_buffer) {
char *string_input = ??? (no dynamic allocation allowed)
Function(string_input, length_of_string, output_buffer);
}
Из всех ядер,только один из них "преуспеет" и запишет в выходной буфер.
Как назначить поддиапазон * global char buffer_of_strings буферу string_input , так как строкадлина меняется?
Должен ли я создавать многомерный ввод, а не одномерный массив?