LLNL / zfp

Compressed numerical arrays that support high-speed random access
http://zfp.llnl.gov
BSD 3-Clause "New" or "Revised" License
775 stars 160 forks source link

Unable to compile with ZFP_WITH_CUDA=TRUE on Windows #244

Open kminemur opened 1 week ago

kminemur commented 1 week ago

Hi team,

I'm trying to compiler zfp with CUDA on Windows system, however I'm getting link error of "LINK : fatal error LNK1104: cannot open file 'stdc++.lib'". I could compiler it on Ubuntu22.04 environemt.

Does zfp with CUDA only support Linux environment?

Steps install CUDA Toolkit 12.5 git clone zfp cd zfp; mkdir zfp; cd zfp cmake .. -DZFP_WITH_CUDA=TRUE cmake --build .

lindstro commented 1 week ago

There's no reason I'm aware of why zfp cannot be built with CUDA support on Windows. We unfortunately do not have a CUDA-capable Windows machine that would allow us to reproduce the issue, but it seems unlikely that the issue is related to zfp.

Perhaps you can include the full CMake output to see if it gives any other hints? Also, what version of CMake are you using? What host compiler and version? Is the compiler compatible with CUDA 12.5? See https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html for requirements. Can you successfully build any of the CUDA code samples?

kminemur commented 1 week ago

cmake out log is as follows:

cmake --version cmake version 3.29.5-msvc4

cmake .. -DZFP_WITH_CUDA=TRUE --log-level=VERBOSE -- Building for: Visual Studio 17 2022 -- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.22631. -- The C compiler identification is MSVC 19.42.34433.0 -- The CXX compiler identification is MSVC 19.42.34433.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Compiling with C standard: 90 -- Compiling with C++ standard: 98 -- Found OpenMP_C: -openmp (found version "2.0") -- Found OpenMP: TRUE (found version "2.0") found components: C CMake Warning (dev) at CMakeLists.txt:205 (find_package): Policy CMP0146 is not set: The FindCUDA module is removed. Run "cmake --help-policy CMP0146" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

This warning is for project developers. Use -Wno-dev to suppress it.

-- Found CUDA: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.5 (found version "12.5") -- Performing Test HAVE_MATH -- Performing Test HAVE_MATH - Success -- Configuring done (18.2s) -- Generating done (0.1s) -- Build files have been written to: C:/Users/MTL/kazuki/zfp/build

lindstro commented 1 week ago

So the CMake warning is related to #232, which we will fix in the next release. Still, CUDA is found, so presumably that's not the cause.

From NVIDIA docs, your compiler should be compatible with CUDA 12.5. But please do attempt to build one or more of the CUDA code samples to verify that this is not a zfp specific issue. It would also be instructive to test if zfp builds with CUDA disabled (-DZFP_WITH_CUDA=OFF).