I am using IPP library v5.3 Update 4in my code.When i tried to use the IPP API ippsSVD_64f_D2 or any of SVD related APIs likeIppsSVD_64f_D2L,ippsSVD_64f_D2_I,ippsSVD_64f_D2L_I,ippsSVDSort_64f_D2,ippsSVDSort_64f_D2L,ippsSVDSort_64f_D2_I,ippsSVDSort_64f_D2L_I I am getting the error "Caught an exception of type ACCESS_VIOLATION:
Exception occurred at address : 0AA9A718".I observedthis error comingfor SVD APIs not for any multiplication APIs.Is this error coming because of older version i am using?Is this error solved in latest IPP versions?Can you please guide me to resolve this problem?
An access violation means you are might be reading/writing unallocated/freed memory, or reading/writing beyond the area you have allocated, not that you are unable to "access the API".
Or did the same code worked with a previous version ?
Regarding the access violation, my initial guess was that the function was trying to write to an area slightly outside the allocated bounds of one of the arrays, so I doubled the size of each array relative to what the documentation says is required. E.g., I made W of size 2*width rather than width, V of size 2*width*step (where step=width in this case), etc. But I still see the access violation.
The matrix I'm passing in is a (possibly singular) covariance matrix created from a previous calculation, so I don't yet have a simple, clean way that I can post that reproduces the problem. I will work on this if no one has an idea of what the problem might be.
I know that the "small matrices" set of functions is mainly for matrices 6x6 and smaller, but the SVD functions are part of the signal processing/speech recognition set of functions, so I assume they should work for the much-larger matrices I am using. Is this correct?
My final question is whether the SVD functions have any known bugs in IPP 5.3 that have been fixed for 6.0, such that upgrading might help.
I still think there's a bug in the SVD routine, though, in that NaNs in the input data should be handled by a return code (e.g., ippStsSVDCnvgErr) rather than causing an access violation.
To the original poster: If you still have the problem, you might want to check your own data to make sure no NaNs or Infs are present in the matrixyou send to SVD (and of course make sure you are passing in height, width, and step values corresponding to the actual amounts of memory you have allocated in the various arrays).