关于在cuda中使用哈希表的一些经验总结
cuda中哈希方法
目前已知的在cuda中使用哈希的方法:
数组
适用于较小的数据规模,如键的范围是int,或者能转化为整型,值类型最长为long等
cudpp...::unordered_map获取数据
将keys和values从host拷贝到device
创建CUDPPHandle
插入数据
使用哈希表查询数据
验证数据
将查询的结果由GPU内存拷贝回CPU内存...详见cudpp_issues_187
扩展cudpp哈希表
修改CUDPP库中哈希功能支持更长的键类型....原库支持32bit键值对,将其编码在64bit的long long类型中;我实际工作中需要对碱基序列进行哈希查找,每一个碱基可能有ACGTN五种类型,最开始只处理单barcode是10bp,所以有5^10...(9765625)种可能序列,不到10M数据,在cuda中使用数组就可以了;后来需要处理双barcode,20bp,有5^20(95367431640625)种可能序列,需要约95T数据,数组显然不够,