Lapack: Stackoverflow pour `xlintstz_ztest_in` sous 3.9.1 sur Windows

Créé le 8 mai 2021  ·  8Commentaires  ·  Source: Reference-LAPACK/lapack

En essayant de compiler lapack 3.9.1 pour conda-forge (voir ici ), il y a une nouvelle erreur pour ctest --output-on-failure -E "x*cblat*" après la compilation :

 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

La construction se fait avec minGW, à peu près comme suit (plus de détails ici ) :

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

Commentaire le plus utile

Sous Windows avec mingw, je pense que la taille de la pile devrait être ajustée au moment de la compilation/liaison (-Wl,--stack,2097152 ou plus). On peut probablement obtenir la valeur par défaut dans l'exe avec quelque chose comme dumpbin /headers .

Tous les 8 commentaires

Intéressant car la 3.9.1 devrait avoir considérablement _réduit_ les exigences de pile pour xlintstz par rapport aux versions précédentes. (Et c'est certainement le cas sur les plates-formes unixoid)

désolé, les changements auxquels je pensais (#492) ont affecté xeigtstz plutôt que xlintstz

Oui... Je dirais qu'un correctif similaire au n° 492 résoudra ce problème. Les deux concernent le débordement de la pile.

J'ai regardé le n° 492 mais il semble un peu au-dessus de mon niveau de rémunération... Voulez-vous dire que (quelque chose du genre) https://github.com/Reference-LAPACK/lapack/pull/492/commits/df02000eedbda3f38e305af1290313e5b2a2b541 doit être fait pour les tests LIN ?

Au début, je vous suggère d'augmenter la taille ulimit -s unlimited la pile

Sous Windows avec mingw, je pense que la taille de la pile devrait être ajustée au moment de la compilation/liaison (-Wl,--stack,2097152 ou plus). On peut probablement obtenir la valeur par défaut dans l'exe avec quelque chose comme dumpbin /headers .

Merci beaucoup pour l'astuce @martin-frbg, en effet, https://github.com/conda-forge/lapack-feedstock/pull/51/commits/3835a4de851f90555b5a6ce6bdd3e6d66b57e675 résout l'échec sur windows.

Heureux de savoir que cela fonctionne - mais je suppose que nous pouvons toujours vouloir copier la solution de #492 (j'ai déjà converti zchkaa.f mais je n'ai pas encore déterminé l'uiimit minimum avec le nouveau code)

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

pablosanjose picture pablosanjose  ·  41Commentaires

JHenneberg picture JHenneberg  ·  10Commentaires

Peter9606 picture Peter9606  ·  7Commentaires

weslleyspereira picture weslleyspereira  ·  5Commentaires

Dichloromethane picture Dichloromethane  ·  11Commentaires