Failure for CUDA back end

57 views
Skip to first unread message

Oleg Mikulchenko

unread,
Jan 30, 2024, 10:27:11 PM1/30/24
to ArrayFire Users
Hi, 

In a past I have compiled CUDA without problems. With my new setup it has errors at compiling now. My conditions:
OS - ArchLinux (Linux kernel 6.7.2)
ArrayFire - source code, cloned from git, master branch
gcc - 13.2.1
g++ - 13.2.1
CUDA:  12.3
cuDNN: libcudnn.so.8
CUDA compiler/nvcc -  NVIDIA 12.3.103
CUDA architecture(s):  8.6 8.6

Error:
---
In file included from /usr/include/spdlog/fmt/fmt.h:31,
                 from /usr/include/spdlog/common.h:50,
                 from /usr/include/spdlog/spdlog.h:12,
                 from /home/username/af-24/src/backend/common/Logger.hpp:33,
                 from /home/username/af-24/src/backend/common/DependencyModule.hpp:12:
/usr/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]’:
/usr/include/fmt/core.h:1842: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*}]’
/usr/include/fmt/core.h:1860:18:   required from ‘constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = basic_format_context<appender, char>; T = {cudnnStatus_t, const char*}]’
/usr/include/fmt/core.h:2835:44:   required from ‘std::string fmt::v10::format(format_string<T ...>, T&& ...) [with T = {cudnnStatus_t&, const char*}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, cudnnStatus_t&, const char*>]’
/home/ol/af-24/src/backend/cuda/platform.cpp:126:39:   required from here
/usr/include/fmt/core.h:1600:63: error: ‘fmt::v10::detail::type_is_unformattable_for<cudnnStatus_t, char> _’ has incomplete type
 1600 |     type_is_unformattable_for<T, typename Context::char_type> _;
      |                                                               ^
/usr/include/fmt/core.h:1604: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
 1604 |       formattable,
      |       ^~~~~~~~~~~
/usr/include/fmt/core.h:1604:7: note: ‘formattable’ evaluates to false
---
Please help.

Thank you,
Oleg
cmake.out

Umar Arshad

unread,
Jan 31, 2024, 10:54:13 AM1/31/24
to Oleg Mikulchenko, ArrayFire Users
I think libfmt is too new on your system. Maybe remove it and I think CMake will try to download it if it doesn't find it on your system. 

Umar

--
You received this message because you are subscribed to the Google Groups "ArrayFire Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to arrayfire-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/arrayfire-users/99f905e6-2062-41be-98b8-b9424b35b763n%40googlegroups.com.

Oleg Mikulchenko

unread,
Jan 31, 2024, 2:39:45 PM1/31/24
to Umar Arshad, ArrayFire Users
Thanks, I'll look into it. 

Oleg Mikulchenko

unread,
Jan 31, 2024, 6:25:39 PM1/31/24
to Umar Arshad, ArrayFire Users
After downgrading libfmt versions (10->9) by a package manager and spdlog (1.13 -> 1.11) by compiling from source plus creating a symbolic link libspdlog.so.1,  I was able to compile and run CUDA backend. 

Thanks!

Reply all
Reply to author
Forward
0 new messages