当使用OpenMP后端编译时,推力代码会返回不同的结果

问题描述 投票:-2回答:1

[我正在Windows 10上遇到以下情况,其中相同的代码(使用CUDA 9.2后端编译(使用nvcccl.exe一起编译)或使用OpenMP后端编译(使用MinGW提供的g++),返回不同的数值结果。CUDA是正确的,而OpenMP却有一些损坏的样本。

目前,我无法确定正在发生的事情,也无法在网络上找到任何类似的情况,但是我敢肯定,这是因为我在做一些愚蠢的事情。

我现在正在尝试生成一个不错的隔离代码,但是,请问是否有任何菜鸟错误会导致这种错误?

cuda mingw openmp thrust nvcc
1个回答
0
投票

最终,问题是我的函子具有内部变量,这些内部变量导致OpenMP中的数据竞争,而没有导致CUDA中的数据竞争。真可惜。

© www.soinside.com 2019 - 2024. All rights reserved.