【发布时间】:2017-08-09 18:24:21
【问题描述】:
我正在 OpenCL 技术中实现 sha512。我对核函数有简单的定义
__kernel void _sha512(__global char *message, const uint length, __global char *hash);
在主机上我已经实现并成功测试了 sha512 算法的实现。
我在将数据从message 数组复制到名为character 的临时变量时遇到问题。
char character = message[i];
其中i 是一个循环变量 - 范围从 0 到消息的大小。
当我试图在那里运行我的程序时,我得到了这个错误
0x00007FFD9FA03D54 (0x0000000010CD0F88 0x0000000010CD0F88 0x0000000010BAEE88 0x000000001A2942A0), nvvmCompilerProperty() + 0x26174 bytes(s)
...
0x00007FFDDFA70D51 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), RtlUserThreadStart() + 0x21 bytes(s)
0x00007FFDDFA70D51 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), RtlUserThreadStart() + 0x21 bytes(s)
我阅读了有关 async_work_group_copy() 的信息,但我不明白如何使用它 - 在文档中我找不到任何示例代码。
我已尝试使用 char character = (__private char) message[i];,但它也不起作用。
我不明白如何将最后一个参数传递给async_work_group_copy(),以及如何使用它将数据从__global 内存复制到__private 内存。
【问题讨论】: