-
Notifications
You must be signed in to change notification settings - Fork 1.6k
cblas_dgemm crashed! #2203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Learn how to write a bug report. In all seriousness, please include information such as:
|
Can you get exception code from event log or better backtrace while having x64dbg as jit debuger? |
Rewording to your format : next you do following : install x64dbg , configure as JIT debugger, repeat the crash, and debug it. |
It is usually better to include the *.h files that a |
If you are on 64bit Windows, you could also try the zip archive I put in #805 |
Thank you!My version is vs2019, windows10, x64. the new code of Openblas. Let have a try! |
Please generate some picture of what happened. |
I use the #805 openblas036-win64.zip, myproject works normally. I do not know why? I do not know how to user mkl,i install mkl,but don't know which file and *.lib should add to my project? |
regarding MKL - google for "mkl link line advisor" You mean "crashing" like windows debugger/crash reporter pops up or plainly some other error is displayed and everything stops? |
You could also just check if it still works when you use the lib that you built yourself, but take the includes from the openblas036-win64.zip. Most likely the problem was just that you took the unmodified cblas.h template from lapack-netlib\CBLAS\include. (It is probably not necessary to try your code with mkl or the reference BLAS from netlib now that it works, unless you want to learn about them) |
Can you set breakpoint before cblas_dgemm to distingquish if enqueue fails or the blas call itself. |
I can set breakpoint before cblas_dgemm , and i look at very variable value, they are normal, so how i should do to distingquish if enqueue fails or the blas call itself? Others, the same as #805 openblas036-win64.zip is woks, so i gues the blas call itself. |
I do not think debugging the crash will produce any useful information - it looks like something went wrong with the compilation of OpenBLAS by Visual Studio. Did you follow the suggestions in the wiki, |
I added one paragraph recently that gets asked often... |
You can dump call parameters there - then look back if arrays were of right size(s) ? Any better with MKL - in this case OpenBLAS has a bug . |
I only think it went wrong with the compilation of OpenBLAS by Visual Studio. Because the #805 openblas036-win64.zip woks, but it compile under linux by cross compile. You can look forward this direction to find problem! |
OK, thats in part good news. Other ways to build under windows (tell if any works without too much customisation):
|
I only think it went wrong with the compilation of OpenBLAS by Visual Studio. Because the #805 openblas036-win64.zip woks, but it compile under linux by cross compile. You can look forward this direction to find problem!
my cmake version is 3.15.0, vs2019 preview(x64), windows 10 x64. CMake Warning at CMakeLists.txt:64 (message): GEMM multithread threshold set to 4. CMake Warning (dev) at cmake/prebuild.cmake:306 (if): Quoted variables like "MSVC" will no longer be dereferenced when the policy MSVC Compiling a 64-bit binary. Quoted variables like "GENERIC" will no longer be dereferenced when the CMake Warning (dev) at utest/CMakeLists.txt:4 (if): Quoted variables like "MSVC" will no longer be dereferenced when the policy Generating openblas_config.h in include/openblas |
Can you post a picture of cpu-z? Policy warnings are OK - We support old versions (think what is available on 10 years old commercially supported enterprise Linux), no defects in whole log shown. |
The problem here is simply that Visual Studio does not understand the dialect of assembler instructions we use in the optimized BLAS kernels (OpenBLAS has old "AT&T" syntax, common on Unix and used by the GNU tools, Microsoft expects "Intel" syntax - different order of operands, some different instructions). So with VS alone, you will only get the "generic" version of OpenBLAS functions written in C - a bit faster than the old reference BLAS, but much slower than the cpu-specific assembler versions. |
|
I wanted stepping numbers from CPU-Z to drill through cpuid_x86.c ;-) |
@brada4 the cpuid really plays no role here (and i5-7500 should be detected alright) - on Windows with just the VS compiler, getarch is called (by prebuild.cmake) with -DFORCE_GENERIC to prevent the compiler from stumbling into assembly code that it cannot handle anyway. |
|
Martin already explained, your compiler is limited, not cpu at fault |
So the cmaked openblas is disabled by vs. To use openblas in windows must compile it with clang and mingw cross compile? |
You do not have to cross compile, you can use gcc/mingw and compile on
Windows.
xinsuinizhuan <[email protected]> ezt írta (időpont: 2019. aug. 9.,
P, 11:32):
… Martin already explained, your compiler is limited, not cpu at fault
So the cmaked openblas is disabled by vs. To use openblas in windows must
compile it with clang and mingw cross compile?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#2203>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AHD2KHSEHG4NXE4M6OYIJILQDU2UHANCNFSM4IJITX6Q>
.
|
I cmake the OpenBlas,then include the "lapack-netlib\CBLAS\include" in my project and link the "lib\RELEASE\openblas.lib" and "lib\DEBUG\openblas.lib" to my project.Then i run my project, when it run the "cblas_dgemm", it crashed! Then what should i do ? then OpenMp is default!
The text was updated successfully, but these errors were encountered: