-
Notifications
You must be signed in to change notification settings - Fork 58
Description
Hello,
I have been facing an issue using Boost Odeint with CUDA in Windows 11then I am going to include a MVCE using a .cu file:
Configurations:
-Microsoft Visual Studio Community 2022 (64-bit) - Current
Version 17.11.0
-Nvidia Driver Version: 560.81
-CUDA Toolkit 12.6
-BOOST 1.86
-MVCE.cu
MVCE.cu:
#include <boost/numeric/odeint.hpp>
int main()
{
}
Output:
Error C2334 unexpected token(s) preceding '{'; skipping apparent function body CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 246
2.Error C2993 'J': is not a valid type for non-type template parameter 'J' CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 236
Error C2062 type 'unknown-type' unexpected CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 236
Error C2334 unexpected token(s) preceding '{'; skipping apparent function body CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 239
5.Error C2993 'J': is not a valid type for non-type template parameter 'J' CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 243
6.Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 243
7.Error C2062 type 'unknown-type' unexpected CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 243
The first error refers to the use of a C++ version prior to C++ 20 but I have used C++ 20 and it is the same error.
On the other hand, if it is replaced "odeint" by "interval" then the code compiles properly.
#include <boost/numeric/odeint.hpp>
int main()
{
}
Output:
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Build completed at 11:07 AM and took 01.917 seconds ==========
Finally, this code works properly in Ubuntu using CMake then it is not a general incompatibility between CUDA and BOOST.
*I have already published this error in fusion but I was referred to Odeint: boostorg/fusion#269
I hope you can help us with this issue. Thank you so much in advance! Let me know if there is something I can do to help you to fix this error.