I got invalid conversion error when compile on linux
EyonJoshua91 opened this issue · comments
Below is the output for from cmake:
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.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
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Build spdlog: 1.10.0
-- Build type: Release
-- Looking for dlfcn.h
-- Looking for dlfcn.h - found
-- Looking for getauxval
-- Looking for getauxval - found
-- 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/x86_64-linux-gnu/libiomp5.so
-- Found MKL include directory: /opt/intel/mkl/include
-- Found MKL library directory: /opt/intel/mkl/lib/intel64
-- 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
-- Generating done
When I run make -j4
, I got following error
/home/yyu/Dev/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)0; ctranslate2::dim_t = long int]':
/home/yyu/Dev/CTranslate2/src/cpu/primitives.cc:208:34: error: invalid conversion from 'const float*' to 'float*' [-fpermissive]
return vsFmax(size, a, b, c);
^
In file included from /home/yyu/Dev/CTranslate2/src/cpu/primitives.cc:9:0:
/opt/intel/mkl/include/mkl_vml_functions.h:1441:16: note: initializing argument 3 of 'void vsFmax(long long int, const float*, float*, float*)'
_Mkl_Api(void, vsFmax, (const MKL_INT n, const float a[], float r1[], float r2[]))
^
/opt/intel/mkl/include/mkl.h:23:47: note: in definition of macro '_Mkl_Api'
#define _Mkl_Api(rtype,name,arg) extern rtype name arg;
^~~~
/home/yyu/Dev/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)0; ctranslate2::dim_t = long int]':
/home/yyu/Dev/CTranslate2/src/cpu/primitives.cc:230:34: error: invalid conversion from 'const float*' to 'float*' [-fpermissive]
return vsFmin(size, a, b, c);
^
In file included from /home/yyu/Dev/CTranslate2/src/cpu/primitives.cc:9:0:
/opt/intel/mkl/include/mkl_vml_functions.h:1456:16: note: initializing argument 3 of 'void vsFmin(long long int, const float*, float*, float*)'
_Mkl_Api(void, vsFmin, (const MKL_INT n, const float a[], float r1[], float r2[]))
^
/opt/intel/mkl/include/mkl.h:23:47: note: in definition of macro '_Mkl_Api'
#define _Mkl_Api(rtype,name,arg) extern rtype name arg;
^~~~
/home/yyu/Dev/CTranslate2/src/cpu/primitives.cc: In static member function 'static void ctranslate2::primitives<D>::gemm(bool, bool, bool, bool, ctranslate2::dim_t, ctranslate2::dim_t, ctranslate2::dim_t, float, const In*, ctranslate2::dim_t, const In*, ctranslate2::dim_t, float, Out*, ctranslate2::dim_t, const Out*) [with In = short int; Out = int; ctranslate2::Device D = (ctranslate2::Device)0; ctranslate2::dim_t = long int]':
/home/yyu/Dev/CTranslate2/src/cpu/primitives.cc:758:50: error: invalid conversion from 'long long int' to 'CBLAS_TRANSPOSE' [-fpermissive]
a_is_packed ? (MKL_INT)CblasPacked : (MKL_INT)trans_a,
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/intel/mkl/include/mkl.h:31:0,
from /home/yyu/Dev/CTranslate2/src/cpu/primitives.cc:9:
/opt/intel/mkl/include/mkl_cblas.h:842:6: note: initializing argument 2 of 'void cblas_gemm_s16s16s32_compute(CBLAS_LAYOUT, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, CBLAS_OFFSET, long long int, long long int, long long int, float, const short int*, long long int, short int, const short int*, long long int, short int, float, int*, long long int, const int*)'
void cblas_gemm_s16s16s32_compute(const CBLAS_LAYOUT Layout, const CBLAS_TRANSPOSE TransA,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yyu/Dev/CTranslate2/src/cpu/primitives.cc:759:50: error: invalid conversion from 'long long int' to 'CBLAS_TRANSPOSE' [-fpermissive]
b_is_packed ? (MKL_INT)CblasPacked : (MKL_INT)trans_b,
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/intel/mkl/include/mkl.h:31:0,
from /home/yyu/Dev/CTranslate2/src/cpu/primitives.cc:9:
/opt/intel/mkl/include/mkl_cblas.h:842:6: note: initializing argument 3 of 'void cblas_gemm_s16s16s32_compute(CBLAS_LAYOUT, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, CBLAS_OFFSET, long long int, long long int, long long int, float, const short int*, long long int, short int, const short int*, long long int, short int, float, int*, long long int, const int*)'
void cblas_gemm_s16s16s32_compute(const CBLAS_LAYOUT Layout, const CBLAS_TRANSPOSE TransA,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yyu/Dev/CTranslate2/src/cpu/primitives.cc: In static member function 'static void ctranslate2::primitives<D>::gemm(bool, bool, bool, bool, ctranslate2::dim_t, ctranslate2::dim_t, ctranslate2::dim_t, float, const In*, ctranslate2::dim_t, const In*, ctranslate2::dim_t, float, Out*, ctranslate2::dim_t, const Out*) [with In = signed char; Out = int; ctranslate2::Device D = (ctranslate2::Device)0; ctranslate2::dim_t = long int]':
/home/yyu/Dev/CTranslate2/src/cpu/primitives.cc:876:48: error: invalid conversion from 'long long int' to 'CBLAS_TRANSPOSE' [-fpermissive]
a_is_packed ? (MKL_INT)CblasPacked : (MKL_INT)trans_a,
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/intel/mkl/include/mkl.h:31:0,
from /home/yyu/Dev/CTranslate2/src/cpu/primitives.cc:9:
/opt/intel/mkl/include/mkl_cblas.h:834:6: note: initializing argument 2 of 'void cblas_gemm_s8u8s32_compute(CBLAS_LAYOUT, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, CBLAS_OFFSET, long long int, long long int, long long int, float, const void*, long long int, char, const void*, long long int, char, float, int*, long long int, const int*)'
void cblas_gemm_s8u8s32_compute (const CBLAS_LAYOUT Layout, const CBLAS_TRANSPOSE TransA,
^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yyu/Dev/CTranslate2/src/cpu/primitives.cc:877:48: error: invalid conversion from 'long long int' to 'CBLAS_TRANSPOSE' [-fpermissive]
b_is_packed ? (MKL_INT)CblasPacked : (MKL_INT)trans_b,
Does anyone has the same issue? How to resolve it?
I think you have the issue with MKL version marked in this issue . Could you verify it and reinstall correctly MKL.
@minhthuc2502 Thanks so much! I have reinstalled MKL, the issue is resolved now.