我想知道 Cuda 是否对这类问题有用(以及如何在 Cuda 中解决它)。基本上我一直在使用 python 来查找列表的组合,但是随着数据变大,我认为在 gpu 上运行它可能是一个有趣的想法。
假设我有一个列表[1, 2, 3,4,5,6,7,8]
,我只想要7
组合然后我会得到:
(1, 2, 3, 4, 5, 6, 7)
(1, 2, 3, 4, 5, 6, 8)
(1, 2, 3, 4, 5, 7, 8)
(1, 2, 3, 4, 6, 7, 8)
(1, 2, 3, 5, 6, 7, 8)
(1, 2, 4, 5, 6, 7, 8)
(1, 3, 4, 5, 6, 7, 8)
(2, 3, 4, 5, 6, 7, 8)
随着数据变大,需要很长时间。我一直在使用itertools.combinations
which 从我身上抽象出所有东西,所以如果我尝试自己编程,是否有任何资源或代理代码可以查看?大多数与组合相关的算法都是递归的,我的 Cuda 卡不支持递归。
关于从哪里开始的任何建议/提示?