我正在使用uthash(http://uthash.sourceforge.net/)在我的CUDA C程序中实现哈希表。
我有一堆钥匙说allkeys [100]。我想要做的是,使用哈希表上的那100个键执行并行哈希表查找并返回一个名为results [100]的结果数组。基本上启动一个xdimension为100的网格,每个块执行一次哈希表查找并将其存储在结果数组中。
因此我到目前为止所尝试的是,cudMalloc设备内存上的哈希表(哈希表中的条目数量X一个结构定义一个带有句柄的哈希表项的大小) 然后我cudaMemcpy主机哈希表到设备哈希表。
但是,在我的__device__ searchhashtable(int key)
函数中,我收到错误
error calling host function memcmp __device__ __global__ function
我经历了uthash.h实现,可以看到它使用string.h库,特别是在memcmp函数中失败。
最好的办法是什么?