I'm facing a problem probably due to misalignment so I decided to use mkl_*alloc with Parallel Direct Sparse Solver.
The solver needs 64byte alignment that is succesfully obtained my mkl_malloc/mkl_calloc specifying the alignment parameter.
Unfortunately this is not possible with mkl_realloc: its default is a simple 16byte alignment and nothing can be done to bypass this default behaviour.
Sorry, maybe I didn't specify that I WANT to reallocate that vector! If I didn't want to, I'd use mkl_malloc!
If I use mkl_realloc to reallocate, the address is no more 64byte aligned!
I can create another array with mkl_malloc and then copy the data, but the memory peak (mkl_peak_mem_usage()) is incredibly higher than using mkl_realloc.
Another question... does mkl_realloc try to "expand" the current array before moving it elsewhere?
thanks for the issue. mkl_realloc doesn't remember the alignment of the "original" array but it must to keep this alignment. We will fix this into one of the next releases/updates.