我一直在计算大阶乘() 我想知道使用 GPU 在 openCL 之类的东西上运行计算是否会更快。然而,我意识到,在这种情况下,我不仅不知道这是否值得,我也不知道何时使用 GPU 进行数字运算是合适的或不合适的。所以,基本上,对于这么大的数字使用 GPU 和 CPU 的优缺点是什么() 或者什么时候值得做 GPU 实现?
GPU 与 CPU 计算
计算科学
并行计算
显卡
复杂
2021-12-08 21:21:41
2个回答
这可能在原始问题下的评论中没有被注意到,但是计算产生一个有 85 亿位数的数字,也就是说它的数量级为. 鉴于, 你需要大约位,或周围字节来简单地表示这样一个数字。这是相当大的内存量。
现在假设您想通过让每个处理器计算部分阶乘来并行计算这个数字。例如,处理器计算, 那么总数可以计算为如果你选择和是处理器的数量。但一般来说,每一个将与最终结果的数量级相同(嗯,不完全是,但你明白了),所以如果你有处理器,您需要提供存储最终结果所需的内存倍数。
在 GPU 上,您有许多处理器,. 如果您必须存储的每个数字已经占用了 4 GB 内存,那么如果您必须将其存储 1000 次以上,那么您很快就会得到大量内存,这不仅在典型的 GPU 上不可用,而且在事实上,即使在普通台式电脑中也没有。
我认为这意味着如果你尝试计算,你咬的比你可能咀嚼的要多.
它有点旧,但 CUDA 多精度算术库可能支持您需要的操作,并报告2-4 倍的加速比 CPU 插槽。它声称具有类似 GMP 的接口,因此相对于编写自定义内核代码而言,移植您的代码可能是直截了当的。
其它你可能感兴趣的问题