Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

problem with using IPP

coolsandyforyou
Beginner
960 Views
hi,
i have installed the evaluation package of the IPP , read the some part of user manual (verified for good installation,setting environmental variables),but could not use the IPP functions with visual studio 2008.for this i think i have to add the libraries of IPP software to visual studio,but i dont know how to do that ,can u please suggest me on this regard
0 Kudos
15 Replies
Vladimir_Dudnik
Employee
960 Views
Hello,

I would recommend you to review an article Use Intel IPP in Intel Parallel Composerfrom IPP Knowledge Base resources.

Regards,
Vladimir
0 Kudos
coolsandyforyou
Beginner
959 Views
Hello,

I would recommend you to review an article Use Intel IPP in Intel Parallel Composer from IPP Knowledge Base resources.

Regards,
Vladimir
hi,

i have added include files,executable files,and library files (tools->options->vc++ directories) but still some link error is coming like"LNK2019:unresolved external symbol _ippStaticInit@0 referenced in function _main",how to know which function is in which library.(i tried executing a program given in usermanual ia32 for static dispatching)

actually i want to link IPP with my application with dynamic linkage...what should i do?

how to know which ipp function in which library?

does intel core2duo processor support SSE4 instruction set?

pls guide me..

thanking you.


0 Kudos
Ivan_Ryzhachkin__Int
New Contributor I
959 Views
Quoting - coolsandyforyou
hi,
i have installed the evaluation package of the IPP , read the some part of user manual (verified for good installation,setting environmental variables),but could not use the IPP functions with visual studio 2008.for this i think i have to add the libraries of IPP software to visual studio,but i dont know how to do that ,can u please suggest me on this regard

ippStaticInit is in ippcorel.lib. Whether library contains function or not one may found using any simboilic search (F7 in the 'far manager' for example).
0 Kudos
Ivan_Ryzhachkin__Int
New Contributor I
959 Views
Quoting - coolsandyforyou
hi,
i have installed the evaluation package of the IPP , read the some part of user manual (verified for good installation,setting environmental variables),but could not use the IPP functions with visual studio 2008.for this i think i have to add the libraries of IPP software to visual studio,but i dont know how to do that ,can u please suggest me on this regard

The info about core2duo could be found in http://download.intel.com/products/processor/core2duo/desktop_prod_brief.pdf
Ivan
0 Kudos
coolsandyforyou
Beginner
959 Views
i have added include files,executable files,and library files (tools->options->vc++ directories) but still some link error is coming like"LNK2019:unresolved external symbol _ippStaticInit@0 referenced in function _main",how to know which function is in which library.(i tried executing a program given in usermanual ia32 for static dispatching)

actually i want to link IPP with my application with dynamic linkage...what should i do?Quoting - Ivan Ryzhachkin (Intel)

hi,
i could fix all the build errors(previously i did not give the input libraries in linking->input).But now i am getting an error
error PRJ0003 : Error spawning 'cmd.exe' ...can u suggest me in fixing it?
0 Kudos
Ivan_Ryzhachkin__Int
New Contributor I
959 Views
Quoting - coolsandyforyou
hi,
i have installed the evaluation package of the IPP , read the some part of user manual (verified for good installation,setting environmental variables),but could not use the IPP functions with visual studio 2008.for this i think i have to add the libraries of IPP software to visual studio,but i dont know how to do that ,can u please suggest me on this regard

Hi,
ippStaticInit() is in ippcore*.dll. It useful with static libraries only, anddo nothing when using dll.
Regards,
ivan
0 Kudos
Ying_H_Intel
Employee
958 Views
Quoting - coolsandyforyou

hi ivan,
i have added the entire lib folder in the ipp package which includes(ippcores.lib) still iam getting the same error.


actually i want to link IPP with my application with dynamic linkage...what should i do?

Hello,

You may looking at the sample which show how to usestatic library with static linkage, that is why you see the error always:).

IPP provide many samples (including MSVC solution) at

http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-code-samples/

For example, the sample, Image Processing with the Microsoft Foundation Classes (MFC), which show how to use ippiAdd function and use dynamic linkage.

Once you extract the sample, there are ippiSample.sln file in directory : ipp-samplesimage-processingimage-processing-mfc, please double click it, it will be opened in MS 2008 automatically.

Then you can review the project property and see how ipp dynamic librarywas linked.

as the KBhttp://software.intel.com/en-us/articles/compiling-and-linking-ipp-applications-with-intel-c-compilers/said,
On the main toolbar, select Project {your project name} Properties,Project Property Pages windowswill show up, select Configuration Properties Linker Input and in the Additional Dependencies line, add the libraries you wish to link to (e.g. dynamic link:ippi.lib ipps.lib ippcore.libor static link: ippiemerged.lib ippimerged.lib ippsemerged.libippsmerged.lib ippcorel.lib).


Best Wishes,
Ying H.
0 Kudos
coolsandyforyou
Beginner
959 Views
Quoting - Ying H (Intel)

Hello,

You may looking at the sample which show how to usestatic library with static linkage, that is why you see the error always:).

IPP provide many samples (including MSVC solution) at

http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-code-samples/

For example, the sample, Image Processing with the Microsoft Foundation Classes (MFC), which show how to use ippiAdd function and use dynamic linkage.

Once you extract the sample, there are ippiSample.sln file in directory : ipp-samplesimage-processingimage-processing-mfc, please double click it, it will be opened in MS 2008 automatically.

Then you can review the project property and see how ipp dynamic librarywas linked.

as the KBhttp://software.intel.com/en-us/articles/compiling-and-linking-ipp-applications-with-intel-c-compilers/ said,
On the main toolbar, select Project {your project name} Properties, Project Property Pages windowswill show up, select Configuration Properties Linker Input and in the Additional Dependencies line, add the libraries you wish to link to (e.g. dynamic link:ippi.lib ipps.lib ippcore.lib or static link: ippiemerged.lib ippimerged.lib ippsemerged.lib ippsmerged.lib ippcorel.lib).


Best Wishes,
Ying H.
0 Kudos
Ying_H_Intel
Employee
959 Views

Dear Coolsandyforyou,

Have you happened to change the MSVS enironment setting?If youjust open the IPP MFC sample in MSVS 2008, everthing should be ready, you don't need addany new libraries.The error PRJ0003looks not IPP problem but the MS develop envionment.is it possible for you to resume the MSVS 2008? or
I check the google, here is the waysome one had tried
http://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/VisualC_PLUS_PLUS_DOT_NET/Q_21973342.html

Regards,
Ying
0 Kudos
coolsandyforyou
Beginner
959 Views
Quoting - Ying H (Intel)

Dear Coolsandyforyou,

Have you happened to change the MSVS enironment setting?If youjust open the IPP MFC sample in MSVS 2008, everthing should be ready, you don't need addany new libraries.The error PRJ0003looks not IPP problem but the MS develop envionment.is it possible for you to resume the MSVS 2008? or
I check the google, here is the waysome one had tried
http://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/VisualC_PLUS_PLUS_DOT_NET/Q_21973342.html

Regards,
Ying
Actually as mentioned in the user manual i have changed the environmental variable settings,INCLUDE,PATH,LIB.
i could fix this issue by writing
$(SystemRoot)
$(SystemRoot)System32
$(SystemRoot)System32wbem in vc++ directories.

i could build and run the solution file that u mentioned,ippiDemo.

but when running some other example program mentioned in book"IPP by stewart taylor" i am getting an error at the run time that "ippcore-6.1dll not found,reinstalling the application may fix this problem"


0 Kudos
Vladimir_Dudnik
Employee
959 Views
Let's make it clear. You created MSVC project by yourself from code published in Stewart's book? And then,executable modulecompiled from this project does not work becuase can't find IPP DLLs?

I think you need to double check how you created that project, what are the settings. Have you specified correct environment variables and so on.

Regards,
Vladimir
0 Kudos
coolsandyforyou
Beginner
959 Views
Quoting - coolsandyforyou
Actually as mentioned in the user manual i have changed the environmental variable settings,INCLUDE,PATH,LIB.
i could fix this issue by writing
$(SystemRoot)
$(SystemRoot)System32
$(SystemRoot)System32wbem in vc++ directories.

i could build and run the solution file that u mentioned,ippiDemo.

but when running some other example program mentioned in book"IPP by stewart taylor" i am getting an error at the run time that "ippcore-6.1dll not found,reinstalling the application may fix this problem"


i could run the project now,i copied all the dlls in the bin to sys32 folder,...it worked..thank u
0 Kudos
coolsandyforyou
Beginner
959 Views
Quoting - coolsandyforyou
i could run the project now,i copied all the dlls in the bin to sys32 folder,...it worked..thank u
i wrote a small sample code to get familiar with ipp.the following,

#include
#include

void main()
{
const int SIZE=256;
Ipp8u pSrc[SIZE],pDst[SIZE];
Ipp64u begin,end;

int i;


for(i=0;i pSrc=(Ipp8u)i;

begin=ippGetCpuClocks();
for(i=0;i pDst=pSrc;
end=ippGetCpuClocks();
printf("time taken in c=%ld",(end-begin));

begin=ippGetCpuClocks();
ippsCopy_8u(pSrc,pDst,SIZE);
end=ippGetCpuClocks();
printf("time taken in ipp=%ld",(end-begin));


}

i am surprised to see that time taken in ipp is 6 times larger than in c. Is thr anything wrong with the code?

0 Kudos
coolsandyforyou
Beginner
959 Views
Quoting - coolsandyforyou
i wrote a small sample code to get familiar with ipp.the following,

#include
#include

void main()
{
const int SIZE=256;
Ipp8u pSrc[SIZE],pDst[SIZE];
Ipp64u begin,end;

int i;


for(i=0;i pSrc=(Ipp8u)i;

begin=ippGetCpuClocks();
for(i=0;i pDst=pSrc;
end=ippGetCpuClocks();
printf("time taken in c=%ld",(end-begin));

begin=ippGetCpuClocks();
ippsCopy_8u(pSrc,pDst,SIZE);
end=ippGetCpuClocks();
printf("time taken in ipp=%ld",(end-begin));


}

i am surprised to see that time taken in ipp is 6 times larger than in c. Is thr anything wrong with the code?

where is ippiMalloc() function? which headerfile and library?
0 Kudos
Sergey_K_Intel
Employee
959 Views
Quoting - coolsandyforyou
where is ippiMalloc() function? which headerfile and library?

#include
+
add respective libs from "ippi" domain - i.e. ippi.lib from "stub" for dynamic linking or "ippiemerged.lib"+"ippimerged.lib" for static linkage

Regards,
Sergey

0 Kudos
Reply