Lapack: Stackoverflow para `xlintstz_ztest_in` sob 3.9.1 no Windows

Criado em 8 mai. 2021  ·  8Comentários  ·  Fonte: Reference-LAPACK/lapack

Ao tentar construir o lapack 3.9.1 para conda-forge (veja aqui ), há um novo erro para ctest --output-on-failure -E "x*cblat*" após a construção:

 81/108 Test  #81: LAPACK-xlintstz_ztest_in .........***Failed    0.06 sec
Running: D:/bld/blas-split_1620498704464/work/build/bin/xlintstz.exe
ARGS= OUTPUT_FILE;D:/bld/blas-split_1620498704464/work/build/TESTING/ztest.out;ERROR_FILE;D:/bld/blas-split_1620498704464/work/build/TESTING/ztest.out.err;INPUT_FILE;D:/bld/blas-split_1620498704464/work/TESTING/ztest.in
Test OUTPUT:

Test ERROR:

CMake Error at D:/bld/blas-split_1620498704464/work/TESTING/runtest.cmake:36 (message):
  Test D:/bld/blas-split_1620498704464/work/build/bin/xlintstz.exe returned
  Stack overflow

A construção é feita com minGW, mais ou menos da seguinte maneira (mais detalhes aqui ):

set "CC=gcc.exe"
set "CXX=g++.exe"
set "FC=gfortran.exe"

cmake -G "MinGW Makefiles" ^
    -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^
    -DBUILD_SHARED_LIBS=yes ^
    -DCMAKE_BUILD_TYPE=Release ^
    -DBUILD_TESTING=ON ^
    -DLAPACKE=ON ^
    -DCBLAS=ON ^
    -DBUILD_DEPRECATED=ON ^
    -Wno-dev ..

mingw32-make -j%CPU_COUNT%
mingw32-make install
if %ERRORLEVEL% NEQ 0 exit 1
Bug

Comentários muito úteis

No Windows com mingw, acredito que o tamanho da pilha precisaria ser ajustado em tempo de compilação / link (-Wl, - stack, 2097152 ou superior). Provavelmente, pode-se obter o valor padrão no exe com algo como dumpbin /headers .

Todos 8 comentários

Interessante, pois espera-se que 3.9.1 tenha _reduzido_ consideravelmente os requisitos de pilha para xlintstz em comparação com as versões anteriores. (E definitivamente tem em plataformas unixoid)

desculpe, as mudanças em que estava pensando (# 492) afetaram xeigtstz em vez de xlintstz

Sim ... Eu diria que uma correção semelhante a # 492 deve resolver esse problema. Ambos estão relacionados ao estouro da pilha.

Eu olhei para # 492, mas parece um pouco acima do meu salário ... Você quer dizer que (algo parecido com) https://github.com/Reference-LAPACK/lapack/pull/492/commits/df02000eedbda3f38e305af1290313e5b2a2b541 precisa ser feito para os testes do LIN?

A princípio, sugiro que você aumente o tamanho da pilha ulimit -s unlimited e veja se o problema ainda existe. Você pode tentar? Se funcionar, podemos tentar a mesma solução aplicada em # 492.

No Windows com mingw, acredito que o tamanho da pilha precisaria ser ajustado em tempo de compilação / link (-Wl, - stack, 2097152 ou superior). Provavelmente, pode-se obter o valor padrão no exe com algo como dumpbin /headers .

Muito obrigado pela dica @ martin-frbg, de fato, https://github.com/conda-forge/lapack-feedstock/pull/51/commits/3835a4de851f90555b5a6ce6bdd3e6d66b57e675 resolve a falha no Windows.

Fico feliz em saber que funciona - mas acho que ainda podemos copiar a solução de # 492 (já converti zchkaa.f, mas ainda não determinei o uiimit mínimo com o novo código)

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

weslleyspereira picture weslleyspereira  ·  5Comentários

pablosanjose picture pablosanjose  ·  41Comentários

5tefan picture 5tefan  ·  3Comentários

hokb picture hokb  ·  16Comentários

JHenneberg picture JHenneberg  ·  10Comentários