c ++真的很大的浮点计算

时间:2011-03-25 06:34:06

标签: c++ floating-point integer

我想做大量的浮点计算。应该足够快。

如果可以,我如何使用图形处理器?如果没有GPU可用,那么我想使用主CPU。

感谢

2 个答案:

答案 0 :(得分:2)

浮点计算可以处理非常大的数字,非常小的数字和介于两者之间的数字。问题是有效数字的数量是有限的,并且不完全适合基本两个表示的数字(数字类似于1/3或1/7)将会遇到错误,因为它们被转换为最接近的基数2对应。

如果GPU可用,几乎所有带有视频的计算机都有,那么像GPGPU这样的图书馆可以帮助您访问它而无需编写大量的汇编语言。也就是说,在你确定你的计算将涉及与GPU已经执行的操作类似的操作之前,你最好避免使用GPU,因为它们非常适合做他们已经做过的事情,而且很难适应其他任何事情。

答案 1 :(得分:2)

根据这些数字的“大小”,您可以尝试MPFR,虽然它不是GPU解决方案,但它可以处理大数字并且应该非常快,它被一些开源编译器(GCC和放大器)使用; LLVM)做静态常量折叠,因此其设计旨在保持准确性。

要在GPU上工作(真的是GPGPU),你需要使用诸如OpenCLDirectCompute这样的内容来编写内核,并在其中进行数字处理。

您也可能对intels new AVX extensions感兴趣。