NVIDIA / NVIDIA/cccl

Compilation error for nvcc 12.X for shuffle and -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_OMP

Open
#839 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
C++
Stars
2.5k
Forks
487
Avg merge
2d 7h
Merged PRs (30d)
296

Description

The following code
```
#include
#include

int main(){
std::vector v{0, 1, 2, 3};
thrust::shuffle(v.begin(), v.end(), thrust::default_random_engine());
return 0;
}
```
does not compile for nvcc 12.0 and 12.1 with the flag ´-DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_OMP´.
But it compiles with both versions of the compiler without the flag and it compiles with and without flags with nvcc 11.8.
The problem is that the allocator may throw for ´THRUST_DEVICE_SYSTEM_OMP´ but the template argument ´Alloc´ is derived to
´Alloc=thrust::detail::no_throw_allocator<...>´. Some other algorithms are affected as well.
See [godbolt](https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIAruiakl9ZATwDKjdAGFUtEywYgATKUcAZPAZMADl3ACNMYgkNUgAHVAVCOwYXNw89eMTbAQCg0JYIqIBmS0xrbIYhAiZiAlT3Tx8rTBtkqpqCXJDwyOjLatr69K5%2Bjq78wpAigEpLVBNiZHYOAHoVgGoAFQBPWMx17fnidbQsdYRIzFJ1knXaVCZ0dcN1zFVWWPoAOgBSDQBBP6ArxFQLINxnH5FJwEBDEEwKAgrBQIExUKjfBBQ7BAn4gsEQ/ZQpwANxaRGI2NxAMCBHWLCYgQg0x%2BAHYAEJA9bc9aI9AgEBkmwkYm07HrEls9kxdYjdY%2BdZFNkAEShnIBPPWsPhiIFKLRGMwEBJXwiwCZswlX0czOu2oRBAFWCoTBMtAIAH1iIZ0KgWB7GOagsyWUV1f9NcRMAQFgx1ho1bjWcqOLNaJwAKy8TwcLSkVCcJxyZURpx4zledm8o5LdZ4oo8UiO3Op2YAaymrK%2BGa4GgAnF4ABxcLwANiKGgzklH%2Bk4kmzml4BY4vAUIBiza0szgsBgiBQftidEi5EoaBYR/oUQYJOQyBHIywJLwSwAanhMAB3ADyexzeZod1IjXCAwkXUgwkCGptnAyDmGIbZvzCbRyU4RtzzYQRvwYWgYJbUgsAZIxxHw/Ao1aMk13wt4WhMAhljzWkynA2g8DCb0EJcLBwIIYg8BYNDUz4AxgAUd8v1/RhBJkQQRDEdgpBk%2BQlDUcDdBGAwjBQMwLFYsI10gWZUFiCoqIAWmVTYAAkACU5CETYPWVbBXwASScbAPSEABNBzsAAWShSzbPsxznLcjyvN8zYAo9JxlGUVcynJZIHAYZxXAaPR/ECboCl6EZMiSAQhk8QqEmKhhxh6KIRmaVoBHaQZMuGUpyjaAZOlyiYCtGZq0jKvquryGqJFmBQawUtNMwXfDl3WYJXycJxZS8L4uC%2BDR1ggXBCFuesuGmXhN1bUgO17GJ0w4edSAErgMy%2BLw%2Bw0Lg%2BwzVlXoHDRB1HQdSH/JdOFXdcm0Xbc9wgJB5gIWI6NPCBMHwCk8H5EZ%2BFk0RxEU9HlJUdR8PU0hP29WIwdnDgs3%2B8Dl2/OjYbpVAqAWpaVpHdbNu2lwL2PY4DqO0GW2mWYLkeXpbSum6BK8Nbez7IoigzQcPq4Vk%2B0HDMqbmoHLBBk7wfgSGD25q94fPS9ehvO8HwIzBnzfD8fz/aTAPo4gQLA/C4Og2CoIQpCUJsaSMMYAhsNw8DCMMYASLzMiUso8CaNMejwKYq68z0jjti4hjjr4gTuCEjEmFE8THakwulLkrHpBxxQ8bU7x9Cj7TzH0NiDNtYzTM4CzrLshynJc9zPJ8vzAqKYKB7C4fIrHmL/I9b9/MStqUvsBH0tK7L0uq/LariCqKm38qsmSPfJjq5KGsqTqT7Xm%2BmuGvLL6G%2B/ETGbrRsOuYFiWMbyaUwBvmTgzNlqrXZltHaSN9ogkOsdMG01rq8ClhtCcGgQSSC8BoSQuC%2BzjlZJrPMy5gYbjJjufc0N6bw0RntPiqMq6YwUrXWQ9dVIEybsTJgpNC5IKAdTTgtMYZ0RuEzRa4C2YbSgVzc2vMQReH5nrJBktvBoI0BgooWCcF4IIUQwGK4dZkMFqQChhsnwviuBQCAZsebBFYMscRrMZabV4OY/%2BBjaHIwYTjauzClJsPxnmQm9UKhpQygNHe6AL69SKsfFqg1Ynny/vvPQISOodHftfCoT9okHw/v1LKdVOq5IAbxTAmAUbrj4bNYhnBlS2wsesMukQwFOMgdtXaFI6xwOuDInm3SGyKMQeTFR2C9EgIMWuIxW52wgFHGtSQg5nofSVkUUcfZJAZg1ldIoNT9EIMFkgrweyJkHJmaQMkbtUqSCAA%3D).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.