ArrayFire 有 popcount 或 bitcount 函数吗?

问题描述 投票:0回答:1

我正在尝试从 OpenCL 和 CUDA 转向 ArrayFire。我的函数之一使用 GPU 的 popcount() 来简化数据预处理。但我在 ArrayFire 的函数列表中找不到它。

OpenCL 有 popcount,CUDA 有 popc,还有用于 CPU 工作的builtin_popcount。 ArrayFire 中的函数到底在哪里?我看到 count() 和 count_all() 但它们是数组的元素计数,而不是元素中的位(据我所知)。

我是否遗漏了某些内容,或者这只是库中未实现的功能?我觉得这是一个非常重要的函数,并希望它与按位操作函数一起使用。

我期待一些函数能够告诉我整数中 1 的数量。老实说,我很想利用该库的优化功能,但如果没有这个,这是不可能的。

是的,我可以自己写。不,我不想这样做。我想在 CPU/GPU 上使用硬件供应商提供的架构优化实现。

c++ gpu bit-manipulation arrayfire bitcount
1个回答
0
投票

好吧,我会回答我自己的问题。

没有一个。

我查看了存储库,是的,他们使用 popc 和 popcount(CUDA 和 OpenCl)作为最近的邻居(是的,这就是它的拼写方式)。但它没有在其他地方使用。所以没有实施。

现在我有几个选择;使用自定义内核,分叉他们的代码并制作我自己的代码,或者放弃这种愚蠢的行为并继续前进。

我可能会尝试定制内核。如果失败我会切换回 OpenCL 和 CUDA。

© www.soinside.com 2019 - 2024. All rights reserved.