我想知道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
来摘录我的一切,所以如果我尝试自己编程,那么我可以查看任何资源或代理代码吗?大多数与组合相关的算法都是递归的,我的Cuda卡不支持递归。
有关从哪里开始的任何建议/提示?
答案 0 :(得分:1)
我做了一个小型的CUDA项目,通过尝试排列来进行bin打包: