NVIDIA / nvbench

CUDA Kernel Benchmarking Library
Apache License 2.0
474 stars 63 forks source link

Getting a lot of errors when building tests and examples on Windows #156

Open gabswb opened 6 months ago

gabswb commented 6 months ago

Hello, I am getting a lot of errors when compiling the library with tests and examples with MSVC. MSVC version = 19.29.30154.0 NVCC version = 12.3.107 I am compiling with :

cmake -DNVBench_ENABLE_TESTING=ON -DNVBench_ENABLE_DEVICE_TESTING=ON -DNVBench_ENABLE_EXAMPLES=ON -DCMAKE_CUDA_ARCHITECTURES=75 ..
cmake --build . --config Release

Here is some errors i'm getting if I build with -DNVBench_ENABLE_WERROR=OFF:

LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library

C:\Users\gschwab\dev\libraries\nvbench\testing\statistics.cu(89): error : namespace "std" has no member "transform" [C: \Users\gschwab\dev\libraries\nvbench\build\testing\nvbench.test.statistics.vcxproj] std::transform(std::begin(signal),

warning C4324: 'thrust ::detail::aligned_type<2>::type': structure was padded due to alignment specifier

C:/Users/gschwab/dev/libraries/nvbench/build/_deps/fmt-src/include\fmt/ranges.h(436): error : no suitable user-defined conversion from "fmt::v9::detail::string_literal<char, ',', ' '>" to "fmt::v9::basic_string_view" exists [C:\User s\gschwab\dev\libraries\nvbench\build\testing\nvbench.test.type_list.vcxproj] basic_stringview separator = detail::string_literal<Char, ',', ' '>{}; ^ detected during: instantiation of "fmt::v9::range_formatter<T, Char, fmt::v9::enable_if_t<fmt::v9::conjunction<std::is_sam e<T, fmt::v9::remove_cvref_t>, fmt::v9::disjunction<fmt::v9::is_formattable<T, Char>, fmt::v9::detail::has_fallbac k_formatter<T, Char>>>::value, void>>::range_formatter() [with T=std::string, Char=char]" at line 545 instantiation of "fmt::v9::detail::range_default_formatter<K, R, Char, fmt::v9::enable_if_t<, void>>::range_default_formatter() [with K=fmt::v9::range_format::sequence, R=std::vector<std::string, std::allocator

>, Char=char]" at line 1310 of C:\Users\gschwab\dev\libraries\nvbench\build\_deps\fmt-src\include\fmt\co re.h implicit generation of "fmt::v9::formatter>, fmt::v9::detail::is_formattable_delayed>::value, void>>::formatter() [with R=std: :vector>, Char=char]" at line 1310 of C:\Users\gschwab\dev\libraries\nvbench \build\_deps\fmt-src\include\fmt\core.h instantiation of class "fmt::v9::formatter>, fmt::v9::detail::is_formattable_delayed>::value, void>> [with R=std::vector>, Char=char]" at line 1310 of C:\Users\gschwab\dev\libraries\nvbench\build\_deps\ fmt-src\include\fmt\core.h instantiation of "void fmt::v9::detail::value::format_custom_arg(void *, Context::p arse_context_type &, Context &) [with Context=fmt::v9::format_context, T=std::vector>, Formatter=fmt::v9::formatter>, char, void>]" at line 1297 of C:\Users\gschwab\dev\libraries\nvbench\build\_deps\fmt-src\include\fmt\core.h [ 2 instantiation contexts not shown ] instantiation of "auto fmt::v9::detail::make_arg,T,>(T &&)->fmt::v9: :detail::value [with IS_PACKED=true, Context=fmt::v9::format_context, =fmt::v9::detail::type::custo m_type, T=std::vector> &, =0]" at line 1902 of C:\Users\gschwab\dev \libraries\nvbench\build\_deps\fmt-src\include\fmt\core.h instantiation of "fmt::v9::format_arg_store::format_arg_store(T &&...) [with Context=fm t::v9::format_context, Args=>, std::vector>>, T=> &, std::vector> &>]" at line 1918 of C:\Users\gschwab\dev\libraries\nvbench\build\_deps\fmt-src\include\fmt\core. h instantiation of "auto fmt::v9::make_format_args(Args &&...)->fmt::v9::format_arg_store...> [with Context=fmt::v9::format_context, Args=> &, std::vector> &>]" at line 3206 of C:\Users\gschwab\dev\libraries\ nvbench\build\_deps\fmt-src\include\fmt\core.h instantiation of "auto fmt::v9::format(fmt::v9::format_string, T &&...)->std::string [with T=> &, std::vector> &>]" at lin e 166 of C:\Users\gschwab\dev\libraries\nvbench\testing\type_list.cu instantiation of "void test_foreach::test(std::vector> ) [with TypeList=test_foreach::TL0]" at line 171 of C:\Users\gschwab\dev\libraries\nvbench\testing\type_list.cu C:\Users\gschwab\dev\libraries\nvbench\examples\axes.cu(136): error C2220: the following warning is treated as an error [C:\Users\gschwab\dev\libraries\nvbench\build\examples\nvbench.example.axes.vcxproj] C:\Users\gschwab\dev\libraries\nvbench\examples\axes.cu(136): warning C4127: conditional expression is constant [C:\Use rs\gschwab\dev\libraries\nvbench\build\examples\nvbench.example.axes.vcxproj] C:\Users\gschwab\dev\libraries\nvbench\examples\axes.cu(136): note: consider using 'if constexpr' statement instead C:\Users\gschwab\dev\libraries\nvbench\examples\axes.cu(178): note: see reference to function template instantiation 'void copy_type_conversion_sweep(nvbench::state &,nvbench::type_list)' being compiled with [ T=signed char ] C:/Users/gschwab/dev/libraries/nvbench\nvbench/runner.cuh(102): note: see reference to function template instantiatio n 'void copy_type_conversion_sweep_line_179::operator ()(nvbench::state &,nvbench::type_list)' bein g compiled with [ T=signed char ] C:\Users\gschwab\dev\libraries\nvbench\nvbench\detail/type_list_impl.cuh(92): note: see reference to function templat e instantiation 'void nvbench::runner,nvbench::type_list>>>::run_device::::operator ()>>(nvbench::wrapped_type>) const' being compiled with [ T=signed char ]