- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I am observing slightly different results when calling ippsSum_64f with the same numbers but in a differently aligned array; is it a bug or a documented behaviour ?
Thanks !
PS: Here is a simple C program that shows this phenomenon:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "ipp.h" #define SIZE 1000 #define NB_TESTS 10 int main (void) { int alignment,test,k; double input1[SIZE], input2[SIZE+1]; for (alignment = 0; alignment < 8; alignment ++) { int failed = 0; for (test = 0; test < NB_TESTS; test ++) { double r1, r2; double *p = (double *) (alignment + (char *)input2); for (k = 0; k < SIZE; k ++) { input1= (double)rand() / (double)RAND_MAX; p = input1 ; } ippsSum_64f(input1, SIZE, &r1); ippsSum_64f(p, SIZE, &r2); if (r1 != r2) { printf("[%d %% 8] diff = %e\n", alignment, r2 - r1); failed ++; } } printf("[%d %% 8] %d / %d tests failed\n", alignment, failed, NB_TESTS); } return 0; }
When the alignment is "0 % 8", ippsSum returns the same result on both inputs but when it's non-zero the test some times succeeds, some times fails (with an error around 1e-13).
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Marc,
For floating point computation, there could be small epsilon difference in result, and that is expected for different memory alignment. Here is an article discusses about the variation https://software.intel.com/en-us/articles/getting-reproducible-results-with-intel-mkl. Although the article talks about MKL, the same rule applies to IPP. Hope this helps. Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your reply !
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page