arrayfire / arrayfire

ArrayFire: a general purpose GPU library.

Home Page:https://arrayfire.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Build]

anya-nlp opened this issue · comments

Installing arrayfire[cuda] with vcpkg fails due to cudnnStatus_t not being formattable with fmt.

Description

  • Operating system: Ubuntu 20.04 as well as 22.04 (same issue on both)
  • Steps to reproduce: tried to install arrayfire[cuda] with vcpkg as a dependency for Flashlight following instructions (https://github.com/flashlight/flashlight#from-source-build-with-vcpkg):
    ./vcpkg install arrayfire[cuda]
  • Requirements like CUDA and CuDNN are satisfied
  • Suspected reason for problem: fmt doesn't know about cudnnStatus_t. See this issue opened for fmtlib that addresses the problem: fmtlib/fmt#3579 (comment)
  • Tried to install arrayfire[cuda] as a dependency for Flashlight via vcpkg: ./vcpkg install arrayfire[cuda]. The baseline in vcpkg indicates arrayfire version 3.8.0.
  • This seems to be an issue for multiple users, see microsoft/vcpkg#32862

Error Log

FAILED: src/backend/cuda/CMakeFiles/afcuda.dir/platform.cpp.o 
/usr/bin/c++ -DAFDLL -DAF_CACHE_KERNELS_TO_DISK -DAF_WITH_LOGGING -DBOOST_CHRONO_HEADER_ONLY -DBOOST_COMPUTE_HAVE_THREAD_LOCAL -DBOOST_COMPUTE_THREAD_SAFE -DOS_LNX -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DWITH_CUDNN -Dafcuda_EXPORTS -I/usr/local/cuda-11.4/include -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/include -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/x64-linux-dbg/include -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/api/c -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend/cuda -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend/cuda/kernel -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend/cuda/jit -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/x64-linux-dbg/src/backend/cuda -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/x64-linux-dbg -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/9c95132389-511398ace8.clean/include -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend/common/SYSTEM -I/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/extern/half/include -isystem /home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/include -fPIC -g -std=c++14 -fPIC -fvisibility=hidden -Wno-ignored-attributes -Wall -DAF_USE_NEW_CUSPARSE_API -DAF_CUDA -DCUDA_NO_HALF -MD -MT src/backend/cuda/CMakeFiles/afcuda.dir/platform.cpp.o -MF src/backend/cuda/CMakeFiles/afcuda.dir/platform.cpp.o.d -o src/backend/cuda/CMakeFiles/afcuda.dir/platform.cpp.o -c /home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend/cuda/platform.cpp
In file included from /home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/include/spdlog/fmt/fmt.h:31,
                 from /home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/include/spdlog/common.h:50,
                 from /home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/include/spdlog/spdlog.h:12,
                 from /home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend/common/Logger.hpp:16,
                 from /home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend/common/DependencyModule.hpp:12,
                 from /home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend/cuda/cudnnModule.hpp:12,
                 from /home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend/cuda/cudnn.hpp:15,
                 from /home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend/cuda/platform.cpp:15:
/home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/include/fmt/core.h: In instantiation of ‘constexpr fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = cudnnStatus_t; typename std::enable_if<PACKED, int>::type <anonymous> = 0]’:
/home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/include/fmt/core.h:1808:51:   required from ‘constexpr fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {cudnnStatus_t, const char*}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {cudnnStatus_t, const char*}]’
/home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/include/fmt/core.h:1826:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, fmt::v10::remove_cvref_t<T>...> fmt::v10::make_format_args(T& ...) [with Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = {cudnnStatus_t, const char*}]’
/home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/include/fmt/core.h:2788:44:   required from ‘std::string fmt::v10::format(fmt::v10::format_string<T ...>, T&& ...) [with T = {cudnnStatus_t&, const char*}; std::string = std::__cxx11::basic_string<char>; fmt::v10::format_string<T ...> = fmt::v10::basic_format_string<char, cudnnStatus_t&, const char*>]’
/home/[USER_REPO_DIR]/vcpkg/buildtrees/arrayfire/src/27f04d5188-42e72796d0.clean/src/backend/cuda/platform.cpp:127:65:   required from here
/home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/include/fmt/core.h:1580:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
 1580 |       formattable,
      |       ^~~~~~~~~~~

Build Environment

Compiler version: c++ 9.4.0
Operating system: Ubuntu 20.04
Build environment: vcpkg (up to date from vcpkg's repo's main)
CMake variables: -- Cache values
AF_BUILD_CPU:BOOL=ON
AF_BUILD_CUDA:BOOL=ON
AF_BUILD_DOCS:BOOL=OFF
AF_BUILD_EXAMPLES:BOOL=OFF
AF_BUILD_FORGE:BOOL=OFF
AF_BUILD_OPENCL:BOOL=OFF
AF_BUILD_UNIFIED:BOOL=ON
AF_CACHE_KERNELS_TO_DISK:BOOL=ON
AF_STACKTRACE_TYPE:STRING=Basic
AF_WITH_CUDNN:BOOL=ON
AF_WITH_LOGGING:BOOL=ON
AF_WITH_NONFREE:BOOL=OFF
AF_WITH_STACKTRACE:BOOL=ON
AF_WITH_STATIC_FREEIMAGE:BOOL=OFF
BUILD_TESTING:BOOL=OFF
CMAKE_BUILD_TYPE:STRING=Debug
CMAKE_CROSSCOMPILING:BOOL=OFF
CMAKE_INSTALL_PREFIX:PATH=/home/[USER_REPO_DIR]/vcpkg/packages/arrayfire_x64-linux/debug
CMAKE_SYSTEM_NAME:STRING=Linux
CMAKE_SYSTEM_PROCESSOR:STRING=x86_64
CUDA_SDK_ROOT_DIR:PATH=CUDA_SDK_ROOT_DIR-NOTFOUND
CUDA_TOOLKIT_ROOT_DIR:PATH=/usr/local/cuda-11.4
MKL_RT_LINK_LIBRARY:FILEPATH=MKL_RT_LINK_LIBRARY-NOTFOUND
MKL_THREAD_LAYER:STRING=Intel OpenMP
MKL_mkl_avx2_LINK_LIBRARY:FILEPATH=MKL_mkl_avx2_LINK_LIBRARY-NOTFOUND
MKL_mkl_avx512_LINK_LIBRARY:FILEPATH=MKL_mkl_avx512_LINK_LIBRARY-NOTFOUND
MKL_mkl_avx_LINK_LIBRARY:FILEPATH=MKL_mkl_avx_LINK_LIBRARY-NOTFOUND
MKL_mkl_def_LINK_LIBRARY:FILEPATH=MKL_mkl_def_LINK_LIBRARY-NOTFOUND
MKL_mkl_mc3_LINK_LIBRARY:FILEPATH=MKL_mkl_mc3_LINK_LIBRARY-NOTFOUND
MKL_mkl_mc_LINK_LIBRARY:FILEPATH=MKL_mkl_mc_LINK_LIBRARY-NOTFOUND
VCPKG_APPLOCAL_DEPS:BOOL=OFF
VCPKG_INSTALLED_DIR:PATH=/home/[USER_REPO_DIR]/vcpkg/installed
VCPKG_MANIFEST_DIR:PATH=
VCPKG_MANIFEST_MODE:BOOL=OFF
VCPKG_PREFER_SYSTEM_LIBS:BOOL=OFF
VCPKG_SETUP_CMAKE_PROGRAM_PATH:BOOL=ON
VCPKG_TARGET_TRIPLET:STRING=x64-linux
VCPKG_TRACE_FIND_PACKAGE:BOOL=OFF
X_VCPKG_APPLOCAL_DEPS_INSTALL:BOOL=OFF
X_VCPKG_APPLOCAL_DEPS_SERIALIZED:BOOL=OFF
_VCPKG_INSTALLED_DIR:PATH=/home/[USER_REPO_DIR]/vcpkg/installed
fmt_DIR:PATH=/home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/share/fmt
glad_DIR:PATH=/home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/share/glad
spdlog_DIR:PATH=/home/[USER_REPO_DIR]/vcpkg/installed/x64-linux/share/spdlog