bassoy / ttv

C++ Header-Only Library for High-Performance Tensor-Vector Multiplication
GNU Lesser General Public License v3.0
19 stars 4 forks source link

MatrixTimesVector tests fail on macOS ppc (all other pass) #5

Open barracuda156 opened 1 year ago

barracuda156 commented 1 year ago
[==========] 31 tests from 5 test suites ran. (95552 ms total)
[  PASSED  ] 28 tests.
[  FAILED  ] 3 tests, listed below:
[  FAILED  ] MatrixTimesVector.Gemv
[  FAILED  ] MatrixTimesVector.GemvParallel
[  FAILED  ] MatrixTimesVector.GemvBLAS

 3 FAILED TESTS
barracuda156 commented 1 year ago

Build log:

:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_layout.cpp -o build/gtest_tlib_layout.o
:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_mtv.cpp -o build/gtest_tlib_mtv.o
:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_shape.cpp -o build/gtest_tlib_shape.o
:info:test In file included from src/gtest_tlib_shape.cpp:9:
:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_matrix(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int> >]':
:info:test src/gtest_tlib_shape.cpp:84:3:   required from here
:info:test ../include/tlib/detail/shape.h:72:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]
:info:test    72 |         if(std::distance(begin,end) < 2u)
:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_tensor(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int> >]':
:info:test src/gtest_tlib_shape.cpp:99:3:   required from here
:info:test ../include/tlib/detail/shape.h:86:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]
:info:test    86 |         if(std::distance(begin,end) < 3u)
:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_strides.cpp -o build/gtest_tlib_strides.o
:info:test In file included from src/gtest_tlib_strides.cpp:25:
:info:test ../include/tlib/detail/strides.h: In instantiation of 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; InputIt2 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; OutputIt = __gnu_cxx::__normal_iterator<long unsigned int*, std::vector<long unsigned int> >]':
:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<T>&, const std::vector<T>&) [with size_type = long unsigned int]'
:info:test src/gtest_tlib_strides.cpp:35:42:   required from here
:info:test ../include/tlib/detail/strides.h:52:28: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'const int' [-Wsign-compare]
:info:test    52 |         for(auto r = 1u; r < n; ++r)
:info:test       |                          ~~^~~
:info:test In file included from ../include/tlib/detail/strides.h:25:
:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_matrix(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >]':
:info:test src/gtest_tlib_strides.cpp:74:3:   required from here
:info:test ../include/tlib/detail/shape.h:72:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]
:info:test    72 |         if(std::distance(begin,end) < 2u)
:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_tensor(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >]':
:info:test src/gtest_tlib_strides.cpp:98:3:   required from 'StridesTest_TensorShape_Test::TestBody()::<lambda(std::size_t, const auto:37&, const auto:38&, const auto:39&, const auto:40&)> [with auto:37 = std::vector<long unsigned int>; auto:38 = std::vector<long unsigned int>; auto:39 = std::vector<long unsigned int>; auto:40 = std::vector<long unsigned int>; std::size_t = long unsigned int]'
:info:test src/gtest_tlib_strides.cpp:113:16:   required from here
:info:test ../include/tlib/detail/shape.h:86:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]
:info:test    86 |         if(std::distance(begin,end) < 3u)
:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_ttv.cpp -o build/gtest_tlib_ttv.o
:info:test In file included from ../include/tlib/detail/tensor_times_vector.h:32,
:info:test                  from ../include/tlib/ttv.h:21,
:info:test                  from src/gtest_tlib_ttv.cpp:18:
:info:test ../include/tlib/detail/strides.h: In instantiation of 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; InputIt2 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; OutputIt = __gnu_cxx::__normal_iterator<long unsigned int*, std::vector<long unsigned int> >]':
:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = long unsigned int]'
:info:test src/gtest_tlib_ttv.cpp:171:45:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::sequential_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy; unsigned int rank = 2]'
:info:test src/gtest_tlib_ttv.cpp:199:98:   required from here
:info:test ../include/tlib/detail/strides.h:52:28: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'const int' [-Wsign-compare]
:info:test    52 |         for(auto r = 1u; r < n; ++r)
:info:test       |                          ~~^~~
:info:test In file included from ../include/tlib/detail/strides.h:25:
:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_matrix(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >]':
:info:test ../include/tlib/detail/strides.h:48:16:   required from 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; InputIt2 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; OutputIt = __gnu_cxx::__normal_iterator<long unsigned int*, std::vector<long unsigned int> >]'
:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = long unsigned int]'
:info:test src/gtest_tlib_ttv.cpp:171:45:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::sequential_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy; unsigned int rank = 2]'
:info:test src/gtest_tlib_ttv.cpp:199:98:   required from here
:info:test ../include/tlib/detail/shape.h:72:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]
:info:test    72 |         if(std::distance(begin,end) < 2u)
:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_tensor(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >]':
:info:test ../include/tlib/detail/strides.h:48:53:   required from 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; InputIt2 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; OutputIt = __gnu_cxx::__normal_iterator<long unsigned int*, std::vector<long unsigned int> >]'
:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = long unsigned int]'
:info:test src/gtest_tlib_ttv.cpp:171:45:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::sequential_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy; unsigned int rank = 2]'
:info:test src/gtest_tlib_ttv.cpp:199:98:   required from here
:info:test ../include/tlib/detail/shape.h:86:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]
:info:test    86 |         if(std::distance(begin,end) < 3u)
:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
:info:test ../include/tlib/detail/tensor_times_vector.h: In instantiation of 'void tlib::detail::ttv(tlib::execution::parallel_blas_policy, tlib::slicing::small_policy, tlib::loop_fusion::outer_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int]':
:info:test ../include/tlib/ttv.h:92:13:   required from 'void tlib::tensor_times_vector(execution_policy, slicing_policy, fusion_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int; execution_policy = execution::parallel_blas_policy; slicing_policy = slicing::small_policy; fusion_policy = loop_fusion::outer_policy]'
:info:test src/gtest_tlib_ttv.cpp:125:27:   required from 'void ttv_check(execution_policy, slicing_policy, fusion_policy, size_type, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_blas_policy; slicing_policy = tlib::slicing::small_policy; fusion_policy = tlib::loop_fusion::outer_policy]'
:info:test src/gtest_tlib_ttv.cpp:183:14:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_blas_policy; slicing_policy = tlib::slicing::small_policy; fusion_policy = tlib::loop_fusion::outer_policy; unsigned int rank = 2]'
:info:test src/gtest_tlib_ttv.cpp:299:98:   required from here
:info:test ../include/tlib/detail/tensor_times_vector.h:355:28: warning: variable 'na_m' set but not used [-Wunused-but-set-variable]
:info:test   355 |                 auto const na_m = na[m-1];
:info:test       |                            ^~~~
:info:test ../include/tlib/detail/tensor_times_vector.h:356:28: warning: variable 'wa_m' set but not used [-Wunused-but-set-variable]
:info:test   356 |                 auto const wa_m = wa[m-1];
:info:test       |                            ^~~~
:info:test ../include/tlib/detail/tensor_times_vector.h: In instantiation of 'void tlib::detail::set_blas_threads(size_t) [with size_t = unsigned int]':
:info:test ../include/tlib/detail/tensor_times_vector.h:521:19:   required from 'void tlib::detail::ttv(tlib::execution::parallel_policy, tlib::slicing::large_policy, tlib::loop_fusion::none_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int]'
:info:test ../include/tlib/ttv.h:92:13:   required from 'void tlib::tensor_times_vector(execution_policy, slicing_policy, fusion_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int; execution_policy = execution::parallel_policy; slicing_policy = slicing::large_policy; fusion_policy = loop_fusion::none_policy]'
:info:test src/gtest_tlib_ttv.cpp:125:27:   required from 'void ttv_check(execution_policy, slicing_policy, fusion_policy, size_type, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy]'
:info:test src/gtest_tlib_ttv.cpp:183:14:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy; unsigned int rank = 2]'
:info:test src/gtest_tlib_ttv.cpp:213:98:   required from here
:info:test ../include/tlib/detail/tensor_times_vector.h:51:37: warning: unused parameter 'num' [-Wunused-parameter]
:info:test    51 | inline void set_blas_threads(size_t num)
:info:test       |                              ~~~~~~~^~~
:info:test ../include/tlib/detail/tensor_times_vector.h: In instantiation of 'void tlib::detail::set_blas_threads(size_t) [with size_t = int]':
:info:test ../include/tlib/detail/tensor_times_vector.h:533:19:   required from 'void tlib::detail::ttv(tlib::execution::parallel_policy, tlib::slicing::large_policy, tlib::loop_fusion::none_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int]'
:info:test ../include/tlib/ttv.h:92:13:   required from 'void tlib::tensor_times_vector(execution_policy, slicing_policy, fusion_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int; execution_policy = execution::parallel_policy; slicing_policy = slicing::large_policy; fusion_policy = loop_fusion::none_policy]'
:info:test src/gtest_tlib_ttv.cpp:125:27:   required from 'void ttv_check(execution_policy, slicing_policy, fusion_policy, size_type, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy]'
:info:test src/gtest_tlib_ttv.cpp:183:14:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy; unsigned int rank = 2]'
:info:test src/gtest_tlib_ttv.cpp:213:98:   required from here
:info:test ../include/tlib/detail/tensor_times_vector.h:51:37: warning: unused parameter 'num' [-Wunused-parameter]
:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_workload.cpp -o build/gtest_tlib_workload.o
:info:test In file included from ../include/tlib/detail/tensor_times_vector.h:32,
:info:test                  from ../include/tlib/ttv.h:21,
:info:test                  from src/gtest_tlib_workload.cpp:18:
:info:test ../include/tlib/detail/strides.h: In instantiation of 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; InputIt2 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; OutputIt = __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >]':
:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = unsigned int]'
:info:test src/gtest_tlib_workload.cpp:56:43:   required from 'auto check_index_space_division(size_type, size_type) [with size_type = unsigned int; size_type rank = 3]'
:info:test src/gtest_tlib_workload.cpp:134:41:   required from here
:info:test ../include/tlib/detail/strides.h:52:28: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'const int' [-Wsign-compare]
:info:test    52 |         for(auto r = 1u; r < n; ++r)
:info:test       |                          ~~^~~
:info:test In file included from ../include/tlib/detail/strides.h:25:
:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_matrix(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >]':
:info:test ../include/tlib/detail/strides.h:48:16:   required from 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; InputIt2 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; OutputIt = __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >]'
:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = unsigned int]'
:info:test src/gtest_tlib_workload.cpp:56:43:   required from 'auto check_index_space_division(size_type, size_type) [with size_type = unsigned int; size_type rank = 3]'
:info:test src/gtest_tlib_workload.cpp:134:41:   required from here
:info:test ../include/tlib/detail/shape.h:72:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]
:info:test    72 |         if(std::distance(begin,end) < 2u)
:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_tensor(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >]':
:info:test ../include/tlib/detail/strides.h:48:53:   required from 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; InputIt2 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; OutputIt = __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >]'
:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = unsigned int]'
:info:test src/gtest_tlib_workload.cpp:56:43:   required from 'auto check_index_space_division(size_type, size_type) [with size_type = unsigned int; size_type rank = 3]'
:info:test src/gtest_tlib_workload.cpp:134:41:   required from here
:info:test ../include/tlib/detail/shape.h:86:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]
:info:test    86 |         if(std::distance(begin,end) < 3u)
:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/main.cpp -o build/main.o
:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  build/gtest_tlib_layout.o build/gtest_tlib_mtv.o build/gtest_tlib_shape.o build/gtest_tlib_strides.o build/gtest_tlib_ttv.o build/gtest_tlib_workload.o build/main.o -lgtest -lpthread -lgomp -lpthread -lm -lopenblas -o bin/main
barracuda156 commented 1 year ago

Tests log: ttv_tests_10.6.8_rosetta.txt

barracuda156 commented 1 year ago

@hrhee I noticed you have extra commits in your fork. Has this problem been addressed already?

bassoy commented 1 year ago

[==========] 31 tests from 5 test suites ran. (95552 ms total)

[  PASSED  ] 28 tests.

[  FAILED  ] 3 tests, listed below:

[  FAILED  ] MatrixTimesVector.Gemv

[  FAILED  ] MatrixTimesVector.GemvParallel

[  FAILED  ] MatrixTimesVector.GemvBLAS

 3 FAILED TESTS

Hmmm. I will have a look into it. Thanks for pointing this out.

bassoy commented 1 year ago

Build log:


:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_layout.cpp -o build/gtest_tlib_layout.o

:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_mtv.cpp -o build/gtest_tlib_mtv.o

:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_shape.cpp -o build/gtest_tlib_shape.o

:info:test In file included from src/gtest_tlib_shape.cpp:9:

:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_matrix(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int> >]':

:info:test src/gtest_tlib_shape.cpp:84:3:   required from here

:info:test ../include/tlib/detail/shape.h:72:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]

:info:test    72 |         if(std::distance(begin,end) < 2u)

:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_tensor(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int> >]':

:info:test src/gtest_tlib_shape.cpp:99:3:   required from here

:info:test ../include/tlib/detail/shape.h:86:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]

:info:test    86 |         if(std::distance(begin,end) < 3u)

:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_strides.cpp -o build/gtest_tlib_strides.o

:info:test In file included from src/gtest_tlib_strides.cpp:25:

:info:test ../include/tlib/detail/strides.h: In instantiation of 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; InputIt2 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; OutputIt = __gnu_cxx::__normal_iterator<long unsigned int*, std::vector<long unsigned int> >]':

:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<T>&, const std::vector<T>&) [with size_type = long unsigned int]'

:info:test src/gtest_tlib_strides.cpp:35:42:   required from here

:info:test ../include/tlib/detail/strides.h:52:28: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'const int' [-Wsign-compare]

:info:test    52 |         for(auto r = 1u; r < n; ++r)

:info:test       |                          ~~^~~

:info:test In file included from ../include/tlib/detail/strides.h:25:

:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_matrix(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >]':

:info:test src/gtest_tlib_strides.cpp:74:3:   required from here

:info:test ../include/tlib/detail/shape.h:72:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]

:info:test    72 |         if(std::distance(begin,end) < 2u)

:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_tensor(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >]':

:info:test src/gtest_tlib_strides.cpp:98:3:   required from 'StridesTest_TensorShape_Test::TestBody()::<lambda(std::size_t, const auto:37&, const auto:38&, const auto:39&, const auto:40&)> [with auto:37 = std::vector<long unsigned int>; auto:38 = std::vector<long unsigned int>; auto:39 = std::vector<long unsigned int>; auto:40 = std::vector<long unsigned int>; std::size_t = long unsigned int]'

:info:test src/gtest_tlib_strides.cpp:113:16:   required from here

:info:test ../include/tlib/detail/shape.h:86:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]

:info:test    86 |         if(std::distance(begin,end) < 3u)

:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_ttv.cpp -o build/gtest_tlib_ttv.o

:info:test In file included from ../include/tlib/detail/tensor_times_vector.h:32,

:info:test                  from ../include/tlib/ttv.h:21,

:info:test                  from src/gtest_tlib_ttv.cpp:18:

:info:test ../include/tlib/detail/strides.h: In instantiation of 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; InputIt2 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; OutputIt = __gnu_cxx::__normal_iterator<long unsigned int*, std::vector<long unsigned int> >]':

:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = long unsigned int]'

:info:test src/gtest_tlib_ttv.cpp:171:45:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::sequential_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy; unsigned int rank = 2]'

:info:test src/gtest_tlib_ttv.cpp:199:98:   required from here

:info:test ../include/tlib/detail/strides.h:52:28: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'const int' [-Wsign-compare]

:info:test    52 |         for(auto r = 1u; r < n; ++r)

:info:test       |                          ~~^~~

:info:test In file included from ../include/tlib/detail/strides.h:25:

:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_matrix(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >]':

:info:test ../include/tlib/detail/strides.h:48:16:   required from 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; InputIt2 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; OutputIt = __gnu_cxx::__normal_iterator<long unsigned int*, std::vector<long unsigned int> >]'

:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = long unsigned int]'

:info:test src/gtest_tlib_ttv.cpp:171:45:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::sequential_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy; unsigned int rank = 2]'

:info:test src/gtest_tlib_ttv.cpp:199:98:   required from here

:info:test ../include/tlib/detail/shape.h:72:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]

:info:test    72 |         if(std::distance(begin,end) < 2u)

:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_tensor(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >]':

:info:test ../include/tlib/detail/strides.h:48:53:   required from 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; InputIt2 = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >; OutputIt = __gnu_cxx::__normal_iterator<long unsigned int*, std::vector<long unsigned int> >]'

:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = long unsigned int]'

:info:test src/gtest_tlib_ttv.cpp:171:45:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::sequential_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy; unsigned int rank = 2]'

:info:test src/gtest_tlib_ttv.cpp:199:98:   required from here

:info:test ../include/tlib/detail/shape.h:86:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const long unsigned int*, std::vector<long unsigned int> >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]

:info:test    86 |         if(std::distance(begin,end) < 3u)

:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

:info:test ../include/tlib/detail/tensor_times_vector.h: In instantiation of 'void tlib::detail::ttv(tlib::execution::parallel_blas_policy, tlib::slicing::small_policy, tlib::loop_fusion::outer_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int]':

:info:test ../include/tlib/ttv.h:92:13:   required from 'void tlib::tensor_times_vector(execution_policy, slicing_policy, fusion_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int; execution_policy = execution::parallel_blas_policy; slicing_policy = slicing::small_policy; fusion_policy = loop_fusion::outer_policy]'

:info:test src/gtest_tlib_ttv.cpp:125:27:   required from 'void ttv_check(execution_policy, slicing_policy, fusion_policy, size_type, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_blas_policy; slicing_policy = tlib::slicing::small_policy; fusion_policy = tlib::loop_fusion::outer_policy]'

:info:test src/gtest_tlib_ttv.cpp:183:14:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_blas_policy; slicing_policy = tlib::slicing::small_policy; fusion_policy = tlib::loop_fusion::outer_policy; unsigned int rank = 2]'

:info:test src/gtest_tlib_ttv.cpp:299:98:   required from here

:info:test ../include/tlib/detail/tensor_times_vector.h:355:28: warning: variable 'na_m' set but not used [-Wunused-but-set-variable]

:info:test   355 |                 auto const na_m = na[m-1];

:info:test       |                            ^~~~

:info:test ../include/tlib/detail/tensor_times_vector.h:356:28: warning: variable 'wa_m' set but not used [-Wunused-but-set-variable]

:info:test   356 |                 auto const wa_m = wa[m-1];

:info:test       |                            ^~~~

:info:test ../include/tlib/detail/tensor_times_vector.h: In instantiation of 'void tlib::detail::set_blas_threads(size_t) [with size_t = unsigned int]':

:info:test ../include/tlib/detail/tensor_times_vector.h:521:19:   required from 'void tlib::detail::ttv(tlib::execution::parallel_policy, tlib::slicing::large_policy, tlib::loop_fusion::none_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int]'

:info:test ../include/tlib/ttv.h:92:13:   required from 'void tlib::tensor_times_vector(execution_policy, slicing_policy, fusion_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int; execution_policy = execution::parallel_policy; slicing_policy = slicing::large_policy; fusion_policy = loop_fusion::none_policy]'

:info:test src/gtest_tlib_ttv.cpp:125:27:   required from 'void ttv_check(execution_policy, slicing_policy, fusion_policy, size_type, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy]'

:info:test src/gtest_tlib_ttv.cpp:183:14:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy; unsigned int rank = 2]'

:info:test src/gtest_tlib_ttv.cpp:213:98:   required from here

:info:test ../include/tlib/detail/tensor_times_vector.h:51:37: warning: unused parameter 'num' [-Wunused-parameter]

:info:test    51 | inline void set_blas_threads(size_t num)

:info:test       |                              ~~~~~~~^~~

:info:test ../include/tlib/detail/tensor_times_vector.h: In instantiation of 'void tlib::detail::set_blas_threads(size_t) [with size_t = int]':

:info:test ../include/tlib/detail/tensor_times_vector.h:533:19:   required from 'void tlib::detail::ttv(tlib::execution::parallel_policy, tlib::slicing::large_policy, tlib::loop_fusion::none_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int]'

:info:test ../include/tlib/ttv.h:92:13:   required from 'void tlib::tensor_times_vector(execution_policy, slicing_policy, fusion_policy, size_t, size_t, const value_t*, const size_t*, const size_t*, const size_t*, const value_t*, const size_t*, value_t*, const size_t*, const size_t*, const size_t*) [with value_t = double; size_t = long unsigned int; execution_policy = execution::parallel_policy; slicing_policy = slicing::large_policy; fusion_policy = loop_fusion::none_policy]'

:info:test src/gtest_tlib_ttv.cpp:125:27:   required from 'void ttv_check(execution_policy, slicing_policy, fusion_policy, size_type, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&, const std::vector<size_type>&) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy]'

:info:test src/gtest_tlib_ttv.cpp:183:14:   required from 'void check_tensor_times_vector(size_type, size_type) [with value_type = double; size_type = long unsigned int; execution_policy = tlib::execution::parallel_policy; slicing_policy = tlib::slicing::large_policy; fusion_policy = tlib::loop_fusion::none_policy; unsigned int rank = 2]'

:info:test src/gtest_tlib_ttv.cpp:213:98:   required from here

:info:test ../include/tlib/detail/tensor_times_vector.h:51:37: warning: unused parameter 'num' [-Wunused-parameter]

:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/gtest_tlib_workload.cpp -o build/gtest_tlib_workload.o

:info:test In file included from ../include/tlib/detail/tensor_times_vector.h:32,

:info:test                  from ../include/tlib/ttv.h:21,

:info:test                  from src/gtest_tlib_workload.cpp:18:

:info:test ../include/tlib/detail/strides.h: In instantiation of 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; InputIt2 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; OutputIt = __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >]':

:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = unsigned int]'

:info:test src/gtest_tlib_workload.cpp:56:43:   required from 'auto check_index_space_division(size_type, size_type) [with size_type = unsigned int; size_type rank = 3]'

:info:test src/gtest_tlib_workload.cpp:134:41:   required from here

:info:test ../include/tlib/detail/strides.h:52:28: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'const int' [-Wsign-compare]

:info:test    52 |         for(auto r = 1u; r < n; ++r)

:info:test       |                          ~~^~~

:info:test In file included from ../include/tlib/detail/strides.h:25:

:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_matrix(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >]':

:info:test ../include/tlib/detail/strides.h:48:16:   required from 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; InputIt2 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; OutputIt = __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >]'

:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = unsigned int]'

:info:test src/gtest_tlib_workload.cpp:56:43:   required from 'auto check_index_space_division(size_type, size_type) [with size_type = unsigned int; size_type rank = 3]'

:info:test src/gtest_tlib_workload.cpp:134:41:   required from here

:info:test ../include/tlib/detail/shape.h:72:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]

:info:test    72 |         if(std::distance(begin,end) < 2u)

:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

:info:test ../include/tlib/detail/shape.h: In instantiation of 'bool tlib::detail::is_tensor(InputIt, InputIt) [with InputIt = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >]':

:info:test ../include/tlib/detail/strides.h:48:53:   required from 'void tlib::detail::compute_strides(InputIt1, InputIt1, InputIt2, OutputIt) [with InputIt1 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; InputIt2 = __gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >; OutputIt = __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >]'

:info:test ../include/tlib/detail/strides.h:64:17:   required from 'auto tlib::detail::generate_strides(const std::vector<size_type>&, const std::vector<size_type>&) [with size_type = unsigned int]'

:info:test src/gtest_tlib_workload.cpp:56:43:   required from 'auto check_index_space_division(size_type, size_type) [with size_type = unsigned int; size_type rank = 3]'

:info:test src/gtest_tlib_workload.cpp:134:41:   required from here

:info:test ../include/tlib/detail/shape.h:86:37: warning: comparison of integer expressions of different signedness: 'std::__iterator_traits<__gnu_cxx::__normal_iterator<const unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, void>::difference_type' {aka 'int'} and 'unsigned int' [-Wsign-compare]

:info:test    86 |         if(std::distance(begin,end) < 3u)

:info:test       |            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  -c -I../include -Iinclude  src/main.cpp -o build/main.o

:info:test /opt/local/bin/g++-mp-12 -Wextra -Wall -Wpedantic -Ofast -std=c++17 -pthread -fopenmp -D_GLIBCXX_USE_CXX11_ABI=0  build/gtest_tlib_layout.o build/gtest_tlib_mtv.o build/gtest_tlib_shape.o build/gtest_tlib_strides.o build/gtest_tlib_ttv.o build/gtest_tlib_workload.o build/main.o -lgtest -lpthread -lgomp -lpthread -lm -lopenblas -o bin/main

I will get after the warnings. However, they should not cause any tests to fails ...