We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hi, I am trying to use both xtensor-blas and TBB acceleration at the same time. However, the compilation fails.
xtensor-blas
I am using the following CMakeLists.txt
CMakeLists.txt
cmake_minimum_required(VERSION 3.1) project(test_blas) # Try to use only anaconda provided stuff set(CMAKE_PREFIX_PATH /Users/scheibler/anaconda3/envs/mixiva ${CMAKE_PREFIX_PATH}) find_package(xtl REQUIRED) find_package(xtensor REQUIRED) add_executable(test_blas src/test_blas.cpp) OPTION(XTENSOR_USE_XSIMD "simd acceleration for xtensor" ON) OPTION(XTENSOR_USE_TBB "enable parallelization using intel TBB" ON) if(XTENSOR_USE_XSIMD) set(xsimd_REQUIRED_VERSION 7.0.0) find_package(xsimd ${xsimd_REQUIRED_VERSION} REQUIRED) message(STATUS "Found xsimd: ${xsimd_INCLUDE_DIRS}/xsimd") endif() if(XTENSOR_USE_TBB) set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") find_package(TBB REQUIRED) message(STATUS "Found intel TBB: ${TBB_INCLUDE_DIRS}") endif() if(MSVC) target_compile_options(test_blas PRIVATE /EHsc /MP /bigobj) set(CMAKE_EXE_LINKER_FLAGS /MANIFEST:NO) endif() if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR (CMAKE_CXX_COMPILER_ID MATCHES "Intel" AND NOT WIN32)) target_compile_options(test_blas PRIVATE -march=native -std=c++14) endif() add_definitions(-DHAVE_CBLAS=1) add_definitions(-DXTENSOR_USE_TBB) add_definitions(-DXTENSOR_USE_SIMD) # set(BLA_VENDOR Intel10_64lp) if (WIN32) find_package(OpenBLAS REQUIRED) set(BLAS_LIBRARIES ${CMAKE_INSTALL_PREFIX}${OpenBLAS_LIBRARIES}) else() find_package(BLAS REQUIRED) find_package(LAPACK REQUIRED) endif() message(STATUS "BLAS VENDOR: " ${BLA_VENDOR}) message(STATUS "BLAS LIBRARIES: " ${BLAS_LIBRARIES}) target_link_libraries(test_blas xtensor ${BLAS_LIBRARIES} tbb)
And the code is
#include <iostream> #include <xtensor/xtensor.hpp> #include <xtensor/xrandom.hpp> #include <xtensor-blas/xlinalg.hpp> int main() { xt::xtensor<double, 2, xt::layout_type::row_major> x = xt::random::randn<double>({1000, 1000}); xt::xtensor<double, 2, xt::layout_type::row_major> y = xt::random::randn<double>({1000, 1000}); auto y_T = xt::transpose(y); xt::xtensor<double, 2> z = xt::linalg::dot(x, y_T); for (size_t i ; i < 10 ; i++) z = xt::linalg::dot(x, y_T); std::cout << z(0, 0) << std::endl; }
The output of compilation is this.
make test_blas Scanning dependencies of target test_blas [ 50%] Building CXX object CMakeFiles/test_blas.dir/src/test_blas.cpp.o In file included from /Users/scheibler/Documents/Research/Projects/Current/Separation/mixiva/test_xtensor/src/test_blas.cpp:5: In file included from /Users/scheibler/anaconda3/envs/mixiva/include/xtensor-blas/xlinalg.hpp:29: In file included from /Users/scheibler/anaconda3/envs/mixiva/include/xtensor-blas/xlapack.hpp:23: In file included from /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/cxxlapack.cxx:37: In file included from /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/cxxlapack.tcc:36: In file included from /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/interface/interface.tcc:36: In file included from /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/interface/bbcsd.tcc:39: In file included from /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/netlib.h:25: /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:973:39: error: expected ')' const FLOAT *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:968:20: note: to match this '(' LAPACK_IMPL(cggbak)(const char *JOB, ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:990:39: error: expected ')' FLOAT *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:982:20: note: to match this '(' LAPACK_IMPL(cggbal)(const char *JOB, ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:1087:39: error: expected ')' FLOAT *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:1070:20: note: to match this '(' LAPACK_IMPL(cggevx)(const char *BALANC, ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:6787:39: error: expected ')' const DOUBLE *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:6782:20: note: to match this '(' LAPACK_IMPL(dggbak)(const char *JOB, ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:6804:39: error: expected ')' DOUBLE *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:6796:20: note: to match this '(' LAPACK_IMPL(dggbal)(const char *JOB, ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:6902:39: error: expected ')' DOUBLE *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:6884:20: note: to match this '(' LAPACK_IMPL(dggevx)(const char *BALANC, ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:13109:39: error: expected ')' const FLOAT *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:13104:20: note: to match this '(' LAPACK_IMPL(sggbak)(const char *JOB, ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:13126:39: error: expected ')' FLOAT *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:13118:20: note: to match this '(' LAPACK_IMPL(sggbal)(const char *JOB, ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:13224:39: error: expected ')' FLOAT *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:13206:20: note: to match this '(' LAPACK_IMPL(sggevx)(const char *BALANC, ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:19244:39: error: expected ')' const DOUBLE *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:19239:20: note: to match this '(' LAPACK_IMPL(zggbak)(const char *JOB, ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:19261:39: error: expected ')' DOUBLE *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:19253:20: note: to match this '(' LAPACK_IMPL(zggbal)(const char *JOB, ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:19358:39: error: expected ')' DOUBLE *LSCALE, ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/sysctl.h:542:17: note: expanded from macro 'LSCALE' #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ^ /Users/scheibler/anaconda3/envs/mixiva/include/xflens/cxxlapack/netlib/interface/lapack.in.h:19341:20: note: to match this '(' LAPACK_IMPL(zggevx)(const char *BALANC, ^ 12 errors generated. make[3]: *** [CMakeFiles/test_blas.dir/src/test_blas.cpp.o] Error 1 make[2]: *** [CMakeFiles/test_blas.dir/all] Error 2 make[1]: *** [CMakeFiles/test_blas.dir/rule] Error 2 make: *** [test_blas] Error 2
The code is compiled on Mac OS X Mojave (10.14.4) with Apple LLVM
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1 Apple LLVM version 10.0.1 (clang-1001.0.46.4) Target: x86_64-apple-darwin18.5.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
When I add #undef XTENSOR_USE_TBB at the beginning of the code, it compiles and runs as expected.
#undef XTENSOR_USE_TBB
The text was updated successfully, but these errors were encountered:
The same issue + 1
Add #undef XTENSOR_USE_TBB not work for me.
Sorry, something went wrong.
Same issue described here xtensor-stack/xtensor#2736
No branches or pull requests
Hi, I am trying to use both
xtensor-blas
and TBB acceleration at the same time. However, the compilation fails.I am using the following
CMakeLists.txt
And the code is
The output of compilation is this.
The code is compiled on Mac OS X Mojave (10.14.4) with Apple LLVM
When I add
#undef XTENSOR_USE_TBB
at the beginning of the code, it compiles and runs as expected.The text was updated successfully, but these errors were encountered: