用CUDA库替换Klib的问题

  • 4 replies
  • 238 views
用CUDA库替换Klib的问题
« 于: 六月 28, 2019, 09:08:26 am »
最近用到了一个C的基本库:Klib。它里面用宏函数的方式实现了b树,vector,hash等数据结构可以直接使用。
我查了一下cuda的C++拓展库thrust,里面有device_vector.h这种vector库,但是好像没有找到b树,哈希。
请问cuda是否有自带的这两种库函数?

Re: 用CUDA库替换Klib的问题
« 回复 #1 于: 六月 28, 2019, 01:16:52 pm »
最近用到了一个C的基本库:Klib。它里面用宏函数的方式实现了b树,vector,hash等数据结构可以直接使用。
我查了一下cuda的C++拓展库thrust,里面有device_vector.h这种vector库,但是好像没有找到b树,哈希。
请问cuda是否有自带的这两种库函数?

我一般不认为Thrust为“CUDA的C++扩展库”。(不过你可以这样认为)。

关于B-Tree, 这个你可以自行实现,CUDA里面不自带的。(你如何有效的实现是另外一回事)。

关于哈希,这个范畴太广了,任何多对1的映射,甚至1对1的映射都可以叫做哈希,CUDA里面并不自带任何一种著名的哈希函数(或者安全哈希函数)。你可以自行实现。

以及:还需要说明一点,你需要的是某种“著名的哈希函数".

因为对于形如:y = x  % 1024的,这显然也是一个哈希函数。所以你之前应当询问的是,某种著名的哈希函数CUDA有无自带,(但这是没有的)。特此补充。
« 最后编辑时间: 六月 28, 2019, 01:20:56 pm 作者 屠戮人神 »

Re: 用CUDA库替换Klib的问题
« 回复 #2 于: 六月 28, 2019, 04:59:39 pm »
我一般不认为Thrust为“CUDA的C++扩展库”。(不过你可以这样认为)。

关于B-Tree, 这个你可以自行实现,CUDA里面不自带的。(你如何有效的实现是另外一回事)。

关于哈希,这个范畴太广了,任何多对1的映射,甚至1对1的映射都可以叫做哈希,CUDA里面并不自带任何一种著名的哈希函数(或者安全哈希函数)。你可以自行实现。

以及:还需要说明一点,你需要的是某种“著名的哈希函数".

因为对于形如:y = x  % 1024的,这显然也是一个哈希函数。所以你之前应当询问的是,某种著名的哈希函数CUDA有无自带,(但这是没有的)。特此补充。

好的,感谢回答~

Re: 用CUDA库替换Klib的问题
« 回复 #3 于: 六月 28, 2019, 05:28:13 pm »
我一般不认为Thrust为“CUDA的C++扩展库”。(不过你可以这样认为)。

关于B-Tree, 这个你可以自行实现,CUDA里面不自带的。(你如何有效的实现是另外一回事)。

关于哈希,这个范畴太广了,任何多对1的映射,甚至1对1的映射都可以叫做哈希,CUDA里面并不自带任何一种著名的哈希函数(或者安全哈希函数)。你可以自行实现。

以及:还需要说明一点,你需要的是某种“著名的哈希函数".

因为对于形如:y = x  % 1024的,这显然也是一个哈希函数。所以你之前应当询问的是,某种著名的哈希函数CUDA有无自带,(但这是没有的)。特此补充。
我还想追问一下,CUDA里是否有解决查找问题的高效库函数?自己写的话肯定可以实现,但是性能也许会不太理想。

Re: 用CUDA库替换Klib的问题
« 回复 #4 于: 六月 28, 2019, 08:29:35 pm »
我还想追问一下,CUDA里是否有解决查找问题的高效库函数?自己写的话肯定可以实现,但是性能也许会不太理想。

我不懂你的“查找问题的高效库函数”。

如果你需要具体对某种数据结构,进行某种具体查找/搜索/遍历算法的CUDA实现,我检查你搜索一下arxiv。