Lapack: Stackoverflow para `xlintstz_ztest_in` en 3.9.1 en Windows

Creado en 8 may. 2021  ·  8Comentarios  ·  Fuente: Reference-LAPACK/lapack

Al intentar compilar lapack 3.9.1 para conda-forge (ver aquí ), hay un nuevo error para ctest --output-on-failure -E "x*cblat*" después de compilar:

 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 compilación se realiza con minGW, aproximadamente de la siguiente manera (más detalles aquí ):

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

Comentario más útil

En Windows con mingw, creo que el tamaño de la pila debería ajustarse en el momento de la compilación / enlace (-Wl, - stack, 2097152 o superior). Probablemente se pueda obtener el valor predeterminado en el exe con algo como dumpbin /headers .

Todos 8 comentarios

Interesante, ya que se espera que 3.9.1 haya _reducido_ considerablemente los requisitos de pila para xlintstz en comparación con versiones anteriores (y definitivamente lo ha hecho en plataformas unixoid)

lo siento, los cambios en los que estaba pensando (# 492) afectaron a xeigtstz en lugar de xlintstz

Sí ... Yo diría que una solución similar a la # 492 resolverá este problema. Ambos se relacionan con el desbordamiento de la pila.

He mirado el n. ° 492 pero se ve un poco por encima de mi calificación de pago ... ¿Quieres decir que (algo parecido a) https://github.com/Reference-LAPACK/lapack/pull/492/commits/df02000eedbda3f38e305af1290313e5b2a2b541 debe hacerse para las pruebas LIN?

Al principio, le sugiero que aumente el tamaño de la pila ulimit -s unlimited y vea si el problema persiste. ¿Puedes intentarlo? Si esto funciona, podemos probar la misma solución aplicada en # 492.

En Windows con mingw, creo que el tamaño de la pila debería ajustarse en el momento de la compilación / enlace (-Wl, - stack, 2097152 o superior). Probablemente se pueda obtener el valor predeterminado en el exe con algo como dumpbin /headers .

Muchas gracias por el consejo @ martin-frbg, de hecho, https://github.com/conda-forge/lapack-feedstock/pull/51/commits/3835a4de851f90555b5a6ce6bdd3e6d66b57e675 resuelve el fallo en Windows.

Me alegra saber que funciona, pero supongo que es posible que queramos copiar la solución de # 492 (ya he convertido zchkaa.f, pero aún no he determinado el límite mínimo de uiimit con el nuevo código)

¿Fue útil esta página
0 / 5 - 0 calificaciones