代码之家  ›  专栏  ›  技术社区  ›  Vincent Hiribarren

OpenCL的经典数据结构(集合、映射、二叉树…)

  •  0
  • Vincent Hiribarren  · 技术社区  · 4 年前

    在我的内核中,我希望在进一步处理之前将结果与集合(哈希集合或树集合)中的现有数据进行比较,而不必浏览整个数组。我希望在主机代码中避免这样做,以避免主机和设备之间的往返次数过多。

    我不想更改集合的内容,因此没有工作项并发访问的风险。

    我很难找到一些用于OpenCL的“STL”库,或者一些用于Set和Hash数据结构的开源实现。

    我错过了什么吗,有没有这样的事?

    或者在OpenCL内核中使用Hash或Set数据结构是我在做与OpenCL目标不兼容的事情的标志吗?

    0 回复  |  直到 4 年前
        1
  •  3
  •   pmdj    4 年前

    OpenCL内核一般用C编写,而不是C++,或者更确切地说,C++内核是可选的,并且我不知道支持它的任何实现。

    也就是说,没有什么能阻止您构建一个在哈希表中执行查找的OpenCL内核,或者在排序数组中实现查找的二进制搜索。

    另一个原因是,使其高效将在很大程度上取决于您的数据和硬件的性质,您的目标,所以您几乎肯定需要做大量的手工调整,使其快速。再说一次,图书馆可能会比它有用的多。