gpt4 book ai didi

python - PyCUDA test_cumath.py 在 cosh 上失败

转载 作者:太空宇宙 更新时间:2023-11-03 17:53:20 25 4
gpt4 key购买 nike

我已在配备 TESLA C2075 的计算机上安装了 pycuda。我在安装了 CUDA-6.0 编译器的 Ubuntu 14.04 上运行。

使用 python 2.7.9(通过 anaconda 发行版)和 numpy 1.9.0,我从 Andreas Kloeckner 在其网站上提供的 ZIP 文件安装了 pycuda 2014.1。(http://mathema.tician.de/software/pycuda/)

除了 test_cumath.py 文件外,运行该 ZIP 文件提供的测试一切顺利。我收到以下错误:

E               AssertionError: (2.3841858e-06, 'cosh', <type 'numpy.complex64'>)`
E assert <built-in method all of numpy.bool_ object at 0x7f00747f3880>()`
E + where <built-in method all of numpy.bool_ object at 0x7f00747f3880> = 2.3841858e-06 <= 2e-06.all

test_cumath.py:54: AssertionError`
===== 1 failed, 27 passed in 12.57 seconds =====

有人建议 cosh 的 GPU 和 CPU 结果之间的差异来自哪里吗?测量值 2.38e-6 稍微超过 2e-6 的容差,对我来说有点奇怪。特别是,既然其他测试都成功了......?

最佳答案

在 GPGPU/CUDA 社区中,确实知道使用相同的 API 时,不同的硬件平台和 CUDA 库版本可能会产生不同的结果。差异总是很小的。因此,跨平台存在一些异质性。

事实上,这使得根据数值结果编写测试变得乏味。 的分类变得不那么清晰,人们必须回答“什么是足够好?”。人们可能会认为这是疯狂的,并且在许多情况下是有问题的,甚至是错误的。我认为这不应该在这里引起争议。

您认为,2e-6 容差最初是从哪里来的?我想说有人试图在他/她认为足够正确的方差和他/她预期之间找到一个权衡,几乎。在 CPU 世界中,2e-6 已经很大。因此,这里有人选择了容差,以考虑 GPU 平台之间预期的异构程度。

在这种情况下,实际上,这可能意味着没有选择容差来反射(reflect) GPU 平台的真实异构性。

话虽如此,GPGPU 社区也意识到数量惊人的 GPU 卡是脆弱的(基本上是损坏的)。在运行重要的应用程序之前,必须对 GPU 卡进行彻底的测试。特别是,GPU 卡应该产生可重复的结果。波动是卡损坏的一个指标。特斯拉通常不像消费卡那样受到影响,但即使在那里我们也看到了它。您有第二个相同类型的 GPU 卡吗?它会产生相同的结果吗?

要么您将您的 GPU 卡识别为“损坏”(与其他同类型的卡进行比较),要么您应该向 PyCUDA 提交错误报告并告诉他们容差不够。

关于python - PyCUDA test_cumath.py 在 cosh 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28829536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com