- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
...... MKL_LONG status; VSLStreamStatePtr stream; ...... int main(){ vslNewStream(&stream, VSL_BRNG_SFMT19937, 777); rnd_data = (double*)malloc(total * sizeof(double)); status = vdRngUniform(VSL_RNG_METHOD_UNIFORM_STD, stream, total, rnd_data, 0.0, 1.0); vslDeleteStream(&stream); ...... }
The above quite standard c++ VSL code gives 'MKL ERROR: Parameter 3 was incorrect on entry to vdRngUniform' once the variable 'total' is large than 2^32-1. I'm trying to write a ILP64 version to overcome this. In so far as I've tried, by referring to MKL manual https://software.intel.com/sites/products/documentation/hpc/mkl/lin/MKL_UG_structure/Support_for_ILP64_Programming.htm, the error remained all along. I tried using compilation command 'icpc -DMKL_ILP64 -mkl a.cpp' and defining variable 'total' as MKL_INT type. I'm using some 64-bit linux machine.
Could you kindly help me on this? Thanks in advance!
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Can you please check status of the dynamic memory allocation in your environment and let me know if the memory for rnd_data is successfully allocated in both modes, with -DMKL_INT64 and without it?
Please, use MKL_INT type for the variable total.
Andrey
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page