- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
There may be a problem in the MKL version of zgesvd (SVD for complex double precision values).
The problem (demonstrated in the attached code) is the reconstructed results are not correct for complex double precision values when using LWORK computed by zgesvd. The archive contains files for building two programs (Windows and Mac build files). One program, svd_mkl, uses the MKL libraries, and the second program, svd_custom, uses a custom-built LAPACK library with the MKL BLAS.
A pass/fail test, discussed here, is applied to the results. The MKL executable passes when a formula-based LWORK value is used, but fails when a zgesvd-provided value is used. The executable that uses the custom-built LAPACK library passes for both cases.
Sample output from MKL executable:
LWORK estimated by formula.
Infinity norm of residual matrix in the 1st case 3.754315870226376E-018
** Test passed **
LWORK computed by routine.
Infinity norm of residual matrix in the 2nd case 4.503115539806813E-003
**** Test FAILED ****
Sample output from custom-built LAPACK library executable:
LWORK estimated by formula.
Infinity norm of residual matrix in the 1st case 4.671276609658848E-018
** Test passed **
LWORK computed by routine.
Infinity norm of residual matrix in the 2nd case 4.333994776498896E-018
** Test passed **
Thanks,
Nathan
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
I installed the latest oneAPI Base and HPC Toolkits on a 2019 Mac Pro (3.2 GHz 16-Core Intel Xeon W). All the tests pass, now. The old and new results are attached.
Enlace copiado
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
1. I looked at your code briefly, and I note that the formula that you used to compute LWORK is the one for the "real flavors" of ?GESVD. For "complex flavors", the formula is LWORK >= 2*min(m,n) + max(m,n) . Thus, you are over-allocating the work array, but that should not affect the results.
2. On Windows, using the MKL version 2020.0.4, I do not obtain a "Test failed" message, whether I build for IA32 or x64.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
That's weird. I did some more tests and noticed that failure occurs when LWORK >= 47668 for svd_mkl (Mac and Windows).
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
I tried the svd_mkl executable on another Mac, and all the tests passed! So, the test failure occurs on a 2019 Mac Pro (3.2 GHz 16-Core Intel Xeon W), and the tests pass on a 2017 MacBook Pro. Any suggestions on how to proceed?
Thanks.
Note that the Windows tests were done on the same 2019 Mac Pro.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
If you have access to a native Windows PC (rather than Windows running in a VM) with the MKL runtime, you could see if the EXE will work on it.
Similarly, if you have been building multi-thread versions, you could try building and running a serial version.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
The tests pass on a native Windows PC. The builds have been serial.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
thanks Nathan for the update. This issue has been resolved and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread.
- Suscribirse a un feed RSS
- Marcar tema como nuevo
- Marcar tema como leído
- Flotar este Tema para el usuario actual
- Favorito
- Suscribir
- Página de impresión sencilla