【发布时间】:2019-03-14 05:10:31
【问题描述】:
我需要在 OpenCL 设备上并行处理 N 个固定长度的字符串。
处理字符串涉及调用提供的函数,该函数将字符串作为输入表示为缓冲区,以及该缓冲区中字符串的长度。
void Function(const char *input_buffer, const int string_length, const char *output_buffer)
在主机应用程序中,我将 N 个字符串连接到一个大的 char 缓冲区中,它们之间没有分隔符。
我想创建一个定义类似于
的内核__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 缓冲区?
我应该创建一个多维输入而不是一维数组吗?
【问题讨论】:
标签: parallel-processing opencl