After reading about Cooperative Groups in CUDA 9, I\'ve been trying synchronize at a grid level.
I\'m using Visual Studio 2017, a GTX 1060 and CUDA 9.1.
I al
Use of a cooperative kernel launch (cooperative grid - CG) requires a Pascal or Volta GPU, and requires either Linux or a windows device operating in TCC mode. If you test the deviceProp.cooperativeLaunch
property in the device properties structure, I think you will find that it is not supported on your GPU operating in WDDM mode.
It's good practice to test this property in your code, before attempting to use a cooperative grid launch.
The issue you are asking about is a compile/link issue, however. For that, my recommendation is to study a CG (cooperative grid) sample code, such as 6_Advanced/reductionMultiBlockCG
. For grid sync, its definitely a requirement to set -rdc=true
(i.e. enable relocatable device code linking). Depending on how you set -rdc=true
, it may not be applied to your project correctly. The correct methodology is outlined here
The proximal issue here appears to be that you are not correctly linking against the device runtime library, e.g. -lcudadevrt