Skip to content
New issue

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

Compilation error using gcc 10.3 #1

Open
tgakay opened this issue Nov 16, 2023 · 0 comments
Open

Compilation error using gcc 10.3 #1

tgakay opened this issue Nov 16, 2023 · 0 comments

Comments

@tgakay
Copy link

tgakay commented Nov 16, 2023

Hi,
I'm trying to compile tblis-strassen on a Linux box using gcc/g++ 10.3 but I get the following errors

$ CC=gcc CXX=g++ ./configure --enable-config=sandybridge --disable-shared
...
$ make V=1
make  all-recursive
make[1]: Entering directory `/home/yakovlev/Programs/tblis-strassen'
Making all in src/external/tci
make[2]: Entering directory `/home/yakovlev/Programs/tblis-strassen/src/external/tci'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/yakovlev/Programs/tblis-strassen/src/external/tci'
make[2]: Entering directory `/home/yakovlev/Programs/tblis-strassen'
depbase=`echo src/stra_internal/3t/stra_mult.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.  -I. -I./src -I. -Isrc -Isrc/util -I./src/external/tci -Isrc/external/tci/tci   -O3 -MT src/stra_internal/3t/stra_mult.lo -MD -MP -MF $depbase.Tpo -c -o src/stra_internal/3t/stra_mult.lo src/stra_internal/3t/stra_mult.cxx &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I. -I./src -I. -Isrc -Isrc/util -I./src/external/tci -Isrc/external/tci/tci -O3 -MT src/stra_internal/3t/stra_mult.lo -MD -MP -MF src/stra_internal/3t/.deps/stra_mult.Tpo -c src/stra_internal/3t/stra_mult.cxx -o src/stra_internal/3t/stra_mult.o
In file included from src/stra_internal/3t/stra_mult.cxx:8:
./src/stra_nodes/stra_matrify.hpp: In instantiation of ‘tblis::stra_matrify_and_run<1>::stra_matrify_and_run(Parent&, const tci::communicator&, const tblis::config&, T, MatrixA&, MatrixB&, T, MatrixC&) [with T = float; Parent = tblis::stra_matrify<1, tblis::internal::BuffersForB, tblis::stra_pack<1, tblis::internal::BuffersForB, tblis::stra_partition<0, &tblis::config::gemm_mc, tblis::stra_matrify_and_pack<0, tblis::internal::BuffersForA, tblis::stra_matrify<2, tblis::internal::BuffersForScatter, tblis::stra_partition<1, &tblis::config::gemm_nr, tblis::stra_partition<0, &tblis::config::gemm_mr, tblis::stra_gemm_micro_kernel> > > > > > >; MatrixA = tblis::stra_tensor_view<float, 2>; MatrixB = tblis::stra_tensor_view<float, 2>; MatrixC = tblis::stra_tensor_view<float, 2>]’:
./src/stra_nodes/stra_matrify.hpp:341:9:   required from ‘void tblis::stra_matrify<Mat, Pool, Child>::operator()(const tci::communicator&, const tblis::config&, T, MatrixA&, MatrixB&, T, MatrixC&) [with T = float; MatrixA = tblis::stra_tensor_view<float, 2>; MatrixB = tblis::stra_tensor_view<float, 2>; MatrixC = tblis::stra_tensor_view<float, 2>; int Mat = 1; tblis::MemoryPool& Pool = tblis::internal::BuffersForB; Child = tblis::stra_pack<1, tblis::internal::BuffersForB, tblis::stra_partition<0, &tblis::config::gemm_mc, tblis::stra_matrify_and_pack<0, tblis::internal::BuffersForA, tblis::stra_matrify<2, tblis::internal::BuffersForScatter, tblis::stra_partition<1, &tblis::config::gemm_nr, tblis::stra_partition<0, &tblis::config::gemm_mr, tblis::stra_gemm_micro_kernel> > > > > >]’
./src/stra_nodes/stra_partm.hpp:97:18:   recursively required from ‘void tblis::stra_partition<Dim, BS, Child>::operator()(const tci::communicator&, const tblis::config&, T, MatrixA&, MatrixB&, T, MatrixC&) [with T = float; MatrixA = tblis::stra_tensor_view<float, 2>; MatrixB = tblis::stra_tensor_view<float, 2>; MatrixC = tblis::stra_tensor_view<float, 2>; int Dim = 2; tblis::blocksize tblis::config::* BS = &tblis::config::gemm_kc; Child = tblis::stra_matrify_and_pack<1, tblis::internal::BuffersForB, tblis::stra_partition<0, &tblis::config::gemm_mc, tblis::stra_matrify_and_pack<0, tblis::internal::BuffersForA, tblis::stra_matrify<2, tblis::internal::BuffersForScatter, tblis::stra_partition<1, &tblis::config::gemm_nr, tblis::stra_partition<0, &tblis::config::gemm_mr, tblis::stra_gemm_micro_kernel> > > > > >]’
./src/stra_nodes/stra_partm.hpp:97:18:   required from ‘void tblis::stra_partition<Dim, BS, Child>::operator()(const tci::communicator&, const tblis::config&, T, MatrixA&, MatrixB&, T, MatrixC&) [with T = float; MatrixA = tblis::stra_tensor_view<float, 2>; MatrixB = tblis::stra_tensor_view<float, 2>; MatrixC = tblis::stra_tensor_view<float, 2>; int Dim = 1; tblis::blocksize tblis::config::* BS = &tblis::config::gemm_nc; Child = tblis::stra_partition<2, &tblis::config::gemm_kc, tblis::stra_matrify_and_pack<1, tblis::internal::BuffersForB, tblis::stra_partition<0, &tblis::config::gemm_mc, tblis::stra_matrify_and_pack<0, tblis::internal::BuffersForA, tblis::stra_matrify<2, tblis::internal::BuffersForScatter, tblis::stra_partition<1, &tblis::config::gemm_nr, tblis::stra_partition<0, &tblis::config::gemm_mr, tblis::stra_gemm_micro_kernel> > > > > > >]’
src/stra_internal/3t/stra_mult.cxx:441:18:   required from ‘void tblis::internal::stra_contract_blis(const tci::communicator&, const tblis::config&, const std::vector<long int>&, const std::vector<long int>&, const std::vector<long int>&, T, const T*, const std::vector<long int>&, const std::vector<long int>&, const T*, const std::vector<long int>&, const std::vector<long int>&, T, T*, const std::vector<long int>&, const std::vector<long int>&) [with T = float]’
src/stra_internal/3t/stra_mult.cxx:622:1:   required from here
./src/stra_nodes/stra_matrify.hpp:218:52: error: ‘B’ is not a constant expression
  218 |         stra_block_scatter_matrix<T, stra_size(B)> M(B.length(0), B.length(1), buf, coeff,
      |                                                    ^
./src/stra_nodes/stra_matrify.hpp:218:47: note: in template argument for type ‘unsigned int’
  218 |         stra_block_scatter_matrix<T, stra_size(B)> M(B.length(0), B.length(1), buf, coeff,
      |                                      ~~~~~~~~~^~~
./src/stra_nodes/stra_matrify.hpp:218:52: error: ‘B’ is not a constant expression
  218 |         stra_block_scatter_matrix<T, stra_size(B)> M(B.length(0), B.length(1), buf, coeff,
      |                                                    ^
./src/stra_nodes/stra_matrify.hpp:218:47: note: in template argument for type ‘unsigned int’
  218 |         stra_block_scatter_matrix<T, stra_size(B)> M(B.length(0), B.length(1), buf, coeff,
      |                                      ~~~~~~~~~^~~

This error is repeated multiple times.

Do you have any suggestions how to get around it?
Kind regards,
Alexei

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant