是否可以在 OpenCL 中创建一个简单的 HashMap?例如,所有键都具有 typelong
和所有值 type int
,并且永远不必修改(即以只读方式传递给内核)。
HashMap 的构建可能需要一些时间(是否在 CPU 上完成一次并且永远不必再次修改),但读取访问会很频繁,因此get(long key, *hashmap H)
应该很便宜。
OpenCL 中是否有任何已知的实现?我没能找到他们。如果我必须从头开始编写一个,哪种 HashMap 实现最适合这种用途?
我认为使用开放寻址的简单哈希表实现可以满足您的要求:
因此,当第一项是键,第二项是值时,传递一个缓冲区long2
或一个缓冲区,并且还传递缓冲区大小;struct { long key; int val; }
现在编写一个常规的开放地址获取器。