我正在尝试从 OpenCL 和 CUDA 转向 ArrayFire。我的函数之一使用 GPU 的 popcount() 来简化数据预处理。但我在 ArrayFire 的函数列表中找不到它。
OpenCL 有 popcount,CUDA 有 popc,还有用于 CPU 工作的builtin_popcount。 ArrayFire 中的函数到底在哪里?我看到 count() 和 count_all() 但它们是数组的元素计数,而不是元素中的位(据我所知)。
我是否遗漏了某些内容,或者这只是库中未实现的功能?我觉得这是一个非常重要的函数,并希望它与按位操作函数一起使用。
我期待一些函数能够告诉我整数中 1 的数量。老实说,我很想利用该库的优化功能,但如果没有这个,这是不可能的。
是的,我可以自己写。不,我不想这样做。我想在 CPU/GPU 上使用硬件供应商提供的架构优化实现。
好吧,我会回答我自己的问题。
没有一个。
我查看了存储库,是的,他们使用 popc 和 popcount(CUDA 和 OpenCl)作为最近的邻居(是的,这就是它的拼写方式)。但它没有在其他地方使用。所以没有实施。
现在我有几个选择;使用自定义内核,分叉他们的代码并制作我自己的代码,或者放弃这种愚蠢的行为并继续前进。
我可能会尝试定制内核。如果失败我会切换回 OpenCL 和 CUDA。