LLNL / ExaConstit

A crystal plasticity FEM code that runs on the GPU
BSD 3-Clause "New" or "Revised" License
47 stars 13 forks source link

How to build the CUDA version of the ExaConstit software library #56

Open wonengkanjiannideyanjing opened 6 days ago

wonengkanjiannideyanjing commented 6 days ago

Do I need to check ENABLE_CUDA at every step when using CMake to build [SNLS->RAJA->EXACMECH,MFEM]->ExaConstit? After checking it during the process of building RAJA, I encountered the MSB3721 error. Is there any good way to solve this error?

error like : MSB3721 命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\bin\nvcc.exe" --use-local-env -ccbin "d:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64" -x cu -ID:\RAJA2024.07.0\tpl\camp\include -ID:\RAJA2024.07.0\build\tpl\camp\include -ID:\RAJA2024.07.0\blt\thirdparty_builtin\googletest\googletest\include -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\include" -G --keep-dir x64\Debug -maxrregcount=0 --machine 64 --compile -cudart static -restrict --expt-extended-lambda --expt-relaxed-constexpr -Xcudafe --display_error_number -O0 -std=c++14 --generate-code=arch=compute_52,code=[compute_52,sm_52] /wd4251 -Xcompiler=/EHsc -g -D_WINDOWS -DGTEST_HAS_DEATH_TEST=1 -DCAMP_WIN_STATIC_BUILD -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -DWIN32 -D_WINDOWS -DGTEST_HAS_DEATH_TEST=1 -DCAMP_WIN_STATIC_BUILD -D"CMAKE_INTDIR=\"Debug\"" -Xcompiler "/EHsc /W3 /nologo /Od /Fdlambda.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MTd /GR" -o lambda.dir\Debug\lambda.obj "D:\RAJA2024.07.0\tpl\camp\test\lambda.cpp"”已退出,返回代码为 1。 lambda d:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.4.targets 785

rcarson3 commented 6 days ago

@wonengkanjiannideyanjing so if you are using CUDA then yes that would be required in RAJA, ExaCMech, MFEM (they're option is MFEM_USE_CUDA), and ExaConstit. I will mention that unless you are using a top of the line professional/HPC grade GPU you might be better off just using a plain CPU build of things. Since, it is simpler and also the speed-ups you get from consumer grade GPUs to CPUs is not always the best especially if you've got a CPU with quite a few cores on it.

I will mention that I've never tried building on Windows as I don't have access to a Windows machine. So, I won't be able to help debug issues there. I have had users build on Windows before, but they've built using the WSL which gives them access to a linux system which is well tested on.

wonengkanjiannideyanjing commented 6 days ago

@rcarson3 Thanks a lot, I got your mentioned points and will try it in linux system.