Closed ianfhunter closed 4 years ago
Hi Ian, thanks for your feedback. I can't immediately reproduce any issues with test/test_gemm_blis.x
. I assume you mean you were using the sandybridge
configuration? Have you tried the reference
configuration? Also, what kind of hardware are you on? First thing to check is that this is not a 32/64-bit integer issue. The new default is 64, unless the configuration's bli_config.h
file overrides it.
Also, SIGILL--illegal instruction--is different than a segementation fault. Maybe you could clarify.
Hi fgvanzee.
Yes, you're correct - I hope my edits have clarified what I was asking.
As suggested using reference
has fixed my issue (hooray),
For what it's worth, my processor is an Intel® Core™ i7-4770. Thanks for the help
Don't take this the wrong way, but I am having trouble believing that the problem truly is with the invocation of bli_obj_create_const(2.0, &BLIS_TWO);
in bli_const_init()
. That code should be completely portable, and does not change as a function of the chosen configuration. My gut tells me fingers should be pointed at your compiler, or at least the way it is compiling the code. Which are you using, and what version?
Also, would you be willing to trace the SIGILL even further? If you don't want to dork around with the debugger, just insert some printf( ... ); fflush( stdout )
. Is it happening inside of bli_obj_create_const()
? Or at the function call? The only thing special about that point in the code is that it is the first time a BLIS function is called with a non-empty list of function parameters. So it could be a 32/64-bit pointer issue.
I reckon it's also related to the first non-empty function parameters. I'm using I'm using gcc version: (Ubuntu 4.8.2-19ubuntu1) 4.8.2 during my gdb session earlier it was occuring when the function was being called, rather than inside it.
I can try build it with an override of 32bit on the sandybridge configuration to test - I'm not entirely sure what line to include though
The only thing you can adjust in bli_config.h
is the size of an int, via:
#define BLIS_INT_TYPE_SIZE 32
#define BLIS_INT_TYPE_SIZE 64 // this is the default and thus not explicitly needed
If it's a pointer size issue, that will require adjusting compiler flags in config/.../make_defs.mk
. I don't recall the flags for doing that in gcc
off hand. Try Googling the issue and see what comes up.
Closing this issue due to lack of activity. Please reopen if appropriate.
I've just set up my first blis program, but calling bli_init() causes the program to trigger a SIGILL. I'm using Ubuntu 14.04 GNU/Linux using the Sandymount configuration for BLIS. It also breaks here when I run the test_gemm_blis.x test in blis/test/ or the test suite with the given makefiles.
I've traced it down to inside of bli_const_init() using gdb.
bli_obj_create_const(2.0, &BLIS_TWO);
I've tried re-configuring & rebuilding the library several times but it doesn't seem to help.