OpenNMT / OpenNMT/CTranslate2

Failure to compile on 32-bit x86 GNU/Linux

Open
#2,081 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
4.7k
Forks
536
Avg merge
12h 12m
Merged PRs (30d)
4

Description

error
tacokoneko@debian:~/CTranslate2/build$ cmake .. -DWITH_MKL=OFF
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.

-- The C compiler identification is GNU 14.2.0
-- The CXX compiler identification is GNU 14.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - 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: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Compiler Id: GNU
-- Compiler Version: 14.2.0
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Build spdlog: 1.10.0
-- Build type: Release
-- Compiling for multiple CPU ISA and enabling runtime dispatch
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Using OpenMP: /usr/lib/i386-linux-gnu/libiomp5.so
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Configuring done (1.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/tacokoneko/CTranslate2/build
tacokoneko@debian:~/CTranslate2/build$ make
[  0%] Building CXX object CMakeFiles/ctranslate2.dir/src/allocator.cc.o
[  1%] Building CXX object CMakeFiles/ctranslate2.dir/src/batch_reader.cc.o
[  2%] Building CXX object CMakeFiles/ctranslate2.dir/src/buffered_translation_wrapper.cc.o
[  3%] Building CXX object CMakeFiles/ctranslate2.dir/src/cpu/allocator.cc.o
[  4%] Building CXX object CMakeFiles/ctranslate2.dir/src/cpu/backend.cc.o
/home/tacokoneko/CTranslate2/src/cpu/backend.cc: In function ‘ctranslate2::cpu::GemmBackend ctranslate2::cpu::get_gemm_backend(ctranslate2::ComputeType)’:
/home/tacokoneko/CTranslate2/src/cpu/backend.cc:51:18: warning: unused variable ‘is_int8’ [-Wunused-variable]
   51 |       const bool is_int8 = (compute_type == ComputeType::INT8
      |                  ^~~~~~~
[  4%] Building CXX object CMakeFiles/ctranslate2.dir/src/cpu/cpu_info.cc.o
[  5%] Building CXX object CMakeFiles/ctranslate2.dir/src/cpu/cpu_isa.cc.o
/home/tacokoneko/CTranslate2/src/cpu/cpu_isa.cc:11:19: warning: ‘ctranslate2::cpu::CpuIsa ctranslate2::cpu::try_isa(const std::string&, CpuIsa, bool)’ defined but not used [-Wunused-function]
   11 |     static CpuIsa try_isa(const std::string& name, CpuIsa cpu_isa, bool supported) {
      |                   ^~~~~~~
[  6%] Building CXX object CMakeFiles/ctranslate2.dir/src/cpu/kernels.cc.o
In file included from /home/tacokoneko/CTranslate2/src/cpu/kernels.cc:19:
/home/tacokoneko/CTranslate2/src/cpu/vec.h: In instantiation of ‘static void ctranslate2::cpu::Vec<T, ISA>::convert_and_store(float, U*, ctranslate2::dim_t) [with U = unsigned char; T = float; ctranslate2::cpu::CpuIsa ISA = ctranslate2::cpu::CpuIsa::GENERIC; ctranslate2::dim_t = long long int]’:
/home/tacokoneko/CTranslate2/src/cpu/kernels.cc:598:37:   required from ‘float ctranslate2::cpu::quantize_s8_row(const float*, int8_t*, ctranslate2::dim_t, bool, const RoundFunc&) [with RoundFunc = float(float); int8_t = signed char; ctranslate2::dim_t = long long int]’
  598 |           VecType::convert_and_store(v, dst + j, VecType::width);
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.cc:634:38:   required from ‘void ctranslate2::cpu::quantize_s8_batch(const float*, int8_t*, float*, ctranslate2::dim_t, ctranslate2::dim_t, bool, const RoundFunc&) [with RoundFunc = float(float); int8_t = signed char; ctranslate2::dim_t = long long int]’
  634 |           scales[i] = quantize_s8_row(src, dst, depth, shift_to_uint8, round_func);
      |                       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.cc:648:26:   required from here
  648 |         quantize_s8_batch(x, y, scales, batch_size, depth, shift_to_uint8, Vec<float, TARGET_ISA>::round);
      |         ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/vec.h:148:65: warning: unused parameter ‘count’ [-Wunused-parameter]
  148 |       static inline void convert_and_store(float v, U* a, dim_t count) {
      |                                                           ~~~~~~^~~~~
/home/tacokoneko/CTranslate2/src/cpu/vec.h: In instantiation of ‘static void ctranslate2::cpu::Vec<T, ISA>::convert_and_store(float, U*, ctranslate2::dim_t) [with U = signed char; T = float; ctranslate2::cpu::CpuIsa ISA = ctranslate2::cpu::CpuIsa::GENERIC; ctranslate2::dim_t = long long int]’:
/home/tacokoneko/CTranslate2/src/cpu/kernels.cc:609:37:   required from ‘float ctranslate2::cpu::quantize_s8_row(const float*, int8_t*, ctranslate2::dim_t, bool, const RoundFunc&) [with RoundFunc = float(float); int8_t = signed char; ctranslate2::dim_t = long long int]’
  609 |           VecType::convert_and_store(v, y + j, VecType::width);
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.cc:634:38:   required from ‘void ctranslate2::cpu::quantize_s8_batch(const float*, int8_t*, float*, ctranslate2::dim_t, ctranslate2::dim_t, bool, const RoundFunc&) [with RoundFunc = float(float); int8_t = signed char; ctranslate2::dim_t = long long int]’
  634 |           scales[i] = quantize_s8_row(src, dst, depth, shift_to_uint8, round_func);
      |                       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.cc:648:26:   required from here
  648 |         quantize_s8_batch(x, y, scales, batch_size, depth, shift_to_uint8, Vec<float, TARGET_ISA>::round);
      |         ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/vec.h:148:65: warning: unused parameter ‘count’ [-Wunused-parameter]
  148 |       static inline void convert_and_store(float v, U* a, dim_t count) {
      |                                                           ~~~~~~^~~~~
[  7%] Building CXX object CMakeFiles/ctranslate2.dir/src/cpu/parallel.cc.o
[  8%] Building CXX object CMakeFiles/ctranslate2.dir/src/cpu/primitives.cc.o
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static T ctranslate2::primitives<D>::sum(const T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:88:45: error: ‘ISA’ was not declared in this scope
   88 |     CPU_ISA_DISPATCH((sum = cpu::reduce_sum<ISA>(array, size)));
      |                                             ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static T ctranslate2::primitives<D>::max(const T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:102:45: error: ‘ISA’ was not declared in this scope
  102 |     CPU_ISA_DISPATCH((max = cpu::reduce_max<ISA>(array, size)));
      |                                             ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static T ctranslate2::primitives<D>::amax(const T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:110:46: error: ‘ISA’ was not declared in this scope
  110 |     CPU_ISA_DISPATCH((max = cpu::reduce_amax<ISA>(array, size)));
      |                                              ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static T ctranslate2::primitives<D>::amax(const T*, ctranslate2::dim_t) [with T = float; ctranslate2::Device D = ctranslate2::Device::CPU; ctranslate2::dim_t = long long int]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:122:46: error: ‘ISA’ was not declared in this scope
  122 |     CPU_ISA_DISPATCH((max = cpu::reduce_amax<ISA>(x, size)));
      |                                              ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:122:50: error: no matching function for call to ‘reduce_amax<<expression error> >(const float*&, ctranslate2::dim_t&)’
  122 |     CPU_ISA_DISPATCH((max = cpu::reduce_amax<ISA>(x, size)));
      |                             ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from /home/tacokoneko/CTranslate2/src/cpu/primitives.cc:30:
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:62:7: note: candidate: ‘template<ctranslate2::cpu::CpuIsa ISA, class T> T ctranslate2::cpu::reduce_amax(const T*, ctranslate2::dim_t)’
   62 |     T reduce_amax(const T* x, dim_t size);
      |       ^~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:62:7: note:   template argument deduction/substitution failed:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:122:50: error: template argument 1 is invalid
  122 |     CPU_ISA_DISPATCH((max = cpu::reduce_amax<ISA>(x, size)));
      |                             ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:122:5: error: ‘CPU_ISA_DISPATCH’ was not declared in this scope
  122 |     CPU_ISA_DISPATCH((max = cpu::reduce_amax<ISA>(x, size)));
      |     ^~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::add(T, const T*, T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:129:32: error: ‘ISA’ was not declared in this scope
  129 |     CPU_ISA_DISPATCH((cpu::add<ISA>(a, x, y, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::add(const T*, const T*, T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:135:32: error: ‘ISA’ was not declared in this scope
  135 |     CPU_ISA_DISPATCH((cpu::add<ISA>(a, b, c, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::add(const T*, const T*, T*, ctranslate2::dim_t) [with T = float; ctranslate2::Device D = ctranslate2::Device::CPU; ctranslate2::dim_t = long long int]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:145:32: error: ‘ISA’ was not declared in this scope
  145 |     CPU_ISA_DISPATCH((cpu::add<ISA>(a, b, c, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:145:36: error: no matching function for call to ‘add<<expression error> >(const float*&, const float*&, float*&, ctranslate2::dim_t&)’
  145 |     CPU_ISA_DISPATCH((cpu::add<ISA>(a, b, c, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:35:10: note: candidate: ‘template<ctranslate2::cpu::CpuIsa ISA, class T> void ctranslate2::cpu::add(T, const T*, T*, ctranslate2::dim_t)’
   35 |     void add(T a, const T* x, T* y, dim_t size);
      |          ^~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:35:10: note:   template argument deduction/substitution failed:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:145:36: error: template argument 1 is invalid
  145 |     CPU_ISA_DISPATCH((cpu::add<ISA>(a, b, c, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:37:10: note: candidate: ‘template<ctranslate2::cpu::CpuIsa ISA, class T> void ctranslate2::cpu::add(const T*, const T*, T*, ctranslate2::dim_t)’
   37 |     void add(const T* a, const T* b, T* c, dim_t size);
      |          ^~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:37:10: note:   template argument deduction/substitution failed:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:145:36: error: template argument 1 is invalid
  145 |     CPU_ISA_DISPATCH((cpu::add<ISA>(a, b, c, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:145:5: error: ‘CPU_ISA_DISPATCH’ was not declared in this scope
  145 |     CPU_ISA_DISPATCH((cpu::add<ISA>(a, b, c, size)));
      |     ^~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::sub(const T*, const T*, T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:192:32: error: ‘ISA’ was not declared in this scope
  192 |     CPU_ISA_DISPATCH((cpu::sub<ISA>(a, b, c, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::sub(const T*, const T*, T*, ctranslate2::dim_t) [with T = float; ctranslate2::Device D = ctranslate2::Device::CPU; ctranslate2::dim_t = long long int]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:202:32: error: ‘ISA’ was not declared in this scope
  202 |     CPU_ISA_DISPATCH((cpu::sub<ISA>(a, b, c, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:202:36: error: no matching function for call to ‘sub<<expression error> >(const float*&, const float*&, float*&, ctranslate2::dim_t&)’
  202 |     CPU_ISA_DISPATCH((cpu::sub<ISA>(a, b, c, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:40:10: note: candidate: ‘template<ctranslate2::cpu::CpuIsa ISA, class T> void ctranslate2::cpu::sub(const T*, const T*, T*, ctranslate2::dim_t)’
   40 |     void sub(const T* a, const T* b, T* c, dim_t size);
      |          ^~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:40:10: note:   template argument deduction/substitution failed:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:202:36: error: template argument 1 is invalid
  202 |     CPU_ISA_DISPATCH((cpu::sub<ISA>(a, b, c, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:202:5: error: ‘CPU_ISA_DISPATCH’ was not declared in this scope
  202 |     CPU_ISA_DISPATCH((cpu::sub<ISA>(a, b, c, size)));
      |     ^~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::max(T, const T*, T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:208:32: error: ‘ISA’ was not declared in this scope
  208 |     CPU_ISA_DISPATCH((cpu::max<ISA>(a, x, y, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::max(const T*, const T*, T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:214:32: error: ‘ISA’ was not declared in this scope
  214 |     CPU_ISA_DISPATCH((cpu::max<ISA>(a, b, c, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::max(const T*, const T*, T*, ctranslate2::dim_t) [with T = float; ctranslate2::Device D = ctranslate2::Device::CPU; ctranslate2::dim_t = long long int]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:224:32: error: ‘ISA’ was not declared in this scope
  224 |     CPU_ISA_DISPATCH((cpu::max<ISA>(a, b, c, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:224:36: error: no matching function for call to ‘max<<expression error> >(const float*&, const float*&, float*&, ctranslate2::dim_t&)’
  224 |     CPU_ISA_DISPATCH((cpu::max<ISA>(a, b, c, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:48:10: note: candidate: ‘template<ctranslate2::cpu::CpuIsa ISA, class T> void ctranslate2::cpu::max(T, const T*, T*, ctranslate2::dim_t)’
   48 |     void max(T a, const T* x, T* y, dim_t size);
      |          ^~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:48:10: note:   template argument deduction/substitution failed:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:224:36: error: template argument 1 is invalid
  224 |     CPU_ISA_DISPATCH((cpu::max<ISA>(a, b, c, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:50:10: note: candidate: ‘template<ctranslate2::cpu::CpuIsa ISA, class T> void ctranslate2::cpu::max(const T*, const T*, T*, ctranslate2::dim_t)’
   50 |     void max(const T* a, const T* b, T* c, dim_t size);
      |          ^~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:50:10: note:   template argument deduction/substitution failed:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:224:36: error: template argument 1 is invalid
  224 |     CPU_ISA_DISPATCH((cpu::max<ISA>(a, b, c, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:224:5: error: ‘CPU_ISA_DISPATCH’ was not declared in this scope
  224 |     CPU_ISA_DISPATCH((cpu::max<ISA>(a, b, c, size)));
      |     ^~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::min(T, const T*, T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:230:32: error: ‘ISA’ was not declared in this scope
  230 |     CPU_ISA_DISPATCH((cpu::min<ISA>(a, x, y, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::min(const T*, const T*, T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:236:32: error: ‘ISA’ was not declared in this scope
  236 |     CPU_ISA_DISPATCH((cpu::min<ISA>(a, b, c, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::min(const T*, const T*, T*, ctranslate2::dim_t) [with T = float; ctranslate2::Device D = ctranslate2::Device::CPU; ctranslate2::dim_t = long long int]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:246:32: error: ‘ISA’ was not declared in this scope
  246 |     CPU_ISA_DISPATCH((cpu::min<ISA>(a, b, c, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:246:36: error: no matching function for call to ‘min<<expression error> >(const float*&, const float*&, float*&, ctranslate2::dim_t&)’
  246 |     CPU_ISA_DISPATCH((cpu::min<ISA>(a, b, c, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:53:10: note: candidate: ‘template<ctranslate2::cpu::CpuIsa ISA, class T> void ctranslate2::cpu::min(T, const T*, T*, ctranslate2::dim_t)’
   53 |     void min(T a, const T* x, T* y, dim_t size);
      |          ^~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:53:10: note:   template argument deduction/substitution failed:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:246:36: error: template argument 1 is invalid
  246 |     CPU_ISA_DISPATCH((cpu::min<ISA>(a, b, c, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:55:10: note: candidate: ‘template<ctranslate2::cpu::CpuIsa ISA, class T> void ctranslate2::cpu::min(const T*, const T*, T*, ctranslate2::dim_t)’
   55 |     void min(const T* a, const T* b, T* c, dim_t size);
      |          ^~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:55:10: note:   template argument deduction/substitution failed:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:246:36: error: template argument 1 is invalid
  246 |     CPU_ISA_DISPATCH((cpu::min<ISA>(a, b, c, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:246:5: error: ‘CPU_ISA_DISPATCH’ was not declared in this scope
  246 |     CPU_ISA_DISPATCH((cpu::min<ISA>(a, b, c, size)));
      |     ^~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::mul(T, const T*, T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:252:32: error: ‘ISA’ was not declared in this scope
  252 |     CPU_ISA_DISPATCH((cpu::mul<ISA>(a, x, y, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::mul(T, const T*, T*, ctranslate2::dim_t) [with T = float; ctranslate2::Device D = ctranslate2::Device::CPU; ctranslate2::dim_t = long long int]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:262:32: error: ‘ISA’ was not declared in this scope
  262 |     CPU_ISA_DISPATCH((cpu::mul<ISA>(a, x, y, size)));
      |                                ^~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:262:36: error: no matching function for call to ‘mul<<expression error> >(float&, const float*&, float*&, ctranslate2::dim_t&)’
  262 |     CPU_ISA_DISPATCH((cpu::mul<ISA>(a, x, y, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:43:10: note: candidate: ‘template<ctranslate2::cpu::CpuIsa ISA, class T> void ctranslate2::cpu::mul(T, const T*, T*, ctranslate2::dim_t)’
   43 |     void mul(T a, const T* x, T* y, dim_t size);
      |          ^~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:43:10: note:   template argument deduction/substitution failed:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:262:36: error: template argument 1 is invalid
  262 |     CPU_ISA_DISPATCH((cpu::mul<ISA>(a, x, y, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:45:10: note: candidate: ‘template<ctranslate2::cpu::CpuIsa ISA, class T> void ctranslate2::cpu::mul(const T*, const T*, T*, ctranslate2::dim_t)’
   45 |     void mul(const T* a, const T* b, T* c, dim_t size);
      |          ^~~
/home/tacokoneko/CTranslate2/src/cpu/kernels.h:45:10: note:   template argument deduction/substitution failed:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:262:36: error: template argument 1 is invalid
  262 |     CPU_ISA_DISPATCH((cpu::mul<ISA>(a, x, y, size)));
      |                       ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:262:5: error: ‘CPU_ISA_DISPATCH’ was not declared in this scope
  262 |     CPU_ISA_DISPATCH((cpu::mul<ISA>(a, x, y, size)));
      |     ^~~~~~~~~~~~~~~~
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc: In static member function ‘static void ctranslate2::primitives<D>::mul(const T*, const T*, T*, ctranslate2::dim_t) [with ctranslate2::Device D = ctranslate2::Device::CPU]’:
/home/tacokoneko/CTranslate2/src/cpu/primitives.cc:268:32: error: ‘ISA’ was not declared in this scope
  268 |     CPU_ISA_DISPATCH((cpu::mul<ISA>(a, b, c, size)));
      |                                ^~~
...

Reprodcution steps:

# 32-bit x86 GNU/Linux
git clone --recursive https://github.com/OpenNMT/CTranslate2.git
cd CTranslate2/
mkdir build
cd build
cmake .. -DWITH_MKL=OFF
make

OS: Debian 13
architecture: 32-bit x86
CTranslate2 version: 4.8.1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the 32-bit GNU/Linux build with CMake using -DWITH_MKL=OFF, then inspect the failing CPU_ISA_DISPATCH calls in src/cpu/primitives.cc and the related declarations in src/cpu/kernels.h. Compare the dispatch behavior with the compiler errors and verify that the project builds successfully on the reported target.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp
Domain
build-system, operating-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.