Compilation error for nvcc 12.X for shuffle and -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_OMP
- 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
Assessment
This issue has not been assessed yet.