Upgrade from VS 2015 / CUDA 8 to VS 2017 / CUDA 10: new thrust error on build

Hi All,

I’m migrating an existing solution from Visual Studio 2015 / CUDA 8 to Visual Studio 2017 / CUDA 10, and I’m now getting a build error in a Thrust library function. So presumably I’m not finding all config settings that should be changed… I get the error

 no suitable constructor exists to convert from "float" to "thrust::device_reference<float>"	

at line 307 of Thrust’s “functional.h” (for me at path C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include\thrust\functional.h). This line is part of the “multiplies” template:

/*! Function call operator. The return value is lhs * rhs.
*/
host device T operator()(const T &lhs, const T &rhs) const {return lhs * rhs;}
}; // end multiplies

This smells like I’m missing some reference to other parts of the Thrust library, rather than a problem with specifically this line.

Has anyone else seen this, or more generally are there guidelines on upgrading VS projects to CUDA 10?

Thanks for your help,
–Sean