gpt4 book ai didi

python - 派克达/CUDA : Causes of non-deterministic launch failures?

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:23 24 4
gpt4 key购买 nike

关注 CUDA 的任何人都可能已经看到我对我参与的项目提出的一些疑问,但对于那些没有关注过的人,我将进行总结。 (很抱歉提前问了这么长的问题)

三个内核,一个基于一些输入变量生成数据集(处理位组合,因此可以呈指数增长),另一个求解这些生成的线性系统,另一个缩减内核以获得最终结果。这三个内核作为特定系统优化算法的一部分一遍又一遍地运行。

在我的开发机器(Geforce 9800GT,在 CUDA 4.0 下运行)上,无论我向它扔什么(达到基于规定的指数性质的计算限制),它始终完美运行,但在测试机器上(4xTesla S1070,仅使用一个,在 CUDA 3.1 下)完全相同的代码(Python 基础,CUDA 内核的 PyCUDA 接口(interface)),为“小”情况产生准确的结果,但在中等情况下,求解阶段随机失败迭代。

我以前遇到的这段代码的问题与问题的数值不稳定性有关,并且本质上是确定性的(即每次都在完全相同的阶段失败),但坦率地说,这让我很生气,因为它会随时失败。

因此,我没有可靠的方法将 CUDA 代码从 Python 框架中分离出来并进行适当的调试,而且 PyCUDA 的调试器支持至少可以说是值得怀疑的。

我已经检查了一些常见的事情,比如设备上空闲内存的内核调用前检查,并且占用计算表明网格和 block 分配很好。我没有做任何疯狂的 4.0 特定的事情,我在每次迭代时释放我在设备上分配的所有内容,并且我已经将所有数据类型固定为 float 。

TL;DR,有没有人遇到过我在发行说明中没有看到的关于 CUDA 3.1 的陷阱,或者 PyCUDA 的自动初始化内存管理环境的任何问题会导致间歇性启动失败重复调用?

最佳答案

你试过吗:

cuda-memcheck python yourapp.py

您可能有越界内存访问。

关于python - 派克达/CUDA : Causes of non-deterministic launch failures?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5827219/

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