Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Beginner
218 Views

ippDotProd returns different results with the same arguments

Hi,

I call ippDotProd function with the same arguments and get different outputs from run to run.

Code example:

#include "stdafx.h"
#include <ipp.h>
#include <iostream>
#include <conio.h>
#include <vector>

void Test()
{
	static const int NTAPS = 163;
	std::vector<Ipp32fc> data(NTAPS, { 100.0f, 500.012346f });

	std::vector<Ipp32f> taps(NTAPS, 1.0f);
	
	Ipp32fc dp;
	auto status = ippsDotProd_32f32fc(taps.data(), data.data(), NTAPS, &dp);

	char str[100];
	sprintf_s(str, "dp.im = %.8f", (double)dp.im);

	std::cout << str;
}


int main()
{
	Test();
	_getch();

    return 0;
}

 

Output:

dp.im = 81502.06250000

or

dp.im = 81502.02343750

 

I use:

IPP Version 2019 Update 3

Microsoft Visual Studio Professional 2017

Windows 10

Intel Core i5-9600K CPU @ 3.70GHz 3.70 GHz

 

I running example in debug. Release always print

dp.im = 81502.06250000

Labels (2)
0 Kudos
3 Replies
Moderator
186 Views

Thank you for reporting the issue. We will investigate this at our end and get back to you with an update.

0 Kudos
Moderator
171 Views

Evgeny,

Please try to check if the problem would exist in the case of allocated memory aligned.  It could be easily done by using if the ippsMalloc_32fc, ippsMalloc_32f, and ippsFree  IPP functions.

Gennady

 

Beginner
155 Views

Gennady,

Thank you for answer. I tried to test with ippMalloc/ippFree functions. And I got a stable results from run to run. Debug always print dp.im = 81502.02343750.

I try also \Zp16 option for Visual C++ compiler and also get different results from run to run in the original test with std::vector.

Tell me please 1) why the results can differ in debug/release 2) why \Zp16 option didn't help me.

0 Kudos